/**
 * Odswieza liste albumow
 */
function refresh_album_list(album_id)
{
    element_id = typeof(layer_id_select_album) == 'undefined' ? 'album_id' : layer_id_select_album;

	$.ajax({
		type: 'POST',
		url: $('form#a_add_album').attr('action').replace('a_add_album', 'a_get_albums'),
		data: $('form#a_add_album').serialize(),
		dataType: "json",

		success: function(msg)
		{
			if(msg != 'false')
			{
				var options = '';
				for(var type in msg)
				{
					options += '<optgroup label="' + type + '">';
					for(var i = 0; i < msg[type].length; i++)
					{
						options += '<option value="' + msg[type][i].album_id + '">' +
									msg[type][i].album_title +
									'</option>';
					}
					options += '</optgroup>';
				}
				$("select#" + element_id ).html(options);
                var context = $('#' + element_id).closest('form');

				try
				{
					if (album_id > 0)
					{
						$('#' + element_id).val(album_id);
					}
				} catch(e){}
				
				$('#album_sas', context).remove();
				$('#'  + element_id, context ).SAS();
			}
		}
	});
}

/**
 * Pobiera komentarze
 */
function get_comments(url)
{
	$.ajax({
		type: 'POST',
		url: url,
		dataType: "json",

		beforeSend: function()
		{
			$('#comments_list div.navi').html('<li><div class="loading"></div></li>');
		},
		success: function(msg)
		{
			if(msg.error == 'false')
			{
				var comments = '';
				for(var i = 0; i < msg.result.length; i++)
				{
					comments += '<li class="' + msg.result[i].li_class + (!i ? ' first' : '') + '">' +
								'<a href="' + msg.result[i].profile + '"><img src="' + msg.result[i].avatar + '" alt="" class="thumb" /></a>' +
								'<div class="light small right date">' + msg.result[i].date + '</div>' +
								'<div class="title indent"><a href="' + msg.result[i].profile + '">' + msg.result[i].user + '</a> ' + msg.result[i].wrote + ':</div>' +
								'<div class="light indent">' + msg.result[i].comment + '</div>' +
								(msg.result[i].delete_link != '' ? '<div class="light midi right indent"><a href="' + msg.result[i].delete_link + '" class="iconed delete delete_big">' + msg.result[i].delete_lang + '</a></div>' : '') +
								'</li>';
				}
				if( $('#comments_list ul').length < 1 )
					$('#comments_list div.no_comments').replaceWith('<ul class="items"></ul>');
				
				$('#comments_list ul').html(comments);
				$('#comments_list div.navi').html(msg.pages);
//				$('.comments_counter').text( parseInt($('.comments_counter:first').text()) + 1 );
			}
		},
		complete: function()
		{
			$('#form_loading').remove();
		}
	});
}

