var ns4 = (document.layers)? true:false
var ns6 = (!document.all && document.getElementById)? true:false
var ie4 = (document.all)? true:false

var tag = "M1", ticker = "AllStocks", path="All Rated Stocks"

var debug = 1, temp_path ="", pre_root="";
/// mouse events
var graph_width = 760, graph_x = 40,  m_top, m_left, points=1, deltaX = 1;
var  xy_pos = new Array(), strDate = new Array(), strData = new Array();
function init_event()
{
	var obj = findObj("mval");
	obj.onmousemove = mouseMove;
	obj.onmousedown = mouseDown;
	obj.onmouseover = mouseOver;
	obj.onmouseout  = mouseOut;
	get_All_Info();
}
function getPosition( ) {
	var obj = findObj("mval");
	if (obj) {
	  w = obj.offsetWidth;
	  h = obj.offsetHeight;
	  if ( obj.offsetParent ) {
	     for ( var posX = 0, posY = 0; obj.offsetParent; obj = obj.offsetParent ) {
		   posX += obj.offsetLeft;
		   posY += obj.offsetTop;
	     }
	     return[ posX, posY, w, h ];
	  } else {
	    return[ obj.x, obj.y, w, h ];
	  }
	} else {
	  return [0,0,0,0];
	}
}
function get_All_Info(){
    var  xmlhttp = getXMLHTTP();/// in common.js
    var url ="info.aspx?Ticker="+ticker +"&Period="+ tag + "&r="+Math.random();
	xmlhttp.onreadystatechange = function() { process_Info(xmlhttp); }; 
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
    return false;
}
function process_Info(xmlhttp){
    try{
		if(xmlhttp.readyState == 4)
		{
			if(xmlhttp.status == 200)
			{	
				try{
				  	var temp    = xmlhttp.responseText; 
				  	var ss      = temp.split('#');
				  	xy_pos      = ss[0].split('^');
				  	strData     = ss[1].split('|');
				  	strDate     = ss[2].split('|');
				  	points      = strDate.length;
				  	deltaX      = (graph_width - graph_x)/points;		
				}catch(ex)
				{
					  // alert(ex + "xxxxx in process_Results_Data()");
				}				
			}
		}
	  }
	 catch(ex)
	 {
		alert(ex + " in process_Info()");
	 }
}
function mouseOut(e)
{  
   hide("tip") 
   hide("mdot")
}
function mouseOver(e)
{  
   var pos = getPosition( ) ;
   m_left  = pos[0];
   m_top   = pos[1];

}
function mouseDown(e)
{  
   hide("tip") 
   hide("mdot")
   getPosition( );
}
function mouseMove(e)
{  
 	var xcoord = 0;
	var ycoord = 0;
	if( !e ) 
	{
		if( window.event ) {
			//DOM
			e = window.event;
		} else {
			//TOTAL FAILURE, WE HAVE NO WAY OF REFERENCING THE EVENT
			return;
		}
	}
	
	if( typeof( e.pageX ) == 'number' ) 
	{
			//NS 4, NS 6+, Mozilla 0.9+
			xcoord = e.pageX;
			ycoord = e.pageY;
	} else {
			if( typeof( e.clientX ) == 'number' ) 
			{
					//IE, Opera, NS 6+, Mozilla 0.9+
					//except that NS 6+ and Mozilla 0.9+ did pageX ...
					xcoord = e.clientX;
					ycoord = e.clientY;
					if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) ||
								( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || window.navigator.vendor == 'KDE' ) ) 
					{
						if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
								//IE 4, 5 &amp; 6 (in non-standards compliant mode)
							xcoord += document.body.scrollLeft;
							ycoord += document.body.scrollTop;
						} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
						{
								//IE 6 (in standards compliant mode)
							xcoord += document.documentElement.scrollLeft;
							ycoord += document.documentElement.scrollTop;
						}
					}
			} else {
					//TOTAL FAILURE, WE HAVE NO WAY OF OBTAINING THE
					//MOUSE COORDINATES
					return;
			}
	}
	/// i is on graph
		
    var i= xcoord - graph_x - m_left;
	var   dx    = deltaX;
	var k = i/dx +""
	k = parseInt(k);
	if (k < 0 || k> points)
	{
	   hide("tip") 
       hide("mdot")
	   return;
	}
	try{	
		if ( xy_pos[k] == "undefined" || xy_pos[k].indexOf("-") >= 0 || strData[k] == "NULL")
		{
			hide("tip") 
			hide("mdot")
			return;
		}
        var y = xy_pos[k].split('|');
	  
		var objDot    = findObj("mdot");
		objDot.style.left  = (parseInt(m_left) +parseInt(y[0]) - 5) + "px";	
		objDot.style.top   = (parseInt(m_top) + parseInt(y[1]) - 5 ) + "px";	
		if (parseFloat(strData[k]) >=1 )
		    objDot.src ="http://im.mstar.com/im/mv_ovdot.gif";
		else
		    objDot.src ="http://im.mstar.com/im/mv_undot.gif";

		show("mdot") 
		xcoord = parseInt(m_left) +parseInt(y[0]) - 5;
		var objTip    = findObj("tip");
	    if (xcoord < m_left +graph_width -150)
		    objTip.style.left  = (xcoord + 17) + "px";	
		else
		    objTip.style.left  = (xcoord - 190)+ "px";	
		objTip.style.top   = (parseInt(m_top) + parseInt(y[1]) - 10) + "px";	
		var t = strDate[k];
		while (t.indexOf('/') >=0)
		{
		   t = t.replace('/', '-');
		}
		findObj("date").innerHTML  = t;
		findObj("value").innerHTML = strData[k];
	  
		show("tip") 
    }catch(e){

    }	
}
////
function change_root(root)
{
   var  r = root;  
   if (r.indexOf('_') > 0)
   {
     while (r.indexOf('_') >  0)
     {     
       r = r.replace('_', ' ');
     }
   }

   path = r
   temp_path = path;
   findObj("path").innerHTML = path; 
   if (r == "All Rated Stocks")
   {
     ticker = "AllStocks"; 
   	 get_All_Data(); 
     get_All_Info();
     show_graph()

   }
   
}
function change_root_1(root)
{
   var  r = root;  
   if (r.indexOf('_') > 0)
   {
     while (r.indexOf('_') >  0)
     {     
       r = r.replace('_', ' ');
     }
   }
   if (r == "Healthcare")
      path = temp_path +" > "+ "Health Care";
   else
      path = temp_path +" > "+ r
   findObj("path").innerHTML = path;// + " > "+ r
   var submenu = ind_Software;

   if (root == "Hardware")
       submenu = ind_Hardware;
   else if (root == "Media") 
       submenu = ind_Media;
   else if (root == "Telecommunications") 
       submenu = ind_Telecommunications;
   else if (root == "Healthcare") 
       submenu = ind_Healthcare;
   else if (root == "Consumer_Services") 
       submenu = ind_Consumer_Services;
   else if (root == "Business_Services") 
       submenu = ind_Business_Services;
   else if (root == "Financial_Services") 
       submenu = ind_Financial_Services;
   else if (root == "Consumer_Goods") 
       submenu = ind_Consumer_Goods;
   else if (root == "Industrial_Materials") 
       submenu = ind_Industrial_Materials;
   else if (root == "Energy") 
       submenu = ind_Energy;
   else if (root == "Utilities") 
       submenu = ind_Utilities;
   test();
  
   if (pre_root != "r_"+root || findObj("ind_"+root).innerHTML == "")
   {
        findObj("ind_"+root).innerHTML = submenu;
	    findObj("r_"+root).className = "firsth5 accheader2 close";
        $("#ind_"+root).slideDown("fast");
		
	  	findObj("r_"+root).className = "accheader2 open";
   }else{

        findObj("r_"+root).className = "accheader2 close";
        findObj("ind_"+root).innerHTML = "";
  }  
  
  pre_root = "r_"+root; 
}
function to_graph(sticker, s_dir)
{
   var temp = sticker;
   if (temp.indexOf('&') > 0)
   {
     while (temp.indexOf('&') >  0)
     {
     
       temp = temp.replace('&', '_');
     }
   }
 //  $("#accordion a").click(function () {
		$("#accordion a").removeClass("tabon");
		$("#"+temp).addClass('tabon');
		$(".accheader:not('.acctop')").removeClass('tabon');
		$(".accheader2:not('.acctop')").removeClass('tabon');
	//});
   ticker = sticker;  
   if (sticker.indexOf('_') > 0)
   {
     while (sticker.indexOf('_') >  0)
     {
     
       sticker = sticker.replace('_', ' ');
     }
   }
   if (ticker == "All Rated Stocks")
      findObj("path").innerHTML = "All Rated Stocks"
   else if (ticker == "NAS"){      
      findObj("path").innerHTML = path +" > " + "Nasdaq";
   }else{      
      findObj("path").innerHTML = path +" > " + s_dir;
   }
   if (sticker.indexOf('&') > 0)
   {
     while (sticker.indexOf('&') >  0)
     {
     
       sticker = sticker.replace('&', '!');
     }
   }
   if (sticker == "Recreational Goods  Other")
   {
      sticker="Recreational Goods, Other"
   
   }else if (sticker == "Tobacco  Other")
   {
       sticker="Tobacco, Other";
   }else if (sticker == "Specialty Retail  Other")
   {
       sticker="Tobacco, Other";
   }else if (sticker == "REIT - Hotel Motel")
   {
       sticker="REIT - Hotel/Motel";
   } 
   else if (sticker == "Air Services  Other")
   {
       sticker="Air Services, Other";
   } 
   else if (sticker == "Consumer Services1")
   {
       sticker="Consumer Services";
   }else if (sticker == "Business Services1")
   {
       sticker="Business Services";
   }else if (sticker == "Personal Services1")
   {
       sticker="Personal Services";
   }else if (sticker == "Movie  Production  Theaters")
   {

    
       sticker="Movie, Production, Theaters";
   } else if (sticker == "Textile - Apparel Clothing1")
   {    
       sticker="Textile - Apparel Clothing";
   } 
  // get high, low data
   ticker = sticker;  
   get_All_Data()
   /// get chart's info posision, date and value
   get_All_Info();
   /// draw graph

   show_graph()
}

