
/* -----------------------------------------------------------------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
/* ------------------------------- Global variables ----------------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
var companyName = "";
var currentPrice = "";
var previousClose = "";
var pChange = "";
var change = "";

var stock_lastPrice = "-1";
var stock_lastTradeTime = "-1";
var stock_lastTradeDate = "-1";
var stock_change = "-1";
var stock_changePercentage = "-1";

var arrOfAllMonths = new Array("Jan", "Feb", "Mar", 
"Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec");

/* -----------------------------------------------------------------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
/* --------------------------------- Stoke Quote functions ---------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/

function writeValue(val)
{
	document.write(val);
}
function writeChange(chg,pChg)
{
	var changeVal = "";
	if(chg > 0)
	{
		changeVal+="+";
	}
	changeVal+=chg;
	changeVal+="("+pChg+"%)";
	
	writeValue(changeVal);
}

/* -----------------------------------------------------------------------------------------------*/


function getHttpObject()
{

    httpObj = false ;
    
	//for now return null untill we solve the security issue .
	
	return null ;
	
	if(navigator.appName == "Microsoft Internet Explorer")
	{
	  httpObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
	  httpObj = new XMLHttpRequest();	  
	}
	return httpObj;
}




/* -----------------------------------------------------------------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
/* --------------------------------- RealTime Data From Google And Edgar -------------------------*/
/* -----------------------------------------------------------------------------------------------*/

function getRealTimeDataFromEdgar()
{
   document.getElementById("realTimeDataDIVID").innerHTML = "<img src='images/Loading.gif'/> ";       										    	    
   if(typeof irxmlstockquote != 'undefined' && irxmlstockquote.length > 0 )
	{	  
		
	      var statusCode = IRXMLSTATUSCODE; 
		  var ticker = irxmlstockquote[0];		  		   
		   
		  stock_lastPrice = ticker.lastprice ;
          stock_lastTradeTime = ticker.lastdatetime ; //"4:02PM EDT";//Sep 12, 4:02PM EDT
		 
		  stock_lastTradeDate = ticker.lastdatetime   //new Date(2008, 9-1, 12, 16, 11, 3),
          stock_change = ticker.change ;
          stock_changePercentage  = ticker.pchange ;

		  drawRealTimeData(false) ;
		  
	}
	
}

function getRealTimeDataFromGoogle()
{
   document.getElementById("realTimeDataDIVID").innerHTML = "<img src='images/Loading.gif'/> ";            
   
   var httpObj = getHttpObject(); 
   //alert("start");
	   if(httpObj!=null)
	   {				   			   			   
			   httpObj.open("GET", "http://www.google.com/finance/info?client=ig&q=UTX", true);		
			   //httpObj.open("GET","http://localhost/utc/utilites/proxy.php", true);
			   //httpObj.open("GET","http://localhost:8080/utc/RealTimeFromGoogle.jsp", true);
			   
			   httpObj.onreadystatechange = function loadMarketData()
											{
													if (httpObj.readyState == 4) 
													{
													  
													  if (httpObj.status == 200) 
													  {  										
														  var st = httpObj.responseText;										
														  
														  var indexOfOpen = st.indexOf('{');
														  var indexOfClose = st.indexOf('}');
												
														  var s = st.substring(indexOfOpen,indexOfClose+1);
												
														  eval("arrObj ="+s);														  														  
														  stock_lastPrice = arrObj.l_cur;
														  stock_lastTradeTime = arrObj.ltt;
														  stock_lastTradeDate = arrObj.lt;												  
														  stock_change = arrObj.c;
												
														  stock_changePercentage = arrObj.cp;
														  
														  drawRealTimeData(true);														  														 												
													  } 
													  else  //get data from edgar
													  {
														  //alert('There was a problem with the request.\n Get data from edgar');
														  getRealTimeDataFromEdgar();
													  }
													}
											}
		   
					httpObj.send(null);
	   }
	  else
	  {
		  getRealTimeDataFromEdgar();
	  }

}


function drawRealTimeData(googleFlag)
{
	
      var dateTime = "";
      var lastPrice = "";
      var change = "";
      var percentage = "";            
      
      if(googleFlag)
      {
        dateTime = getRealTimeDateFromGoogle() ;
        lastPrice = stock_lastPrice ;
        change = stock_change;
        percentage = stock_changePercentage;
      }
      else
      {
        //get from edgar        		
		dateTime = getRealTimeDateFromEdgar();
        lastPrice = stock_lastPrice ;
        change = stock_change;
        percentage = stock_changePercentage;		
      }      
      
      var st = "";
  
      st+='<span id="symbol">UTX</span>';
  
      st+='<span id="date">';
      st+= dateTime;      
      st+='</span>';

      st+='<span id="marketvalue">';
      st+= lastPrice;
      st+='</span>';

      st+='<span id="indicator">';
      st+= getIndicatorImage(change);
      st+='</span>';

      st+='<span id="percentage">';
      st+= getChangeAndPercentageStr(change,percentage);
      st+='</span>';
 
      document.getElementById('realTimeDataDIVID').innerHTML = st ;
    
      return st;
}

//Sep 16, 4:02PM EDT

