/**
 * This project is created by
 * PILLAX (http://www.pillax.com)
 */

/*******************************************************************
 * Common - START
 */

$(function(){

	$('#sendVideo').click(function(){

		$('div#myContainer').html(
			'<b>Линк към видеото</b><br />'
			+ '<input type="text" class="normal" value="" name="url" id="url" />'
			+ '<img src="images/horizontal-loader.gif" alt="loader" id="loader" style="display: none; margin: 10px auto 0 auto; " />'
		);

		$('div#myContainer').dialog({
			resizable: true,
			modal: true,
			width: 400,
			title: 'Добавяне на видео от Youtube',
			buttons: {

				'Изпрати': function()
						  {
							var url	= $('#url').val();

							$('#url').removeClass('errField');

							if(url == '' || url.search('youtube.com') == -1)
							{
								$('#url').addClass('errField');
							}
							else
							{
								$('#url').css('display', 'none');
								$('#loader').css('display', 'block');

								$.get(
									'ajax_sendVideo.php',
									{
										url:url
									}, 
									function(data)
									{
										if(data.status == 1)
										{
											// On ok
											$('div#myContainer').html('<div class=\"inf_msg\" style=\"display: block;\">' + data.msg + '</div>');
										}
										else
										{
											// On error
											$('div#myContainer').html('<div class=\"err_msg\" style=\"display: block;\">' + data.msg + '</div>');
										}
									},

									'json'
								);
							}
						  },

				'Откажи': function()
						  {
							$(this).dialog('close');
						  },
			}
		});

		return false;
	});

	$('.expand').hover(
		function(){
			$('.full', this).css('display', 'block');
		},
		function(){
			$('.full', this).css('display', 'none');
		}
	);

	$('.element').hover(
		function()
		{
			$(this).addClass('act');
		},
		function()
		{
			$(this).removeClass('act');
		}
	);

	
	$('a.delete').click(function(){

		var url = $(this).attr('href');

		$('div#myContainer').html('Да изтривам ли?');

		$('div#myContainer').dialog({
			resizable: false,
			modal: true,
			width: 300,
			height: 150,
			title: 'Подтвърждение',
			buttons: [
				{
					text: 'Изтрий',
					click: function()
						  {
							window.location=url;
						  }
				},
				{
					text: 'Откажи',
					click: function()
						  {
							$(this).dialog('close');
						  }
				}
			]
		});

		return false;
	});

	$('.del').click(function(){

		var url = $(this).attr('href');

		$('div#myContainer').html('Да изтривам ли?');

		$('div#myContainer').dialog({
			resizable: false,
			modal: true,
			width: 300,
			height: 150,
			title: 'Подтвърждение',
			buttons: [
				{
					text: 'Изтрий',
					click: function()
						  {
							window.location=url;
						  }
				},
				{
					text: 'Откажи',
					click: function()
						  {
							$(this).dialog('close');
						  }
				}
			]
		});

		return false;
	});

	$('.relControl').live('click', function(){

		var pointer		= $(this).parent();
		var id			= $(pointer).attr('id');
		var tmp			= id.split('_');

		$.post(
			'ajax_relation.php',

			{
				'do':$(this).attr('rel'), 
				type:tmp[0],
				obj_group:tmp[1],
				obj_id:tmp[2],
				r_id:tmp[3] 
			}, 

			function(data)
			{
				$('#'+id).html(data);
			},

			'json'
		);


		$(this).blur();
		return false;
	});

	$('a.inactiveHref').live('click', function(){
		return false;
	})

	$('input.toggleVal').toggleVal();

	$('div.box ul.boxCont > li').hover(
		function()
		{
			$('li', $(this).parent()).removeClass('open');
			$(this).addClass('open');
			return false;
		},
		function()
		{
			return false;
		}
	);

	$('span.descr a').click(function(){
		$(this).blur();
		return false;
	})


	$('a.reCheck').click(function(){
		$(this).css('background-image', 'url(images/reloadAnim.gif)').blur();
		return false;
	})


	$('a.err_msg_close').click(function(){
		$(this).parent().css('display', 'none');
		return false;
	});

	$('a.inf_msg_close').click(function(){
		$(this).parent().css('display', 'none');
		return false;
	});

	$('div#topBox a#topBoxSubmit').click(function(){
		$('div#topBox form').submit();
		return false;
	});


	$('.datepicker').datepicker({
		dayNames: ['Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота', 'Неделя'],
		dayNamesMin: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Нд'],
		dayNamesShort: ['Пон', 'Втр', 'Срд', 'Чет', 'Пет', 'Съб', 'Нед'], 
		monthNames: ['Януари','Февруари','Март','Април','Май','Юни','Юли','Август','Септември','Октомври','Ноември','Декември'],
		monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни','Юли','Авг','Сеп','Окт','Ное','Дек'],
		dateFormat: 'yy-mm-dd',
		changeMonth: true,
		changeYear: true
	});

	$('textarea.maxLength').keypress(function(event){

		var maxLength	= $(this).attr('title');
		var key			= event.which;
		var rowId		= $(this).parent().attr('id');
		var length		= (this.value.length > maxLength) ? maxLength : this.value.length;

		if((key >= 33 || key == 13) && length >= maxLength)
		{
			event.preventDefault();
		}
	});

	$('textarea.maxLength').keyup(function(event){

		var maxLength	= $(this).attr('title');
		var key			= event.which;
		var rowId		= $(this).parent().attr('id');
		var length		= (this.value.length > maxLength) ? maxLength : this.value.length;

		if(length == maxLength)
		{
			setRowStatus('div#' + rowId, 'inf', 'Максимум ' + maxLength + ' символа тук');
		}
		else
		{
			setRowStatus('div#' + rowId, 'inf', 'Остават още ' + (maxLength - length) + ' символ' + (((maxLength - length) == 1) ? '' : 'a'));
		}
	});


	$('.sendMail').click(function(){
		var to	= $(this).attr('rel');

		$('div#myContainer').html(
			'<b>Заглавие</b><br />'
			+ '<input type="text" class="normal" value="" name="mailTitle" id="mailTitle" />'
			+ '<br /><br />'
			+ '<b>Съдържание</b><br />'
			+ '<textarea class="normal" name="mailBody" id="mailBody" rows="" colls="" style="height: 130px;"></textarea>'
			+ '<input type="hidden" value="' + to + '" name="to" id="to" />'
		);

		$('div#myContainer').dialog({
			resizable: false,
			modal: true,
			width: 400,
			height: 300,
			title: 'Изпращане на съобщение',
			buttons: [
				{
					text: 'Изпрати',
					click: function()
						  {

							var mailTitle	= $('#mailTitle').val();
							var mailBody	= $('#mailBody').val();
							var to			= $('#to').val();

							$('#mailTitle, #mailBody').removeClass('errField');

							if(mailTitle == '')
							{
								$('#mailTitle').addClass('errField');
							}
							else if(mailBody == '')
							{
								$('#mailBody').addClass('errField');
							}
							else
							{
								$.post(
									'ajax_sendMail.php',

									{
										to:to, 
										mailTitle:mailTitle, 
										mailBody:mailBody
									}, 

									function(data)
									{
										if(data.status == 1)
										{
											// On ok
											$('div#myContainer').html('<div class="inf_msg" style="display: block;">' + data.msg + '</div>');
										}
										else
										{
											// On error
											$('div#myContainer').html('<div class="err_msg" style="display: block;">' + data.msg + '</div>');
										}
									},
									'json'
								);
							}

						  }

				},
				{
					text: 'Откажи',
					click: function()
						  {
							$(this).dialog('close');
						  }
				}
			]
		});

		return false;
	});


	$('#reportOther').live('change', function(){
		
		if($(this).prop('checked') == true)
		{
			$('#reportOtherField').css('display', 'inline');
		}
		else
		{
			$('#reportOtherField').css('display', 'none');
		}
	})

	$('.report').click(function(){
		var url	= $('.reportUrl', this).val();

		$('div#myContainer').html(
			'<div style="height: 20px;"><input type="checkbox" class="reportOpt" name="reason[]" value="Спам" /> Това е спам</div>'
			+ '<div style="height: 20px;"><input type="checkbox" class="reportOpt" name="reason[]" value="Обидно съдържание" /> Обидно съдържание</div>'
			+ '<div style="height: 20px;"><input type="checkbox" class="reportOpt" name="reason[]" value="Не е по темата" /> Не е по темата</div>'
			+ '<div style="height: 20px;"><input type="checkbox" class="reportOpt" name="reason[]" value="Друго" id="reportOther" /> Друго</div>'
			+ '<div><textarea name="other" rows="10" cols="10" class="normal" style="height: 110px; display: none;" id="reportOtherField" ></textarea></div>'
			+ '<input type="hidden" value="' + url + '" name="url" id="url" />'
		);

		$('div#myContainer').dialog({
			resizable: false,
			modal: true,
			width: 400,
			height: 300,
			title: 'Съобщаване за нередност на администратора',
			buttons: [


				{
					text: 'Изпрати',
					click: function()
						  {

							$('#reportOtherField').removeClass('errField');
							if($('#reportOther').prop('checked') == true && $('#reportOtherField').val() == '')
							{
								$('#reportOtherField').addClass('errField');
							}
							else if ($('.reportOpt:checked').serialize() == '')
							{
								// do nothing
							}
							else
							{
								$.post(
									'ajax_report.php',

									{url:url, 
									 reason:$('.reportOpt:checked').serialize(), 
									 other:$('#reportOtherField').val()}, 

									function(data)
									{
										if(data.status == 1)
										{
											// On ok
											$('div#myContainer').html('<div class="inf_msg" style="display: block;">' + data.msg + '</div>');
										}
										else
										{
											// On error
											$('div#myContainer').html('<div class="err_msg" style="display: block;">' + data.msg + '</div>');
										}
									},

									'json'
								);
							}
						  }
				},
				{
					text: 'Откажи',
					click: function() {
						$(this).dialog('close');
					}
				}
			]
		});

		return false;
	});


	$('.sendRealMail').click(function(){

		var name	= '';
		var email	= '';
		var gsm		= '';
		var body	= '';

		if($('#lng').val() == 'bg')
		{
			var lng_request				= 'Изпращане на писмо';
			var lng_your_name			= 'Вашето име';
			var lng_content				= 'Съдържание';
			var lng_send				= 'Изпрати';
			var lng_cancel				= 'Откажи';
		}
		else
		{
			var lng_request				= 'Send us email';
			var lng_your_name			= 'Your name';
			var lng_content				= 'Content';
			var lng_send				= 'Send';
			var lng_cancel				= 'Cancel';
		}


		mailForm = 
			  '<b>' + lng_your_name + '</b><br />'
			+ '<input type="text" class="normal" value="" name="name" id="name" />'
			+ '<br /><br />'

			+ '<b>Email</b><br />'
			+ '<input type="text" class="normal" value="" name="email" id="email" />'
			+ '<br /><br />'

			+ '<b>GSM</b><br />'
			+ '<input type="text" class="normal" value="" name="gsm" id="gsm" />'
			+ '<br /><br />'

			+ '<input type="hidden" value="global" name="rType" id="rType" />'

			+ '<b>' + lng_content + '</b><br />'
			+ '<textarea class="normal" name="mailBody" id="mailBody" rows="" colls="" style="height: 130px;"></textarea>';


		$('div#myContainer').html('<form id="mailForm">' + mailForm + '</form>');


		$('div#myContainer').dialog({
			resizable: true,
			width: 600,
			modal: true,
			title: lng_request,
			buttons: [
				{
					text: lng_send,
					click: function() {
							$('input, textarea').removeClass('errField');

							if($('#name').val() == '')
							{
								$('#name').addClass('errField');
							}
							else if($('#email').val() == '')
							{
								$('#email').addClass('errField');
							}
							else if($('#gsm').val() == '')
							{
								$('#gsm').addClass('errField');
							}
							else if($('#mailBody').val() == '')
							{
								$('#mailBody').addClass('errField');
							}
							else
							{
								$.post(
									'ajax_sendRealMail.php?language=' + $('#lng').val(),

									{a: $('#mailForm').serialize()}, 

									function(data)
									{
										if(data.status == 1)
										{
											// On ok
											$('div#myContainer').html('<div class="inf_msg" style="display: block;">' + data.msg + '</div>');
										}
										else
										{
											// On error
											$('div#myContainer').html('<div class="err_msg" style="display: block;">' + data.msg + '</div>');
										}
									},

									'json'
								);
							}
						  }
				},
				{
					text: lng_cancel,
					click: function() {
						$(this).dialog('close');
					}
				}
			]
		});

		return false;
	});

});


