var actions = {
	rate:                 '/ajax/content/rating/rate.json',
	video:                '/ajax/content/video/get.json',
	player:               '/i/swf/player.swf?11',
	audio:                '/ajax/content/audio/get.json',
	audio_player:         '/i/swf/audioplayer.swf',
	add_to_playlist:      '/ajax/content/audio/add_to_playlist.json',
	remove_from_playlist: '/ajax/content/audio/remove_from_playlist.json',
	swfInstall:           '/i/swf/expressinstall.swf',
	update_captcha:       '/ajax/captcha/update.json',
	edit_photo_name:      '/ajax/content/photo/edit_name.html',
	photo_album_cover:    '/ajax/content/photo/set_as_cover.json',
	update_latest_photos: '/ajax/content/photo/latest_photos.html',
	delete_photo:         '/ajax/content/photo/delete.json',
	edit_message:         '/ajax/content/forum/edit_message.html',
	delete_message:       '/ajax/content/forum/delete_message.html',
	edit_thread:          '/ajax/content/forum/edit_thread.html',
	delete_thread:        '/ajax/content/forum/delete_thread.json',
	lock_thread:          '/ajax/content/forum/lock_thread.json',
	unlock_thread:        '/ajax/content/forum/unlock_thread.json'
}

//-----------------------------------------------------------------------------
// CSS features
var searchDefaultText = 'искать видео, фото, юмор';
$(function(){
	/* radio */
	$('input.radio[type="radio"]').addClass('lost').parent('span').addClass('radio-off');
	$('input.radio[type="radio"]:checked').each(function() {
		$(this).parent('span').removeClass('radio-off').addClass('radio-on');
	});
	$('span.radio').click(function() {
		var family = $(this).children('input[type="radio"]').attr('name');
		$('input.radio[name="'+family+'"]').removeAttr('checked').parent('span').removeClass('radio-on').addClass('radio-off');
		$(this).removeClass('radio-off').addClass('radio-on').children('input').attr('checked','checked');
	});
	$('ul.file-params li label').click(function(){
		$(this).parent('li').children('label').removeClass('active').children('input.radio').removeAttr('checked');
		$(this).addClass('active').children('input.radio').attr('checked','checked');
	});
	/* checkbox */
	$('input.checkbox[type="checkbox"]').addClass('lost').parent('span').addClass('checkbox-off');
	$('input.checkbox[type="checkbox"]:checked').each(function() {
		$(this).parent('span').removeClass('checkbox-off').addClass('checkbox-on');
	});
	$('span.checkbox').click(function() {
		if ($(this).hasClass('checkbox-off')) {
			$(this).removeClass('checkbox-off').addClass('checkbox-on').children('input').attr('checked','checked');
		} else {
			$(this).removeClass('checkbox-on').addClass('checkbox-off').children('input').removeAttr('checked');
		};
	});
	/* movie desc */
	if ($('div.movie-info ul.movie li.desc dl dd span').length > 0) {
		$('div.movie-info ul.movie li.desc dl dd span').hide().before('<i>&hellip;</i>');
	}
	$('div.movie-info ul.movie li.desc dl dt span').click(function(){
		if ($('div.movie-info ul.movie li.desc dl dd span').is(':hidden')) {
			$('div.movie-info ul.movie li.desc dl dd span').show().prev('i').remove();
			$(this).text('Краткое описание');
		} else {
			$('div.movie-info ul.movie li.desc dl dd span').hide().before('<i>&hellip;</i>');
			$(this).text('Полное описание');
		}
	});
	/* movie url */
	$('div.extra div.movie-info ul.movie li.url dl dd input').click(function() {
		$(this).select();
	});
	/* fake select */
	$('ul.form li select.select').each(function() {
		var sel = $(this);
		var selName = sel.attr('name');
		var selId = sel.attr('id');
		var selTxt = sel.children('option:selected').text();
		var selVal = sel.children('option:selected').val();
		var selOpt = '';
		sel.children('option').each(function(){
			var optTxt = $(this).text();
			var optVal = $(this).val();
			var optSel = '';
			if ($(this).attr('selected')) {
				optSel = 'active';
			}
			selOpt += '<li id="'+optVal+'" class="'+optSel+'">'+optTxt+'</li>';
		});
		sel.after('<input type="hidden" name="'+selName+'" id="'+selId+'" value="'+selVal+'" /><dl class="select"><dt>'+selTxt+'<i class="r"></i></dt><dd><ul>'+selOpt+'</ul></dd></dl>');
		sel.remove();
	});
	if ($('ul.form li dl.select').length > 0) {
		$('ul.form li dl.select dd').addClass('hide');
	}
	$('ul.form li dl.select dt').click(function(){
		$(this).siblings('dd').toggleClass('hide');
		$('ul.form li>dl>dd').css('z-index','99');
		$(this).parent('dl.select').parent('dd').css('z-index','999');
	});
	$('ul.form li dl.select ul li').click(function(){
		$(this).parent('ul').children('li').removeClass('active');
		$(this).addClass('active');
		$(this).parent('ul').parent('dd').parent('dl').prev('input[type=hidden]').val($(this).attr('id'));
		$(this).parent('ul').parent('dd').prev('dt').html($(this).text()+'<i class="r"></i>');
		$(this).parent('ul').parent('dd').addClass('hide');
	});
	/* search watermark */
	var currentSearch = $('div.header div.search dl dt input.text').val();
	$('div.header div.search dl dt input.text')
		.addClass('watermark')
		.val(currentSearch || searchDefaultText)
		.focus(function(ev){
			if ($(this).val() == searchDefaultText || $(this).val() == currentSearch){
				$(this).val('').removeClass('watermark');
			}
		})
		.blur(function(ev){
			if (!$(this).val()){
				$(this).val(currentSearch || searchDefaultText).addClass('watermark');
			}
		});
	/* carousel */
	if ($('.today>ul').length > 0) {
		$('.today').scrollable({ 
				vertical:true,
				size: 3,
				activeClass: 'active',
				disabledClass: 'today-disabled',
				prev: '.today-prev',
				next: '.today-next'
			}).circular().mousewheel();
	};
	if ($('.author-movies>ul').length > 0) {
		$('.author-movies').scrollable({ 
				vertical:true,
				size: 3,
				clickable: false,
				disabledClass: 'author-movies-disabled',
				prev: '.author-movies-prev',
				next: '.author-movies-next'
			}).circular().mousewheel();
	};
	if ($('.photo-from-album>ul').length > 0) {
		var phImage = $('.popular-photos-container>img');
		var size = 5;
		if( phImage ) {
			var height = parseInt(phImage.css('height'));
			if( height >= 495 ) { size = 5 }
			else if( height >= 400 ) { size = 4 }
			else { size = 3 }
		}
		$('.photo-from-album').css('height', size * 95)
		$('.photo-from-album').scrollable({ 
				vertical:true,
				size: size,
				activeClass: 'photo-from-album-selected',
				disabledClass: 'photo-from-album-disabled',
				prev: '.photo-from-album-prev',
				next: '.photo-from-album-next'
			}).circular().mousewheel();
		$('.photo-from-album-selected a').click( function(){ return false;} );
		$('.photo-from-album-selected').click(); // Choose active photo on page load
	};
	if ($('.related-movies>ul').length > 0) {
		$('.related-movies').scrollable({ 
				vertical:true,
				size: 3,
				clickable: false,
				disabledClass: 'related-movies-disabled',
				prev: '.related-movies-prev',
				next: '.related-movies-next'
			}).circular().mousewheel();
	};
	if( $("#popular-video").length > 0 ) {
		$("#popular-video").scrollable({
			horizontal:true,
			loop:true,
			size:5,
			prev: '.popular-prev',
			next: '.popular-next'
		}).mousewheel();
	}
	/* add-comment */
	$('ul.comments li dl dt a.reply').click(function(){
		var place = $(this).parent('dt').parent('dl');
		$('div.add-comment').insertAfter(place);
		$('div.add-comment').show();
		$("input.file-styled").filestyle();
		$('div.add-comment textarea').focus();
		$('#parent_comment_id').val( $(this).closest('li').attr('docid') );
		$('a.comment-button-a').show();
		return false;
	});
	$('a.comment-button-a').click(function(){
		$('div.add-comment').insertAfter($('div.content p a.comment-button-a:last').parent('p'));
		$('div.add-comment').show();
		$('div.add-comment textarea').focus();
		$('#parent_comment_id').val( 0 );
		$(this).hide();
		return false;
	});
	/* upoload-src */
	if ($('dl.uplmovie').length > 0) {
		$('dl.uplmovie dt label:first').addClass('active');
		$('dl.uplmovie dd.url').hide();
		$('dl.uplmovie dt label:first').click(function(){
			$('dl.uplmovie dt label').removeClass('active');
			$(this).addClass('active');
			$('dl.uplmovie dd.file').show();
			$('dl.uplmovie dd.url').hide();
		});
		$('dl.uplmovie dt label:last').click(function(){
			$('dl.uplmovie dt label').removeClass('active');
			$(this).addClass('active');
			$('dl.uplmovie dd.file').hide();
			$('dl.uplmovie dd.url').show()
			
		});
	};
	if ($('input#f_uplmovie_file').length > 0) {
		$('input#f_uplmovie_file').uploadify({
			'uploader':'/i/swf/uploadify.swf',
			'script':'/ajax/upload/video.json',
			//'folder':'uploads-folder',
			'sizeLimit':104857600, // 100M for the front end
			'fileDesc':'Media files (*.avi, *.wmv, *.mov, *.mp4, *.flv)',
			'fileExt':'*.avi;*.wmv;*.mov;*.mp4;*.flv;',
			'cancelImg':'/i/upload-video-cancel.gif',
			'buttonImg':'/i/upload-file.gif', 
			'buttonText':' ',
			'wmode':'transparent',
			'multi':false,
			'auto':true,
			'width':128,
			'height':31,
			'fileDataName':'clip_source',
			'scriptData':{'cookie':document.cookie},
			onCancel:function(event,queueID,fileObj,data){if (data['fileCount'] == 0) {$('dl.uplmovie dd button.clear').hide();};},
			onComplete:function(event,queueID,fileObj,response,data){
				var responseData;
				if(response) {
					responseData = eval('('+response+')');
					if(responseData) {
						if(responseData.result==1 && responseData.url){
							window.location.replace(responseData.url);
						} else if(responseData.result==0 && responseData.message){
							log_message(responseData.message);
						}
					}
				}
				return true;
			},
			onAllComplete:function(){$('dl.uplmovie dd button.clear').hide();}
		});
	}
	if ($('input#f_uplphoto_file').length > 0) {
		var uploadId = $('input#upload_id').attr('value');
		var albumId = $('input#album_id').attr('value');
		var redirectUrl;
		$('input#f_uplphoto_file').uploadify({
			'uploader':'/i/swf/uploadify.swf',
			'script':'/ajax/upload/photo.json',
			'scriptData':{'album_id':albumId, 'upload_id':uploadId, 'cookie':document.cookie},
			//'folder':'uploads-folder',
			'sizeLimit':1048576, // 1M
			'fileDesc':'Media files (*.jpg, *.gif, *.png, *.bmp)',
			'fileExt':'*.jpg;*.jpeg;*.gif;*.png;*.bmp',
			'cancelImg':'/i/upload-video-cancel.gif', 
			'buttonImg':'/i/upload-files.gif',
			'buttonText':' ',
			'wmode':'transparent',
			'multi':1,
			'queueSizeLimit':15,
			'auto':true,
			'width':128,
			'height':31,
			'fileDataName':'photo',
			onSelectOnce:function(event,data){
				if( data['fileCount']>1 ) {
					$('dl.uplmovie dd button.clear').show();
				}
			},
			onCancel:function(event,queueID,fileObj,data){if (data['fileCount'] == 0) {$('dl.uplmovie dd button.clear').hide();};},
			onClearQueue:function(){$('dl.uplmovie dd button.clear').hide();},
			onComplete:function(event,queueID,fileObj,response,data){
				var responseData;
				if(response) {
					responseData = eval('('+response+')');
					if(responseData) {
						if(responseData.result==1 && responseData.url){
							redirectUrl = responseData.url;
						} else if(responseData.result==0 && responseData.message){
							log_message(responseData.message);
						}
					}
				}
			},
			onQueueFull:function(event, queueSizeLimit){
				alert('Вы можете выбрать не более ' + queueSizeLimit + ' файлов.');
				return false;
			},
			onAllComplete:function(){
				$('dl.uplmovie dd button.clear').hide();
				window.location.replace(redirectUrl);
			}
		});
	}
	if ($('input#f_uplfile_file').length > 0) {
		$('input#f_uplfile_file').uploadify({
			'uploader':'/i/swf/uploadify.swf',
			'script':'/ajax/upload/file.json',
			'sizeLimit':104857600, // 100M
			'fileDesc':'Files (*.*)',
			'fileExt':'*.*',
			'cancelImg':'/i/upload-video-cancel.gif', 
			'buttonImg':'/i/upload-files.gif',
			'buttonText':' ',
			'wmode':'transparent',
			'multi':false,
			'auto':true,
			'width':128,
			'height':31,
			'fileDataName':'file',
			'scriptData':{'cookie':document.cookie},
			onCancel:function(event,queueID,fileObj,data){if (data['fileCount'] == 0) {$('dl.uplmovie dd button.clear').hide();};},
			onComplete:function(event,queueID,fileObj,response,data){
				var responseData;
				if(response) {
					responseData = eval('('+response+')');
					if(responseData) {
						if(responseData.result==1 && responseData.url){
							window.location.replace(responseData.url);
						} else if(responseData.result==0 && responseData.message){
							log_message(responseData.message);
						}
					}
				}
				return true;
			},
			onAllComplete:function(){$('dl.uplmovie dd button.clear').hide();}
		});
	};
	/* search-results */
	if ($('h2 span.results').length > 0) {
		if ($('div.content').find('ul.results-show').length == 0) {
			if ($('h2 span.results').parent('h2').next('ul[class^="results-"]:first').length > 0) {
				$('h2 span.results').parent('h2').next('ul[class^="results-"]:first').show();
			}
		}
		$('h2 span.results').click(function(){
			$(this).parent('h2').next('ul[class^="results-"]').slideToggle('fast');
		});
	};
	/* header-login */
	$('#toggle_logon').click(function(){
		$('#h-login').slideToggle('fast');
		return false;
	});
	/* upload-fields */
	$.fn.filestyle = function() {
		return this.each(function() {
            var self = this;
            var filename = $(self).parent().prev();
            $(self).bind("change", function() {
                filename.val($(self).val());
            });
        });
    };
    $("input.file-styled").filestyle();
    /* artist-info */
	if ($('.artist-info .artist-more').length > 0) {
		$('.artist-info .artist-more').hide().before('<p><span class="more">Подробнее</span></p>');
		$('.artist-info span.more').click(function(){
			$('.artist-info .artist-more').slideToggle('fast');
		});
	};
});

