jQuery.fn.xNews = function(options) {
  // define defaults and override with options, if available
  // by extending the default settings, we don't modify the argument
  settings = jQuery.extend({
     idContainer:'1', 
     languageCode:'ita', 
     templateName:'detail',
     appserverURL:'/Apps/WebObjects/XTLite.woa/wa/AjaxDirectAction/',
     theID:null,
     batch:null, 
     callback:null
  }, options);

  // do the rest of the plugin, using url and settings
var anHref = new String(window.location);
var queryString = anHref.replace(/^[^\?]+\??/,'');
var params = parseQuery( queryString );
  
if(params['theID']) settings.theID = params['theID'];


if(settings.theID){
	var appserverURL = settings.appserverURL;
	var theID = settings.theID;
	var idContainer = settings.idContainer;
	var batch = settings.batch;
	
	
	var languageCode = settings.languageCode;
	
	if(params['idXTLiteContainer']) idContainer = params['idXTLiteContainer'];
	if(params['languageCode']) languageCode = params['languageCode'];
	if(params['batch']) batch = params['batch'];
	
	if($('#loading')){
			$('#loading').ajaxStart(function(){
				$(this).show();
			});
	}
	
	var templateName =settings.templateName;
	var getTemplateObjectAction = settings.appserverURL+'getTemplateBehaviour?theName='+templateName+'&theID='+settings.theID;
	
	$.ajax({
		dataType:'json',
		url:getTemplateObjectAction, 
		success:
			function(response){
				var theDomElement = response.theDomElement;
				var theDomElementClass = response.theDomElementClass;
				var theDomElementID = response.theDomElementID;
				var htmlURL = appserverURL+'getContainerWithTemplate?theName='+templateName+'&theID='+theID+'&idXTLiteContainer='+idContainer+'&languageCode='+languageCode;
				if(batch) htmlURL = htmlURL + "&batch="+batch;
				
				var selector = theDomElement ? theDomElement : '';
				selector = theDomElementClass ? selector + '.' + theDomElementClass : selector + '';
				selector = theDomElementID ? selector + '#' + theDomElementID : selector + '';
				
				$.ajax({
					url: htmlURL,
					success: function(htmlresponse){
							//alert(selector);
						if(selector){
							if($(selector)){
								$(selector).html(htmlresponse);
								if(settings.callback) settings.callback();
							}
							else{ alert('manca il container del template'); }
						}
					}, 
					error: function(XMLHttpRequest, textStatus, errorThrown){
						$(selector).html('<div class="error">Si &egrave; verificato un errore.</div>');
					}
				});
		}
	});
  }
  else{
  	//alert('ID mancante');
  }
}



function parseQuery ( query ) {
	var Params = {};
	if ( ! query ) {return Params;}// return empty object
	var Pairs = query.split(/[;&]/);
	for ( var i = 0; i < Pairs.length; i++ ) {
	var KeyVal = Pairs[i].split('=');
	if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
		var key = unescape( KeyVal[0] );
		var val = unescape( KeyVal[1] );
		val = val.replace(/\+/g, ' ');
		Params[key] = val;
	}
	return Params;
}