function errMsg(msg)
{
	$('.err_msg .err_msg_body').html(msg);
	$('div.err_msg').css('display', 'block');
}

function infMsg(msg)
{
	$('.inf_msg .inf_msg_body').html(msg);
	$('div.inf_msg').css('display', 'block');
}

function checkField(obj, vars)
{
	var args = arguments;

	$.post(
		'checkField.php',
		{
			obj:obj, 
			vars:vars,
			responseType: 'json'
		}, 
		function(data){

			var errors = 0;

			for(k in vars)
			{
				if(data[k] != undefined)
				{
					errors++;
					setRowStatus('div#row_' + k, 'err', data[k]);
				}
				else
				{
					setRowStatus('div#row_' + k, 'ok', 'OK');
				}
			}

			// console.log('%o', arguments);
			if (errors == 0 && args.length == 3 && args[2] == true)
			{;
				$('div#' + obj + ' form').submit();
			}
		},
		'json'
	);
}

function setRowStatus(rowId, status, msg)
{
	$(rowId + ' div.sub').css('display', 'block');
	$(rowId + ' span.status').html('&nbsp;' + msg + '&nbsp;');

	$(rowId).removeClass('ok err inf').addClass(status);

	// stop recheck animation
	$(rowId + ' a.reCheck').css('background-image', 'url(images/reload.gif)');
}