//-----------------------------------------------------------------------------

$(document).ready(function(){
	$("a.rate-up-c").click( function(e){ rate($(this), e, 'comment', 1); return false; } );
	$("a.rate-down-c").click( function(e){ rate($(this), e, 'comment', -1); return false; } );
	$("a.rate-ph").click( function(e){ rate($(this), e, 'photo'); return false; } );
	$("a.rate-up-a").click( function(e){ rate($(this), e, 'article', 1); return false; } );
	$("a.rate-down-a").click( function(e){ rate($(this), e, 'article', -1); return false; } );
	
	$("p.captcha a").click( function(e){ update_captcha($(this), e); return false; } );
	
	$("#today-videos > li dt").click( function(e){ choose_main_video($(this), e); return false; } );
	$("ul.playlist > li a").click( function(e){ return choose_audio($(this), e); } );
	$("ul.playlist > li a.to_playlist").live( 'click', function(e){ add_to_playlist($(this), e); return false; } );
	$("ul.playlist > li a.from_playlist").live( 'click', function(e){ remove_from_playlist($(this), e); return false; } );

	/* These 2 functions look like duplicates of 'search watermark' (see before) */
	$("#fsearch_str").focus( function(e) {
		if( $(this).attr("value") == searchDefaultText ) {
			$(this).attr("value", "");
		}
	} );
	$("#fsearch_str").blur( function(e) {
		if( $(this).attr("value") == '' ) {
			$(this).attr("value", searchDefaultText);
		}
	} );
	/* * */

	$("#f_mlogin").submit( function() {
		$("#f_mlogin #login_username").val( $("#f_mlogin #f_mlogin_login").val() + '@summail.ru' );
		return true;
	} );
	
	$('li.del a').click( function(e){
		return confirm("Удалить выбранный видео-ролик?");
	} );
	
	$('#delete-photo-link').click( function(e){
		return confirm("Удалить фотографию?");
	} );
	
	$('#delete-album-link').click( function(e){
		return confirm("Удалить альбом?");
	} );
	
	$('#delete-selected-albums').click( function(e){
		return confirm("Альбомы будут удалены безвозвратно. Вы действительно хотите удалить выбранные альбомы?");
	} );
	
	$('#delete-account-button').click( function(e){
		return confirm("Вы уверены, что хотите удалить свой аккаунт?");
	} );
	
	$('.photos-lastest-container .refresh-button a').live( 'click', function(e){
		update_latest_photos(); return false;
	} );

	if($('#div_waiting').length > 0) {
		setTimeout('window.location.reload()', 15000);
	}
	
	$(".album-edit-name-inline").filter("span[id^='photo_']").editable(actions['edit_photo_name'], { 
		tooltip   : 'Нажмите для редактирования...',
		indicator : 'Сохранение...',
		style     : 'inherit',
		height    : 'none',
		name      : 'name',
		onblur    : 'submit'
	});
	
	$(".album-edit-name-inline").filter("span[id^='album_']").editable(function(value, settings) {
		var re = /album_(\d+)/;
		var found = re.exec($(this).attr('id'));
		if( found ){
			$('#name_album_'+found[1]).val(value);
		}
		return value;
	}, { 
		tooltip   : 'Нажмите для редактирования...',
		//indicator : 'Сохранение...',
		style     : 'inherit',
		height    : 'none',
		name      : 'name',
		onblur    : 'submit'
	});
	//Прокрутка по фотографиям
	if ($('.photo-from-album>ul').length > 1) {
		//TODO
	}
	//Цитирование на форуме
	$('ul.topic a.cite').click( function(e){
		var parent = $(this).closest('li');
		var msgText = parent.find('dd.body').text();
		msgText = '[q]' + msgText + '[/q]';
		$('#new-message textarea').val( msgText );
	});
	//Форум
	$('a.message-edit').click( function(e){
		toggle_msg_edit_div( $(this).closest('ul').attr('docid') );
		return false; 
	});
	$('a.message-delete').click( function(e){
		if( confirm( "Удалить сообщение?" ) ) {
			delete_message( $(this).closest('ul').attr('docid'), $(this).closest('ul').closest('li') );
		}
		return false;
	});
	$('a.thread-edit').click( function(e){
		toggle_thread_edit_div( $(this).closest('ul').attr('docid') );
		return false; 
	});
	$('a.thread-delete').click( function(e){
		if( confirm( "Удалить ветку форума со всеми сообщениями?" ) ) {
			delete_thread( $(this).closest('ul').attr('docid') );
		}
		return false;
	});
	$('a.thread-lock').click( function(e){
		lock_thread( $(this).closest('ul').attr('docid'), $(this) );
		return false;
	});
	$('a.thread-unlock').click( function(e){
		unlock_thread( $(this).closest('ul').attr('docid'), $(this) );
		return false;
	});
	$('a#main-latest-photos').click( function(e){
		$('#main-latest-photo-albums-block').hide();
		$('#main-latest-photos-block').show();
		$('a#main-latest-photo-albums').removeClass('current');
		$('a#main-latest-photos').addClass('current');
		return false;
	});
	$('a#main-latest-photo-albums').click( function(e){
		$('#main-latest-photos-block').hide();
		$('#main-latest-photo-albums-block').show();
		$('a#main-latest-photos').removeClass('current');
		$('a#main-latest-photo-albums').addClass('current');
		return false;
	});
});

