/*
[UPD]	P:\IG_IntelyGenZ\IG11_Desarrollo_Librerias\IG11_01_Js\src\msn\msn_i_hits.js
[PRO]	http://217.116.22.243/especiales/libs/msn_i_hits.js
[EJE]	http://salon.motor.msn.es/salon/Geneva2007/photogallerypopup.aspx?cp-documentid=4058292&photo-number=2#
	1. Popup con roba:	M:\msn_msn\msn07_aspnet2\www\msn07_02_loteria07\premios.aspx
	2. Roba en iframe:	http://especiales.es.msn.com/noticias/elecciones08/tortura/
	3. Generar solo una página vista: M:\msn_msn\msn07_aspnet2\www\msn10_canales\deportes\directos_messenger\futbol\default.html

v0.410 [new] RefrescarDaps [fix] Añadimos la variable a_sOmni 	[Manuel 20.1.2010]
v0.405 [doc] Actualizado	[Manuel 13.11.2009]
v0.404 [doc] Actualizado	[Jose Antonio 4.9.2009]
v0.403 [doc] Actualizado	[Manuel 2.12.2008]
v0.402 [doc] Actualizado	[Manuel 4.8.2008]
v0.401 [fix] GenerarPageHit	[new] sError	[Manuel 12.2.2008]
v0.400 [new] GenerarPageHit	[new] a_sOmni	[upd] cambiamos nombre de refresh_inroba.js a msn_i_hits.js  [Manuel 11.2.2008]
	   [dep] cambiaRoba	[dep] createPageHit
v0.320 [fix] createPageHit	[Manuel 11.2.2008]
v0.310 [new] g_oTagsDoc 	[Manuel 4.2.2008]				
v0.305 [new] g_oCtag 	[Manuel 1.2.2008]			
v0.304 [upd] docs	[Manuel 1.2.2008]			
v0.303 [fix] createPageHit: sin tiempo no refresca c.gif	[Manuel 1.2.2008]
v0.302 [upd] docs	[29.1.2008]
v0.301 [upd] refreshDapAd	(10.12.2007)
v0.300 [new] (24.9.2007 Manuel)

*** REQUISITOS ***
RefrescarDaps() 
RefrescarRoba ()
CambiaDapAd (nAP) 
CambiaRoba() [DEPRECADO: usar RefrescarDaps() o RefrescarRoba ()] 
	llaman a refreshDapAd() que requiere:
	http://ads1.msn.com/library/dap.js

GenerarPageHit() requiere:
	http://estj.msn.com/br/om/js/s_code.js

Esta libreria deberia valer para cualquier ROBA y SUPER
0. Recomendable usar siempre la misma de PRO por si algun dia la cambian
	http://217.116.22.243/especiales/libs/msn_i_hits.js
   Una forma facil de usarla es cargarla desde la libreria JS que estemos usando en el sitio	
	sScript = '<scr'+'ipt src="http://217.116.22.243/especiales/libs/msn_i_hits.js" type="text/javascript" language="JavaScript"></scr'+'ipt>'
	//sScript = '<scr'+'ipt src="libs/msn_i_hits.js" type="text/javascript" language="JavaScript"></scr'+'ipt>'
	document.write(sScript);
   Hay un ejemplo de esto en:
	M:\msn_msn\msn07_aspnet2\www\msn07_04_e08_video\libs\elecciones08.js

(1,2 y 3 no suelen hacer falta tocarlas salvo que en el futuro cambien algo en MSN, y basta con seguir el punto 3.)
1. g_sRobaClass= "advertisement";	//esta clase la pone Bedrock a los add, si la cambian hay que cambiarla !!!
	EL <SCRIPT> tiene que estar dentro de un DIV con esta clase
2. (Esto ya no es necesario) g_nAP = 1089;					//(1089) AP del que vamos a cambiar (roba/super 1089/1390)
3. En caso de que usemos un Iframe, puede que necesitemos redefinir : g_oTagsDoc
	Hay un ejemplo de g_oTagsDoc = top; en: 
	M:\msn_msn\msn07_aspnet2\www\msn07_05_e08_preguntas\votacion_page.aspx 
4. 	a_sOmni es siempre opcional, pero si no estamos en una página de Bedrock es necesario
	Con a_sOmni se pueden actualizar algunos valores del pageHit que se genera
	var a_sOmni=['pageName','elecciones - cara a cara'
				,'charSet','UTF-8'
				,'linkInternalFilters','javascript:,noticias.es.msn.com'
				,'server','noticias.es.msn.com'
				,'channel','ES-News'
				,'prop1','ES-News'
				,'prop2','es'
				,'prop22','True'
				,'prop25','01:05:1967'
				,'prop26','m'
				,'prop3','elecciones'
				,'prop4','elecciones'
				,'prop5','elecciones - cara a cara'
				]
5. Si queremos incluir el tagging en una pagina creada desde cero, tendremos que hacer lo siguiente:
		- incluir un IMG sólo con el id "ctag", que se usará para especificar los IDSS (DI, PI, PS) --> <IMG id='ctag'>
		- inicializar la variable 'g_sCtag' de la siguiente forma:
				- le ponemos la URL --> http://c.msn.com/c.gif?di=&pi=&ps=&tp=&rf=
				- en la cual especificaremos los valores adecuados para DI, PI, PS y TP. Este ultimo será la URL de nuestra página 
					var nDI = 1229, nPI = 9539, nPS = 10300;
					g_sCtag = "http://c.msn.com/c.gif?di="+ nDI +"&pi="+ nPI +"&ps="+ nPS +"&tp="+ parent.document.location.href +"&rf=";
		- incluir un DIV con el id "omni", que se usará para especificar el tagging de omniture -- <DIV id='omni'></DIV>
		- hacer una llamada a 'GenerarPageHit([a_sOmni])', donde podemos pasarle 'a_sOmni' con los tags correspondientes
	 		EJEMPLO: M:\msn_msn\msn07_aspnet2\www\msn10_canales\deportes\directos_messenger\futbol\default.html
	 Si queremos pintar el roba desde una librería, tenemos que hacerlo así:
	    sHTML= "<DIV class='advertisement'>"
			+ "<SCR"+"IPT type=text/javascript>dap('&amp;PG=ES9R13&amp;AP=1089',300,200);</SCR"+"IPT>"
			+ "</DIV>";
	 	EJEMPLO: M:\msn_msn\msn07_aspnet2\www\msn07_15_termometro\www\default.aspx

	 NOTA: Recordad que 'GenerarPageHit' requiere la libreria 'http://estj.msn.com/br/om/js/s_code.js'.
	 		Para que esta libreria funcione correctamente, es necesario tener definida previamente la variable 's_account'.
6. Lo normal es llamar a RefrescarDaps() desde una funcion o usar un timer para cambiar Super, Roba y generar un impacto 
		setInterval('RefrescarDaps()',60000);
	- Para refrescar solo el Roba y crear un impacto llamar a RefrescarRoba() 
	- Si solo queremos generar un impacto de página vista
		GenerarPageHit([a_sOmni])
*/