function ChgPrama(stag)
{
   tag = stag;
   get_All_Info();
   show_graph()
}

function show_graph()
{
   // if (debug == 1)
   //   findObj("mval").src ="http://localhost/WebGraphs/market_valuation_graph.aspx?Ticker="+ticker +"&Period="+ tag;
   // else
      findObj("mval").src ="market_valuation_graph.aspx?Ticker="+ticker +"&Period="+ tag;
}
function get_All_Data(){
    var  xmlhttp = getXMLHTTP();/// in common.js
    var url ="get_all_high_low.aspx?Ticker="+ticker + "&r="+Math.random();
//    if (debug == 1)
 //      url ="http://localhost/WebGraphs/get_all_high_low.aspx?Ticker="+ticker + "&r="+Math.random(); 
	xmlhttp.onreadystatechange = function() { process_Data(xmlhttp); }; 
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
    return false;
}
//	data = node["AllTimeHigh"].InnerText +"|"+ node["AllTimeLow"].InnerText +"|"+ node["FiftyTwoWeekHigh"].InnerText+"|"+ node["FiftyTwoWeekLow"].InnerText;
//	date = node["AllTimeHighDateShort"].InnerText +"|"+ node["AllTimeLowDateShort"].InnerText +"|"+ node["FiftyTwoWeekHighDateShort"].InnerText +"|"+ node["FiftyTwoWeekLowDateShort"].InnerText;
				