//-----------------------------------------------------------------------------
function log_status(msg) {
	$("#top-log").html("<p>"+msg+"</p>").show();
}

function log_message(msg) {
	$("#top-log").html("<p>"+msg+"</p>").show();
	setTimeout( function(){$("#top-log").fadeOut(2000)}, 1000);
}

function clear_log(msg) {
	$("#top-log").hide().empty();
}

var rating_in_process;
function rate(el, event, type, value) {
	// Do not allow to rate diff content simultaneously.
	if( rating_in_process == 1 ) { return }
	
	// Tag depends on design layout
	var parentTag;
	switch( type ) {
		case 'comment': parentTag = 'li'; break;
		case 'photo':   parentTag = 'li'; break;
		case 'article': parentTag = 'div'; break;
	}
	
	var parent = el.closest(parentTag);
	var docId = parent.attr("docid");
	var docType = parent.attr("doctype");
	
	if( type == 'photo' ){
		value = parent.attr("value");
	}
	
	$.ajax({
		type:"POST",
		dataType:"json",
		url:actions['rate'],
		data:{id: docId, value: value, doc_type: docType},
		beforeSend: function() {
			el.css({cursor:'wait'});
			rating_in_process = 1;
			log_status("Выполняется...");
		},
		complete: function() {
			el.css({cursor:'pointer'});
			rating_in_process = 0;
		},
		success: function(res) {
			log_message(res.message);
			if( type == 'comment' || type == 'article' ) {
				if( res.result==1 ) {
					var ratingBox = $('#r'+docId);
					var minus = String.fromCharCode(8722);
					var prevRating = parseInt(ratingBox.text().replace(minus, '-'));
					var newRating = prevRating + value;
					ratingBox.text( newRating.toString().replace('-', minus) );
				}
			} else if( type == 'photo' ) {
				if( res.result==1 ) {
					var ratingBox = $('#r'+docId);
					ratingBox.text( res.newRating.toString() );
					var ratingCountBox = $('#rc'+docId);
					var prevCount = parseInt(ratingCountBox.text());
					var newCount = prevCount + 1;
					ratingCountBox.text( newCount.toString() );
					$('ul.photo-rating li').css('width', ( 100 * res.newRating / 5 ) + '%' );
				}
			}
		}
	});
}

