Function.prototype.defaults = function()
{
  var _f = this;
  var _a = Array(_f.length-arguments.length).concat(
    Array.prototype.slice.apply(arguments));
  return function()
  {
    return _f.apply(_f, Array.prototype.slice.apply(arguments).concat(
      _a.slice(arguments.length, _a.length)));
  }
}


function lanzadorPeticiones(url, parametros, funcionsuccess, funcionerror, datatype){
    if(typeof(datatype) == 'undefined'){datatype="";}
	
    if(datatype == ""){
        $.ajax({
      		type: 'POST',
     		url: url,
    	  	data: parametros,
      		success: function(data){
    			funcionsuccess(data);
       		},
       		error: function(data){
       			funcionerror(data);
       		}
    //  		dataType: "json"
    	});
     }else{
        $.ajax({
      		type: 'POST',
     		url: url,
    	  	data: parametros,
            dataType: datatype,
      		complete: function(data, a){
    			funcionsuccess(data, a);
       		},
       		error: function(data){
       			funcionerror(data);
       		}
    	}); 
     }
}

function lanzadorPeticionesHTML(url, parametros, funcionsuccess, funcionerror, datatype){
	$.ajax({
  		type: 'POST',
 		url: url,
	  	data: parametros,
  		success: function(data){
			funcionsuccess(data);
   		},
   		error: function(data){
   			funcionerror(data);
   		},
  		dataType: "html"
	});
}

var timeoutajax = null;
function lanzadorPeticionesTimeout(url, parametros, funcionsuccess, funcionerror, datatype, timeout, timeoutmills){
    
    if(typeof(datatype) == 'undefined'){datatype="";}
    	
    if(datatype == ""){
        $.ajax({
      		type: 'POST',
     		url: url,
    	  	data: parametros,
            timeout: timeoutmills,
      		success: function(data, status, jqXHR){
    			funcionsuccess(data, status, jqXHR);
       		},
       		error: function(jqXHR, status, errortext){
                if( status.toLowerCase() == "timeout"){
    			     timeout(jqXHR, status, errortext);
                     return false;
    			}
                funcionerror(jqXHR, status, errortext);
       		}
    	});
     }else{
        $.ajax({
      		type: 'POST',
     		url: url,
    	  	data: parametros,
            timeout: timeoutmills,
            dataType: datatype,
      		success: function(data, status, jqXHR){
    			funcionsuccess(data, status, jqXHR);
       		},
       		error: function(jqXHR, status, errortext){
                if( status.toLowerCase() == "timeout"){
    			     timeout(jqXHR, status, errortext);
                     return false;
    			}
                funcionerror(jqXHR, status, errortext);
       		}
    	}); 
     }
}