function process_Data(xmlhttp){
    try{
		if(xmlhttp.readyState == 4)
		{
			if(xmlhttp.status == 200)
			{	
				try{
				  	var temp    = xmlhttp.responseText; 
				  	
				  	var ss = temp.split('^');
				  	if (ss[0] == "" || ss[1] == "")
				  	   return;
				  	var data = ss[0].split('|');
				  	var date = ss[1].split('|');
				   	findObj("h_data52w").innerHTML   = data[2]
				  /* 	if (parseFloat(data[2])> 1)
				   	{
				      $("#h_data52w").removeClass('red');
                      $("#h_data52w").addClass('grn');
                    }else{
                      $("#h_data52w").removeClass('grn');
                      $("#h_data52w").addClass('red');
                    }*/
				  	findObj("l_data52w").innerHTML   = data[3]
				 /* 	if (parseFloat(data[3])> 1)
				   	{
				      $("#l_data52w").removeClass('red');
                      $("#l_data52w").addClass('grn');
                    }else{
                      $("#l_data52w").removeClass('grn');
                      $("#l_data52w").addClass('red');
                    }*/
				  	findObj("a_h_data52w").innerHTML = data[0]
				 /* 	if (parseFloat(data[0])> 1)
				   	{
				      $("#a_h_data52w").removeClass('red');
                      $("#a_h_data52w").addClass('grn');
                    }else{
                      $("#a_h_data52w").removeClass('grn');
                      $("#a_h_data52w").addClass('red');
                    }*/
				  	findObj("a_l_data52w").innerHTML = data[1]	
				 /*	if (parseFloat(data[1])> 1)
				   	{
				      $("#a_l_data52w").removeClass('red');
                      $("#a_l_data52w").addClass('grn');
                    }else{
                      $("#a_l_data52w").removeClass('grn');
                      $("#a_l_data52w").addClass('red');
                    }*/
				 	findObj("h_date52w").innerHTML   = date[2]
				  	findObj("l_date52w").innerHTML   = date[3]
				  	findObj("a_h_date52w").innerHTML = date[0]
				  	findObj("a_l_date52w").innerHTML = date[1]
				  	//Adds up and down arrows
//	$(".mv_data1 .grn").prepend("<span class='mv_arrwup'></span>&nbsp;");
//	$(".mv_data1 .red").prepend("<span class='mv_arrwdn'></span>&nbsp;");
					   
				}catch(ex)
				{
					  // alert(ex + "xxxxx in process_Results_Data()");
				}				
			}
		}
	  }
	 catch(ex)
	 {
		alert(ex + " in process_Results_Data End");
	 }
}
function get_all_vedio_Data(keys){
    var  xmlhttp = getXMLHTTP();/// in common.js
    var url ="video_id.aspx?key="+keys + "&r="+Math.random();
	xmlhttp.onreadystatechange = function() { process_All_Vedio(xmlhttp); }; 
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
    return false;
}
//	data = node["AllTimeHigh"].InnerText +"|"+ node["AllTimeLow"].InnerText +"|"+ node["FiftyTwoWeekHigh"].InnerText+"|"+ node["FiftyTwoWeekLow"].InnerText;
//	date = node["AllTimeHighDateShort"].InnerText +"|"+ node["AllTimeLowDateShort"].InnerText +"|"+ node["FiftyTwoWeekHighDateShort"].InnerText +"|"+ node["FiftyTwoWeekLowDateShort"].InnerText;
				
