(function($){
$.extend(
{
	jsonp: {
		script: null,
		options: {},
		call: function(url, options) { 
			var default_options = {
				callback: function(){},
				callbackParamName: "callback",
				params: []
			};
			this.options = $.extend(default_options, options);
			//Determina si se debe añadir el parámetro separado por ? o por &
			var separator = url.indexOf("?") > -1? "&" : "?";
			var head = $("head")[0];
			/*Serializa el objeto en una cadena de texto con formato URL*/
			var params = [];
			for(var prop in this.options.params){
				params.push(prop + "=" + encodeURIComponent(options.params[prop]));
			}
			var stringParams = params.join("&");
			//Crea el script o borra el usado anteriormente
			if(this.script){
				head.removeChild(script);
			}
			script = document.createElement("script");
			script.type = "text/javascript";
			//Añade y carga el script, indicandole que llame a JSONP.getter
			script.src = url + separator + stringParams + (stringParams?"&":"") + this.options.callbackParamName +"=jQuery.jsonp.process";
      head.appendChild(script);
			
		},
		process: function(data) { this.options.callback(data); }
	}
});
})(jQuery)

function getServiceData(lang,id_div,url,callbackfunction,callbackparam,callbackfunctioname,displayValue,dateValue,yearValue,townValue,tplValue){
  var params = {
		callback: callbackfunction,
		callbackParamName: callbackparam,
		params: {
			display: displayValue,
			date: dateValue,
			language: lang,
			id: id_div,
			year: yearValue,
			town: townValue,
			tpl: tplValue,
			functionName: callbackfunctioname			
		}
	};

	JSONP.call(url, params);
	//Con jQuery
	//$.jsonp.call(url, params);
}

function getServiceDateRange(lang,id_div,url,callbackfunction,callbackparam,callbackfunctioname,displayValue,startDateValue,endDateValue,yearsValue,townValue,tplValue){
  var params = {
		callback: callbackfunction,
		callbackParamName: callbackparam,
		params: {
			display: displayValue,
			startDate: startDateValue,
			endDate: endDateValue,
			years: yearsValue,
			language: lang,
			id: id_div,
			town: townValue,
			tpl: tplValue,
			functionName: callbackfunctioname			
		}
	};

	JSONP.call(url, params);
	//Con jQuery
	//$.jsonp.call(url, params);
}

