// JavaScript Document
function initFancybox()
{
	var r;
	do{
		r = Math.floor(Math.random()*10000);
	}
	while($('img[rel=gallery_'+r+']').length > 0);
	
	$('table.galleryTbl img').each(function(index){
		var $t = $(this);
		if(isCommenableID($t.attr('id')))
			return;
		var $wrapper = $('<a />').attr({href: $t.attr('src'), title:$t.attr('alt'), rel:'gallery_'+r});
		$t.wrap($wrapper);
		var fancyConf = {
			'overlayShow'	: true,
			'transitionIn'	: 'fade',
			'transitionOut'	: 'fade',
			'speedIn' : 400,
			'speedOut' : 300,
			'padding' : 20,
			'titlePosition':'inside',
			'titleFormat': function(title, currentArray, currentIndex, currentOpts) {
				return '<span id="fancybox-title-over">' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
			}
		};
		$t.parent().fancybox(fancyConf);
	});

	$('[id^=commentable_]').each(function(){
		var $t = $(this);
		var id = $t.attr('id');
		if(!isCommenableID(id))
			return;
		var appendPlay = false;
		var $wrapper = $('<a />');
		var fancyConf = {
				'overlayShow'	: true,
				'transitionIn'	: 'elastic',
				'transitionOut'	: 'elastic',
				'speedIn' : 400,
				'speedOut' : 300,
				'padding' : 20,
				'title':'<div id="'+id+'_data"></div>',
				'titlePosition':'inside',
				'onComplete' : function(){
					$v = $('#fancyVideo');
					if($v.length > 0)
						bindPlayer($('#fancyVideo'), true);
					loadComments('fancybox-title', id);
				}
		};
		if($t.is('.videoHolder'))	// commentable video
		{
			fancyConf['content'] = $t.clone().attr('id', 'fancyVideo').removeClass().empty();
		}
		else if((/youtube\.com/).test($t.attr('data')))	// youtube video
		{
			var href = $t.attr('data').replace(new RegExp("watch\\?v=", "i"), 'v/');
			if(href.indexOf('autoplay')==-1)
				href += '&autoplay=1';
			$img = $('<img />')
				.css('width', $t.attr('width'))
				.attr({
					src: getYoutubeThumbUrl(href),
					id : id
				});
			fancyConf['href'] = href;
            fancyConf['type'] = 'swf';
            fancyConf['swf'] = {'wmode':'transparent', 'allowfullscreen':'true'};
			$wrapper.addClass('youtubeHolder');
			$wrapper.attr('href', href);
			$wrapper.css('display', 'block');
			$wrapper.css('width', $t.attr('width'));
			$wrapper.css('height', $t.attr('height'));
			//$t.after($('<img />').attr({align:'absmiddle', src:globals.params._images_dir+'play.png'}).addClass('center'));
			$t.replaceWith($img);
			$t = $img;
			var w = $img.width();
			var h = $img.height();
			appendPlay = $('<img />')
				.attr({
					src : globals.params._images_dir+'play.png', 
					'class' : 'playImg'
				});
		}
		else
		{
			$wrapper.attr('href', $t.attr('src'));
		}
		$wrapper.attr('name', id);
		$wrapper.addClass('commentableWrapper');
		$t.wrap($wrapper);
		$p = $t.parent();
		$p.fancybox(fancyConf);
		if(appendPlay && appendPlay.length)
			$p.append(appendPlay.css({left : $p.width()/2-45, top : $p.height()/2-45}));
		showCommentsInfo($p, id);
	});
	
	//open item
	var urlVars = window.location.href.split('#')[1];
	urlVars = (urlVars != null) ? urlVars.split('&') : new Array();
	if(isCommenableID(urlVars[0]))
	{
		$a = $('a[name='+urlVars[0]+']');
		if($a.length)
		{
			globals.temp.open_comment_page = (urlVars[1] != null) ? parseInt(urlVars[1].match(/p=([0-9]+)/)[1]) : 0;
			$a.click();
		}
	}
}

function commentGetUrl(id)
{
	return _ajax_url+'comments.php?p='+globals.params.page+'&i='+id+'&l='+globals.params.lang;
}

function isCommenableID(id)
{
	return (/^commentable_\d+\w*$/).test(id);
}