$(function(){
	// utworz okno dialogowe
	$("#add_dialog").dialog({
			autoOpen: false,
			bgiframe: true,
			modal: true,
			width: 600
		});

	// dodawanie albumu
	$('#a_add_button').click(function(){
		$.ajax({
			type: 'POST',
			url: $('form#a_add_album').attr('action'),
			data: $('form#a_add_album').serialize(),
			dataType: 'json',
			
			beforeSend: function()
			{
				$('form#a_add_album button#a_cancel_button').after('<div id="form_loading" class="loading right"></div>');
			},
			success: function(msg)
			{
				if (msg.error == 'false')
				{
					refresh_album_list(msg.album_id);
					$('#add_dialog').dialog('close');
				}
				else
				{
					// wyswietl bledy walidacji
					messages = msg.error_msg;
					for(var i = 0; i < messages.length; i++)
					{
						if ($('#'+messages[i].element+'_error').attr('class'))
						{
							if (messages[i].msg)
							{
								$('#'+messages[i].element+'_error .error_in').html(messages[i].msg);
								$('#'+messages[i].element+'_error').show();
							}
							else
							{
								$('#'+messages[i].element+'_error').hide();
							}
						}
					}
				}
			},
			complete: function()
			{
				$('#form_loading').remove();
			}
		});
		return false;
	});

	$('#a_cancel_button').click(function(){
		$('#add_dialog').dialog('close');
		return false;
	});

	$('#add_album').live('click', function(){
		$('#a_name').val('');
		$('#add_dialog .form_error').hide();
		
		var section = $(this).attr('rel');
		if(section)
		{
			$('#add_dialog input[name=a_section]').val(section);
			$('#add_dialog input[name=a_section]').parents('li').hide();
		}
		
		$('#add_dialog').dialog('open');
		
		return false;
	});
	
	
	// okno dialogowe raportowania
	$("#report_dialog").dialog({
			autoOpen: false,
			bgiframe: true,
			modal: true,
			width: 600
		});

	// dodawanie raportu
	$('#r_add_button').click(function(){
		$.ajax({
			type: 'POST',
			url: $('form#r_add_report').attr('action'),
			data: $('form#r_add_report').serialize(),
			dataType: 'json',
			
			beforeSend: function()
			{
				$('form#r_add_report button#r_cancel_button').after('<div id="form_loading" class="loading right"></div>');
			},
			success: function(msg)
			{
				if (msg.error == 'false')
				{
					$('#report_dialog').dialog('close');
					msg_dialog = $('<div/>').attr('id', 'report_msg_dialog').attr('title', 'Info').html(msg.result).dialog({autoOpen: false, bgiframe: true, modal: true, width: 400, buttons: {Ok: function() {$(this).dialog('close');}}}).dialog('open');
				}
				else
				{
					// wyswietl bledy walidacji
					messages = msg.error_msg;
					for(var i = 0; i < messages.length; i++)
					{
						if ($('#'+messages[i].element+'_error').attr('class'))
						{
							if (messages[i].msg)
							{
								$('#'+messages[i].element+'_error .error_in').html(messages[i].msg);
								$('#'+messages[i].element+'_error').show();
							}
							else
							{
								$('#'+messages[i].element+'_error').hide();
							}
						}
					}
				}
			},
			complete: function()
			{
				$('#form_loading').remove();
			}
		});
		return false;
	});

	$('#r_cancel_button').click(function(){
		$('#report_dialog').dialog('close');
		return false;
	});

	$('#make_report').click(function(){
		$('#report_reason').val('');
		$('#report_dialog .form_error').hide();
		
		$('#report_dialog').dialog('open');
		
		return false;
	});

	$('.make_report').click(function(){
		$('#report_reason').val('');
		var element_id = $(this).attr('id');
		a_element_id = element_id.split('_');
		new_action = '/comments/report/' + a_element_id[1] + '/' + a_element_id[2];
		$('form#r_add_report').attr('action', new_action);
		$('#report_dialog .form_error').hide();
		$('#report_dialog').dialog('open');
		return false;
	});
	
	
	// okno dialogowe udostepniania mailem
	$("#share_mail_dialog").dialog({
			autoOpen: false,
			bgiframe: true,
			modal: true,
			width: 600
		});

	// udostepnianie mailem
	$('#s_add_button').click(function(){
		$.ajax({
			type: 'POST',
			url: $('form#s_add_mail').attr('action'),
			data: $('form#s_add_mail').serialize(),
			dataType: 'json',
			
			beforeSend: function()
			{
				$('form#s_add_mail button#s_cancel_button').after('<div id="form_loading" class="loading right"></div>');
			},
			success: function(msg)
			{
				if (msg.error == 'false')
				{
					$('#share_mail_dialog').dialog('close');
					msg_dialog = $('<div/>').attr('id', 'report_msg_dialog').attr('title', 'Info').html(msg.result).dialog({autoOpen: false, bgiframe: true, modal: true, width: 400, buttons: {Ok: function() {$(this).dialog('close');}}}).dialog('open');
				}
				else
				{
					// wyswietl bledy walidacji
					messages = msg.error_msg;
					for(var i = 0; i < messages.length; i++)
					{
						if ($('#'+messages[i].element+'_error').attr('class'))
						{
							if (messages[i].msg)
							{
								$('#'+messages[i].element+'_error .error_in').html(messages[i].msg);
								$('#'+messages[i].element+'_error').show();
							}
							else
							{
								$('#'+messages[i].element+'_error').hide();
							}
						}
					}
				}
			},
			complete: function()
			{
				$('#form_loading').remove();
			}
		});
		return false;
	});

	$('#s_cancel_button').click(function(){
		$('#share_mail_dialog').dialog('close');
		return false;
	});

	$('#share_mail').click(function(){
		$('#shared_mail').val('');
		$('#share_mail_dialog .form_error').hide();
		
		$('#share_mail_dialog').dialog('open');
		
		return false;
	});
	
	
	$('#share_forum').click(function() {
		var link = $(this).attr('href');
		var page = location.href;
		var msg = $('<input/>').val('[url='+page+'][img]'+link+'[/img][/url]').addClass('form_input').css('width', '100%').focus(function () {$(this).select();});
		
		forum_dialog = $('<div/>').attr('id', 'share_forum_dialog').attr('title', 'Link').html(msg).dialog({autoOpen: false, bgiframe: true, modal: true, width: 400, buttons: {Ok: function() {$(this).dialog('close');}}}).dialog('open');
		
		return false;
	});

	function content_resize(el)
    {
        var big;
		var item = $('#gallery_main_item');
		var type = $(el).attr('rel');
		var prev = $('.navi').find('a.arrow_left');
        var next = $('.navi').find('a.arrow_right');
        var prev_link = $(prev).attr('href');
        var next_link = $(next).attr('href');

		if(!$('#gallery_main_item_big').length)
		{
			big = $('<div/>').attr('id', 'gallery_main_item_big').addClass('box').html( item.html() ).insertBefore('#sidebar').hide();

			if(type == 'video')
			{
				source = big.find('div.gallery_main_item_source');
				nh = parseInt(source.css('height')) * 960 / parseInt(source.css('width'));
				source.css('width', '960px').css('height', nh+'px');
			}
			else
			{
				source = big.find('a.gallery_main_item_source');
				source.find('img').attr('src', source.attr('href')).css('width', '960px');
			}
		}
		else
		{
			big = $('#gallery_main_item_big');
		}

		item.toggle();
		big.toggle();


        if(prev_link == undefined)
            prev_link = '';

        if(next_link == undefined)
        {
            next_link = '';
        }

        var next_link_length = next_link.length;
        var prev_link_length = prev_link.length;

        if((prev_link.substring(prev_link_length-4) == '/big') || (next_link.substring(next_link_length-4) == '/big'))
        {
            $('.navi').find('a.arrow_left').each(function() {
                $(this).attr('href', prev_link.substring(0,prev_link_length-4));
            });

            $('.navi').find('a.arrow_right').each(function() {
                $(this).attr('href', next_link.substring(0,next_link_length-4));
            });

        }
        else
        {
            $('.navi').find('a.arrow_left').each(function(){
                $(this).attr('href', prev_link + '/big');
            });

            $('.navi').find('a.arrow_right').each(function(){
                $(this).attr('href', next_link + '/big');
            });
        }
    }

	$('a.gallery_resize').live('click', function() {
		content_resize(this);
		return false;
	});
	
	
	// stronicowanie komentarzy
	$('#comments_list div.navi p.pagination a').live('click', function() {
        var url;
        if( $('#add_comment form').attr('action') ) {
            url = $('#add_comment form').attr('action') + '/' +$(this).attr('rel');
        }
		else {
            url = $(this).attr('href');
        }

        get_comments(url);
		return false;
	});
	
	// dodawanie komentarza
	$('#add_comment form').submit(function(){
		var text = $('textarea#comment').val();
		
		if(!text.length)
		{
			return false;
		}
		
		$.ajax({
			type: 'POST',
			url: $('#add_comment form').attr('action'),
			data: $('#add_comment form').serialize(),
			dataType: 'json',
			
			beforeSend: function()
			{
				$('#add_comment button#submit').after('<div id="form_loading" class="loading right"></div>');
			},
			success: function(msg)
			{
				if (msg.error == 'false')
				{
					$('#comments_list').show();
					get_comments( $('#add_comment form').attr('action') );
					$('textarea#comment').val('');
				}
				else
				{
					// wyswietl bledy walidacji
					messages = msg.error_msg;
					
					if(typeof(messages) == "string")
					{
						msg_dialog = $('<div/>').attr('id', 'msg_dialog').attr('title', 'Error').html(messages).dialog({autoOpen: false, bgiframe: true, modal: true, width: 400, buttons: {Ok: function() {$(this).dialog('close');}}}).dialog('open');
					}
					else
					{
						for(var i = 0; i < messages.length; i++)
						{
							$('#'+messages[i].element).after('<div id="'+messages[i].element+'_error" class="form_error" style="display: none;"></div>');
							if ($('#'+messages[i].element+'_error').attr('class'))
							{
								if (messages[i].msg)
								{
									$('#'+messages[i].element+'_error .error_in').html(messages[i].msg);
									$('#'+messages[i].element+'_error').show();
								}
								else
								{
									$('#'+messages[i].element+'_error').hide();
								}
							}
						}
					}
				}
			},
			complete: function()
			{
				$('#form_loading').remove();
			}
		});
		return false;
	});

	$('#album_id').SAS();
    $('.radio_replace').RadioReplacer();
});