var g_sRobaClass= "advertisement";		//Poner esta clase al Roba
var g_nAP = 1089;		//(1089) AP del que vamos a cambiar (roba/super 1089/1390)

var a_sOmni = null;

var g_sCtag;
var g_oCtag;		//permite definir el oCTag que nos interesa
var g_oTagsDoc=null;

var g_hBanner = {};
var pgValue=null;
var apValue=null;
var dapWidth=null;
var dapHeight=null;
var dapAddiv=null;
var adCallRotation=false;


function RefrescarDaps () {	//406
	CambiaDapAd(1390);
	CambiaDapAd(1089);
	GenerarPageHit(a_sOmni);	
}

function CambiaRoba () {	//Deprecado: usar RefrescarDaps() o RefrescarRoba()
	try {
		RefrescarDaps();	//En general no tiene sentido refrescar solo el Roba, pero puede dar errores
	}
	catch(Ex){
		status = "CambiaRoba:" +Ex;	//+ Ex;
		return;
	}
//	refreshDapAd(1089);
//	GenerarPageHit(a_sOmni);	
}

function RefrescarRoba () {
	refreshDapAd(1089);
	GenerarPageHit(a_sOmni);	
}

function CambiaDapAd (nAP) {
	refreshDapAd(nAP);
}

//Para compatibilidad
function cambiaRoba() {
	CambiaRoba()
}
/* Da error
function createPageHit(){	
	GenerarPageHit()
}
*/

function GenerarPageHit(a_sOmni){
	var oS,f,s_code;
	var sError = "init";
	try{
		sError = "No existe s o g_oTagsDoc da error";
		var oDoc = document;
		if (g_oTagsDoc) {
			oDoc = g_oTagsDoc.document
			oS = g_oTagsDoc.s
		}
		else{
			oS = s
		}
		if(oDoc.getElementById('omni')){
			sError = "Error con a_sOmni";
			if (a_sOmni){
				for (f=0;f<a_sOmni.length;f=f+2){
					oS[a_sOmni[f]] = a_sOmni[f+1]	
				}	
			}
			sError = "Error con s_code";
			s_code= oS.t();
			if(s_code) oDoc.write(s_code);
//alert ("OMNI:"+s_code+"\n"+oS.pageName+"\n"+oS['prop5'])
		}
		if (!g_oCtag) g_oCtag = oDoc.getElementById('ctag')
		if(g_oCtag){
			if (!g_sCtag) g_sCtag = g_oCtag.src
//alert("CTAG:"+g_sCtag+"&"+new Date().getTime())
			g_oCtag.src=g_sCtag+"&"+new Date().getTime();
		}
	}
	catch(Ex){
		status = "GenerarPageHit:"+sError+"."+Ex;	//+ Ex;
		return;
	}

} 