function getRealTimeDateFromGoogle()
{	
      var now = new Date();
	  var year = now.getYear();
	  
	  var stockDate = stock_lastTradeDate.substr(0,stock_lastTradeDate.indexOf(',')+1)+" "+year;	  
	  
	  var st = getDateStr(new Date(Date.parse(stockDate)));
	  
	  var indexOfHour = stock_lastTradeDate.indexOf(',')+2;  
      var indexOfColon = stock_lastTradeDate.indexOf(":")+1;
	  
	  var h = stock_lastTradeDate.substr(indexOfHour,indexOfColon-indexOfHour-1) ;
	  var m = stock_lastTradeDate.substr(indexOfColon,4) ;
	  
	  var indexOfLastSpace = stock_lastTradeDate.lastIndexOf(" ") ;
	  var timing = stock_lastTradeDate.substr(indexOfLastSpace+1,stock_lastTradeDate.length-indexOfLastSpace);
      
      st+="<br/>" + h +":"+ m + " " + timing ;
	 
	  // ---------------
     
	 return st;
	
}

function getRealTimeDateFromEdgar()
{  

	if( typeof irxmlstockquote != 'undefined' && irxmlstockquote.length > 0 )
	{	  
		
	      var statusCode = IRXMLSTATUSCODE; 
		  var ticker = irxmlstockquote[0];		  		   
		   
		  
          var date = new Date(ticker.lastdatetime);		  		  
		  
		  var st = getDateStr(date);
		  
		  var hour = ((date.getHours() > 12) ? date.getHours()-12 : date.getHours());
		  
		  st+="<br/>" + hour +":"+ date.getMinutes() + " ";
		 
		  return st;
	}
	
	return "";
}

function getDateStr(date)
{	
	var d  = date.getDate();
	var day = (d < 10) ? '0' + d : d;
	var m = date.getMonth() + 1;
	var month = (m < 10) ? '0' + m : m;
	var yy = date.getYear();
	var year = (yy < 1000) ? yy + 1900 : yy;  			
	
	return month + "/" + day + "/" + year ;
}

function getChangeAndPercentageStr(chg,pChg)
{	
	var changeVal = "";
	
	changeVal+=chg;
	
	changeVal+="(" + pChg + "%)";
	
	return changeVal ;
} 

function getIndicatorImage(change)
{
	 var indicatorImage = "<img src='/utc_cn/images/";
	 
	 if(change >=0)
	 {
		 indicatorImage+="indicator_up.gif";
	 }
	 else
	 {
		 indicatorImage+="indicator_dn.gif";
	 }
	 
	 indicatorImage+="'>";
	
	 return indicatorImage;
}

/* -----------------------------------------------------------------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
/* --------------------------------- Stoke Quote functions ---------------------------------------*/
/* -----------------------------------------------------------------------------------------------*/
function tess()
{	
	location.replace('/utc_cn/Investor_Relations/investor_relations.html');
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function getFormattedDatefromEdgar(dateStr)
{	
    var d = "";
	
	var hour = dateStr.getHours();
	
	if(hour > 12)
	{
		hour = hour - 12 ; 	
	}
	
	d+= hour + " : " + dateStr.getMinutes() + " ET on " ;
	
	d+= arrOfAllMonths[dateStr.getMonth()] + " " + dateStr.getDate();		
	
	return d;
	
	
}

function getStockQuoteFromEdgar()
{
	
	var last = "";
	var previousClose = "";
	var dayRange = "";
	var asOfStr = "";
	var exchange = "";
	
	var intraDayChange = "";
	var weekRange = "";
	var volume = "";
	var pe = "";
	
	
	if( typeof irxmlstockquote != 'undefined' && irxmlstockquote.length > 0 )
	{	  
		 
		
		 var statusCode = IRXMLSTATUSCODE; 
		 var ticker = irxmlstockquote[0];		  		   
		
		 last = ticker.lastprice;
		 previousClose = ticker.previousclose;
		 dayRange = ticker.low + " - " + ticker.high;  


         asOfStr = getFormattedDatefromEdgar(ticker.lastdatetime);
		 
		 exchange = ticker.exchange;		 
		 
		 intraDayChange = ticker.change + "&nbsp;" + getIndicatorImage(ticker.change) + "&nbsp;" + ticker.pchange + "%";
		 
		 weekRange = ticker.yearlow + " - " + ticker.yearhigh;
		 volume = ticker.volume;
		 pe = ticker.pe;		  		 		 
		 
		 document.getElementById('lastLabelID').innerHTML = last ;
		 document.getElementById('prevCloseLabelID').innerHTML = previousClose ;
		 document.getElementById('dayRangeLabelID').innerHTML = dayRange ;
		 document.getElementById('asOfLabelID').innerHTML = asOfStr ;
		 document.getElementById('exchangeLabelID').innerHTML = exchange ;
		 
		 document.getElementById('intraDayChangeLabelID').innerHTML = intraDayChange ;
		 document.getElementById('WeekRangeLabelID').innerHTML = weekRange ;
		 document.getElementById('volumeLabelID').innerHTML = volume ;
		 document.getElementById('peLabelID').innerHTML = pe ;		 
		  
		  
		  

	}	
	
	//document.getElementById('stockQuotaDivID').innerHTML = "";
	
	
}