/******************************************
 *
 * jQuery RadioReplacer 
 *
 ******************************************/

(function($) {
	$.fn.RadioReplacer = function() {
        return this.each( function() {
            var $element = $(this);
            var $div = $( '<div />' ).addClass('radio_replacer');

            $('input[type=radio]', $element).each( function(){
                var $radio = $(this);
                var $label = $radio.siblings('label');
                var $replacer = $( '<div />').text( $label.text() ).attr( {'rel' : $radio.attr('id')} ).addClass( 'replacer_button' );

                if ($('#' + $radio.attr('id') + ':checked').val() !== undefined)
                    $replacer.addClass('selected');

                $replacer.appendTo($div);
            });

            $('<div />').addClass('float_clear').appendTo($div);

            $div.appendTo($element);
            $element.find('span').hide();

            $('.replacer_button').live( 'click', function() {
                $('#' + $(this).attr('rel')).attr('checked', 'checked');
                $(this).siblings().removeClass('selected');
                $(this).addClass('selected');
            });

        });
	}
})(jQuery);


/*********************
//* jQuery SAS (split album select) - created by mck: http://www.daesso.com/ | http://www.bomb.pl/
*********************/

(function($) {
	$.fn.SAS = function() {
		
		return this.each(function()
		{
			var select = $(this);
			var add_btn = select.siblings('.form_after');
			
			var optgroups = select.children('optgroup');
			
			if(optgroups.length > 0)
			{
				var album_div = jQuery('<div/>').addClass('form_element').attr('id', 'album_sas').insertAfter(select);
				
				var selected = false;
				var selected_txt = '';
				
				jQuery.each(optgroups, function(i) {
					var optgroup = jQuery(this);
					var optgroup_section = optgroup.attr('label').toLowerCase();
					var optgroup_name = 'album_'+optgroup_section;
					var opts = optgroup.children('option');
					
					var container = jQuery('<div/>').addClass('album_container').addClass(optgroup_name);
					
					var btn = jQuery('<a/>').attr('rel', optgroup_name).addClass('album_btn').addClass(optgroup_name).html(optgroup.attr('label')).appendTo(album_div);
					
					jQuery.each(opts, function(j) {
						var opt = jQuery(this);
						var album_txt = optgroup.attr('label')+' - '+lang.album+': '+opt.html()
						
						var link = jQuery('<a/>').attr('rel', opt.attr('value')).attr('title', album_txt).addClass('album_link').html(opt.html()).appendTo(container);
						
						if(opt.is(':selected'))
						{
							selected = optgroup_name;
							selected_txt = album_txt;
							link.addClass('selected');
						}
					});
					
					var add_link = add_btn.children('a').clone(true).attr('rel', optgroup_section).appendTo(container);
					
					container.insertAfter(btn).hide();
				});
				
				select.hide();
				add_btn.hide();
				
				if(selected)
				{
					jQuery('a.album_btn.'+selected).addClass('selected');
					jQuery('<div/>').addClass('album_selected').html(lang.selected + ' ' + selected_txt).appendTo(album_div);
				}
				
				jQuery('a.album_btn').live('click', function() {
					var item = jQuery(this);
					var rel = item.attr('rel');
					
					jQuery('div.album_container').not('.'+rel).hide();
					var cnt = jQuery('div.album_container.'+rel);
					
					cnt.css('position', 'absolute').css('top', item.position().top + item.outerHeight()).css('left', item.position().left).toggle();
					
					return false;
				});
				
				jQuery('a.album_link').live('click', function() {
					var link = jQuery(this);
					var rel = link.attr('rel');
					var container_class = link.parents('div.album_container').attr('class').replace('album_container', '').trim();
					
					select.val(rel);
					
					jQuery('a.album_link.selected').removeClass('selected');
					link.addClass('selected');
					
					
					jQuery('a.album_btn.selected').removeClass('selected');
					jQuery('a.album_btn.'+container_class).addClass('selected');
					
					jQuery('div.album_container.'+container_class).hide();
					
					jQuery('div.album_selected').html(lang.selected + ' ' + link.attr('title'));
					
					return false;
				});
			}
		});
		
		function refresh() {
			alert('refresh');
		}
	}
})(jQuery);