function new_video_player(options) {
	swfobject.embedSWF(
		actions['player'], options.block_id, options.width, options.height,
		"10.0.0", actions['swfInstall'],
		options,
		{
			bgcolor:"#000000",
			allowfullscreen: 'true',
			wmode:"transparent"
		}
	);
}

var loading_video;
function choose_main_video(el, event) {
	if( loading_video==1 ) { return }
	var parent = el.closest('li');
	var docId = parent.attr("docid");
	$.ajax({
		type:"GET",
		dataType:"json",
		url:actions['video'],
		data:{id: docId},
		beforeSend: function() {
			parent.css({cursor:'wait'});
			log_status("Загрузка видео...");
			loading_video = 1;
		},
		complete: function() {
			parent.css({cursor:'pointer'});
			loading_video = 0;
		},
		success: function(res) {
			if( res.result==0 ) {
				log_message(res.message);
			} else {
				clear_log();
				parent.siblings().removeClass("active");
				parent.addClass("active");
				new_video_player(res);
			}
		}
	});
}

function new_audio_player(options) {
	swfobject.embedSWF(
		actions['audio_player'], options.block_id, options.width, options.height,
		"9.0.0", actions['swfInstall'],
		options,
		{
			menu:'false',
			scale:'noscale',
			bgcolor:"#000000",
			wmode:"transparent",
			allowfullscreen: 'true',
			allowscriptaccess: 'always'
		},
		{ id:'audioplayer'}
	);
}

