/*
 * Необходимы глобальные переменные:
 * successUrl
 * 
 */

function save(url, succUrl, succUrlFunc, formId){
	//alert(url);
	showWait();
	if(typeof(succUrl)!='undefined'){
		successUrl = succUrl;
	}
	if(typeof(succUrlFunc)!='undefined'){
		successUrlFunc = succUrlFunc;
	}

	if(typeof(formId)=='undefined'){
		formId = 'form1';
	}
	
	if(typeof(tinyMCE)!='undefined'){ 
		tinyMCE.triggerSave();
	}
	//alert("formId = " + formId);
	var options = { success:       after_save,
		url: url};
    $('#' + formId).ajaxSubmit(options);

}

function after_save(data, jqForm, options){
	//alert(data);
	eval(data);
	if(results['error']!=undefined){
		$('#errorMsg').html(genErrorMsg(results));
		$("#errorMsg").css("display", "block");
		$('#msg').css("display", "none"); 
	}else{
		if(typeof(successUrlFunc)!='undefined'){
			var succUrl = successUrlFunc(results);
			if(succUrl!="") window.location.replace(succUrl);
		} else if(typeof(successUrl!='undefined')){
			window.location.replace(successUrl);
		}
	}
	hideWait();
}

function del(url, succUrl, succUrlFunc){
	//alert(url);
	showWait();
	if(succUrl!=undefined){
		successUrl = succUrl;
	}
	
	if(succUrlFunc!=undefined){
		successUrlFunc = succUrlFunc;
	}
	
	if(!confirm('Удалить запись?'))return false;
	var options = { success:       after_del,
		url: url};
	$.ajax(options);

}

function after_del(data,status){
	//alert(data);
	eval(data);
	if(results['error']!=undefined){
		$('#errorMsg').html(genErrorMsg(results));
		$("#errorMsg").css("display", "block");
		$('#msg').css("display", "none");
	}else{
		window.location.replace(successUrl);
	}
	hideWait();
}

function oper(url, question, succUrl){
	//alert(url);
	showWait();
	if(succUrl!=undefined){
		successUrl = succUrl;
	}
	
	if(question!=0 && !confirm(question))return false;
	var options = { success:       after_oper,
		url: url};
	$.ajax(options);

}

function after_oper(data,status){
	//alert(data);
	eval(data);
	if(results['error']!=undefined){
		$('#errorMsg').html(genErrorMsg(results));
	}else{
		window.location.replace(successUrl);
	}
	hideWait();
}


function genErrorMsg(results){
	var msg = "";
	if(results['errorMsg']!=undefined) msg = results['errorMsg'];
	var errorData = results['errorData'];
	//var length = errorData.length;
	
	for(var key in errorData){
		msg = msg + "<br/>" + errorData[key];
	}
	
	return msg;
}

/*****************************
**     Popup message
******************************/

//close pop-up box
function closePopup()
 {
   $('#opaco').toggleClass('hidden').removeAttr('style');
   $('#popup').toggleClass('hidden');
   return false;
 }

//open pop-up
function showPopup(popup_type)
 {
   //when IE - fade immediately
   if($.browser.msie)
   {
     $('#opaco').height($(document).height()).toggleClass('hidden');
   }
   else
   //in all the rest browsers - fade slowly
   {
     $('#opaco').height($(document).height()).toggleClass('hidden').fadeTo('slow', 0.7);
   }

   $('#popup')
     .html($('#popup_' + popup_type).html())
     .alignCenter()
     .toggleClass('hidden');

   return false;
 }

//additional properties for jQuery object
$(document).ready(function(){
   //align element in the middle of the screen
   $.fn.alignCenter = function() {
      //get margin left
      var marginLeft = Math.max(40, parseInt($(window).width()/2 - $(this).width()/2)) + 'px';
      //get margin top
      var marginTop = Math.max(40, parseInt($(window).height()/2 - $(this).height()/2)) + 'px';
      //return updated element
      return $(this).css({'margin-left':marginLeft, 'margin-top':marginTop});
   };

});


function showWait(){
	var isShowWait1 = 1;
	if(typeof(isShowWait)!='undefined'){
		isShowWait1 = isShowWait;
	}
	if(isShowWait1) showPopup('wait');
}

function hideWait(){
	closePopup();
}

