var xmlMarketData;
var MBP = new Array(10);
var MBO = new Array(10);
var interval;
var menuTimerID;
var MarketDepthWindows = new Array(5);
var MarketDepthWindowsSymbols = new Array(5);
var Busy = false;
var ProcessingWindows = false;

var xslDocI = GetXMLObject();
var xslDocSu = GetXMLObject();
var xslDocCI = GetXMLObject();
var xslDocTG = GetXMLObject();
var xslDocTL = GetXMLObject();
var xslDocT = GetXMLObject();
var xslDocP = GetXMLObject();
var xslDocMW = GetXMLObject();
var xmlDoc = GetXMLObject();

try {
	xslDocI.loadXML(strIndex);
	xslDocMW.loadXML(strMarketWatch);
	xslDocSu.loadXML(strMarketInfo);
	xslDocCI.loadXML(strCompanyInfo);
	xslDocTG.loadXML(strTopGainers);
	xslDocTL.loadXML(strTopLosers);
	xslDocT.loadXML(strToppers);
	xslDocP.loadXML(strPushers);
}catch(e){
	var parser=new DOMParser();
	xslDocI=parser.parseFromString(strIndex, "text/xml");
	xslDocMW=parser.parseFromString(strMarketWatch, "text/xml");
	xslDocSu=parser.parseFromString(strMarketInfo, "text/xml");
	xslDocCI=parser.parseFromString(strCompanyInfo, "text/xml");
	xslDocTG=parser.parseFromString(strTopGainers, "text/xml");
	xslDocTL=parser.parseFromString(strTopLosers, "text/xml");
	xslDocT=parser.parseFromString(strToppers, "text/xml");
	xslDocP=parser.parseFromString(strPushers, "text/xml");
}