var loading_audio;
function choose_audio(el, event) {
	if( loading_audio==1 ) { return false }
	if( el.attr('href') != '#' ) { return true }
	var parent = el.closest('li');
	var docId = parent.attr("docid");
	$.ajax({
		type:"GET",
		dataType:"json",
		url:actions['audio'],
		data:{id: docId},
		beforeSend: function() {
			parent.css({cursor:'wait'});
			log_status("Загрузка аудио...");
			loading_audio = 1;
		},
		complete: function() {
			parent.css({cursor:'pointer'});
			loading_audio = 0;
		},
		success: function(res) {
			if( res.result==0 ) {
				log_message(res.message);
			} else {
				clear_log();
				$('ul.playlist li').removeClass("active");
				parent.addClass("active");
				document.getElementById('audioplayer').playNextTrack(res.file, res.title, res.duration, res.link);
			}
		}
	});
	return false;
}

function add_to_playlist(el, event) {
	if( loading_audio==1 ) { return false }
	var parent = el.closest('li');
	var docId = parent.attr("docid");
	$.ajax({
		type:"GET",
		dataType:"json",
		url:actions['add_to_playlist'],
		data:{id: docId},
		beforeSend: function() {
			parent.css({cursor:'wait'});
			log_status("Добавляем в плейлист...");
			loading_audio = 1;
		},
		complete: function() {
			parent.css({cursor:'pointer'});
			loading_audio = 0;
		},
		success: function(res) {
			if( res.result==0 ) {
				log_message(res.message);
			} else {
				clear_log();
				el.removeClass("to_playlist");
				el.addClass("from_playlist");
				el.text("Убрать");
			}
		}
	});
}