/**
 * Common - END
 ******************************************************************/

/*******************************************************************
 * Simple relations - START
 */

$(function(){

	$('.rels').each(function(){
		loadSimpleRel($(this).attr('id').split('_'));
	});

	$('.simpleRelControl').live('click', function(){

		var tmp					= $(this).attr('id').split('_');
		var file				= 'ajax_simple_rel_' + tmp[0] + '.php';
		var loadSimpleRelVars	= null;
		var actionSimpleRelVars	= null;

		if($(this).hasClass('addRel'))
		{
			var act = 'add';
		}
		else if ($(this).hasClass('delRel'))
		{
			var act = 'del';
		}

		loadSimpleRelVars = new Array (
			tmp[0],	// rel_type
			tmp[1],	// rel_type_id
			tmp[2]	// group_id / group1_id / user1_id
		);

		actionSimpleRelVars = new Array (
			act,		// do
			tmp[1],	// rel_type_id
			tmp[2]	// group_id / group1_id / user1_id
		);

		$.post(
			file,

			{
				vars:actionSimpleRelVars
			},

			function(data)
			{
				loadSimpleRel(loadSimpleRelVars);
			},

			'json'
		);

		return false;
	});



	$('.simpleRelControlGg').live('click', function(){

		var tmp				= $(this).attr('id').split('_');
		var rel_type_id		= tmp[1];
		var group1_id		= tmp[2];

		$('div#myContainer').html(
			  '<input type="text" class="normal toggleVal" id="ggSearchField" name="gg" value=" Напишете името на групата..." autocomplete="off" />'
			+ '<script type="text/javascript">'
			+ '	$("#ggSearchField").toggleVal();'
			+ '</script>'
			+ '<bg />'
			+ '<input type="hidden" name="group1_id" value="' + group1_id + '" id="group1_id" />'
			+ '<input type="hidden" name="rel_type_id" value="' + rel_type_id + '" id="rel_type_id" />'
			+ '<div id="suggestions"></div><!-- suggestions -->'
		);

		$('div#myContainer').dialog({
			modal: true,
			width: 540,
			height: 400,
			title: 'Добави група',
			buttons: 
			[
				{
					text: 'Добави',
					click: function()
						  {
							var id = [];
							var _this = $(this);

							$('#suggestions a.active').each(function(){
								id.push($(this).attr('rel'));
							});

							if(id.length > 0)
							{
								$.post(
									'ajax_simple_rel_gg.php',

									{
										group1_id:group1_id, 
										group2_id:id, 
										rel_type_id:rel_type_id,
										'do':'add'
									}, 

									function(data)
									{
										if(data.status == 1)
										{
											// On ok
											$('div#myContainer').html('<div class="inf_msg" style="display: block;">' + data.msg + '</div>');

											loadSimpleRel(
												new Array (
													'gg',
													rel_type_id,
													group1_id
												)
											);

											window.setInterval(function() {
												var i = parseInt($("#myContainer #countdown").text());

												if(i == 0)
												{
													$(_this).dialog('close');
												}

												$("div#myContainer #countdown").text(i-1);
											}, 1000);

										}
										else
										{
											// On error
											$('div#myContainer').html('<div class="err_msg" style="display: block;">' + data.msg + '</div>');
										}
									},

									'json'
								);
							}
						  }
				},
				{
					text: 'Откажи',
					click: function()
						  {
							$(this).dialog('close');
						  }
				}
			]

		});

		$(this).blur();
		return false;
	});

	$('#ggSearchField').live('keyup', function(){
		$('#suggestions')
			.html('')
			.addClass('loading');

		suggest(
			$(this).val(),
			[$('#group1_id').val(), $('#rel_type_id').val()]
		);
	});

	$('#suggestions a').live('click', function(){

		if($(this).hasClass('active'))
		{
			$(this).removeClass('active');
		}
		else
		{
			$(this).addClass('active');
		}

		$(this).blur();
		return false;
	});

	$('a.modal').live('click', function(){

		var href	= $(this).attr('href');
		var title	= ($(this).attr('title') != '') ? $(this).attr('title') : $(this).text();

		$('div#myContainer').html('');

		$.get(
			href,
			{}, 
			function(data)
			{
				$('div#myContainer').html(data);
			}
		);

		$('div#myContainer').dialog({
			resizable: true,
			modal: true,
			width: 800,
			height: 600,
			title: title,
			buttons: 
			[
				{
					text: 'Откажи',
					click: function()
						  {
							$(this).dialog('close');
						  }
				}
			]
		});

		$(this).blur();
		return false;
	});


	$('.delRel').live('click', function(){
		var id = $(this).attr('rel');

		if($(this).hasClass('gu'))
		{
			var tbl = 'gu';
		}
		else if($(this).hasClass('uu'))
		{
			var tbl = 'uu';
		}
		else if($(this).hasClass('gg'))
		{
			var tbl = 'gg';
		}

		$.post(
			'ajax_delRel.php',
			{
				id:id,
				tbl:tbl
			}, 
			function(data)
			{
				var rel_type = data.rel_type;
				var rel_type_id = data.rel_type_id;
				var obj_id = data.obj_id;

				var file = (rel_type == 'gg') ? 'ajax_groups_load.php' : 'ajax_users_load.php';

				$.post(
					file,
					{
						rel_type:rel_type,
						rel_type_id:rel_type_id,
						obj_id:obj_id
					}, 
					function(data)
					{
						$('div#myContainer').html(data);

						loadSimpleRel(
							new Array (
								rel_type,
								rel_type_id,
								obj_id
							)
						);
					}
				);
			},

			'json'
		);

		return false;
	});


	$('.delRel2').live('click', function(){

		var id = $(this).attr('rel');

		$.post(
			'ajax_delRel2.php',
			{
				id:id
			}, 
			function(data)
			{
				var type		= data.type;
				var obj_group	= data.obj_group;
				var obj_id		= data.obj_id;
				var dom_id		= data.dom_id;
				var likeIt		= data.likeIt;

				$.post(
					'ajax_users_load.php',
					{
						rel:type,
						obj_group:obj_group,
						obj_id:obj_id
					}, 
					function(data)
					{
						$('div#myContainer').html(data);

						$(dom_id).html(likeIt);
					}
				);
			},

			'json'
		);

		return false;
	});

});