function Start(){
	var i;
    if (window.ActiveXObject)
		xmlDoc.loadXML(Decompress(strXML));
	else{
		var parser=new DOMParser();
		xmlDoc=parser.parseFromString(Decompress(strXML), "text/xml");
	}
	
	FillHTML(xmlDoc);

	for(i=0;i<10;i++){
		MBP[i] = new String();
		MBO[i] = new String();
	}
	for(i=0;i<5;i++)
		MarketDepthWindowsSymbols[i] = '';
	interval = window.setInterval("tCall()", RefreshTime);
	return 0;
}
function Stop(){
	var i
	window.clearInterval(interval);
	interval="";
	for(i=0;i<5;i++){
		if (MarketDepthWindowsSymbols[i] != ''){
				if (!(MarketDepthWindows[i].closed)){
					MarketDepthWindows[i].close();
				}
			}
	}
	return 0;
}
function tCall(){
	window.onerror = handleError
	if (!Busy ){
			var myCompany = new Array(5);
			for(i=0;i<5;i++){
				if (MarketDepthWindows[i])
							if (!(MarketDepthWindows[i].closed))
									myCompany[i] = MarketDepthWindowsSymbols[i];
							else
									myCompany[i] = '';
				else
					myCompany[i] = '';
			}
			GetXML(strService + '?Op=MD&M=' + myCompany + '&C=' + Code + '&L=' + Language);
			Busy = true;
		}
}
function GetXML(url){
	xmlMarketData=GetXmlHttpObject();
	if (xmlMarketData==null){
			return;
	}
	xmlMarketData.onreadystatechange=function(){onResult();};
	xmlMarketData.open("GET", url, true);
	xmlMarketData.send(null);
	return 0;
}
function onResult(){
		if (xmlMarketData.readyState==4){
			if (xmlMarketData.status == 200){
				if (xmlMarketData.responseText.substring(0,1) == '~'){
						var xmlObj = GetXMLObject();
						if (window.ActiveXObject)
							xmlObj.loadXML(Decompress(xmlMarketData.responseText));
						else{
							var parser=new DOMParser();
							xmlObj=parser.parseFromString(Decompress(xmlMarketData.responseText), "text/xml");
						}
						RefreshMW(GenerateXML(xmlObj));
						}
					else if (xmlMarketData.responseText != ''){
						window.location.reload();
					}
			}
			Busy = false;
		}
}
function GenerateXML(Nodes){
    var node, All, AllItems, Count, loc, t;
    var strxml = "<?xml version=\"1.0\"?><DATA>";
    var Node, myNodes 
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//C");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//C/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }
    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;
            
        AllItems = All.split('*');
        Count = (AllItems.length-1)/18;
        t = '<C S="{0}" H5="{1}" L5="{2}" CL="{3}" O="{4}" H="{5}" L="{6}" BV="{7}" B="{8}" OR="{9}" OV="{10}" CR="{11}" T="{12}" NT="{13}" P="{14}" V="{15}" VO="{16}" TRE="{17}" />';
        for(var i=0;i<Count;i++){
            loc = i*18;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], 
									   AllItems[loc+4], AllItems[loc+5], AllItems[loc+6], AllItems[loc+7], 
									   AllItems[loc+8], AllItems[loc+9], AllItems[loc+10], AllItems[loc+11], 
									   AllItems[loc+12], AllItems[loc+13], AllItems[loc+14], AllItems[loc+15], 
									   AllItems[loc+16], AllItems[loc+17]);
        }
    }
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//SU");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//SU/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }

    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/9;

        t = '<SU TT="{0}" TV="{1}" TU="{2}" TC="{3}" TG="{4}" TL="{5}" TUC="{6}" MSV="{7}" MS="{8}"/>';
        for(var i=0;i<Count;i++){
            loc = i*9;
            strxml += String.format(t,  AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], 
										AllItems[loc+4], AllItems[loc+5], AllItems[loc+6], AllItems[loc+7], 
										AllItems[loc+8], AllItems[loc+9]);
        }
    }
    
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//I");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//I/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }
 if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/49;
        t = '<I I="{0}" C="{1}" CP="{2}" T="{3}" ';
        t +='I1="{4}" C1="{5}" CP1="{6}" T1="{7}" ';
        t +='I2="{8}" C2="{9}" CP2="{10}" T2="{11}" ';
        t +='I3="{12}" C3="{13}" CP3="{14}" T3="{15}" ';
        t +='I4="{16}" C4="{17}" CP4="{18}" T4="{19}" ';
        t +='I5="{20}" C5="{21}" CP5="{22}" T5="{23}" ';
        t +='I6="{24}" C6="{25}" CP6="{26}" T6="{27}" ';
        t +='I7="{28}" C7="{29}" CP7="{30}" T7="{31}" ';
        t +='I8="{32}" C8="{33}" CP8="{34}" T8="{35}" ';
        t +='I9="{36}" C9="{37}" CP9="{38}" T9="{39}" ';
        t +='V1="{40}" V2="{41}" V3="{42}" V4="{43}" '
        t +='V5="{44}" V6="{45}" V7="{46}" V8="{47}" '
        t +='V9="{48}"/>'
        ;
        for(var i=0;i<Count;i++){
            loc = i*49;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], AllItems[loc+4],
                                 AllItems[loc+5], AllItems[loc+6], AllItems[loc+7], AllItems[loc+8], AllItems[loc+9],
                                 AllItems[loc+10], AllItems[loc+11], AllItems[loc+12], AllItems[loc+13], AllItems[loc+14],
                                 AllItems[loc+15], AllItems[loc+16], AllItems[loc+17], AllItems[loc+18],
                                 AllItems[loc+19], AllItems[loc+20], AllItems[loc+21], AllItems[loc+22],
                                 AllItems[loc+23], AllItems[loc+24], AllItems[loc+25], AllItems[loc+26],
                                 AllItems[loc+27], AllItems[loc+28], AllItems[loc+29], AllItems[loc+30],
                                 AllItems[loc+31], AllItems[loc+32], AllItems[loc+33], AllItems[loc+34],
                                 AllItems[loc+35], AllItems[loc+36], AllItems[loc+37], AllItems[loc+38],
                                 AllItems[loc+39], AllItems[loc+40], AllItems[loc+41], AllItems[loc+42],
                                 AllItems[loc+43], AllItems[loc+44], AllItems[loc+45], AllItems[loc+46],
                                 AllItems[loc+47], AllItems[loc+48]);
        }
    }
    
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//G");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//G/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }
    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;
            
        AllItems = All.split('*');
        Count = (AllItems.length-1)/6;
        t = '<G S="{0}" P="{1}" C="{2}" CP="{3}" CU="{4}" Row="{5}" />';
        for(var i=0;i<Count;i++){
            loc = i*6;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], AllItems[loc+4]);
        }
    }
    
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//L");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//L/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }

    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;
            
        AllItems = All.split('*');
        Count = (AllItems.length-1)/6;
        t = '<L S="{0}" P="{1}" C="{2}" CP="{3}" CU="{4}" Row="{5}" />';
        for(var i=0;i<Count;i++){
            loc = i*6;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], AllItems[loc+4], AllItems[loc+5]);
        }
    }
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//T");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//T/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }

    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/6;
        t = '<T S="{0}" V="{1}" P="{2}" T="{3}" CU="{4}" Row="{5}" />';
        for(var i=0;i<Count;i++){
            loc = i*6;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], AllItems[loc+4], AllItems[loc+5]);
        }
    }
   
    if (window.ActiveXObject)
        Node = Nodes.selectSingleNode("//PU");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//PU/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }

    if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/6;
        t = '<PU S="{0}" V="{1}" P="{2}" T="{3}" CU="{4}" Row="{5}"/>';
        for(var i=0;i<Count;i++){
            loc = i*6;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1], AllItems[loc+2], AllItems[loc+3], AllItems[loc+4], AllItems[loc+5]);
        }
    }

    if (window.ActiveXObject)//by order = 7
        Node = Nodes.selectSingleNode("//MO");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//MO/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }
        
   if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/2;
        t = '<MO S="{0}" M="{1}"/>';
        for(var i=0;i<Count;i++){
            loc = i*2;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1]);
        }
    }
    
    if (window.ActiveXObject)//by Price = 8
        Node = Nodes.selectSingleNode("//MP");
    else{
        var oEvaluator = new XPathEvaluator();
        Node = oEvaluator.evaluate("//MP/text()", Nodes, null, XPathResult.ANY_TYPE, null).iterateNext();
    }
        
   if (Node){
        if (window.ActiveXObject)
            All = Node.text;
        else
            All = Node.nodeValue;

        AllItems = All.split('*');
        Count = (AllItems.length-1)/2;
        t = '<MP S="{0}" M="{1}"/>';
        for(var i=0;i<Count;i++){
            loc = i*2;
            strxml += String.format(t, AllItems[loc], AllItems[loc+1]);
        }
    }

    strxml += "</DATA>";
    return strxml;
}
function RefreshMW(wsXML){
	var i;
	var j;
	var node;
	var newxmlDoc = GetXMLObject();
	var oldXML = GetXMLObject();
		
	if (window.ActiveXObject){
			newxmlDoc.loadXML(wsXML);
			oldXML.loadXML(xmlDoc.xml);
	}else{
		var parser=new DOMParser();
	    newxmlDoc=parser.parseFromString(wsXML, "text/xml");
        var serializer = new XMLSerializer();
        var xml = serializer.serializeToString(xmlDoc);
		oldXML=parser.parseFromString(xml, "text/xml");
	}
	 UpdateNodes(oldXML, newxmlDoc, 'C', 'S');
	 UpdateNodes(oldXML, newxmlDoc, 'G');
	 UpdateNodes(oldXML, newxmlDoc, 'L');
	 UpdateNodes(oldXML, newxmlDoc, 'T');
	 UpdateNodes(oldXML, newxmlDoc, 'PU');
	 UpdateNodes(oldXML, newxmlDoc, 'I');
	 UpdateNodes(oldXML, newxmlDoc, 'SU');
	 UpdateNodes(oldXML, newxmlDoc, 'MO');
	 UpdateNodes(oldXML, newxmlDoc, 'MP');
//----------------------------------  Companies ----------------------------------
		FillHTML(oldXML);
		
		var tObj = document.getElementById('MyTable');
		ColorMW(tObj, oldXML);
//------------------------------------- Market Depth -------------------------------------
		if (window.ActiveXObject)
			newNodes = newxmlDoc.selectNodes("//MO");
		else
			newNodes = newxmlDoc.getElementsByTagName("MO");
			
		for (i=0;i<5;i++){
			if (i < newNodes.length)
				if (newNodes[i].getAttribute("M") != '')
					MBO[i] = newNodes[i].getAttribute("M");
			else
				MBO[i] = '';
		}
		
		if (window.ActiveXObject)
			newNodes = newxmlDoc.selectNodes("//MP");
		else
			newNodes = newxmlDoc.getElementsByTagName("MP");

		for (i=0;i<5;i++){
			if (i < newNodes.length)
				if (newNodes[i].getAttribute("M") != '')
					MBP[i] = newNodes[i].getAttribute("M");
			else
				MBP[i] = '';
		}
		for(i=0;i<5;i++){
				if (MarketDepthWindows[i]){
							if (!(MarketDepthWindows[i].closed))
						       if (MarketDepthWindows[i].document.myForm != null)						      
						       if (MarketDepthWindows[i].document.myForm.Finished != null)
 						 	   if (MarketDepthWindows[i].document.myForm.Finished.value == 1)
									try {
									MarketDepthWindows[i].SetCompanyInfo(MBO[GetCompanyLoc(MarketDepthWindowsSymbols[i], 1)], MBP[GetCompanyLoc(MarketDepthWindowsSymbols[i], 2)]);
									}catch(e){}
									
					}
			}
//------------------------------------ /Market Depth -----------------------------------
		if (window.ActiveXObject)
			xmlDoc.loadXML(oldXML.xml);
		else{
			var parser=new DOMParser();
			var serializer = new XMLSerializer();
			var xml = serializer.serializeToString(oldXML);
			xmlDoc=parser.parseFromString(xml, "text/xml");
		}

	return 0;
}
function ColorMW(t, xml){
    var newNodes, i, j

    if (window.ActiveXObject)
	    newNodes = xml.selectNodes("//C");
    else
	    newNodes = xml.getElementsByTagName("C");

    if (newNodes && newNodes.length > 0){
            for(i=0;i<newNodes.length;i++) {
	            if (window.ActiveXObject)
		            node = xmlDoc.selectSingleNode("//C[@S='"+ newNodes[i].getAttribute("S") +"']");
	            else
		            node = xmlDoc.evaluate("//C[@S='" + newNodes[i].getAttribute("S") + "']", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext();
    				
	            if (node != null){
	                    var RowID = getRowByID(t, node.getAttribute('S'));
			            atts = newNodes[i].attributes;
			            for(j=0;j<atts.length;j++) {
			            if(j>=5 && j<14)
					            stylizeBG(t.rows[RowID].cells[j+1], node.getAttribute(atts[j].name), atts[j].value);
			            }
	            }
            }
     }
}
function getRowByID(table, SymbolID){
    var rtn = table.rows.length-1;
    for (var i=0; i<table.rows.length;i++){
        if (table.rows[i].getAttribute('S') == SymbolID)
            break;    
    }
    if (i<table.rows.length)
        rtn = i;
    
    return rtn;
}
function FillHTML(xml){
	Compile(xml, xslDocI, document.getElementById('dvIndex'));
	Compile(xml, xslDocSu, document.getElementById('dvMarketInfo'));
	Compile(xml, xslDocCI, document.getElementById('dvCompanyInfo'));
	Compile(xml, xslDocTG, document.getElementById('dvTopGainers'));
	Compile(xml, xslDocTL, document.getElementById('dvTopLosers'));
	Compile(xml, xslDocT, document.getElementById('dvToppers'));
	Compile(xml, xslDocP, document.getElementById('dvPushers'));
	Compile(xml, xslDocMW, document.getElementById('dvMarketWatch'));

	return 0;	
}
function UpdateNodes(oldxmlDoc, newxmlDoc, tag, key){
    var Nodes, node, atts, i;
    if (key){
        if (window.ActiveXObject)
		    Nodes = newxmlDoc.selectNodes("//" + tag);
	    else
		    Nodes = newxmlDoc.getElementsByTagName(tag);
		    
        if (Nodes.length > 0){
	        for(i=0;i<Nodes.length;i++){
			    if (window.ActiveXObject)
				    node = oldxmlDoc.selectSingleNode("//" + tag + "[@" + key + "='"+ Nodes[i].getAttribute(key) +"']");
			    else
				    node = oldxmlDoc.evaluate("//" + tag + "[@" + key + "='" + Nodes[i].getAttribute(key) + "']", oldxmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext();

	    	    if (node != null){
			        atts = Nodes[i].attributes;
			        for(j=0;j<atts.length;j++)
			            node.setAttribute(atts[j].name, atts[j].value);
		        }else{
                        if (window.ActiveXObject)
                            node = Nodes[i].cloneNode(true);
                        else
                            node = oldxmlDoc.importNode(Nodes[i], true);
                            
        	            if (tag =='C'){
                                atts = companyNode.attributes;
			                    for(j=0;j<atts.length;j++)
			                        node.setAttribute(atts[j].name, atts[j].value);
                        }
                        oldxmlDoc.documentElement.appendChild(node);
	                }
		        }
	        }
	}else{
	    if (window.ActiveXObject)
		    Nodes = oldxmlDoc.selectNodes("//" + tag);
	    else
		    Nodes = oldxmlDoc.getElementsByTagName(tag);
		    
	    for (i=Nodes.length-1;i>=0;i--){
	        oldxmlDoc.documentElement.removeChild(Nodes[i])
	    }
	    
	    if (window.ActiveXObject)
		    Nodes = newxmlDoc.selectNodes("//" + tag);
	    else
		    Nodes = newxmlDoc.getElementsByTagName(tag);
		    
	    if (Nodes){
	        for (i=0;i<Nodes.length;i++){
	            if (window.ActiveXObject)
	                node = Nodes[i].cloneNode(true);
	            else
	                node = oldxmlDoc.importNode(Nodes[i], true);
	            
	            oldxmlDoc.documentElement.appendChild(node);
	        }
	    }
	}
}
function ShowMenu(obj, event)
{
	CancelHideMenu();
	var position;
	var Symbol = obj.getElementsByTagName("span")[0].innerHTML;

	if(strDIR == "rtl")
		position = 190;
	else
	    position = 0;
	    
	var dvMenu = document.getElementById("dvMenu");
	dvMenu.style.top = event.clientY - 11 + document.body.scrollTop;
	dvMenu.style.left = event.clientX - position -10;
	
	dvMenu.style.display = "block";
	var t = dvMenu.getElementsByTagName("TABLE")[0];
	t.rows[0].cells[0].getElementsByTagName("span")[0].innerHTML = ' - ' + Symbol;
	t.rows[1].cells[0].onclick = function(){ShowMarketDepth(Symbol);}
}
function HideMenu(){
	menuTimerID = setTimeout("DoHideMenu();", 500);
}
function DoHideMenu(){
	var dvMenu = document.getElementById('dvMenu');
	dvMenu.style.display = "none";
	dvMenu.style.top = "0px";
	dvMenu.style.left = "-200px";
}
function CancelHideMenu(){
	if (menuTimerID > 0){
		clearTimeout(menuTimerID);
		menuTimerID = -1;
		}
}
function ShowMarketDepth(Symbol)
{
    var i;
    var found;
    for(i=0;i<5;i++)
        if (MarketDepthWindows[i] != null)
			if (!MarketDepthWindows[i].closed)
				if (MarketDepthWindowsSymbols[i] == Symbol)
					{ali
						MarketDepthWindows[i].focus();
						found = true;
					}
    if (!found){
		for(i=0;i<5;i++)
			if (MarketDepthWindows[i] != null){
				if (MarketDepthWindows[i].closed)
					break;
			}
			else
				break;
				
		if (i<5){
			MarketDepthWindows[i] = window.open('MarketDepth.aspx?Symbol=' + Symbol, ProcessWindowName(Symbol), "resizable=no,status=no,height=310px,width=450px,scrollbars=no, location=no, menubar=no");
			MarketDepthWindowsSymbols[i] = Symbol;
		}
		else
			if (i==5)
				alert(strMoreThan5Companies);
    }
}

function GetCompanyLoc(myCompany, myType){
	var i
	if (myType == 1){
	for(i=0;i<10;i++){
		if(MBO[i])
		if (MBO[i].split('>')[0] == myCompany)
			break;
		}
	}
	else
	if (myType == 2)
	for(i=0;i<10;i++){
		if(MBP[i])
		if (MBP[i].split('>')[0] == myCompany)
			break;
	}
	else
	if (myType == 3)
		for(i=0;i<10;i++){
			if(TRDS[i])
			if (TRDS[i].split('>')[0] == myCompany)
				break;
		}
	return i;
}

function ProcessWindowName(myWindowName){
	return myWindowName.replace('-', '_'); 
}

function handleError(){
	if (document.all)
		window.status=event.result.errorDetail.string;
	else
		window.status=Event.result.errorDetail.string;
		
	return true;
}
function stylizeBG(tdObj, oldVal, newVal){
	if (tdObj){
			var TrendColor = getTrend(oldVal, newVal);
			if (oldVal != newVal){
				if (TrendColor == 1)
					tdObj.className = 'GreenBG';
				else if (TrendColor == -1)
					tdObj.className = 'RedBG';
				else if (TrendColor == 0)
					tdObj.className = 'Bold';
			}
	}
}
function getTrend(oldVal, newVal){
	if (oldVal == "" || newVal == "")
		return 0;
		
	var pOldVal = parseFloat(oldVal.replace(/,/g, ''));
	var pNewVal = parseFloat(newVal.replace(/,/g, ''));
	
	if (pOldVal < pNewVal)
		return 1
	else if (pOldVal > pNewVal)
		return -1
	else
		return 0
}
function urlencode(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	str = str.replace('.', '%2e');
	return str;
}

function GetXMLObject(){
	var xmlDoc;
	if (window.ActiveXObject){//IE
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}
	else if (document.implementation && document.implementation.createDocument){ //Mozilla, Firefox, Opera, etc.
		xmlDoc=document.implementation.createDocument("","",null);
	}
	else{
		alert('Your browser cannot handle this script');
	}
	xmlDoc.async=false;
	return xmlDoc;
}
 function GetXmlHttpObject(){
	var instance=null;
	try{		// Firefox, Opera 8.0+, Safari
	instance=new XMLHttpRequest();
	}
	catch (e){	// Internet Explorer
	try{
		instance=new ActiveXObject("Msxml2.XMLHTTP");
		}
	catch (e){
		instance=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return instance;
}
 function popupwithscroll(popupcompanyfile, winheight, winwidth, Type){
	if (winheight==0)
			winheight = screen.availHeight - 100;
	if (winwidth==0)
			winwidth = screen.availWidth - 50;
	var myTop
	var myWidth
	var myWindow
	myTop = ((screen.availHeight - winheight)/2) - 25;
	myLeft = (screen.availWidth - winwidth)/2;
	myWindow = open(popupcompanyfile, Type, "resizable=yes,status=no,height=" + winheight + ",width=" + winwidth + ",scrollbars=yes, location=no, menubar=no, left=" + myLeft + ", top=" + myTop);
	myWindow.focus();
}
function SwitchMe(){
  	var e = document.getElementById('MarketInfo');
  	var f = document.getElementById('MarketSummary');
	if (!e)
		return 1;
		
	if (e.style.display=='none'){
		e.style.display='block';
		f.style.display='none';
		}else{
		e.style.display='none';
		f.style.display='block';
		}
 }
 function ChangeClass(obj, className){
    obj.className = className;
}
function Compile(xml, xsl, obj){
	if (window.ActiveXObject){//IE
		var trn = xml.transformNode(xsl);
		obj.innerHTML = trn;
	}
	else if (document.implementation && document.implementation.createDocument){ //Mozilla, Firefox, Opera, etc.
		oProcessor=new XSLTProcessor();
		oProcessor.importStylesheet(xsl);
		var trn = null
		trn = oProcessor.transformToFragment(xml, document);
		obj.innerHTML = '';
		obj.appendChild(trn);
	}
	return 0;
}
function Decompress(str){
    return str.replace(/\|/gi, '*0.000*0.000*').replace(/~/gi, '<?xml version="1.0" encoding="windows-1256" ?><DATA><C>').replace(/`/gi, '.000*0.000*0.000*0.000*0*0.000*0.000*0*0.000*0*0.000*0.00*0*0.00*=*');
}
String.format = function( text ){
    if ( arguments.length <= 1 ){
        return text;
    }
    var tokenCount = arguments.length - 1;
    for( var token = 0; token<tokenCount; token++){
        text = text.replace( new RegExp("\\{" + token + "\\}", "gi" ), arguments[ token + 1 ]);
    }
    return text;
}
