//бэкап аякс.жс лежит в корне
function Ajax(){
    var ajaxCount = 0;
    var maxAjaxCount = 5;
    this.incAjaxCount = function(){
        if(ajaxCount >= maxAjaxCount){
            alert('на данный момент выполняется максимальное число запросов, подождите несколько секунд!!!');
            return false;
        }
        ajaxCount++;
        API.showLoading();
        return true;
    }
    
    this.decAjaxCount = function(){
        ajaxCount--;
        if(ajaxCount==0)
           API.hideLoading();
    }
    
    this.checkRightError = function(p){
        if(typeof(p.rightError) != 'undefined'){
    		if(p.rightError==1){
    			API.showWindow({'title':p.title,'content':p.content,'modal':true});
    			return false;
    		}
    	}
    	return true;
    }
    
    this.AjaxRequest = function(p){
         if(typeof(p) == 'undefined') throw ("ничего не передано в аякс");
         if(typeof(p.data) != 'undefined') p_data = p.data;
         else p_data = '';
         if(typeof(p.url) == 'undefined') throw("url - обязательный параметр");
         if(!ajax.incAjaxCount()) return false;     
         return jQuery.ajax({
    		type: 'POST',
    		dataType: 'json',
    		url: p.url,
    		data: p_data,
    		success: function(data){
    		   ajax.decAjaxCount();
    		   if(!ajax.checkRightError(data)) return false;
    		   if(data.status==1){
	    	    
    			    if (typeof p.callback != "undefined") 
    			         p.callback(data);
    			}else
    			 API.showWindow({'title':"error",'content':data.message,'modal':true});
    		},
    		error: function(data){
    			ajax.decAjaxCount();
    			if(data.responseText)
     		    	API.showWindow({'title':"error",'content':data.responseText,'modal':true});
    		}
    	}); 
    }
    
    this.AjaxContentRequest = function(p){
         if(typeof(p) == 'undefined') throw ("ничего не передано в аякс");
         if(typeof(p.data) != 'undefined') p_data = p.data;
         else p_data = '';
         if(typeof(p.url) == 'undefined') throw("url - обязательный параметр");
         if(!ajax.incAjaxCount()) return false;     
         jQuery.ajax({
    		type: 'POST',
    		dataType: 'json',
    		url: p.url,
    		data: p_data,
    		success: function(data){
    		   ajax.decAjaxCount();
	    	    if(!ajax.checkRightError(data)) return false;
    			if(data.status==1){
    			    jQuery(p.target).empty();
    			    jQuery('<div>'+data.content+'</div>').appendTo(p.target);   			    
    			    if (typeof p.callback != "undefined") 
    			         p.callback(data);
    			    API.afterLoad();
    			    //window.location.reload();
    			}
    			else
    			  API.showWindow({'title':"error",'content':data.message,'modal':true});
    			 //outputMessage(data.message,jQuery("#salaryMessageOutput"),0);
    		},
    		error: function(data){
    		    ajax.decAjaxCount();
     		    API.showWindow({'title':"error",'content':data.responseText,'modal':true});
    		}
    	});
    }
    var lazy = 'не поленись и исправь код, где увидел эту ошибку!!!';
    this.AjaxGetAndShow = function(){
        alert("ВНИМАНИЕ!!! Эта функция больше не поддерживается!!!!!GetAndShow"+lazy)
    }
    
    this.AjaxAddRequest = function(){
        alert("ВНИМАНИЕ!!! Эта функция больше не поддерживается!!!!AjaxAddRequest!"+lazy)
    }
    
    this.showAjaxContent = function(){
        alert("ВНИМАНИЕ!!! Эта функция больше не поддерживается!!!!! вместо нее нужно использовать API.showWindow()!!"+lazy);
    }
    this.ajaxWindowClose = function(){
        alert("ВНИМАНИЕ!!! Эта функция больше не поддерживается!!!!! вместо нее нужно использовать API.windowClose(id)!!"+lazy);
    }
    
    
    
}

var ajax = new Ajax();
