var xmlDoc;

var isDOM=document.getElementById?1:0,
isIE=document.all?1:0,
isNS4=navigator.appName=='Netscape'&&!isDOM?1:0,
isIE4=isIE&&!isDOM?1:0,
isOp=self.opera?1:0,
isDyn=isDOM||isIE||isNS4,
isWin=navigator.platform.indexOf('Win')!=-1?1:0;

var MWJ_ldD = [];
function importXML( oURL, oFunct, oNoRand, oDelay ) {
	//note: in XML importing event handlers, 'this' refers to window
	if( !oNoRand ) { oURL += ( ( oURL.indexOf('?') + 1 ) ? '&' : '?' ) + ( new Date() ).getTime(); } //prevent cache
	if( window.XMLHttpRequest ) {
		//alternate XMLHTTP request - Gecko, Safari 1.2+ and Opera 7.6+
		MWJ_ldD[MWJ_ldD.length] = new XMLHttpRequest();
		MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 && MWJ_ldD['+(MWJ_ldD.length-1)+'].status < 300 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+'].responseXML); }' );
		MWJ_ldD[MWJ_ldD.length-1].open("GET", oURL, true);
		MWJ_ldD[MWJ_ldD.length-1].send(null);
		return true;
	}
	if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'hidden'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		//onload only fires in Opera so I use a timer for all
		if( !window.MWJ_XML_timer ) { window.MWJ_XML_timer = window.setInterval('MWJ_checkXMLLoad();',100); }
		ifr.innerHTML = '<iframe src="'+oURL+'" name="MWJ_XML_loader_'+MWJ_ldD.length+'" height="0" width="0"><\/iframe>';
		MWJ_ldD[MWJ_ldD.length] = oFunct+'MWJ_SPLIT'+(oDelay?oDelay:1)+'';
		document.body.appendChild(ifr);
		return true;
	}
	return false;
}

function MWJ_checkXMLLoad() {
	//check if each imported file is available (huge files may not have loaded completely - nothing I can do - use the delay to help)
	for( var x = 0; x < MWJ_ldD.length; x++ ) { if( MWJ_ldD[x] && window.frames['MWJ_XML_loader_'+x] ) {
		setTimeout( MWJ_ldD[x].split('MWJ_SPLIT')[0] + '(window.frames.MWJ_XML_loader_'+x+'.window.document);', parseInt(MWJ_ldD[x].split('MWJ_SPLIT')[1]) );
		MWJ_ldD[x] = false;
	} }
}

function createDoc(xmlDoc2) {
	/* Konqueror insists that the timer can keep running until there are 20 alerts (the file is still in the list of files to
	be checked until at least one alert is dismissed), so I use a timer to delay the alert and allow my script to stop
	checking the file */
	if( xmlDoc2.documentElement && xmlDoc2.documentElement.tagName && xmlDoc2.documentElement.tagName.toUpperCase() == 'HTML' ) {
		setTimeout('alert(\'For no apparent reason, your browser has turned the clean XML into HTML based garbage.\\nScript aborted.\');',50); return; }

	/* the rest of this function is taken from PPK's script */
	var x = xmlDoc2.getElementsByTagName('barra');
	xmlDoc = x[0];
	getmessage();
}

function getRef(i, p)
{
	p=!p?document:p.navigator?p.document:p;
 	return isIE ? p.all[i] :
  	isDOM ? (p.getElementById?p:p.ownerDocument).getElementById(i) :
  	isNS4 ? p.layers[i] : null;
};

function loadXML()
{
	// IE
	/*if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.onreadystatechange=verify;
		xmlDoc.load("info_barra_financiera.xml");
		getmessage();
	} else if (window.opera) {*/
	importXML('info_barra_financiera.xml','createDoc');
	/*}
	// Mozilla, etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc= document.implementation.createDocument("","",null);
		xmlDoc.load("info_barra_financiera.xml");
  		xmlDoc.onload = getmessage;
	}
	else
	{
		alert('Your browser cannot handle this script');
	}*/
}
/*
function verify() {
	if (xmlDoc.readyState != 4)  {
		return false;
   }
}
*/
function getmessage()
{
	getRef("bid").innerHTML = getValue("","spot","bid");
	getRef("offer").innerHTML = getValue("","spot","offer");
	getRef("ultimo_hecho").innerHTML = getValue("spot","ultimo_hecho","valor");
	if (getValue("spot","ultimo_hecho","operacion") == "CO") {
		getRef("ultimo_hecho").className = "spotc";
	} else {
		getRef("ultimo_hecho").className = "spotv";
	}
	getRef("hora_informacion").innerHTML = getValue("","","hora_informacion");
	getRef("act").innerHTML = getValue("","fix","act");
	getRef("ant").innerHTML = getValue("","fix","ant");
	getRef("SUB1").innerHTML = getValue("sub","SUB1","etiqueta")+":";
	getRef("SUB1V").innerHTML = getValue("sub","SUB1","valor");
	getRef("SUB2").innerHTML = getValue("sub","SUB2","etiqueta")+":";
	getRef("SUB2V").innerHTML = getValue("sub","SUB2","valor");
	getRef("SUB3").innerHTML = getValue("sub","SUB3","etiqueta")+":";
	getRef("SUB3V").innerHTML = getValue("sub","SUB3","valor");
	getRef("SUB4").innerHTML = getValue("sub","SUB4","etiqueta")+":";
	getRef("SUB4V").innerHTML = getValue("sub","SUB4","valor");
	getRef("SUB5").innerHTML = getValue("sub","SUB5","etiqueta")+":";
	getRef("SUB5V").innerHTML = getValue("sub","SUB5","valor");
	getRef("SUB6").innerHTML = getValue("sub","SUB6","etiqueta")+":";
	getRef("SUB6V").innerHTML = getValue("sub","SUB6","valor");
	getRef("T1M").innerHTML = getValue("","mxibor","T1M");
	getRef("T3M").innerHTML = getValue("","mxibor","T3M");
	getRef("T6M").innerHTML = getValue("","mxibor","T6M");
	getRef("T12M").innerHTML = getValue("","mxibor","T12M");
	getRef("T28D").innerHTML = getValue("","TIIE","T28D");
	getRef("T91D").innerHTML = getValue("","TIIE","T91D");
	//getRef("T182D").innerHTML = getValue("","TIIE","T182D");
	getRef("LOBOS").innerHTML = getValue("","","LOBOS");
}

function getValue(grandpa, dad, son) {
	if (grandpa != "" && dad != "" && son != "") {
		if (xmlDoc.getElementsByTagName(grandpa)[0].getElementsByTagName(dad)[0].getElementsByTagName(son)[0].firstChild == null)
			return " ";
		else
			return xmlDoc.getElementsByTagName(grandpa)[0].getElementsByTagName(dad)[0].getElementsByTagName(son)[0].firstChild.nodeValue;
	} else if (dad != "" && son != "") {
		if (xmlDoc.getElementsByTagName(dad)[0].getElementsByTagName(son)[0].firstChild == null)
			return " ";
		else
			return xmlDoc.getElementsByTagName(dad)[0].getElementsByTagName(son)[0].firstChild.nodeValue;
	} else if (son != "") {
		if (xmlDoc.getElementsByTagName(son)[0].firstChild == null)
			return " ";
		else
			return xmlDoc.getElementsByTagName(son)[0].firstChild.nodeValue;
	} else {
		return " ";
	}
}