function process_All_Vedio(xmlhttp){
    try{
		if(xmlhttp.readyState == 4)
		{
			if(xmlhttp.status == 200)
			{	
				try{
				  	var temp    = xmlhttp.responseText; 
				  	
				  	var ss = temp.split('!');
			//	  		ss = row1["url"].ToString();
			//		ss = ss +"^" + row1["thumbnailUrl"].ToString();
			//		ss = ss +"^" + row1["title"].ToString();
			//		ss = ss +"^" + row1["desc"].ToString();
		
				 //s_title="", s_url="", s_desc="", s_img =
				    var tmp  = ss[0].split('^');
				 	s_url    = tmp[0];
				 	s_title  = tmp[2];
				 	tmp      = ss[1].split('^');
				 	s_url1   = tmp[0];
				 	s_title1 = tmp[2];
				 	tmp      = ss[2].split('^');
				 	s_url2   = tmp[0];
				 	s_title2 = tmp[2];
				//    findObj("v_id").src   = s_img;
				    findObj("v_title1").innerHTML = s_title1;
				    findObj("v_title2").innerHTML = s_title2;
				   // findObj("v_desc").innerHTML  = s_desc;
				}catch(ex)
				{
					  // alert(ex + "xxxxx in process_Results_Data()");
				}				
			}
		}
	  }
	 catch(ex)
	 {
		alert(ex + " in process_Results_Data End");
	 }
}
function get_vedio_Data(keys){
    var  xmlhttp = getXMLHTTP();/// in common.js
    var url ="video_id.aspx?key="+keys + "&r="+Math.random();
	xmlhttp.onreadystatechange = function() { process_Vedio(xmlhttp); }; 
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
    return false;
}
//	data = node["AllTimeHigh"].InnerText +"|"+ node["AllTimeLow"].InnerText +"|"+ node["FiftyTwoWeekHigh"].InnerText+"|"+ node["FiftyTwoWeekLow"].InnerText;
//	date = node["AllTimeHighDateShort"].InnerText +"|"+ node["AllTimeLowDateShort"].InnerText +"|"+ node["FiftyTwoWeekHighDateShort"].InnerText +"|"+ node["FiftyTwoWeekLowDateShort"].InnerText;
				
