function startQuoteStream(cmd){
 lcmd = cmd;
 
 if (hasRealtimeCSE) {
  if (cmd == 1) {
   RTStockData(1);
  } else if (cmd == 2) {
   RTStockData(1);
  } else if (cmd == 3) {
   RTStockData(1);
  } else {
   clearTimeout(ltimeout);
  }
 }
 else {
  if (cmd == 1) {
   //StockData(1);
  } else if (cmd == 2) {
   //StockData(1);
  } else if (cmd == 3) {
   //StockData(1);
  } else {
   clearTimeout(ltimeout);
  }
 }
}

function ajaxDoQuoteUpdate(StockID, StockLast, StockBid, StockAsk, StockHigh, StockLow, StockDiff, StockDiffPercent, StockVolume, StockClosePrice, StockTimeStamp, StockDelay, StockSpanName) {
 var j; 
 var g; 

 //Nuværende element. 
 var elm;
 
 try {
  //StockSpanName ligges i array.. der køres igennen.
  var mySpans = new Array();
  mySpans = StockSpanName.split(":");
   
	 for(g=0; g<mySpans.length; g++) {
	  j = mySpans[g].replace(":", "")
  	//Hvis et felt med ID'et eksisterer
	 	if (document.getElementById("QUOTE:" + StockID + ":LAST:" + j)!=undefined) {
    try {
     elm = document.getElementById("QUOTE:" + StockID + ":LAST:" + j);
     if (StockLast == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen
     } else {
      if (elm.innerHTML != StockLast) {
       SetSpanAndTextColor(StockLast, elm, false);
       elm.innerHTML = StockLast;
      }
     }      
    }
    catch(err) {
     //Fejl
     elm.innerHTML = err.message;
    }
    
    //Bemærk, de andre felter forsøges kun hvis last findes
    //BID
  	 	if (document.getElementById("QUOTE:" + StockID + ":BID:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":BID:" + j);
       if (StockBid == "0,00") {
        //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen
       } else {
        if (elm.innerHTML != StockBid) {
         SetSpanAndTextColor(StockBid, elm, false);
         elm.innerHTML = StockBid;
        }
       }      
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }
     
     //ASK
  	 	if (document.getElementById("QUOTE:" + StockID + ":ASK:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":ASK:" + j);
       if (StockBid == "0,00") {
        //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen
       } else {
        if (elm.innerHTML != StockAsk) {
         SetSpanAndTextColor(StockAsk, elm, false);
         elm.innerHTML = StockAsk;
        }
       }      
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }   
     
     //High
  	 	if (document.getElementById("QUOTE:" + StockID + ":HIGH:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":HIGH:" + j);
       if (elm.innerHTML != StockHigh) {
        SetSpanAndTextColor(StockHigh, elm, false);
        elm.innerHTML = StockHigh;
       }  
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }   
     
     //Low
  	 	if (document.getElementById("QUOTE:" + StockID + ":LOW:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":LOW:" + j);
       if (elm.innerHTML != StockLow) {
        SetSpanAndTextColor(StockLow, elm, false);
        elm.innerHTML = StockLow;
       }  
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }                
     
     //Diff
  	 	if (document.getElementById("QUOTE:" + StockID + ":DIFF:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":DIFF:" + j);
       if (elm.innerHTML != StockDiff) {
        SetSpanAndTextColor(StockDiff, elm, true);
        elm.innerHTML = StockDiff;
       }     
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }   
     
     //DiffPercent
  	 	if (document.getElementById("QUOTE:" + StockID + ":DIFFPERCENT:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":DIFFPERCENT:" + j);
       if (elm.innerHTML != StockDiffPercent + '%') {
        SetSpanAndTextColor(StockDiffPercent, elm, true);
        elm.innerHTML = StockDiffPercent + '%';
       }
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }   
     
     //Volume
  	 	if (document.getElementById("QUOTE:" + StockID + ":VOLUME:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":VOLUME:" + j);
       if (elm.innerHTML != StockVolume) {
        blink(elm.id, "yellow");
        elm.innerHTML = StockVolume;
       }     
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }  
     
     //ClosePrice
  	 	if (document.getElementById("QUOTE:" + StockID + ":CLOSEPRICE:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":CLOSEPRICE:" + j);
       SetSpanAndTextColor(StockClosePrice, elm, false);
       elm.innerHTML = StockClosePrice;            
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }        
     
     //Timestamp
  	 	if (document.getElementById("QUOTE:" + StockID + ":TIMESTAMP:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":TIMESTAMP:" + j);
       if (elm.innerHTML != StockTimeStamp) {
        blink(elm.id, "yellow"); 
        elm.innerHTML = StockTimeStamp;
       }     
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }           
     
     //Delay
  	 	if (document.getElementById("QUOTE:" + StockID + ":DELAY:" + j)!=undefined) {
      try {
       elm = document.getElementById("QUOTE:" + StockID + ":DELAY:" + j);
       //Ingen blink.
       elm.innerHTML = StockDelay;
      }
      catch(err) {
       //Fejl
       elm.innerHTML = err.message;
      }          
     }           
     
   	}
  	 else {
  	  //Ingenting
 	   //window.status = '1 - findes ikke: document.getElementById("QUOTE:' + StockID + ':LAST:' + j + '") - ' + writeTimeNow();
 	  }
	  
	  }
	  //Nulstiller lige felt-tæller
	  j=1;
	 }  
 catch (err) {
  //Stopper opdatering
  startQuoteStream(0);
  if (document.getElementById("RealtimeStatus")!=undefined) {
   document.getElementById("RealtimeStatus").innerHTML = err.message;
  } 
 }

}

function RTStockData(sendAllData) {
 try {
  if (document.getElementById("Loading")!=undefined) {
   document.getElementById("Loading").style.visibility = "visible";
  }
  if (document.getElementById("RealtimeStatus")!=undefined) {
   document.getElementById("RealtimeStatus").innerHTML = 'Streaming aktiveret - ' + writeTimeNow();
  }
  if (sendAllData == 1) {
   //euroinvestorint.GlobalAjaxFunctions.RTStockData(idstr, 1, callback_RTStockData);
   euroinvestorint.GlobalAjaxFunctions.RTStockData(idstr, 1, callback_RealTimeQuotes);
  } 
  else {
   //euroinvestorint.GlobalAjaxFunctions.RTStockData(idstr, 0, callback_RTStockData);
   euroinvestorint.GlobalAjaxFunctions.RTStockData(idstr, 0, callback_RealTimeQuotes);
  }
  if (document.getElementById("TimeRightNow")!=undefined) {
   document.getElementById("TimeRightNow").innerHTML = writeTimeNow();
  }
 }
 catch(err) {
  //Stopper opdatering
  startQuoteStream(0);
  if (document.getElementById("RealtimeStatus")!=undefined) {
   document.getElementById("RealtimeStatus").innerHTML = err.message;
  }
 }
}

function callback_RTStockData(res) {
 if (document.getElementById("Loading")!=undefined) {
  document.getElementById("Loading").style.visibility = "hidden";
 }
 startTime=new Date().getTime();
	var n;
	
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)
	{
	 for(var i=0; i<res.value.Tables[0].Rows.length; i++)
	  {
for (var j=0; j<spanarr.length; j++)
 {
 var elm = spanarr[j];
 var elmid = elm.id.split(":");
 
 //if (elmid[0].toUpperCase()=="QUOTE") //Et check mindre = hurtigere afvikling.
 // {
  if (elmid[1]==res.value.Tables[0].Rows[i].StockID)
   {
		 n = res.value.Tables[0].Rows[i];
		 
   switch (elmid[2].toUpperCase())
    {
    case "LAST":
     if (n.StockLast == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen
     } else {
      if (elm.innerHTML != n.StockLast) {
       SetSpanAndTextColor(n.StockLast, elm, false);
       elm.innerHTML = n.StockLast;
      }
     }
     break; //StockLast
     
    case "BID":
     if (n.StockBid == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen.
     } else {
      if (elm.innerHTML != n.StockBid) {
       SetSpanAndTextColor(n.StockBid, elm, false);
       elm.innerHTML = n.StockBid;
      }
     }
     break; //StockBid
     
    case "ASK":
     if (n.StockAsk == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen.
     } else {
      if (elm.innerHTML != n.StockAsk) {
       SetSpanAndTextColor(n.StockAsk, elm, false);
       elm.innerHTML = n.StockAsk;
      }
     }
     break; //StockAsk
     
    case "HIGH":
     if (elm.innerHTML != n.StockHigh) {
      SetSpanAndTextColor(n.StockHigh, elm, false);
      elm.innerHTML = n.StockHigh;
     }
     break; //StockHigh
     
    case "LOW":
     if (elm.innerHTML != n.StockLow) {
      SetSpanAndTextColor(n.StockLow, elm, false);
      elm.innerHTML = n.StockLow;
     }
     break; //StockLow
     
    case "DIFF":
     if (elm.innerHTML != n.StockDiff) {
      SetSpanAndTextColor(n.StockDiff, elm, true);
      elm.innerHTML = n.StockDiff;
     }
     break; //StockDiff
     
    case "DIFFPERCENT":
     if (elm.innerHTML != n.StockDiffPercent + '%') {
      SetSpanAndTextColor(n.StockDiffPercent, elm, true);
      elm.innerHTML = n.StockDiffPercent + '%';
     }
     break; //StockDiffPercent
     
    case "VOLUME":
     if (elm.innerHTML != n.StockVolume) {
      blink(elm.id, "yellow");
      elm.innerHTML = n.StockVolume;
     }     
     break; //StockVolume       

    case "CLOSEPRICE":
     SetSpanAndTextColor(n.StockClosePrice, elm, false);
     elm.innerHTML = n.StockClosePrice;
     break; //StockClosePrice     
     
    case "TIMESTAMP":
     if (elm.innerHTML != n.StockTimeStamp) {
      blink(elm.id, "yellow"); 
      elm.innerHTML = n.StockTimeStamp;
     }
     break; //StockTimeStamp

    case "DELAY":
     if (elm.innerHTML != n.StockDelay) {
      elm.innerHTML = n.StockDelay;
     }
     break; //StockDelay
    }
   }
  }
// }	 
	 
	 }
	}
	
if (lcmd == 2) {
 recalcPortfolio();
}

endTime=new Date().getTime();
if (document.getElementById("divResult1")!=undefined) {
 document.getElementById('divResult1').innerHTML = 'Seneste resultat: ' + ((endTime-startTime)/1000.0) + ' | ' + writeTimeNow();
}
ltimeout = setTimeout("RTStockData(0)", 10000);
}

function StockData(sendAllData) {
 //Bemærk, skal ha' lavet samme ændringer som RT.
 if (sendAllData == 1) {
  window.status = 'Streaming - Status: Henter alt data';
  euroinvestorint.GlobalAjaxFunctions.StockData(idstr, 1, callback_StockData);
  window.status = 'Streaming - Status: Okay - Forsinket - Alt data';
 } else {
  window.status = 'Streaming - Status: Henter data';
  euroinvestorint.GlobalAjaxFunctions.StockData(idstr, 0, callback_StockData);
  window.status = 'Streaming - Status: Okay - Forsinket';
 }
 
 if (document.getElementById("TimeRightNow")!=undefined) {
  document.getElementById("TimeRightNow").innerHTML = writeTimeNow();
 }
}

function callback_StockData(res) {
 var tags = document.getElementsByTagName("span");
	var n;

	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)
	{
	 //window.status = 'Antal: ' + res.value.Tables[0].Rows.length;
	 for(var i=0; i<res.value.Tables[0].Rows.length; i++){
	 
for (var j=0; j<tags.length; j++)
 {
 var elm = tags[j];
 var elmid = elm.id.split(":");
 
 if (elmid[0].toUpperCase()=="QUOTE")
  {
  if (elmid[1]==res.value.Tables[0].Rows[i].StockID)
   {
		 n = res.value.Tables[0].Rows[i];
		 
   switch (elmid[2].toUpperCase())
    {
    
    //case "NAME":
    // if (elm.innerHTML != n.StockName) {
    //  elm.innerHTML = n.StockName;
    //  }
    // break; //StockName
     
    case "LAST":
     if (n.StockLast == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen.
     } else {
      if (elm.innerHTML != n.StockLast) {
       SetSpanAndTextColor(n.StockLast, elm, false);
       elm.innerHTML = n.StockLast;
      }
     }
     break; //StockLast
     
    case "BID":
     if (n.StockBid == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen.
     } else {
      if (elm.innerHTML != n.StockBid) {
       SetSpanAndTextColor(n.StockBid, elm, false);
       elm.innerHTML = n.StockBid;
      }
     }
     break; //StockBid
     
    case "ASK":
     if (n.StockAsk == "0,00") {
      //ingenting - Løser problem med at ecovision skriver 0, indtil der er data for dagen.
     } else {
      if (elm.innerHTML != n.StockAsk) {
       SetSpanAndTextColor(n.StockAsk, elm, false);
       elm.innerHTML = n.StockAsk;
      }
     }
     break; //StockAsk
     
    case "HIGH":
     if (elm.innerHTML != n.StockHigh) {
      SetSpanAndTextColor(n.StockHigh, elm, false);
      elm.innerHTML = n.StockHigh;
     }
     break; //StockHigh
     
    case "LOW":
     if (elm.innerHTML != n.StockLow) {
      SetSpanAndTextColor(n.StockLow, elm, false);
      elm.innerHTML = n.StockLow;
     }
     break; //StockLow
     
    case "DIFF":
     if (elm.innerHTML != n.StockDiff) {
      SetSpanAndTextColor(n.StockDiff, elm, true);
      elm.innerHTML = n.StockDiff;
     }
     break; //StockDiff
     
    case "DIFFPERCENT":
     if (elm.innerHTML != n.StockDiffPercent + '%') {
      SetSpanAndTextColor(n.StockDiffPercent, elm, true);
      elm.innerHTML = n.StockDiffPercent + '%';
     }
     break; //StockDiffPercent
     
    case "VOLUME":
     if (elm.innerHTML != n.StockVolume) {
      blink(elm.id, "yellow");
      elm.innerHTML = n.StockVolume;
     }     
     break; //StockVolume       

    case "CLOSEPRICE":
     SetSpanAndTextColor(n.StockClosePrice, elm, false);
     elm.innerHTML = n.StockClosePrice;
     break; //StockClosePrice     
     
    case "TIMESTAMP":
     if (elm.innerHTML != n.StockTimeStamp) {
      blink(elm.id, "yellow"); 
      elm.innerHTML = n.StockTimeStamp;
     }
     break; //StockTimeStamp

    case "DELAY":
     if (elm.innerHTML != n.StockDelay) {
      elm.innerHTML = n.StockDelay;
     }
     break; //StockDelay
    }
   }
  }
 }	 
	 
	 }
	}

if (lcmd == 2) {
 recalcPortfolio();
}

//Streaming kald er fjernet.
//ltimeout = setTimeout("StockData(0)", 5000); 
}

function SetSpanAndTextColor(newval, spanname, setcolor) {
 //Smid ekstra param på her, til om der skal vises en pil.
 var n = new Number(spanname.innerHTML.replace(".", "").replace(",", ".").replace("%", ""))
 var nv = new Number(newval.replace(".", "").replace(",", ".").replace("%", ""))

 if (nv < n) {
  blink(spanname.id, "red");
  if (setcolor) {
   if (nv > 0) {
    spanname.className = 'green';
   } else if (nv < 0) {
    spanname.className = 'red';
   } else {
    spanname.className = '';
   }
  }
 } else if (nv > n) {
  blink(spanname.id, "green");
  if (setcolor) {
   if (nv > 0) {
    spanname.className = 'green';
   } else if (nv < 0) {
    spanname.className = 'red';
   } else {
    spanname.className = '';
   }
  }
 }
}

function GetCurrencyQuotes(ID){
 euroinvestorint.GlobalAjaxFunctions.GetCurrencyQuotes(ID, callback_GetCurrencyQuotes);
}

function callback_GetCurrencyQuotes(res) {
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)
	{
		var html = [];
		
		html[html.length] = '<table width="100%" cellspacing="0" cellpadding="0">';
		for(var i=0; i<res.value.Tables[0].Rows.length; i++)
		 {
		 if (res.value.Tables[0].Rows[i].CurPrice != '0'){
 		 if ((i%2)==0){
		   html[html.length] = ' <tr class="whiterowalt"><td>&nbsp;<img src="/images/' + res.value.Tables[0].Rows[i].CurSymbol + '_lille.gif" width="18" height="10" border="0" alt="' + res.value.Tables[0].Rows[i].CurName + '">&nbsp;' + res.value.Tables[0].Rows[i].CurName + ' </td><td>&nbsp;<img src="/images/val_graf.gif" border="0" alt="' + res.value.Tables[0].Rows[i].CurSymbol + '" width="13" height="10"></td><td align="right">' + res.value.Tables[0].Rows[i].CurSymbol + '&nbsp;</td><td align="right">' + res.value.Tables[0].Rows[i].CurPrice + '&nbsp;</td></tr> ';
 		  }
		  else {
		   html[html.length] = ' <tr class="whiterow"><td>&nbsp;<img src="/images/' + res.value.Tables[0].Rows[i].CurSymbol + '_lille.gif" width="18" height="10" border="0" alt="' + res.value.Tables[0].Rows[i].CurName + '">&nbsp;' + res.value.Tables[0].Rows[i].CurName + ' </td><td>&nbsp;<img src="/images/val_graf.gif" border="0" alt="' + res.value.Tables[0].Rows[i].CurSymbol + '" width="13" height="10"></td><td align="right">' + res.value.Tables[0].Rows[i].CurSymbol + '&nbsp;</td><td align="right">' + res.value.Tables[0].Rows[i].CurPrice + '&nbsp;</td></tr> ';
		   }
		  }
		 }
		html[html.length] = '</table>';
		 
	 window.document.getElementById("WorldCurrencyQuotes").innerHTML = html.join("");
	}
}

function GetTimeNow() {
 euroinvestorint.GlobalAjaxFunctions.GetServerTime(callback_GetTimeNow);
}

function callback_GetTimeNow(res){
 window.document.getElementById("TimeRightNow").innerHTML = 'Live opdatering: <b>' + res.value + '</b>';
}

function GetStockQuote(index)
{
 euroinvestorint.GlobalAjaxFunctions.GetStockQuote(index, callback_GetStockQuote);
}

function callback_GetStockQuote(res)
{
	var index;
 
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)
	{
		var html = [];
		var n;
		var id;
		
  //Problem med lange sider - Hvis der er mere end 50 aktier, sker der intet
  if(res.value.Tables[0].Rows.length <=50)
   {
   GetTimeNow();

		//Nyt --> Opdaterer kun hvor det er nødvendigt.
		for(var i=0; i<res.value.Tables[0].Rows.length; i++) {
		 id = res.value.Tables[0].Rows[i].StockID;
		 n = document.getElementById("QI_7_" + id).innerHTML;		
		 if (i==0){
		  index = res.value.Tables[0].Rows[i].Index;
		  }
		 
		 if (n != res.value.Tables[0].Rows[i].StockTimeStamp) {
		  for (var j=0; j<=8; j++) {
 		  //Blink felter
     document.getElementById("QI_" + j + "_" + id).style.backgroundRepeat = "repeat";
     document.getElementById("QI_" + j + "_" + id).style.backgroundImage = "url(http://www.euroinvestor.dk/images/RTblink.gif)";
    }
    
    //Opdater Kurs --> Last
    document.getElementById("QI_2_" + id).innerHTML = res.value.Tables[0].Rows[i].StockPrice;
    //Opdater +/-
    document.getElementById("QI_3_" + id).innerHTML = res.value.Tables[0].Rows[i].PercentageChange;
    //Opdater +/-
    document.getElementById("QI_4_" + id).innerHTML = res.value.Tables[0].Rows[i].Totvol;
    //Opdater +/-
    document.getElementById("QI_5_" + id).innerHTML = res.value.Tables[0].Rows[i].Bid;
    //Opdater +/-
    document.getElementById("QI_6_" + id).innerHTML = res.value.Tables[0].Rows[i].Ask;
    //Opdater tidspunkt
    document.getElementById("QI_7_" + id).innerHTML = res.value.Tables[0].Rows[i].StockTimeStamp;
    //document.getElementById("QI_8_" + id).innerHTML = res.value.Tables[0].Rows[i].Symbol;
		 } else {
		  for (var k=0; k<=8; k++) {
		   //Fjern Blink
     document.getElementById("QI_" + k + "_" + id).style.backgroundImage = "";
    }
		 }
 	}
 	setTimeout("GetStockQuote('" + index + "')", 1000);
 }
 else{
  window.document.getElementById("TimeRightNow").innerHTML = 'For mange aktier på denne side - Ingen liveopdatering';
 }
}
	else{
		//alert('Fejl: ' + res.error);
	}
}

function blink(elm, color) {
  if (color=="red") {
   document.getElementById(elm).style.backgroundRepeat = "repeat";
   document.getElementById(elm).style.backgroundImage = "url(http://www.euroinvestor.dk/images/RTblink_red_once.gif)";
   setTimeout("blink(\"" + elm + "\",\"none\")", 2000); 
  } else if (color=="green") {
   document.getElementById(elm).style.backgroundRepeat = "repeat";
   document.getElementById(elm).style.backgroundImage = "url(http://www.euroinvestor.dk/images/RTblink_green_once.gif)";
   setTimeout("blink(\"" + elm + "\",\"none\")", 2000); 
  } else if (color=="yellow") {
   document.getElementById(elm).style.backgroundRepeat = "repeat";
   document.getElementById(elm).style.backgroundImage = "url(http://www.euroinvestor.dk/images/RTblink_yellow_once.gif)";
   setTimeout("blink(\"" + elm + "\",\"none\")", 2000); 
  } else if (color=="blue") {
   document.getElementById(elm).style.backgroundRepeat = "repeat";
   document.getElementById(elm).style.backgroundImage = "url(http://www.euroinvestor.dk/images/RTblink_blue_once.gif)";
   setTimeout("blink(\"" + elm + "\",\"none\")", 2000); 
  } else {
   document.getElementById(elm).style.backgroundRepeat = "no-repeat";
   document.getElementById(elm).style.backgroundImage = "";
  }
}

function writeTimeNow() {
 Curtime = new Date;
 var month;
 month = Curtime.getMonth()+1;
 //Med dato
 //return showFilled(Curtime.getHours()) + ':' + showFilled(Curtime.getMinutes()) + ':' + showFilled(Curtime.getSeconds()) + ' ' + Curtime.getDate() + '-' + month;
 //Uden dato
 return showFilled(Curtime.getHours()) + ':' + showFilled(Curtime.getMinutes()) + ':' + showFilled(Curtime.getSeconds());
}

function showFilled(Value) 
{
	return (Value > 9) ? "" + Value : "0" + Value;
}

function RealtimeStockData_GetSingle(ID){
 //Henter bare data fra DB
 //euroinvestorint.GlobalAjaxFunctions.RTStockData_GetSingleDB(ID, callback_RTStockData_GetSingle);
 //Henter info fra vores globale var
 euroinvestorint.GlobalAjaxFunctions.RTStockData_GetSingle(ID, callback_RTStockData_GetSingle);
}

function callback_RTStockData_GetSingle(res) {
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)	{
	 for (var i=0; i<res.value.Tables[0].Rows.length; i++) {
   window.document.getElementById("Stockid" + res.value.Tables[0].Rows[i].StockID).innerHTML = 'Her: '; // + res.value.Tables[0].Rows[i].StockName
	 }
	}
	else {
	 alert('Fejl: ' + res.error.value);
	}
}

function RealTimeQuotes(all) {
 //Henter alle kurser, der er opdateret siden sidst
 //Skal laves først
 //euroinvestorint.GlobalAjaxFunctions.RealTimeQuotes(callback_RealTimeQuotes);
 //Til test
 euroinvestorint.GlobalAjaxFunctions.RTStockData(idstr, all, callback_RealTimeQuotes);
}

function callback_RealTimeQuotes(res) {
 if (document.getElementById("Loading")!=undefined) {
  document.getElementById("Loading").style.visibility = "hidden";
 }
 startTime=new Date().getTime();

 //Holder nuværende objekt, fra resultatet
 var n;
 
 //Hvis der er et resultat
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)	{
	 //Data fundet
	 //window.status = 'Data fundet - ' + writeTimeNow();
	 //Løb alle resultater igennem, forsøg at skrive data ud.
	 for(var i=0; i<res.value.Tables[0].Rows.length; i++) {
	  n = res.value.Tables[0].Rows[i];
	  
	  ajaxDoQuoteUpdate(n.StockID, n.StockLast, n.StockBid, n.StockAsk, n.StockHigh, n.StockLow, n.StockDiff, n.StockDiffPercent, n.StockVolume, n.StockClosePrice, n.StockTimeStamp, n.StockDelay, n.StockSpanName)
 	}
 }
	else {
	 //Intet resultat
	 //window.status = 'Intet resultat - ' + writeTimeNow();
	}

if (lcmd == 2) {
 recalcPortfolio();
}
	
endTime=new Date().getTime();
if (document.getElementById("divResult1")!=undefined) {
 document.getElementById('divResult1').innerHTML = 'Seneste resultat: ' + ((endTime-startTime)/1000.0) + ' | ' + writeTimeNow();
}
ltimeout = setTimeout("RTStockData(0)", 10000);
}

function recommendNewsStory(storyID) {
 euroinvestorint.GlobalAjaxFunctions.recommendNewsStoryUpd(storyID, callback_recommendNewsStoryUpd);
}

function callback_recommendNewsStoryUpd(res) {
 if (res.value == '-1') {
  window.document.getElementById("RecomText").innerHTML = 'Log ind for at anbefale nyheder';
 }
 else {
  window.document.getElementById("RecomText").innerHTML = 'Anbefalinger: ' + res.value + ' - Tak for din anbefaling.';
 }
}

function GetSelectedStockInfo(id) {
 window.status = 'inden - ' + id;
 //euroinvestorint.GlobalAjaxFunctions.StockData(id, callback_SelectedStockInfo);
 window.status = 'efter - ' + id;
}

function callback_SelectedStockInfo(res) {
 alert('Done');
}

var utftg = "";

function UpdateTopFlopTable(g) {
 if (utftg=="") utftg = g;
 euroinvestorint.GlobalAjaxFunctions.RTTopFlop(g, callback_UpdateTopFlopTable);
}

function callback_UpdateTopFlopTable(res) {
 if (typeof(document.getElementById("topflopdiv")) == 'undefined') return false;
 if (res.value != null) {
  try {
    document.getElementById("topflopdiv").innerHTML = res.value;
  } catch (exp) {
  }
  try {
    var d = new Date();
    var ts = d.toLocaleTimeString();
    if (ts.length > 8) ts = ts.substring(0, 8);
    document.getElementById("topfloptime").innerHTML = ts;
  } catch (exp) {
  } 
 }
 
 setTimeout("UpdateTopFlopTable(\"" + utftg + "\")", 30000);
}
