// JavaScript Document
function bm_Class(){
	var show_delay = 0;		// delay to show menu in sec.
	var hide_delay = 0;		// delay to hide menu	 in sec.
	
	var POSX, POSY = null;
	var POSOV, MSHOWN = false;
	var shown_menu;

	
	//var speed = 2;
	//var nbottom = -310;
	//var ntop = -500;
	var speed = 3;
	var nbottom = -311-5 -45;
	var ntop = -311-5 -45;
	
	
	
	
	var id_show = null;
	var id_hide = null;	
	
	
	var id_drop = null;	
	this.check_menu_mouse = _check_menu_mouse;	
	this.check_doc_mouse = _check_doc_mouse; 	
	this.check_menu = _check_menu;	
	this.unshown_menu = _unshown_menu;	
	this.startpos = _startpos;
	this.show_menu = _show_menu;
	this.menust = _menust;
	this.hide_menu = _hide_menu;
	
		
	
	function GetElement(el){
		return document.getElementById(el);
	}
	
	function _check_menu(a) {
		if(POSOV == false){
			//GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		if(GetElement(shown_menu))
			GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
			unshown_menu();
		}else{
		
		}
	}
	
	function _unshown_menu() {
		
		clearTimeout(id_show);
		clearTimeout(id_drop);
		id_hide = window.setTimeout("bm.hide_menu()", hide_delay*1000);
	}
	
	function _hide_menu() {
		//GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		if(GetElement(shown_menu))GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		MSHOWN=false;
		GetElement("bm_bigmenu").style.visibility = "hidden";
		if(GetElement("bm_rss_container_out")!=null){GetElement("bm_rss_container_out").style.display="none";}
		if(GetElement("mainmenu1")!=null){GetElement("mainmenu1").style.display="none";}	
		if(GetElement("mainmenu2")!=null){GetElement("mainmenu2").style.display="none";}	
		if(GetElement("sponimg")!=null){GetElement("sponimg").style.display="none";}	
	
		nbottom = ntop;
		if(isNaN(GetElement("bm_bigmenu").style.top)){
			GetElement("bm_bigmenu").style.top = ntop+"px";
		}
		else{
			GetElement("bm_bigmenu").style.posTop = ntop;
		}
		GetElement("bm_bigmenu_out").style.height="40px";	
			
	}	
	
	function _show_menu() {
		//GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1ov.jpg) repeat-x left top";
		GetElement("bm_rss_container_out").style.display="none";
		nbottom+=15;
		if(GetElement(shown_menu))GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		if (nbottom > 0) {
			window.clearInterval(id_drop);
			change_menu(shown_menu);
		} else {
			
			GetElement("bm_bigmenu").style.top = nbottom + "px";
			GetElement("bm_bigmenu").style.posTop = nbottom;
		}
	}
	
	function _menust() {
		
		clearTimeout(id_show);
		clearTimeout(id_drop);
		
		if(isNaN(GetElement("bm_bigmenu").style.top)){
			GetElement("bm_bigmenu").style.top = nbottom+"px";
		}
		else{
			GetElement("bm_bigmenu").style.posTop = nbottom;
		}
		MSHOWN=true;		
		GetElement("bm_bigmenu_out").style.height = "40px";
		GetElement("bm_bigmenu").style.visibility = "visible";
		GetElement("bm_bigmenu_out").style.height = "340px";
		id_drop = window.setInterval("bm.show_menu()", speed);
	}	
	function _startpos(s) {
		if(shown_menu)
		//GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		if(GetElement(shown_menu))GetElement(shown_menu).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1.jpg) repeat-x left top";
		clearTimeout(id_show);
		clearTimeout(id_drop);		
		
		shown_menu=s;
		
		_unshown_menu();
		id_show = window.setTimeout("bm.menust()", show_delay*1000);
	}
	
	
	
	function _check_menu_mouse(e) {
		var x,y;
		if (window.event) {
			x = window.event.clientX;
			y = window.event.clientY;
			POSX= window.event.clientX;
			POSY= window.event.clientY;
		} else {
			x = e.pageX;
			y = e.pageY;
			POSY= e.pageY;			
			POSX= e.pageX;
		}	
		POSOV=true;
	} 
	function _check_doc_mouse(e) {
		var x,y;
		if (window.event) {
			x = window.event.clientX;
			y = window.event.clientY;
		} else {
			x = e.pageX;
			y = e.pageY;
		}
		
		if( x==POSX && y==POSY){
		}
		else{
			POSOV = false;
			_unshown_menu();
		}  
	}
	
		this.change_menu = change_menu;
		var XML_needed_tags = ["links", "Link", "topRSS", "spon"];
		var RSS_needed_tags = ["title", "link", "item"];	
		
		var dObj = new Date();
		var dStart, dEnd;
	
		var net=new Object();
		net.READY_STATE_UNINITIALIZED=0;
		net.READY_STATE_LOADING=1 ;
		net.READY_STATE_LOADED=2;
		net.READY_STATE_INTERACTIVE=3;
		net.READY_STATE_COMPLETE=4;
		net.ContentLoader=function(url,onload,type,onerror){
	
			this.url=url;
			this.type=type;
			this.req=null ;
			this.onload=onload;
			this.onerror=(onerror) ? onerror : this.defaultError;
			//alert("ContentLoader" + url);
			this.loadXMLDoc(url) ;
		}
		net.ContentLoader.prototype={
			
			loadXMLDoc:function(url){
			//alert("INSIDE CONTENT LOADER FUNCTION ");
			//'http://'+location.host+'/file.html'
			// url = "http://" +location.host+ "/Multimedia/Menu/proxy_xml.php?xml=" + url;
			// changed url variable when we moved proxy
			url = "http://" +location.host+ "/cgi-bin/proxy_xml.php?xml=" + url
			if (window.XMLHttpRequest){
				//alert("Start = NON IE BROWSER XMLHttpRequest = url= " + url);
				this.req=new XMLHttpRequest() ;
				//alert("end = XMLHttpRequest");
			} else if (window.ActiveXObject){
				//alert("Start = MICROSOFT SHIT XMLHttpRequest " + url);
				this.req=new ActiveXObject("Microsoft.XMLHTTP");
				//alert("end = Microsoft.XMLHTTP");
			}
			if (this.req){
				try{
					var loader=this;
					this.req.onreadystatechange=function(){
					loader.onReadyState.call(loader);
				}
					
					//alert("REQ CALL URL = " + url);
					this.req.open("GET", url);<!--, true -->
					this.req.send(null);
				
				}catch (err){
					alert("exception = Microsoft.XMLHTTP err=" + err);
					this.onerror.call(this) ;
				}
			}
		},
		onReadyState:function(){
			var req=this.req;
			var ready=req.readyState;
			//alert("onReadyState called -ready=" + ready);
			if (ready==net.READY_STATE_COMPLETE){
				var httpStatus=req.status;
				if (httpStatus==200 || httpStatus==0){<!-- -->
					//alert("A");
					this.onload.call(this);
				}else{
					//alert("B");
					this.onerror.call(this);
				}
			}
			
		},
		defaultError:function(){
			
		}
	
		}
		function parseXMLData(){
		//alert("parseXMLData PLEASE");
			if(this.type=="xml"){
				//alert("type = "+this.req.responseText);
				read_xml(this.req.responseText);
			} else
			{
				//alert("type = NOT XML");
				read_rss(this.req.responseText);
			}
		}
	
		function change_menu(id) {
			var dObj = new Date();
			dStart = dObj.getTime();
			
			GetElement(id).style.background="url(http://media.star-telegram.com/Menu/bm_images/bg1ov.jpg) repeat-x left top";
			if(GetElement("bm_circle")!=null){GetElement("bm_circle").style.display="block";}
			var menulink = bm_menu_xmls[id];
			var loader= new net.ContentLoader(menulink, parseXMLData, "xml");
		}	
		
	
		function read_xml(xml) {
			//alert("start reading xml");
			var xml = Xparse(xml);
			var xml_faund_tags = new Array();
			for(var i=0;i<XML_needed_tags.length;i++){
				xml_faund_tags.push(check_tag(xml, XML_needed_tags[i]));
			}		
			//alert("for loop 1");
			for(var n=0;n<2;n++){
				var output = GetElement("mainmenu"+(n+1));
				for(var i=0;i<output.childNodes.length;i++){
					output.removeChild(output.childNodes[i]);
				}
				var newNode = document.createElement("SPAN");
				output.appendChild(newNode);
				if(output.firstChild.nodeType!=1){output.removeChild(output.firstChild);}
				output1 = output.firstChild;
				//alert("output"+output.innerHTML);
				var k=0;
				//alert("tmp="+xml_faund_tags[n]);

				var tmp = xml_faund_tags[n].contents;
				
				//alert("tmp.length = " + tmp.length);
				
				try{
				for(var i=0;i<tmp.length;i++){
					if(tmp[i].attributes!=null){
						result = "<p class='bm_left"+(n+1)+"'><a href='"+tmp[i].attributes.ref+"'>"+tmp[i].attributes.name+"</a></p>"
						output1.innerHTML += result;
						//alert("result = " + result);
						//output1.getElementsByTagName("p")[k].className = "bm_left"+(n+1);
						}
					}
					
				}	
				catch(e)
				{
					alert("ERROR Inner loop = " + e);
				}
				
			}
			//alert("DONE reading xml");
			if(GetElement("mainmenu1")!=null){GetElement("mainmenu1").style.display="block";}	
			if(GetElement("mainmenu2")!=null){GetElement("mainmenu2").style.display="block";}	
			if(GetElement("bm_circle")!=null){GetElement("bm_circle").style.display="none";}			
			
			try{
				var rss_link = xml_faund_tags[2].contents[0].value;
			}catch(e)
			{
				alert("ERROR IS TRY = ");
			}
			
			if(rss_link){
				var loader= new net.ContentLoader(rss_link, parseXMLData, "rss");
			}
			var imgput = GetElement("sponimg");
			
			for(var i1=0;i1<imgput.childNodes.length;i1++){
				imgput.removeChild(imgput.childNodes[i1]);
			}
			var newNode = document.createElement("SPAN");
			imgput.appendChild(newNode);
			if(imgput.firstChild.nodeType!=1)imgput.removeChild(imgput.firstChild);
			imgput = imgput.firstChild;
			// Make the src html page dynamic based on what menu is selected or has mouseover 
			var iframeAd= bm_menu_news[shown_menu];
			
			imgput.innerHTML +=	"<iframe src ='" + iframeAd + "' marginwidth='0' marginheight='0' height='250px' width='300px' SCROLLING='no' FRAMEBORDER='0'></iframe>";
			if(GetElement("sponimg")!=null){GetElement("sponimg").style.display="block";}	
			try{
				var a= check_tag(xml_faund_tags[3], "a");
				try{
					var img = check_tag(a, "img");
				}catch(e)
				{}				
			}catch(e)
			{}			
			
			var dObj = new Date();
			dEnd = dObj.getTime();
		}
		var rssItems;
		function read_rss(rss) {
			var rss = Xparse(rss);
			
			var rss_faund_tags = new Array();
			for(var i=0;i<RSS_needed_tags.length-1;i++){
				rss_faund_tags.push(check_tag(rss, RSS_needed_tags[i]));
			}
			
			rssItems = new Array();
			check_rss_items(rss);
			var k=0;
			var output3 = GetElement("bm_rss_container_in");
			for(var i=0;i<output3.childNodes.length;i++){
				output3.removeChild(output3.childNodes[i]);
			}
			var newNode = document.createElement("SPAN");
			output3.appendChild(newNode);
			if(output3.firstChild.nodeType!=1)output3.removeChild(output3.firstChild);
			output3 = output3.firstChild;
			var result = "<p><a href='"+rss_faund_tags[1].contents[0].value+"'>"+rss_faund_tags[0].contents[0].value+"</a></p>";
			output3.innerHTML +=	result;
			
			if(output3.lastChild.nodeType==1)
			output3.lastChild.className = "bm_rss_item1";		
			
			for(i=0;i<rssItems.length;i++){
				if(rssItems[i][1]!=null && rssItems[i][0]!=null){
					result = "<p><a href='"+rssItems[i][1]+"'>"+rssItems[i][0]+"</a></p>";
					output3.innerHTML +=	result;
					output3.lastChild.className = "bm_rss_item2";
				}
				if(rssItems[i][4]!=null){
					result = "<p>"+rssItems[i][4]+"</p>";
					output3.innerHTML +=	result;
					output3.lastChild.className = "bm_rss_item2";
				}						
			}
			if(GetElement("bm_rss_container_out")!=null){GetElement("bm_rss_container_out").style.display="block";}
			
		}
		function check_rss_items(tag){
			
			for(var i=0;i < tag.contents.length;i++)
			{
				if(tag.contents[i]!=null && tag.contents[i].type=="element")
				{	
					if(tag.contents[i].name != "item"){
						check_rss_items(tag.contents[i]);
					}
					else{
						var tmp = tag.contents[i].contents;
						var tmparr= new Array();
						for(var n=0;n<tmp.length;n++){
							if(tmp[n].type=="element"){
								if(tmp[n].contents[0]!=null){
									tmparr[tmparr.length]=tmp[n].contents[0].value;
								}
							}
						}
						rssItems[rssItems.length] = tmparr;
					}
				}	
			}
			
		}
	
	
		function check_tag(tag, needtag){
			var faund_tag;
			var innerloop;		
	
			function check_thetag(tag, needtag){
	
				innerloop:			
				for(var i=0;i < tag.contents.length;i++)
				{
					if(tag.contents[i]!=null && tag.contents[i].type=="element")
					{	
						if(tag.contents[i].name != needtag){
							check_thetag(tag.contents[i], needtag);
						}
						else{
							faund_tag = tag.contents[i];
							break innerloop;
						}
					}	
				}
			}
			check_thetag(tag, needtag);
			return(faund_tag);
		}
	
	
	
	
	
	
	
		
		
	
	
	
	function _element()
	{
		this.type = "element";
		this.name = new String();
		this.attributes = new Array();
		this.contents = new Array();
		this.uid = _Xparse_count++;
		_Xparse_index[this.uid]=this;
	}
	
	function _chardata()
	{
		this.type = "chardata";
		this.value = new String();
	}
	
	function _pi()
	{
		this.type = "pi";
		this.value = new String();
	}
	
	function _comment()
	{
		this.type = "comment";
		this.value = new String();
	}
	
	function _frag()
	{
		this.str = new String();
		this.ary = new Array();
		this.end = new String();
	}
	var _Xparse_count = 0;
	var _Xparse_index = new Array();
	
	
	function Xparse(src)
	{
		var frag = new _frag();
	
		frag.str = _prolog(src);
	
		var root = new _element();
		root.name="ROOT";
		frag = _compile(frag);
	
		root.contents = frag.ary;
		root.index = _Xparse_index;
		_Xparse_index = new Array();
		return root;
	}
	
	function _compile(frag)
	{
		while(1)
		{
			if(frag.str.length == 0)
			{
				return frag;
			}
	
			var TagStart = frag.str.indexOf("<");
	
			if(TagStart != 0)
			{
				var thisary = frag.ary.length;
				frag.ary[thisary] = new _chardata();
				if(TagStart == -1)
				{
					frag.ary[thisary].value = _entity(frag.str);
					frag.str = "";
				}
				else
				{
					frag.ary[thisary].value = _entity(frag.str.substring(0,TagStart));
					frag.str = frag.str.substring(TagStart,frag.str.length);
				}
			}
			else
			{
				if(frag.str.substring(1,2) == "?")
				{
					frag = _tag_pi(frag);
				}
				else
				{
					if(frag.str.substring(1,4) == "!--")
					{
						frag = _tag_comment(frag);
					}
					else
					{
						if(frag.str.substring(1,9) == "![CDATA[")
						{
							frag = _tag_cdata(frag);
						}
						else
						{
							if(frag.str.substring(1,frag.end.length + 3) == "/" + frag.end + ">" || _strip(frag.str.substring(1,frag.end.length + 3)) == "/" + frag.end)
							{
								frag.str = frag.str.substring(frag.end.length + 3,frag.str.length);
								frag.end = "";
								return frag;
							}
							else
							{
								frag = _tag_element(frag);
							}
						}
					}
				}
	
			}
		}
		return "";
	}
	
	function _tag_element(frag)
	{
		var close = frag.str.indexOf(">");
		var empty = (frag.str.substring(close - 1,close) == "/");
		if(empty)
		{
			close -= 1;
		}
	
		var starttag = _normalize(frag.str.substring(1,close));
		var nextspace = starttag.indexOf(" ");
		var attribs = new String();
		var name = new String();
		if(nextspace != -1)
		{
			name = starttag.substring(0,nextspace);
			attribs = starttag.substring(nextspace + 1,starttag.length);
		}
		else
		{
			name = starttag;
		}
	
		var thisary = frag.ary.length;
		frag.ary[thisary] = new _element();
		frag.ary[thisary].name = _strip(name);
		if(attribs.length > 0)
		{
			frag.ary[thisary].attributes = _attribution(attribs);
		}
		if(!empty)
		{
			var contents = new _frag();
			contents.str = frag.str.substring(close + 1,frag.str.length);
			contents.end = name;
			contents = _compile(contents);
			frag.ary[thisary].contents = contents.ary;
			frag.str = contents.str;
		}
		else
		{
			frag.str = frag.str.substring(close + 2,frag.str.length);
		}
		return frag;
	}
	
	function _tag_pi(frag)
	{
		var close = frag.str.indexOf("?>");
		var val = frag.str.substring(2,close);
		var thisary = frag.ary.length;
		frag.ary[thisary] = new _pi();
		frag.ary[thisary].value = val;
		frag.str = frag.str.substring(close + 2,frag.str.length);
		return frag;
	}
	
	function _tag_comment(frag)
	{
		var close = frag.str.indexOf("-->");
		var val = frag.str.substring(4,close);
		var thisary = frag.ary.length;
		frag.ary[thisary] = new _comment();
		frag.ary[thisary].value = val;
		frag.str = frag.str.substring(close + 3,frag.str.length);
		return frag;
	}
	
	function _tag_cdata(frag)
	{
		var close = frag.str.indexOf("]]>");
		var val = frag.str.substring(9,close);
		var thisary = frag.ary.length;
		frag.ary[thisary] = new _chardata();
		frag.ary[thisary].value = val;
		frag.str = frag.str.substring(close + 3,frag.str.length);
		return frag;
	}
	
	function _attribution(str)
	{
		var all = new Array();
		while(1)
		{
			var eq = str.indexOf("=");
			if(str.length == 0 || eq == -1)
			{
				return all;
			}
	
			var id1 = str.indexOf("\'");
			var id_drop = str.indexOf("\"");
			var ids = new Number();
			var id = new String();
			if((id1 < id_drop && id1 != -1) || id_drop == -1)
			{
				ids = id1;
				id = "\'";
			}
			if((id_drop < id1 || id1 == -1) && id_drop != -1)
			{
				ids = id_drop;
				id = "\"";
			}
			var nextid = str.indexOf(id,ids + 1);
			var val = str.substring(ids + 1,nextid);
	
			var name = _strip(str.substring(0,eq));
			all[name] = _entity(val);
			str = str.substring(nextid + 1,str.length);
		}
		return "";
	}
	function _prolog(str)
	{
		var A = new Array();
	
		A = str.split("\r\n");
		str = A.join("\n");
		A = str.split("\r");
		str = A.join("\n");
	
		var start = str.indexOf("<");
		if(str.substring(start,start + 3) == "<?x" || str.substring(start,start + 3) == "<?X" )
		{
			var close = str.indexOf("?>");
			str = str.substring(close + 2,str.length);
		}
		var start = str.indexOf("<!DOCTYPE");
		if(start != -1)
		{
			var close = str.indexOf(">",start) + 1;
			var dp = str.indexOf("[",start);
			if(dp < close && dp != -1)
			{
				close = str.indexOf("]>",start) + 2;
			}
			str = str.substring(close,str.length);
		}
		return str;
	}
	function _strip(str)
	{
		var A = new Array();
	
		A = str.split("\n");
		str = A.join("");
		A = str.split(" ");
		str = A.join("");
		A = str.split("\t");
		str = A.join("");
	
		return str;
	}
 
  function _normalize(str)
	{
		var A = new Array();
	
		A = str.split("\n");
		str = A.join(" ");
		A = str.split("\t");
		str = A.join(" ");
	
		return str;
	}
	
	function _entity(str)
	{
		var A = new Array();
	
		A = str.split("&lt;");
		str = A.join("<");
		A = str.split("&gt;");
		str = A.join(">");
		A = str.split("&quot;");
		str = A.join("\"");
		A = str.split("&apos;");
		str = A.join("\'");
		A = str.split("&amp;");
		str = A.join("&");
	
		return str;
	}
}
var bm = new bm_Class();