/**
 * makeFavourite - Function add page to browser favorites
 * @data
 */
function makeFavourite(url, descr) {
	window.external.addfavorite(''+url+'', ''+descr+'');
}

/**
 * showspoiler - Show/hide custom spoiler
 * @data
 */

function showspoiler(spoilerId){ 
    var text = $('#'+spoilerId); 
    var pic  = $('#pic'+spoilerId); 
	
    if(text.get(0).style.display == 'none') {
		text.get(0).style.display = 'block'; 
        pic.attr('src', 'pic/minus.gif'); 
        pic.attr('title', 'Скрыть'); 
    } else {
        text.get(0).style.display = 'none'; 
        pic.attr('src', 'pic/plus.gif'); 
        pic.attr('title', 'Показать'); 
    } 
}  

/**
 * isValidEmail - Function check email
 * @data string email
 */
function isValidEmail(email) {
    var pattern = new RegExp(/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i);
    return pattern.test(email);
}

/**
 * isNumeric - Function check str to numeric format
 * @data mixed str
 */
function isNumeric(str){
	var numericExpression = /^[0-9]+(\.[0-9]+)?$/;
	if(str.match(numericExpression)) {
		return true;
	} else {
		return false;
	}
}

/**
 * Functon: setError - Print custom error message
 * @callback : onComplete
 */

var errorInterval = '';

var setError = function(errorText, div, type, onComplete, delay) {
	if(!delay) delay = 2500;
	$('#'+div).empty().html('<div class="process_'+type+'">'+errorText+'</div>');
	errorInterval = setInterval(function() {
		$('#'+div).empty();
		clearInterval(errorInterval);
		if($.isFunction(onComplete)) {
			onComplete.apply();
		}
	}, delay);
}

function loadingShow() {
	var loading, top, left, h, w;
	
	loading = $('<div id="ajax_loading"><img src="/pic/ajax-loading.gif" width="32" height="32" border="0" /><div class="text">загрузка...</div></div>')
	        .hide()
			.appendTo(document.body);
	
	w = parseFloat(loading.width());
	h = parseFloat(loading.height());
	
	top  = Math.round($(document).scrollTop()  + ($(window).height() - h) / 2);
	left = Math.round($(document).scrollLeft() + ($(window).width()  - w) / 2);    
			
    loading.css('top',  top  + 'px');
    loading.css('left', left + 'px');
    loading.css('display', 'block');
	
	return false;
}

function loadingClear() {
	$('#ajax_loading').css('display','none');
	$('#ajax_loading').remove();
}

function loadingHide() {
	setTimeout("loadingClear()", 500);	
}

/**
 * Simple jQuery toolptips v.Undefined
 *
 */

this.tooltip = function(){ 
   xOffset = -6; 
   yOffset = 16; 
   jQuery("[title],[alt]").hover(function(e){ 
   if(this.title != ''){ 
      this.t = this.title; 
      this.title = ""; 
   } else { 
      this.t = this.alt; 
      this.alt = ""; 
   }
 if(this.t != '' && jQuery("#tooltip").size() == 0) {
 jQuery("body").append('<div id="tooltip"></div>');
 jQuery("#tooltip").empty().text(this.t);
 jQuery("#tooltip")
       .css("top",(e.pageY - xOffset) + "px") 
       .css("left",(e.pageX + yOffset) + "px") 
       .show(); 
     }
   }, 
   function(){ 
      if(this.t != '') {
      this.title = this.t; 
      this.alt = this.t; 
      jQuery("#tooltip").remove();
	  }
   }); 
   jQuery("[title],[alt]").mousemove(function(e){ 
      jQuery("#tooltip") 
         .css("top",(e.pageY - xOffset) + "px") 
         .css("left",(e.pageX + yOffset) + "px"); 
   }); 
}; 

// Init tooltips
jQuery(document).ready(function(){ 
   tooltip(); 
});

/**
 * browseAlert - Function get browse response modal box
 * @data popup box
 */
var browseAlert = function() {
	$.post('/dialogs.php', {ajax:true, action:'browseAlert'},
		   function(json, status) {
			   if(status.toLowerCase() == 'error') {
				   var content = '<p align="center">Произошла ошибка. Приносим свои извинения за доставленные неудобства, ошибка уже исправляется. Пожалуйста попробуйте позже. Спасибо за понимание.</p>';
				   popup.alert( content );
				     return false;
			   } else {
				   if(json.error.toLowerCase() == 'error') {
					   popup.alert( json.error_text );
					     return false;
				   } else {
					  if(json.content != '') {
						   popup.dialog({
						   title   : 'Сообщение администрации',
						   content : json.content,
						   buttons : '<div class="fb_button_no">'
				                     + '<div onclick="popup.dialog.close()">Отмена</div>'
							         + '</div>'
		                             + '<div class="fb_button_yes">'
							         + '<div onclick="sendBrowseAlert();">Отправить</div>'
							         + '</div>',
						   width   : 520,
						   opacity : 0.3
						   });
						   
						   $('#adminMessage').focus();
					  }
				   }			   
			   }
		   }, 'json');
}

/**
 * sendBrowseAlert - Function send browse response
 * @callback status
 */