function remove_from_playlist(el, event) {
	if( loading_audio==1 ) { return false }
	var parent = el.closest('li');
	var docId = parent.attr("docid");
	$.ajax({
		type:"GET",
		dataType:"json",
		url:actions['remove_from_playlist'],
		data:{id: docId},
		beforeSend: function() {
			parent.css({cursor:'wait'});
			log_status("Удаляем из плейлиста...");
			loading_audio = 1;
		},
		complete: function() {
			parent.css({cursor:'pointer'});
			loading_audio = 0;
		},
		success: function(res) {
			if( res.result==0 ) {
				log_message(res.message);
			} else {
				clear_log();
				el.removeClass("from_playlist");
				el.addClass("to_playlist");
				el.text("В плейлист");
			}
		}
	});
}

function update_captcha(tagA, e) {
	var p = tagA.closest("p.captcha");
	var img = p.find('img');
	var hidden = p.find('#f_image_id');
	var old_alt = img.attr('alt');
	$.ajax({
		type:"GET",
		dataType:"json",
		url:actions['update_captcha'],
		beforeSend: function() {
			//el.css({cursor:'wait'});
			img.attr('src', '/i/tmp/bg118x48.png');
			img.attr('alt', 'Картинка обновляется...');
		},
		complete: function() {
			//el.css({cursor:'pointer'});
			img.attr('alt', old_alt);
		},
		success: function(res) {
			img.attr('src', res.src);
			hidden.attr('value', res.image_id);
		}
	});
}

