 /* v2.3  */
 	 
 var marketOpen = 9;	 
 var marketClose = 22;	 
 var timeOut = 5000;	 
 var url = '/pages/live/generateKey.html';	 
 var streamerUrl;	 
 var domainUrl;	 
 var extension = document.domain.substr(document.domain.lastIndexOf("."));	 
 var DOMObjects = new Array();	 
 	 
 	 
 switch (extension) {	 
     case '.com':	 
         streamerUrl = 'https://streamer.keytradebank.com/stock?';	 
         domainUrl = 'keytradebank';	 
     break;	 
     case '.lu':	 
         streamerUrl = 'https://streamer.keytrade.lu/stock?';	 
         domainUrl = 'keytrade';	 
     break;
     case '.ch':
     	streamerUrl = 'https://streamer.keytradebank.ch/stock?';
     	domainUrl = 'keytradebank';
     break;
 }	 
 	 
 url = url + '?' + unescape(quote);	 
 	 
 function getObject(id) {	 
         var tmp;	 
         tmp = DOMObjects[id];	 
         if (!tmp)	 
                 DOMObjects[id] = document.getElementById(id);
         return DOMObjects[id];	 
 }	 
 	 
 function getKeyStart(url){	 
         var proto;	 
          if (window.XMLHttpRequest) proto = new XMLHttpRequest();	 
         else if (window.ActiveXObject) {	 
                 try {	 
                         proto = new ActiveXObject("Msxml2.XMLHTTP");	 
                 } catch (e) {	 
                         try {	 
                                 proto = new ActiveXObject("Microsoft.XMLHTTP");	 
                         } catch (e) { }	 
                 }	 
         }	 
         proto.open('GET', url, true);	 
         proto.onreadystatechange = function(){	 
                 if(proto.readyState == 4 || proto.readyState == 'complete') {	 
                         if(proto.status == 200) {	 
                                 streamer.initialize(proto.responseText);	 
                         } else {	 
                                 window.setTimeout(streamer.restart,10000);	 
                         }	 
                 }	 
         }	 
         proto.send(null);	 
 }	 
 	 
 function connectionTime() {	
         var now = new Date();	 
         var nowH = now.getHours();	 
         var open = new Date();	 
         open.setHours(marketOpen,0,0);	 
         var openH = open.getHours();	 
         if ((nowH>=marketOpen) && (nowH<marketClose)) {	 
                 setTimeout(streamer.reload,timeOut);	 
         } else {	 
                 var nowS = now.getTime();	 
                 var openS = open.getTime();	 
                 if(nowH>openH) {	 
                         var reconnectTime = nowS-openS;	 
                 } else {	 
                         var reconnectTime = openS-nowS;	 
                 }	 
                 setTimeout(streamer.reload,(reconnectTime-100000));	 
         }	 
 }	 
	 
 function formatNumber(number, decimals) {	 
         switch(decimals) {	 
             case 5: rounding = 100000; break;	 
             case 3: rounding = 1000; break;	 
             case 2: rounding = 100; break;	 
             default: rounding = 1; break;	 
         }	 
 	 
         if(decimals==5) {	 
             var tmp = number*1000;	 
             tmp = tmp.toString();	 
             if (tmp.indexOf('.')==-1)	 
                 decimals = 2;	 
         }	 
         number = (Math.round(number*rounding)/rounding).toFixed(decimals).toString();	 
         if(number.substr(0,1) == ',') number = '0'+number;	 
         if(number.substr(0,2) == '-,') number = '-0'+number.substr(1);	 
         return number;	 
 }	 
 	 
 function formatSet(value, decimal, field, pointer) {	 
         value = formatNumber(value, decimal);	 
         setField(field, value);	 
         return ++pointer;	 
 }	 
 	 
 function fixLeadZero(value) {	 
     return value<=9?'0'+value:value;	 
 }	 
 	 
 function delayTime(datetime,delay) {	 
     var d = datetime.replace(/[\D\s]/g,',').split(',');
     var currentDateTime = new Date(d[0],(d[1]-1),d[2],d[3],d[4],d[5]);	 
     var delayedDateTime =  new Date(currentDateTime.getTime()-(delay*60*1000));	 
     var month = fixLeadZero(delayedDateTime.getMonth()+1);	 
     var day = fixLeadZero(delayedDateTime.getDate());	 
     var hour = fixLeadZero(delayedDateTime.getHours());	 
     var min = fixLeadZero(delayedDateTime.getMinutes());	 
     var sec = fixLeadZero(delayedDateTime.getSeconds());	 
     return delayedDateTime.getFullYear()+'-'+month+'-'+day+' '+hour+':'+min+':'+sec;	 
     
 }	 

var c;	 
var sTimeOut;	 
function changeStatus(m) {	 
     clearTimeout(sTimeOut);	 
     if(!c) c = 0;	 
     var x = '';	 
     x = x + '.';	 
     var newm = m + x;	 
     window.status = newm;	 
     c++;	 
     if(c==3) {	 
         c = 0;	 
         x = '';	 
         newm = newm.substr(0,newm.indexOf('\.'));	 
     }	 
     sTimeOut = setTimeout('changeStatus(\''+newm+'\')',1000);	 
}