function process_Vedio(xmlhttp){
    try{
		if(xmlhttp.readyState == 4)
		{
			if(xmlhttp.status == 200)
			{	
				try{
				  	var temp    = xmlhttp.responseText; 
				 	var ss = temp.split('!');
			//	  		ss = row1["url"].ToString();
			//		ss = ss +"^" + row1["thumbnailUrl"].ToString();
			//		ss = ss +"^" + row1["title"].ToString();
			//		ss = ss +"^" + row1["desc"].ToString();
		
				 //s_title="", s_url="", s_desc="", s_img =
				    var tmp  = ss[0].split('^');
				 	s_url    = tmp[0];
				 	s_img    = tmp[1];
				 	s_title  = tmp[2];
				 	tmp      = ss[1].split('^');
				 	s_url1   = tmp[0];
				 	s_title1 = tmp[2];
				 	tmp      = ss[2].split('^');
				 	s_url2   = tmp[0];
				 	s_title2 = tmp[2];
				    findObj("v_id").src   = s_img;
				    findObj("v_title").innerHTML = s_title;
				    findObj("v_title1").innerHTML = s_title1;
				    findObj("v_title2").innerHTML = s_title2;
				/* 	var ss = temp.split('!');
				 	 	
				  	var ss = temp.split('^');
			//	  		ss = row1["url"].ToString();
			//		ss = ss +"^" + row1["thumbnailUrl"].ToString();
			//		ss = ss +"^" + row1["title"].ToString();
			//		ss = ss +"^" + row1["desc"].ToString();
		
				 //s_title="", s_url="", s_desc="", s_img =
				 	s_url   = ss[0];
				 	s_img   = ss[1];
				 	s_title = ss[2];
				 	s_desc  = ss[3];
				    findObj("v_id").src   = s_img;
				    findObj("v_title").innerHTML = s_title;
				   // findObj("v_desc").innerHTML  = s_desc;
				   */
				}catch(ex)
				{
					  // alert(ex + "xxxxx in process_Results_Data()");
				}				
			}
		}
	  }
	 catch(ex)
	 {
		alert(ex + " in process_Results_Data End");
	 }
}
function getXMLHTTP()
{
	var A=null;
	try{
		A=new ActiveXObject("Msxml2.XMLHTTP")
	}
	catch(ex){
		try{
			A=new ActiveXObject("Microsoft.XMLHTTP")
		}
		catch(oc){
				    //alert(ex + " in getXMLHTTP");
			A=null
		}
	}
	if(!A && typeof XMLHttpRequest != "undefined") {
		A=new XMLHttpRequest()
	}
	return A
}
function findObj(divID) {
    if( ns4) { //Netscape layers
        return document.layers[divID];
    }
    if( ns6 ) { //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID); 
    }
    if(ie4 ) { //Proprietary DOM; IE4
		return document.getElementById(divID); 
        return document.all[divID]; 
    }
    if( document[divID] ) { //Netscape alternative
        return document[divID]; 
    }
    return false;
}
function show(divID_as_a_string) 
{
	var myReference = findObj(divID_as_a_string);
	if( !myReference ) 	{ 
	    window.alert('Nothing works in this browser'); 
		return; 
	}
	if( myReference.style ) { 
		myReference.style.visibility = 'visible'; 
	} else {
		if( myReference.visibility ) { 
			myReference.visibility = 'show'; 
		} else {
			//window.alert('Nothing works in this browser');
		    return; 
		} 
	}
}
function hide(divID_as_a_string) {
	var myReference = findObj(divID_as_a_string);
	if( !myReference ) 
	{ 
		//window.alert('Nothing works in this browser'); 
		return; 
	}
	if( myReference.style ) 
	{ 
		myReference.style.visibility = 'hidden'; 
	} else {
		if( myReference.visibility ) 
		{ 
			myReference.visibility = 'hide'; 
		} else {
			//window.alert('Nothing works in this browser'); 
			return; 
		} 
	}
}