function refreshDapAd(nAP){
	var nAPvalue;
	if (!nAP) nAP = g_nAP
	if(!dapSupportedBrowser()) return;
	try{
		if(!g_hBanner[nAP]){		//tenemos ya el DIV en el hash de AP?
			var allDivs=document.getElementsByTagName("div");
//alert("["+nAP+"] "+allDivs.length)
			for(var i=0;i<allDivs.length;++i){
				if(g_sRobaClass==allDivs[i].getAttribute("className")||g_sRobaClass==allDivs[i].getAttribute("class")){
					dapAddiv=allDivs[i];
					getDapValues();					
//alert("["+nAP+"] "+i+"."+apValue)
					if (apValue==nAP) {

						hValues={}
						hValues["dapAddiv"]=dapAddiv;
						hValues["pgValue"]=pgValue;
						hValues["pgValue"]=pgValue;						
						hValues["dapWidth"]=dapWidth;						
						hValues["dapHeight"]=dapHeight;						
						hValues["adCallRotation"]=adCallRotation;		

						g_hBanner[apValue]=hValues;	//Guardamos un Hash con todos los valores en el hash de APs
		
						dapAddiv.setAttribute("id","autosadvertisement"+nAP);
						dapAddiv.setAttribute("name","autosadvertisement"+nAP);
						break;
					}
					else {
						dapAddiv=null;
					}
				}
			}
		}
		else {	//Cargamos valores 
			apValue = nAP;
			hValues = g_hBanner[nAP]
			dapAddiv = hValues["dapAddiv"];
			pgValue = hValues["pgValue"];
			dapWidth = hValues["dapWidth"]
			dapHeight = hValues["dapHeight"]
			adCallRotation = hValues["adCallRotation"]
		}

		if(dapAddiv){
//alert("["+nAP+"] AP="+apValue+",PG="+pgValue+",dapWidth="+dapWidth+",dapHeight="+dapHeight+",adCallRotation="+adCallRotation)
			dapAddiv.innerHTML='';
			if(adCallRotation){
				adShown=null;
				if(pageContentMediaMake!=null&&makeFlag!=false){
					dapMgr.enableACB("autosadvertisement"+nAP,false);
					dapMgr.renderAd("autosadvertisement"+nAP,"&AP="+apValue+"&PG="+pgValue+"&CATEGORY="+pageContentMediaCategory+"&MAKE="+pageContentMediaMake,dapWidth,dapHeight);
				}
				else{
					var totalNumber=0;
					for(i=0;i<sponserShare.length;i++){
						totalNumber+=parseInt(sponserShare[i]);
					}
					var randomnumber=Math.floor(Math.random()*totalNumber);
					dapMgr.enableACB("autosadvertisement"+nAP,false);
					dapMgr.renderAd("autosadvertisement"+nAP,"&AP="+apValue+"&PG="+pgValue+"&CATEGORY="+weightedCategories[randomnumber]+"&MAKE="+weightedShare[randomnumber],dapWidth,dapHeight);
				}
			}
			else {
				dapMgr.enableACB("autosadvertisement"+nAP,false);
				dapMgr.renderAd("autosadvertisement"+nAP,"&AP="+apValue+"&PG="+pgValue,dapWidth,dapHeight);
			}
		}
		else {
			//alert("No hay SUPER y/o ROBA válido creado")			
		}	
	}
	catch(Ex){
//alert("error"+Ex.toString())
	}
}


function getDapValues () {
//	if(!pgValue&&!apValue&&!dapWidth&&!dapHeight){
		apValue = null;
		var inner=dapAddiv.firstChild.innerHTML;
		if(inner.indexOf('setAutoMake')>0){
			inner=dapAddiv.firstChild.nextSibling.innerHTML;
		}
		var showDapValues=null;
		if(inner.indexOf('dap')<0){
			showDapValues=inner.substring(inner.indexOf(')'),inner.length);
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+1,showDapValues.length);
			pgValue=showDapValues.substring(0,showDapValues.indexOf('"'));
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+3,showDapValues.length);
			apValue=showDapValues.substring(0,showDapValues.indexOf('"'));
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+3,showDapValues.length);
			dapWidth=showDapValues.substring(0,showDapValues.indexOf('"'));
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+3,showDapValues.length);
			dapHeight=showDapValues.substring(0,showDapValues.indexOf('"'));
			adCallRotation=true;
		}
		else {
			showDapValues=inner.substring(inner.indexOf('(')+1,inner.length);
			var dapVars=showDapValues.split(",");
			var pgapVars=dapVars[0].split(";");
			pgValue=pgapVars[1].substring(pgapVars[1].indexOf('=')+1,pgapVars[1].indexOf('&'));
			apValue=pgapVars[2].substring(pgapVars[2].indexOf('=')+1,pgapVars[2].length-1);
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+3,showDapValues.length);
			dapWidth=dapVars[1];
			showDapValues=showDapValues.substring(showDapValues.indexOf('"')+3,showDapValues.length);
			dapHeight=dapVars[2].substring(0,dapVars[2].indexOf(')'));
			adCallRotation=false;
		}
		
		return(apValue)
//	}
}


function dapSupportedBrowser(){
	var ua=navigator.userAgent.toLowerCase();
	return(!(ua.indexOf("mac")!=-1));
}