function suggest(str, params)
{
	var group1_id	= (typeof group1_id === 'undefined') ? params[0] : null;
	var rel_type_id	= (typeof rel_type_id === 'undefined') ? params[1] : null;

	$.post(
		'ajax_group_search.php',
		{
			s:str,
			group1_id:group1_id,
			rel_type_id:rel_type_id
		}, 
		function(data){
			$('#suggestions')
				.html(data)
				.removeClass('loading')
				.append('<br style="clear: left;" />');
		}
	);
}

function loadSimpleRel(vars)
{
	$.post(
		'ajax_simple_rel_load.php',

		{
			vars:vars
		},

		function(data)
		{
			// set id
			var id = '#' + vars[0] + '_'+ vars[1] + '_'+ vars[2];


			// show elements
			$(id).html(data.elements);

			// show stat
			$('.relStat', $(id).parent()).html(data.relStat);
		},

		'json'
	);
}

/**
 * Simple relations - END
 ******************************************************************/

/*******************************************************************
 * Users - ajax - START
 */

$(function(){
	$('.groupType').each(function(){
		var id			= '#' + $(this).attr('id');
		var tmp			= $(this).attr('id').split('_');
		var groupTypeId	= tmp[1];
		var latest = $(this).hasClass('latest') ? 1 : 0;
		var loadAs = 'boxIntro';
		var limit = 2;

		if($(this).hasClass('lnk'))
		{
			loadAs = 'lnk';
			limit = 25;
		}

		loadGroups(
			id, 
			{
				'groupTypeId':groupTypeId, 
				'loadAs':loadAs, 
				'limit':limit,
				'latest':latest
			}
		);
	});
});

function loadUsers(pointer, vars)
{
	$.post(
		'ajax_users_load.php',
		vars,
		function(data)
		{
			$(pointer).html(data);
		}
	);
}

function loadGroups(pointer, vars)
{
	$.post(
		'ajax_groups_load.php',
		vars,
		function(data)
		{
			$(document).oneTime(500, "update", function(){
				$(pointer).html(data);
			});
		}
	);
}

/**
 * Users - ajax - END
 ******************************************************************/