function loadComments(cnt_id, elem_id, pg)
{
	if(elem_id == null)
		elem_id = '';
	if(pg == null)
	{
		if(globals.temp.open_comment_page > 0)
		{
			pg = globals.temp.open_comment_page;
			globals.temp.open_comment_page = 0;
		}
		else
			pg = 1;
	}
	$('#'+cnt_id).html('Loading...');
	$.get(_ajax_url+'comments.php',
		{
			p: globals.params.page,
			l: globals.params.lang,
			i: elem_id,
			pg: pg
		},
		function(data) {
			$('#'+cnt_id).html(data);
			bindFormActions(cnt_id, elem_id);
		}
	);
}

function showCommentsInfo($wrapper, elem_id)
{
	$.getJSON(_ajax_url+'comments.php',
		{
			p: globals.params.page,
			i: elem_id,
			l: globals.params.lang,
			c: 1
		},
		function(data) {
			$wrapper.append(data.html);
		}
	);
}

function likeCommentable(elem_id, val)
{
	val = val || 1;
	$.post(commentGetUrl(elem_id), 
		{ 
			'like': val 
		},
		function(data){
			if(data.status)
			{
				$('#likesInfo_'+elem_id+' .likeBtnWrap').replaceWith(data.msg);
				$('#likesInfo_'+elem_id+' '+(val > 0 ? '.likes' : '.dislikes')).html(data.newhtml);
				$('#'+(val > 0 ? 'likes' : 'dislikes')+'Count_'+elem_id).text(data.newhtml);
			}
			else
			{
				$('#likesInfo_'+elem_id+' .likeMsg').html(data.msg);
			}
		}, 
		'json'
	);
}

function dislikeCommentable(elem_id)
{
	likeCommentable(elem_id, -1);
}

function bindFormActions(cnt_id, elem_id)
{
	$form = $('#postCommentForm_'+elem_id);
	$btn = $('#postCommentForm_'+elem_id+' input#saveComment');
	$name = $('#postCommentForm_'+elem_id+' #name');
	$email = $('#postCommentForm_'+elem_id+' #email');
	$text = $('#postCommentForm_'+elem_id+' #text');
	$msg = $('#postCommentForm_'+elem_id+' .postCommentMsg');
	$cnt = $('#commentsInfo_'+elem_id+' .commentsList');
	
	$btn.click(function(){
		$.post(commentGetUrl(elem_id), 
			{ 
				'name': ($name.length > 0) ? $name.val() : '',
				'email': ($email.length > 0) ? $email.val() : '',
				'text': $text.val(),
				'save': 1 
			},
			function(data){
				if(data.status)
				{
					$text.val('');
					$email.val('');
					$name.val('');
					if($('#commentsInfo_'+elem_id+'').data('page') == 1)
						$cnt.prepend(data.text);
					$('#commentsCount_'+elem_id+'').text(data.newhtml);
					$('#commentsInfo_'+elem_id+' .comments').text(data.newhtml);
				}
				$msg.html(data.msg);
			}, 
			'json'
		);
	});
	// paging
	$('#commentsInfo_'+elem_id+' .pages a').click(function(){
		var p = $(this).attr('href').match(/&p=([0-9]+)/)[1];
		loadComments(cnt_id, elem_id, p);
		return false;
	});
}

function postComment()
{
}

function approveComment(id)
{
	var elem_id = $('#comment_'+id).parents('.commentsWrap').data('id');
	$.post(commentGetUrl(elem_id), 
		{ 
			'approve': id
		},
		function(data){
			$('#comment_'+id+' .approveBtn').remove();
			$('#comment_'+id).removeClass('newComment');
		}, 
		'json'
	);
}
function editComment(id)
{
	$('#commentEdit_'+id+' textarea').val($('#comment_'+id+' .commentText').html().replace(/<br[^>]*>/gi, "\n"));
	$('#commentEdit_'+id).show();
}
function deleteComment(id)
{
	if(!confirmMsg(globals.lang.confirm_comment_delete))
		return false;
	
	var elem_id = $('#comment_'+id).parents('.commentsWrap').data('id');
	$.post(commentGetUrl(elem_id), 
		{ 
			'delete': id
		},
		function(data){
			$('#comment_'+id).remove();
		}, 
		'json'
	);
}
function saveComment(id)
{
	var elem_id = $('#comment_'+id).parents('.commentsWrap').data('id');
	$.post(commentGetUrl(elem_id), 
		{ 
			'edit': id,
			'text': $('#commentEdit_'+id+' textarea').val()
		},
		function(data){
			if(data.status)
			{
				$('#comment_'+id+' .commentText').html(data.text);
				$('#commentEdit_'+id).hide();
			}
			else
				alert(data.msg);
		}, 
		'json'
	);
}
function cancelComment(id)
{
	$('#commentEdit_'+id).hide();
}