var loading_latest_photo_albums = 0;
function update_latest_photos() {
	if( loading_latest_photo_albums==1 ) { return }
	var block = $('.photos-lastest-container');
	$.ajax({
		type:"GET",
		url:actions['update_latest_photos'],
		beforeSend: function() {
			block.css({cursor:'wait'});
			loading_latest_photo_albums = 1;
		},
		complete: function() {
			block.css({cursor:'pointer'});
			loading_latest_photo_albums = 0;
		},
		success: function(html) {
			block.html(html);
		}
	});
}

function show_comment(id) {
	$('#p_show_'+id).hide();
	$('#p_cmnt_'+id).show();
}

function select_album_cover( selected_photo_link ) {
	var selected_item = selected_photo_link.parent();
	var selected_photo = selected_photo_link.next();
	var selected_img = selected_photo.find('img');
	var selected_border = selected_photo.find('span');
	var selected_border_width = selected_img.width()-14;
	var selected_border_height = selected_img.height()-14;
	jQuery('.edit-photo-item').removeClass('edit-photo-item-selected');
	jQuery('.edit-photo-item').removeClass('edit-photo-item-selected-hover');
	jQuery('.popular-photos-item-link').removeClass('popular-photos-item-link-selected');
	selected_border.css('width', selected_border_width);
	selected_border.css('height', selected_border_height);
	selected_item.addClass('edit-photo-item-selected');
	selected_item.addClass('edit-photo-item-selected-hover');
	selected_photo.addClass('popular-photos-item-link-selected');
}

function set_album_cover( selected_photo_link, photo_id ){
	var oldText = selected_photo_link.text();
	$.ajax({
		type:"POST",
		dataType:"json",
		url:actions['photo_album_cover'],
		data:{id: photo_id},
		beforeSend: function() {
			selected_photo_link.text('Выполняется...');
		},
		complete: function() {
			selected_photo_link.text(oldText);
		},
		success: function(res) {
			if( res.result==1 ) {
				select_album_cover(selected_photo_link);
			}
		}
	});
	
	return false;
}

