/* GLOBAL */
var __avail_ret_ret0_trackingcode;

var google_conversion_id_search ='1037285263';
var google_conversion_id_display ='1015037612';
var google_conversion_label_search = '_0VcCIuGcBCP787uAw'; 
var google_conversion_label_display = 'OTf7CNTRqwIQrP2A5AM'; 
var programID='6887C1543755416';

/*<![CDATA[*/
var google_conversion_id;
var google_conversion_language = "it";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label;
var google_conversion_value;
/*]]>*/

/********************************************* START - Funzioni di supporto *********************************************/

function loaderImg( sr )
{
	var img = new Image();
	
	img.src = sr;
	img.style.width = "1px";
	img.style.height = "1px";
	img.style.display = "none";
	img.alt = "";
	img.border = 0;

	document.body.appendChild( img );
}

function loaderScriptEst(sr)
{
	var oScript= document.createElement("script");
	oScript.type = "text/javascript";
	oScript.src = sr;
	document.body.appendChild( oScript );
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/*  Questa funzione è molto comoda quando deve essere eseguito il POST di una form dopo averlo interrotto. 
	Si dispone dell'elemento sumbit e da esso, si arriva alla form. */
function getFormContainer( submitNode )
{
	var form = submitNode;
	
	while ( form != null && form.nodeName.toLowerCase() != 'form' )
		form = form.parentNode;
	
	return form;
}

/********************************************* END - Funzioni di supporto *********************************************/

/***********************************************************************************************************************
********************************************************TRACKSET********************************************************
***********************************************************************************************************************/

/* 	Trackset non gestisce nativamente i tempi di caricamento; si è così deciso di sfruttare la possibilità di tracciare eventi custom.
	La funzione 'cl_PageLoadTime' calcola il tempo trascorso dalla chiamata -- var cl_startSess = new Date -- posta nell'ApplicationFrame ed il
	momento	del load completo della pagina. Infine, invia a trackset questo dato più gli altri necessari alla creazione di un report per data. */
	
function cl_PageLoadTime()
{
	// classifichiamo il tipo caricamento
	var cl_pageType=(document.cookie.indexOf('cl_1stPage=viewed')>-1) ? 'OtherPages' : 'FirstPage';
	document.cookie='cl_1stPage=viewed';
	
	// calcoliamo il tempo di caricamento
	var cl_endSess = new Date();
	// Trackset vuole il tempo in secondi.
	var cl_loadTime = parseInt((cl_endSess.getTime()-cl_startSess.getTime())/1000);
	
	// Il tracciamento registra la pagina solo per i tempi di almeno 20 secondi snellendo il report relativo
	var cl_pageUrl = location.href;
	if( cl_loadTime<20 ) 
		cl_pageUrl='';
	
	// la data viene fornita dal server
	var cl_date = system_time.split(' ')[0].substring(2);
	
	try{sendevent('_custom', 'Page load time', cl_date, cl_pageType, cl_loadTime, cl_pageUrl);}
	catch(e){tracking_log(e);}
}

var justsent = new Array(); /* Devo inviare le impressions una volta soltanto per ciascun componente, ma gli avail arrivano dopo il caricamento della pagina e così devo chiamare la funzione impressions anche al loro eventuale caricamento. Se justsent non fosse globale, rivaluterei gli stessi elementi. */

function impressions(tag, page)
{	
	return; /* disabilitato su richiesta dell'utente per altri test in corso. */
	var j = 1;
	   
	var pagecomponents = document.getElementsByTagName("*");
	
	for(var i=0, tool = ''; i<pagecomponents.length ; i++)
	{        
		if ( !pagecomponents[i].getAttribute( "tracksetimpressionmarker" ) || justsent[ pagecomponents[i].getAttribute( "tracksetimpressionmarker" ) ] )
			continue;
		
		switch( pagecomponents[i].getAttribute( "tracksetimpressionmarker" ) )
		{
			case '0x001' : 	/* AVAIL */
							justsent['0x001'] = 1;
			
							switch ( page )
							{
								case "product/ProductDetail":	tool = "Recom. nella scheda";
																break;
								case "requisition/CurrentReq":	tool = "Recom. nel carrello";
																break;					
							}							
							break;
							
			case '0x002' : 	/* TEASER */							
							justsent['0x002'] = 1;
			
							switch ( page )
							{
								case "application/WelcomeMsh":			tool = "Banner in home page";
																		break;
								case "application/WelcomeCategoryMSH":	tool = "Banner in home sezione";
																		break;
								case "application/EditorialPage1":		tool = "Banner negli speciali";
																		break;					
							}							
							break;
							
			case '0x003' : 	/* Listato di sezione */							
							justsent['0x003'] = 1;
							
							switch ( page )
							{
								case "offer/OfferList":	tool = "Listato di sezione";
														break;					
							}							
							break;
							
			case '0x004' : 	/* Upsell */
							justsent['0x004'] = 1;
			
							switch ( page )
							{
								case "product/ProductDetail":	tool = "Upsell nella scheda";
																break;
								case "requisition/CurrentReq":	tool = "Upsell nel carrello";
																break;					
							}
							break;
							
			case '0x005' : 	/* Ultimi Visti nella scheda */
							justsent['0x005'] = 1;
			
							switch ( page )
							{
								case "product/ProductDetail":	tool = "Ultimi Visti nella scheda";
																break;				
							}
							break;
			
			case '0x006' : 	/* Ricerca */
							justsent['0x006'] = 1;
			
							switch ( page )
							{
								case "offer/OfferList":	tool = "Ricerca";
														break;				
							}
							break;
							
			default: return;
		}	
		
		setTimeout("try{sendevent('_custom','Strumenti merchandising','"+tool+"','impressions','1','"+tag+"');}catch(e){tracking_log(e);}",500*(j++));						
							
	}
	
}

function availability()
{
	var txt = '';
	
	/* vale solo nella scheda prodotto */
	switch ( page )
	{
		case "product/ProductDetail":
		case "product/ProductDetailSpecialBook":
		case "product/ProductDetailSpecialMovie": break;
		default: return;
	}
	
	try
	{	if( document.getElementById('tracksetavailabilitymarker').innerHTML.search('Limitata') > -1 )
			txt = 'disp. limitata';
		else if( document.getElementById('tracksetavailabilitymarker').innerHTML.search('Non disponibile') > -1 )
			txt = 'non disponibile';
		else return;

		sendevent('_custom', 'Status prodotti visti', tag, txt, 1, decodeURIComponent(cl_evo).substr(10,decodeURIComponent(cl_evo).len));
		
	}catch(e){};
}

/***********************************************************************************************************************
*********************************************************AVAIL**********************************************************
***********************************************************************************************************************/

/* Ogni volta che viene eseguita la funzione "apri scheda prodotto" di un prodotto suggerito da Avail,
dobbiamo comunicare l'evento ad Avail per fargli capire quale suggerimento è stato di successo. 

Dove viene richiamata:
1. Avail barra latarale dx scheda prodotto;
2. Avail in fondo al cart.

*/
function logClickedOn(Prod,Track,Url,Source,ProductCategory)
{
	try{
		
		/* Trackset ConversionLab - Faccio fare subito la chiamata sfruttando così il tempo di caricamento di Avail. Altrimenti, non avendo un handler specifico, la GET di Trackset sarà sempre più lenta del js in esecuzione verso il redirect. */
		switch( Source )
		{
			case 0: /* scheda prodotto */
					sendevent('_custom', 'Strumenti merchandising', 'Recom. nella scheda', 'clicks', 1, ProductCategory);
					break;
					
			case 1: /* cart */
					sendevent('_custom', 'Strumenti merchandising', 'Recom. nel carrello', 'clicks', 1, 'CART');
					break;
		}
		
		/* Dopo il commit, si perde __avail_ret.ret0.trackingcode e quindi devo preservarlo qualora l'utente faccia una nuova aggiunta al carrello senza cambiare la pagina. Non si pone il problema nel cart dove l'aggiunta comporta un refresh. */
		try{ if(__avail_ret.ret0.trackingcode) 
					__avail_ret_ret0_trackingcode =  __avail_ret.ret0.trackingcode; }
		catch(e){}
				
		var emark=new Emark(); 

		emark.logClickedOn( Prod, typeof(Track) !== 'undefined' ? Track : __avail_ret_ret0_trackingcode ); 
		emark.commit(
			function() 
			{ 
				try{
					
					if( typeof(Url) !== 'undefined' && Url )
					{
						/*  Trasporto i parametri source e target di TradeDoubler. 
							Si va oltre questo commento solo se la chiamata proviene dal cart.  */
						if ( new UrlParameters( Url ).get('source') )
							Url += ( Url.indexOf('?') > -1 ? '&source=' : '?source=' ) + new UrlParameters( Url ).get('source');
						else
							Url += ( Url.indexOf('?') > -1 ? '&source=' : '?source=' ) + ( Source == 0 ? 'RecommendationAvailSchedaprodotto' : 'RecommendationAvailCarrello' ); /* comportamento presente in versione iniziale di _recomandations.js e mantenuta nel dubbio. 'RecommendationAvailCarrello' se apre la scheda prodotto dal cart mentre 'RecommendationAvailSchedaprodotto' se la si apre da un scheda prodotto. */
						
						if ( new UrlParameters( Url ).get('target') )
							Url += ( Url.indexOf('?') > -1 ? '&target=' : '?target=' ) + new UrlParameters( Url ).get('target');
						else
							Url += ( Url.indexOf('?') > -1 ? '&target=' : '?target=' ); /* comportamento presente in versione iniziale di _recomandations.js e mantenuta nel dubbio. */ 
						
						document.location = Url + ( Url.indexOf('?') > -1 ? '&avail_tc=' : '?avail_tc=' ) + ( typeof(Track) != 'undefined' ? Track : __avail_ret_ret0_trackingcode ); /* passo il track alla pagina prodotto qualora l'utente dovesse aggiungere il prodotto al carrello da lì. */
					}
				}
				catch(e){tracking_log(e);}
			
			});
	}
	catch(e){tracking_log(e);}
}

/* Ogni volta che viene eseguita la funzione "aggiungi al carrello" da qualsiasi elemento del sito, dobbiamo
comunicare l'evento ad Avail, in questo modo Avail eviterà di suggerire prodotti già presenti nel carrello. 

Dove viene richiamata:
1. Pulsante nel teaser sidebar dx della scheda prodotto;
2. Pulsante nel teaser del cart;
3. Pulsante scheda prodotto se preveniente da suggerimento.
4. Prodotto aggiunto al carrello grazie a evolutiva ME1261 - Landing Page per Mini-Sito monoprodotto.

--> In realtà passa tutto da: 
1. addToCartAjax -> addToCartAjaxMultiple;
2. form di Avail nel cart ( c'è un refresh della pagina che quindi non passa per addToCartAjax del minicart.

*/

function logAddedToCart(Prod,Track,submitNode)
{
	try{
			var emark=new Emark();
			
			
			/* Dopo il commit, si perde __avail_ret.ret0.trackingcode e quindi devo preservarlo qualora l'utente faccia una nuova aggiunta al carrello senza cambiare la pagina. Non si pone il problema nel cart dove l'aggiunta comporta un refresh. */
			try{ if(__avail_ret.ret0.trackingcode) 
					__avail_ret_ret0_trackingcode =  __avail_ret.ret0.trackingcode; }
			catch(e){}
			
			/* Devo tracciare sempre un click quando si aggiunge da TEASER. La prima condizione vale nel carrello mentre la seconda nella scheda prodotto.  */
			if( __avail_ret_ret0_trackingcode == Track || ( typeof(prodcode) !== 'undefined' && prodcode != Prod ) )
			{
				emark.logClickedOn( Prod, Track != 'undefined' ? Track : __avail_ret_ret0_trackingcode );
				emark.logAddedToCart( Prod, Track != 'undefined' ? Track : __avail_ret_ret0_trackingcode );
			}
			else if ( Track )
				 	emark.logAddedToCart(Prod,Track);
				 else
					emark.logAddedToCart(Prod);
					
			emark.commit( function(){
				
				var Form = getFormContainer( submitNode );
				
				/* Questo è il caso del CART dove l'aggiunta del prodotto avviene mediante form e refresh della pagina. */ 
				if(Form) 
					Form.submit();
			});
			
			/* Serve a bloccare il submit della form del CART in attesa del commit di Avail. */
			return false;
	}
	catch(e){tracking_log(e);}
}


/* Se il prodotto aggiunto al carrello proviene da una "ricerca libera" dobbiamo comunicare ad Avail che
esiste una relazione tra la stringa ricercata ed il prodotto scelto. 

Dove viene richiamata:
1. Pulsante di aggiunta al carrello dal listato prodotti di Fact Finder;
2. Pulsante di aggiunta al carrello da scheda prodotto trovato da Fact Finder;

--> In realtà passa tutto da: 
1. addToCartAjax -> addToCartAjaxMultiple;
2. addSelectionToCart -> addToCartAjaxMultiple.

*/
function saveSearch(searchPhrase,Prod)
{
	try
	{
		/* Devo inviare la stringa di ricerca solo per il prodotto della scheda e non per i suoi suggerimenti. */
		if( typeof(prodcode) != 'undefined' && prodcode != Prod )
			return;

		var emark=new Emark(); 
		emark.saveSearch(searchPhrase,Prod); 
		emark.commit();
	}
	catch(e)
	{
		tracking_log(e);
	}
}


/* Se una "modifica al carrello" determina la scomparsa di un prodotto dal carrello, dobbiamo indicare ad
Avail che può riprendere a posizionarlo tra i suggerimenti. 

Dove viene richiamata:
1. Tasto X nel minicart;
2. Tasto X nel carrello;
3. Ricalcolo della quantità a 0 nel cart.

--> In realtà passa tutto da: 
1. removeToCartAjax
2. currentReq

*/

function logRemovedFromCart(Prod,Source,submitNode)
{
	try{
		
			/* questo è il caso particolare del cart quando si preme il pulsante per il ricalcolo della quantità impostata a 0. */
			if ( typeof(Source) !== 'undefined' && Source == 0 && document.getElementById(Prod + "_qty").value > 0 )
				return;
				
			var emark=new Emark(); 
			emark.logRemovedFromCart(Prod);
			
			emark.commit( function(){
				
				if( Source ) /* bottone X */
					document.location = submitNode.href;
				else/* ricalcolo a quantità 0 */
				{
					/* La form che contiene il tasto per il ricalcolo, contiene anche il tasto di aggiunta del buono sconto. Entrambi sono di tipo submit e provocano un POST della form. Quest'ultima, richiama una pipeline che si basa sul nome del tasto per intraprendere l'azione corretta. Il classico Form.submit() non può quindi essere applicato. Devo così togliere l'onclick per evitare un loop e poi click.  */
					
					submitNode.onclick = null;
					submitNode.click();
				}
					
			});
			
			/* Serve a bloccare il submit della form del CART in attesa del commit di Avail. */
			return false;
			
	}
	catch(e){tracking_log(e);}
}

/***********************************************************************************************************************
**********************************************************TYP***********************************************************
***********************************************************************************************************************/

function googleAdwords(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	/*
	
	Il tracciamento base di Google AdWords è molto semplice: si settano delle variabili e si importa una libreria che una volta scaricata, crea una serie di strutture per l'invio delle info di tracciamento.
	
	Nel nostro caso questo non è possibile perché dobbiamo poter determinare l'ordine di esecuzione dei tracciamenti. Non possiamo includere dinamicamente la libreria perché i browser la rendono disponibile, ma non viene eseguita sull'onload. Si potrebbe richiedere la libreria via Ajax da Google così da avere sempre la versione aggiornata, ma ci si scontrerebbe con la politica cross-domain sulla sicurezza. Alla fine si è deciso di trasformare il codice della libreria in un testo da eseguire con una eval(). Il problema finale, è che il codice di tracciamento di Google eseguito così è distruttivo della pagina ospitante. E' stata così creata una sandbox basata su iFrame che si legge i parametri del parent ed esegue la sua eval.
	
	Noi gestiamo due account di AdWords, ma questo è un dettaglio che si traduce semplicemente in una doppia esecuzione a parametri cambiati.
	
	Si riporta l'url dello strumento di conversione a testo ed il codice non convertito.
	
	http://www.howtocreate.co.uk/tutorials/jsexamples/syntax/prepareInline.html
	
	*************************
	
	<script language="javascript">
	
	conversion_lib = '(function(){var d=null;var h=\"google_conversion_id,google_conversion_format,google_conversion_type,google_conversion_order_id,google_conversion_language,google_conversion_value,google_conversion_domain,google_conversion_label,google_conversion_color,google_disable_viewthrough,google_remarketing_only,google_conversion_items,google_custom_params,google_conversion_date,google_conversion_time,google_conversion_js_version,onload_callback,opt_image_generator,google_is_call\".split(\",\");\nfunction i(b){return b!=d?escape(b.toString()):\"\"}function j(b,a){var e=i(a);if(\"\"!=e){var c=i(b);if(\"\"!=c)return\"&\".concat(c,\"=\",e)}return\"\"}function k(b){var a=typeof b;return b==d||\"object\"==a||\"function\"==a?d:(\"\"+b).replace(\/,\/g,\"\\\\,\").replace(\/;\/g,\"\\\\;\").replace(\/=\/g,\"\\\\=\")}\nfunction l(b){var a;b=b.google_custom_params;if(!b||\"object\"!=typeof b||\"function\"==typeof b.join)a=\"\";else{var e=[];for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var c=b[a];if(c&&\"function\"==typeof c.join){for(var f=[],g=0;g<c.length;++g){var s=k(c[g]);s!=d&&f.push(s)}c=0==f.length?d:f.join(\",\")}else c=k(c);(f=k(a))&&c!=d&&e.push(f+\"=\"+c)}a=e.join(\";\")}return\"\"==a?\"\":\"&\".concat(\"data=\",encodeURIComponent(a))}\nfunction m(b){return\"number\"!=typeof b&&\"string\"!=typeof b?\"\":i(b.toString())}function n(b){if(!b)return\"\";b=b.google_conversion_items;if(!b)return\"\";for(var a=[],e=0,c=b.length;e<c;e++){var f=b[e],g=[];f&&(g.push(m(f.value)),g.push(m(f.quantity)),g.push(m(f.item_id)),g.push(m(f.adwords_grouping)),g.push(m(f.sku)),a.push(\"(\"+g.join(\"*\")+\")\"))}return 0<a.length?\"&item=\"+a.join(\"\"):\"\"}\nfunction o(b,a,e){var c=[];if(b){var f=b.screen;f&&(c.push(j(\"u_h\",f.height)),c.push(j(\"u_w\",f.width)),c.push(j(\"u_ah\",f.availHeight)),c.push(j(\"u_aw\",f.availWidth)),c.push(j(\"u_cd\",f.colorDepth)));b.history&&c.push(j(\"u_his\",b.history.length))}e&&\"function\"==typeof e.getTimezoneOffset&&c.push(j(\"u_tz\",-e.getTimezoneOffset()));a&&(\"function\"==typeof a.javaEnabled&&c.push(j(\"u_java\",a.javaEnabled())),a.plugins&&c.push(j(\"u_nplug\",a.plugins.length)),a.mimeTypes&&c.push(j(\"u_nmime\",a.mimeTypes.length)));\nreturn c.join(\"\")}function p(b,a){var e=\"\";if(a){var e=e+j(\"ref\",a.referrer!=d?a.referrer.toString().substring(0,256):\"\"),c=\"\";try{c=b&&b.top&&a.location&&b.top.location==a.location?a.location:b&&b.top&&b.top.location&&\"\"!=b.top.location?b.top.location:a.location}catch(f){c=a.location}e+=j(\"url\",c!=d?c.toString().substring(0,256):\"\")}return e}function q(b){return b&&b.location&&b.location.protocol&&\"https:\"==b.location.protocol.toString().toLowerCase()?\"https:\":\"http:\"}\nfunction r(b){return b.google_remarketing_only?\"googleads.g.doubleclick.net\":b.google_conversion_domain||\"www.googleadservices.com\"}\nfunction t(b,a){var e=navigator,c=document,f=\"\/?\";\"landing\"==a.google_conversion_type&&(f=\"\/extclk?\");var f=q(b)+\"\/\/\"+r(a)+\"\/pagead\/\"+[a.google_remarketing_only?\"viewthroughconversion\/\":\"conversion\/\",i(a.google_conversion_id),f,\"random=\",i(a.google_conversion_time)].join(\"\"),g;a:{g=a.google_conversion_language;if(g!=d){g=g.toString();if(2==g.length){g=j(\"hl\",g);break a}if(5==g.length){g=j(\"hl\",g.substring(0,2))+j(\"gl\",g.substring(3,5));break a}}g=\"\"}return f+=[j(\"cv\",a.google_conversion_js_version),\nj(\"fst\",a.google_conversion_first_time),j(\"num\",a.google_conversion_snippets),j(\"fmt\",a.google_conversion_format),j(\"value\",a.google_conversion_value),j(\"label\",a.google_conversion_label),j(\"oid\",a.google_conversion_order_id),j(\"bg\",a.google_conversion_color),g,j(\"guid\",\"ON\"),j(\"disvt\",a.google_disable_viewthrough),j(\"is_call\",a.google_is_call),n(a),o(b,e,a.google_conversion_date),p(b,c),l(a)].join(\"\")}\nfunction u(){var b=v,a=v,e=t(b,a),c=function(a,b,c){return\'<img height=\"\'+c+\'\" width=\"\'+b+\'\" border=\"0\" src=\"\'+a+\'\" \/>\'};return 0==a.google_conversion_format&&a.google_conversion_domain==d?\'<a href=\"\'+(q(b)+\"\/\/services.google.com\/sitestats\/\"+({ar:1,bg:1,cs:1,da:1,de:1,el:1,en_AU:1,en_US:1,en_GB:1,es:1,et:1,fi:1,fr:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,iw:1,ja:1,ko:1,lt:1,nl:1,no:1,pl:1,pt_BR:1,pt_PT:1,ro:1,ru:1,sk:1,sl:1,sr:1,sv:1,th:1,tl:1,tr:1,vi:1,zh_CN:1,zh_TW:1}[a.google_conversion_language]?a.google_conversion_language+\n\".html\":\"en_US.html\")+\"?cid=\"+i(a.google_conversion_id))+\'\" target=\"_blank\">\'+c(e,135,27)+\"<\/a>\":1<a.google_conversion_snippets||3==a.google_conversion_format?c(e,1,1):\'<iframe name=\"google_conversion_frame\" width=\"\'+(2==a.google_conversion_format?200:300)+\'\" height=\"\'+(2==a.google_conversion_format?26:13)+\'\" src=\"\'+e+\'\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\">\'+c(e.replace(\/\\?random=\/,\"?frame=0&random=\"),1,1)+\"<\/iframe>\"};var v=window;\nif(v)if(\/[\\?&;]google_debug\/.exec(document.URL)!=d){var w=v,x=document.getElementsByTagName(\"head\")[0];x||(x=document.createElement(\"head\"),document.getElementsByTagName(\"html\")[0].insertBefore(x,document.getElementsByTagName(\"body\")[0]));var y=document.createElement(\"script\");y.src=q(window)+\"\/\/\"+r(w)+\"\/pagead\/conversion_debug_overlay.js\";x.appendChild(y)}else{try{var z;var A=v;\"landing\"==A.google_conversion_type||!A.google_conversion_id||A.google_remarketing_only&&A.google_disable_viewthrough?z=\n!1:(A.google_conversion_date=new Date,A.google_conversion_time=A.google_conversion_date.getTime(),A.google_conversion_snippets=\"number\"==typeof A.google_conversion_snippets&&0<A.google_conversion_snippets?A.google_conversion_snippets+1:1,\"number\"!=typeof A.google_conversion_first_time&&(A.google_conversion_first_time=A.google_conversion_time),A.google_conversion_js_version=\"7\",0!=A.google_conversion_format&&1!=A.google_conversion_format&&2!=A.google_conversion_format&&3!=A.google_conversion_format&&\n(A.google_conversion_format=1),z=!0);z&&document.write(u())}catch(B){}for(var C=v,D=0;D<h.length;D++)C[h[D]]=d};})();\n';
	
	var google_conversion_language = "it";
	var google_conversion_format = "3";
	var google_conversion_color = "ffffff";
	var google_conversion_id = parent.google_conversion_id_search;
	var google_conversion_label = parent.google_conversion_label_search;
	var google_conversion_value = parent.totalPrice;
	
	eval(conversion_lib);
	
	var google_conversion_id = parent.google_conversion_id_display;
	var google_conversion_label = parent.google_conversion_label_display;
	
	eval(conversion_lib);
	
	</script>
	
	*/
	
	var iframe = document.createElement('iframe');
	iframe.src = '';
	document.body.appendChild(iframe);

	iframe.contentDocument.write('<script language=\"javascript\">\n\nconversion_lib = \'(function(){var d=null;var h=\\\"google_conversion_id,google_conversion_format,google_conversion_type,google_conversion_order_id,google_conversion_language,google_conversion_value,google_conversion_domain,google_conversion_label,google_conversion_color,google_disable_viewthrough,google_remarketing_only,google_conversion_items,google_custom_params,google_conversion_date,google_conversion_time,google_conversion_js_version,onload_callback,opt_image_generator,google_is_call\\\".split(\\\",\\\");\\nfunction i(b){return b!=d?escape(b.toString()):\\\"\\\"}function j(b,a){var e=i(a);if(\\\"\\\"!=e){var c=i(b);if(\\\"\\\"!=c)return\\\"&\\\".concat(c,\\\"=\\\",e)}return\\\"\\\"}function k(b){var a=typeof b;return b==d||\\\"object\\\"==a||\\\"function\\\"==a?d:(\\\"\\\"+b).replace(\\\/,\\\/g,\\\"\\\\\\\\,\\\").replace(\\\/;\\\/g,\\\"\\\\\\\\;\\\").replace(\\\/=\\\/g,\\\"\\\\\\\\=\\\")}\\nfunction l(b){var a;b=b.google_custom_params;if(!b||\\\"object\\\"!=typeof b||\\\"function\\\"==typeof b.join)a=\\\"\\\";else{var e=[];for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var c=b[a];if(c&&\\\"function\\\"==typeof c.join){for(var f=[],g=0;g<c.length;++g){var s=k(c[g]);s!=d&&f.push(s)}c=0==f.length?d:f.join(\\\",\\\")}else c=k(c);(f=k(a))&&c!=d&&e.push(f+\\\"=\\\"+c)}a=e.join(\\\";\\\")}return\\\"\\\"==a?\\\"\\\":\\\"&\\\".concat(\\\"data=\\\",encodeURIComponent(a))}\\nfunction m(b){return\\\"number\\\"!=typeof b&&\\\"string\\\"!=typeof b?\\\"\\\":i(b.toString())}function n(b){if(!b)return\\\"\\\";b=b.google_conversion_items;if(!b)return\\\"\\\";for(var a=[],e=0,c=b.length;e<c;e++){var f=b[e],g=[];f&&(g.push(m(f.value)),g.push(m(f.quantity)),g.push(m(f.item_id)),g.push(m(f.adwords_grouping)),g.push(m(f.sku)),a.push(\\\"(\\\"+g.join(\\\"*\\\")+\\\")\\\"))}return 0<a.length?\\\"&item=\\\"+a.join(\\\"\\\"):\\\"\\\"}\\nfunction o(b,a,e){var c=[];if(b){var f=b.screen;f&&(c.push(j(\\\"u_h\\\",f.height)),c.push(j(\\\"u_w\\\",f.width)),c.push(j(\\\"u_ah\\\",f.availHeight)),c.push(j(\\\"u_aw\\\",f.availWidth)),c.push(j(\\\"u_cd\\\",f.colorDepth)));b.history&&c.push(j(\\\"u_his\\\",b.history.length))}e&&\\\"function\\\"==typeof e.getTimezoneOffset&&c.push(j(\\\"u_tz\\\",-e.getTimezoneOffset()));a&&(\\\"function\\\"==typeof a.javaEnabled&&c.push(j(\\\"u_java\\\",a.javaEnabled())),a.plugins&&c.push(j(\\\"u_nplug\\\",a.plugins.length)),a.mimeTypes&&c.push(j(\\\"u_nmime\\\",a.mimeTypes.length)));\\nreturn c.join(\\\"\\\")}function p(b,a){var e=\\\"\\\";if(a){var e=e+j(\\\"ref\\\",a.referrer!=d?a.referrer.toString().substring(0,256):\\\"\\\"),c=\\\"\\\";try{c=b&&b.top&&a.location&&b.top.location==a.location?a.location:b&&b.top&&b.top.location&&\\\"\\\"!=b.top.location?b.top.location:a.location}catch(f){c=a.location}e+=j(\\\"url\\\",c!=d?c.toString().substring(0,256):\\\"\\\")}return e}function q(b){return b&&b.location&&b.location.protocol&&\\\"https:\\\"==b.location.protocol.toString().toLowerCase()?\\\"https:\\\":\\\"http:\\\"}\\nfunction r(b){return b.google_remarketing_only?\\\"googleads.g.doubleclick.net\\\":b.google_conversion_domain||\\\"www.googleadservices.com\\\"}\\nfunction t(b,a){var e=navigator,c=document,f=\\\"\\\/?\\\";\\\"landing\\\"==a.google_conversion_type&&(f=\\\"\\\/extclk?\\\");var f=q(b)+\\\"\\\/\\\/\\\"+r(a)+\\\"\\\/pagead\\\/\\\"+[a.google_remarketing_only?\\\"viewthroughconversion\\\/\\\":\\\"conversion\\\/\\\",i(a.google_conversion_id),f,\\\"random=\\\",i(a.google_conversion_time)].join(\\\"\\\"),g;a:{g=a.google_conversion_language;if(g!=d){g=g.toString();if(2==g.length){g=j(\\\"hl\\\",g);break a}if(5==g.length){g=j(\\\"hl\\\",g.substring(0,2))+j(\\\"gl\\\",g.substring(3,5));break a}}g=\\\"\\\"}return f+=[j(\\\"cv\\\",a.google_conversion_js_version),\\nj(\\\"fst\\\",a.google_conversion_first_time),j(\\\"num\\\",a.google_conversion_snippets),j(\\\"fmt\\\",a.google_conversion_format),j(\\\"value\\\",a.google_conversion_value),j(\\\"label\\\",a.google_conversion_label),j(\\\"oid\\\",a.google_conversion_order_id),j(\\\"bg\\\",a.google_conversion_color),g,j(\\\"guid\\\",\\\"ON\\\"),j(\\\"disvt\\\",a.google_disable_viewthrough),j(\\\"is_call\\\",a.google_is_call),n(a),o(b,e,a.google_conversion_date),p(b,c),l(a)].join(\\\"\\\")}\\nfunction u(){var b=v,a=v,e=t(b,a),c=function(a,b,c){return\\\'<img height=\\\"\\\'+c+\\\'\\\" width=\\\"\\\'+b+\\\'\\\" border=\\\"0\\\" src=\\\"\\\'+a+\\\'\\\" \\\/>\\\'};return 0==a.google_conversion_format&&a.google_conversion_domain==d?\\\'<a href=\\\"\\\'+(q(b)+\\\"\\\/\\\/services.google.com\\\/sitestats\\\/\\\"+({ar:1,bg:1,cs:1,da:1,de:1,el:1,en_AU:1,en_US:1,en_GB:1,es:1,et:1,fi:1,fr:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,iw:1,ja:1,ko:1,lt:1,nl:1,no:1,pl:1,pt_BR:1,pt_PT:1,ro:1,ru:1,sk:1,sl:1,sr:1,sv:1,th:1,tl:1,tr:1,vi:1,zh_CN:1,zh_TW:1}[a.google_conversion_language]?a.google_conversion_language+\\n\\\".html\\\":\\\"en_US.html\\\")+\\\"?cid=\\\"+i(a.google_conversion_id))+\\\'\\\" target=\\\"_blank\\\">\\\'+c(e,135,27)+\\\"<\\\/a>\\\":1<a.google_conversion_snippets||3==a.google_conversion_format?c(e,1,1):\\\'<iframe name=\\\"google_conversion_frame\\\" width=\\\"\\\'+(2==a.google_conversion_format?200:300)+\\\'\\\" height=\\\"\\\'+(2==a.google_conversion_format?26:13)+\\\'\\\" src=\\\"\\\'+e+\\\'\\\" frameborder=\\\"0\\\" marginwidth=\\\"0\\\" marginheight=\\\"0\\\" vspace=\\\"0\\\" hspace=\\\"0\\\" allowtransparency=\\\"true\\\" scrolling=\\\"no\\\">\\\'+c(e.replace(\\\/\\\\?random=\\\/,\\\"?frame=0&random=\\\"),1,1)+\\\"<\\\/iframe>\\\"};var v=window;\\nif(v)if(\\\/[\\\\?&;]google_debug\\\/.exec(document.URL)!=d){var w=v,x=document.getElementsByTagName(\\\"head\\\")[0];x||(x=document.createElement(\\\"head\\\"),document.getElementsByTagName(\\\"html\\\")[0].insertBefore(x,document.getElementsByTagName(\\\"body\\\")[0]));var y=document.createElement(\\\"script\\\");y.src=q(window)+\\\"\\\/\\\/\\\"+r(w)+\\\"\\\/pagead\\\/conversion_debug_overlay.js\\\";x.appendChild(y)}else{try{var z;var A=v;\\\"landing\\\"==A.google_conversion_type||!A.google_conversion_id||A.google_remarketing_only&&A.google_disable_viewthrough?z=\\n!1:(A.google_conversion_date=new Date,A.google_conversion_time=A.google_conversion_date.getTime(),A.google_conversion_snippets=\\\"number\\\"==typeof A.google_conversion_snippets&&0<A.google_conversion_snippets?A.google_conversion_snippets+1:1,\\\"number\\\"!=typeof A.google_conversion_first_time&&(A.google_conversion_first_time=A.google_conversion_time),A.google_conversion_js_version=\\\"7\\\",0!=A.google_conversion_format&&1!=A.google_conversion_format&&2!=A.google_conversion_format&&3!=A.google_conversion_format&&\\n(A.google_conversion_format=1),z=!0);z&&document.write(u())}catch(B){}for(var C=v,D=0;D<h.length;D++)C[h[D]]=d};})();\\n\';\n\nvar google_conversion_language = \"it\";\nvar google_conversion_format = \"3\";\nvar google_conversion_color = \"ffffff\";\nvar google_conversion_id = parent.google_conversion_id_search;\nvar google_conversion_label = parent.google_conversion_label_search;\nvar google_conversion_value = parent.totalPrice;\n\neval(conversion_lib);\n\nvar google_conversion_id = parent.google_conversion_id_display;\nvar google_conversion_label = parent.google_conversion_label_display;\n\neval(conversion_lib);\n\n<\/script>');

}


function eCommerce(){ 

	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	try{sendevent('_addTransaction',orderNo,basketNo,totalPrice,'0','0','1','IT',invoiceToAddress)}
	catch(e){tracking_log(e);}
}


function ebay(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	var url = null;
	
	if ( window.location.hostname.search('mediashopping') > -1 )
		url="https://mediashopping.trackset.it/track/cl.gif?referer=http%3A//"+window.location.hostname+"/&doorway=http%3A%2F%2F"+window.location.hostname+"%2FAcquisto.html%3Fvfs30%3D"+totalPrice+"%26codOrdine%3D"+orderNo+"%26CheckOutMediashopping%3D1&ip="+ip+"&agent="+encodeURIComponent(navigator.userAgent)+"&md5=45c48cce2e2d7fbdea1afc51c7c6ad26&mysez=cl_force";
	else
		url="https://mediashopping.trackset.it/track/cl.gif?referer=http%3A//"+window.location.hostname+"/&doorway=http%3A%2F%2F"+window.location.hostname+"%2FAcquisto.html%3Fvfs30%3D"+totalPrice+"%26codOrdine%3D"+orderNo+"%26CheckOutForYou%3D1&ip="+ip+"&agent="+encodeURIComponent(navigator.userAgent)+"&md5=45c48cce2e2d7fbdea1afc51c7c6ad26&mysez=cl_force";

loaderImg(url);

}


function zanox(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	/* leggo il cookie ms_affiliazione creato con source=zanox nell'url */
	if( readCookie( 'ms_affiliazione' ) && readCookie( 'ms_affiliazione' ).search( 'zanox' ) > -1 )
		loaderImg( "https://ad.zanox.com/pps/?"+programID+"&mode=[[2]]"+trackBackUrl );
}


function tradedoubler(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	/* letto dal cookie ms_affiliazione creato con source=tradedoubler&tduid= nell'url */
	if( readCookie( 'ms_affiliazione' ) && readCookie( 'ms_affiliazione' ).search( 'tradedoubler' ) > -1 ){
		for ( i=0; i<trackBackUrlsArray.length; i++){
				loaderImg( "https://tbs.tradedoubler.com/report?"+trackBackUrlsArray[i] );
		}
	}
}


function googleAnalytics(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	try{_gaq.push(['_addTrans', orderNo,( window.location.hostname.search('mediashopping') > -1 ? 'mediashopping' : 'foryou'), totalPrice, '', '', '', '', '']);}
	catch(e){tracking_log(e);}
	
	var i=0;
	for (i=0; i<productSkusArray.length; i++)
	{
		try{
			_gaq.push(['_addItem',orderNo,productSkusArray[i],productNamesArray[i],productCategorysArray[i],productSinglePricePCsArray[i],productQuantitysArray[i]]);
		}	catch(e){tracking_log(e);}
	}
	
	try{_gaq.push(['_trackTrans']);}
	catch(e){tracking_log(e);}	
}


function avail(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	var emark = new Emark();
	var recommendedProducts = emark.logPurchase('XbgK1BUNfGgAAAEsmGoJJE_H', productProductIDsArray, productPricesArray);
	emark.commit();		
}


function facebook(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	loaderScriptEst("//ah8.facebook.com/js/conversions/tracking.js");
	
	try { FB.Insights.impression({'id':6002471658129, 'h':'87f8f5f277' });}
	catch(e){tracking_log(e);}
}


function yahoo(){
	
	if(page != 'requisition/CurrentReq_Finished')
	return;
	
	window.ysm_customData = new Object();
	window.ysm_customData.conversion = "transId='"+orderNo+"',currency=EUR,amount="+totalPrice;
	ysm_accountid = "18J3JV5UBUOV45MIE7LIA8UCBFG";
	
	loaderScriptEst( "//srv3.wa.marketingsolutions.yahoo.com/script/ScriptServlet?aid=" + ysm_accountid );

}


/***********************************************************************************************************************
************************************************************************************************************************
***********************************************************************************************************************/

function tracking_support_lib() {
  
  	ebay();
  	eCommerce(); /* TRACKSET ConversionLab ECommerce */
  	cl_PageLoadTime();
  	impressions(tag, page); /* invia le impressions per Trackset */
	availability(); /* tracciamento sulla disponibilità */
  	googleAnalytics();
  	googleAdwords();
  	yahoo(); /* YAHOO Advertising */
	avail(); /* AVAIL ECommerce */
	zanox();
	tradedoubler();	
	facebook();
	
}

Event.observe(window, 'load', function() {
  	tracking_support_lib();
});