var sendBrowseAlert = function() {
	var message = $('#adminMessage');
	
	if(message.val() == '') {
		setError('Вы слишком лаконичны, напишите пожалуйста пару строк.', 'error_place_holder', 'error');
		  message.focus();
		    return false;
	}
	if(message.val().length > 300) {
		setError('Пожалуйста сократите ваше сообщение до 300 символов (сейчас у вас '+parseInt(message.val().length)+')', 'error_place_holder', 'error');
		  message.focus();
		    return false;	
	}
	
	$.post('/dialogs.php', {ajax:true, message:message.val(), action:'sendBrowseAlert'},
		   function(json, status) {
			   if(status.toLowerCase() == 'error') {
				   setError('Извините, произошла ошибка', 'error_place_holder', 'error',
							function() {
								popup.dialog.close();
							});
			   } else {
				   setError(json.error_text, 'error_place_holder', 'success',
							function() {
								popup.dialog.close();
			                });
			   }		   
		   }, 'json');
	
}

/**
 * uploadAlert - Function return modal box
 * @callback strong box
 */
var uploadAlert = function() {
	$.post('/dialogs.php', {ajax:true, action:'uploadAlert'},
		   function(json, status) {
			   if(status.toLowerCase() == 'error') {
				   var content = '<p align="center">Произошла ошибка. Приносим свои извинения за доставленные неудобства, ошибка уже исправляется. Пожалуйста попробуйте позже. Спасибо за понимание.</p>';
				   popup.alert( content );
				     return false;
			   } else {
				   if(json.error.toLowerCase() == 'error') {
					   popup.alert( json.error_text );
					     return false;
				   } else {
					  if(json.content != '') {						   
						   popup.dialog({
						   title   : 'Сообщение администрации',
						   content : json.content,
						   buttons : '<div class="fb_button_no">'
				                     + '<div onclick="popup.dialog.close()">Отмена</div>'
							         + '</div>'
		                             + '<div class="fb_button_yes">'
							         + '<div onclick="sendUploadAlert();">Отправить</div>'
							         + '</div>',
						   width   : 520
						   });
						   
						   $('#adminMessage').focus();
					  }
				   }			   
			   }
		   }, 'json');
}

/**
 * sendUploadAlert - Function send uploader request
 * @callback status 
 */
var sendUploadAlert = function() {
	var message = $('#adminMessage');
	
	if(message.val() == '') {
		setError('Вы слишком лаконичны, напишите пожалуйста пару строк.', 'error_place_holder', 'error');
		  message.focus();
		    return false;
	}
	if(message.val().length > 300) {
		setError('Пожалуйста сократите ваше сообщение до 300 символов (сейчас у вас '+parseInt(message.val().length)+')', 'error_place_holder', 'error');
		  message.focus();
		    return false;	
	}
	
	$.post('/dialogs.php', {ajax:true, message:message.val(), action:'sendUploadAlert'},
		   function(json, status) {
			   if(status.toLowerCase() == 'error') {
				   setError('Извините, произошла ошибка', 'error_place_holder', 'error',
							function() {
								popup.dialog.close();
							});
			   } else {
				   setError(json.error_text, 'error_place_holder', 'success',
							function() {
								popup.dialog.close();
							});
			   }		   
		   }, 'json');
	
}

/**
 * Load popup help boxes
 *
 */

var loadHelpBox = function(type) {
	$.post('/help.php', {ajax:true, type:type},
		   function(json, status) {
			   if(status.toLowerCase() == 'error') {
				   var content = '<p align="center">Ошибка. Запрос не был выполнен.</p>';
				   popup.alert( content );
				     return false;
			   } else {
				   if(json.error.toLowerCase() == 'error') {
					   popup.alert( json.error_text )
					    return false;					   
				   } else {
					   if(json.content != '') {
					   popup.dialog({
				       title   : json.title,
				       content : json.content,
				       buttons : '<div class="fb_button_yes">'
				               + '<div onclick="popup.dialog.close()">Закрыть</div>'
							   + '</div>',
				       width: 500
				       });
					   }
				   }
			   }
		   }, 'json');
}

/**
 * Get latest comments
 *
 */
 
 var getLatestComments = function() {
	$.post('/dialogs.php', {ajax:true, action:'latestComments'},
		   function(json) {
			   $('#commentsLoadingBar').hide();
			   if(json.content != '') {
				   popup.dialog({
				   title   : 'Архив комментариев',
				   content : json.content,
				   width   : 600,
				   opacity : 0.3,
				   buttons : '<div class="fb_button_yes">'
				           + '<div onclick="popup.dialog.close()">Закрыть</div>'
						   + '</div>',
				   });
				   
				   return false;
			   }
		   }, 'json');
 }
 
/**
 * ajax comments pager
 *
 */
 
 var simplePager = function(page) {
	 $('#latestCommentsBox').mask('');
	 $.post('/dialogs.php', {ajax:true, action:'latestComments', page:page},
		   function(json) {
			   if(json.content != '') {
				   $('#latestCommentsBox').unmask();
				   $('#latestCommentsBox').empty().html(json.content);	   
			   }
		   }, 'json');
 }