function delete_photo( button, photoID ) {
	var block = $(button).closest('ul');
	$.ajax({
		type:"POST",
		dataType:"json",
		url:actions['delete_photo'],
		data:{id: photoID},
		success: function(res) {
			if( res.result==1 ) {
				block.slideToggle('fast');
				block.remove();
			} else {
				$(button).after("<p>" + res.message + "</p>");
			}
		}
	});
	return false;
}

function toggleCheckbox( chkBox ) {
	chkBox.parent().click();
}

var waitingMessage = '<div style="text-align:center">Загружается...</div>';
function toggle_msg_edit_div(id) {
	var div = $('#edit_m'+id);
	if(div.is(':visible')) {
		div.hide();
		$('#new-message').show();
	} else {
		if( div.html() == '&nbsp;' ) {
			var params = '?id='+id;
			div.css('display', 'block');
			div.html(waitingMessage);
			div.load(actions['edit_message'] + params);
		}
		div.show();
		$('#new-message').hide();
	}
}

function edit_message(id) {
	var block = $('#edit_m'+id);
	var button = block.find('input.comment-button');
	var body   = block.find('textarea');
	var params = {
		id: id,
		body: body.val(),
		save: 1
	};
	button.attr('disabled', 'disabled');
	block.css('cursor', 'wait');
	$.ajax({
		url: actions['edit_message'],
		type: 'POST',
		dataType: 'html',
		data: params,
		success: function(response) {
			block.css('cursor', 'pointer');
			button.removeAttr('disabled');
			if(response.match(/^<div/)) {
				block.html(response);
			} else {
				$('#msg'+id).html(response);
				block.hide();
				block.html('&nbsp;');
				$('#new-message').show();
			}
		}
	});

	return false;
}

function delete_message(id, container) {
	var block = $('#edit_m'+id);
	$.ajax({
		url: actions['delete_message'],
		type: 'POST',
		dataType: 'html',
		data: {id:id},
		success: function(response) {
			if(response.match(/^<div/)) {
				block.html(response);
				block.show();
			} else {
				container.slideUp();
				container.remove();
			}
		}
	});

	return false;
}

function toggle_thread_edit_div(id) {
	var div = $('#edit_th'+id);
	if(div.is(':visible')) {
		div.hide();
		$('#new-message').show();
	} else {
		if( div.html() == '&nbsp;' ) {
			var params = '?id='+id;
			div.css('display', 'block');
			div.html(waitingMessage);
			div.load(actions['edit_thread'] + params);
		}
		div.show();
		$('#new-message').hide();
	}
}

function edit_thread(id) {
	var block = $('#edit_th'+id);
	var button = block.find('input.comment-button');
	var body   = block.find('textarea');
	var title  = block.find('input.text');
	var params = {
		id: id,
		name: title.val(),
		body: body.val(),
		save: 1
	};
	button.attr('disabled', 'disabled');
	block.css('cursor', 'wait');
	$.ajax({
		url: actions['edit_thread'],
		type: 'POST',
		dataType: 'html',
		data: params,
		success: function(response) {
			block.css('cursor', 'pointer');
			button.removeAttr('disabled');
			if(response.match(/^<div/)) {
				block.html(response);
			} else {
				$('#th'+id).html(response);
				block.hide();
				block.html('&nbsp;');
				$('#new-message').show();
			}
		}
	});

	return false;
}

function delete_thread(id, container) {
	var block = $('#edit_th'+id);
	$.ajax({
		url: actions['delete_thread'],
		type: 'POST',
		dataType: 'json',
		data: {id:id},
		success: function(res) {
			if(res.result==1) {
				window.location.replace(res.redirect);
			} else {
				block.html(res.message);
				block.show();
			}
		}
	});

	return false;
}

function lock_thread(id, link) {
	alert('here');
	$.ajax({
		url: actions['lock_thread'],
		type: 'POST',
		dataType: 'json',
		data: {id:id},
		success: function(res) {
			if(res.result==1) {
				link.text('Открыть ветку')
			} else {
				log_message(res.message);
			}
		}
	});

	return false;
}

function unlock_thread(id, link) {
	$.ajax({
		url: actions['unlock_thread'],
		type: 'POST',
		dataType: 'json',
		data: {id:id},
		success: function(res) {
			if(res.result==1) {
				link.text('Закрыть ветку')
			} else {
				log_message(res.message);
			}
		}
	});

	return false;
}
