//Globale Variablen
var BrowserName = navigator.appName;
var BrowserVersion = navigator.appVersion;
var BVersion = parseFloat (BrowserVersion);
var asb_shouts;
var randomnr;
var reloadStatus= 0;
var loadedLiveChart = '';
var login =0;
var chartnr = 0;
var nextchartnr = 0;
var errorCounter=0;
//Initialisierung von LinowSat
$(document).ready(function(){
  //Referenz auf asb_shouts erzeugen und mit Hinweistext füllen
  // CookieCheck();
    LoadChannellaunch();
    LoadCA_Update();
    LoadLiveChart_Update();
    if(errorCounter > 2) 
	    {
	    	noSuggest();
	    }
 
  setInterval("LoadChannellaunch()",60000);
  setInterval("LoadCA_Update()",59500);
  setInterval("LoadLiveChart_Update()",30000);
 $("#suggest_box").show(1000);
 //blink('welcome','d04040','a02020');
 //first slide down and blink the message box  
if ( $("#object").length > 0 ) 
 {
	 $("#object").animate({  top: "0px"  }, 2000 ).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);  
	 //close the message box when cross red image is clicked  
	 $("#close_message").click(function()  {     $("#object").fadeOut("slow");  });
 }
} )


function LoadLiveChart_Update()
{
 with (new Ajax()) {
  randomnr= Math.random();
  url="/xml/livechart.xml?cache="+randomnr;
//onError=asbShowError;
onError=chartError;
 //if(asbShowError){alert('fehelr');}
 onSuccess=ShowLiveChart;

  doRequest(); 
 }
}
function chartError()
{
	 var centermiddle = document.getElementById('center-middle');
	 centermiddle.innerHTML= '<img src="/images/livechart/default.png" border="0" width="668" height="240">';
	 errorCounter++;
}
function LoadChannellaunch() 
{
 with (new Ajax()) {
  randomnr= Math.random();
  url="/xml/channellaunch.xml?cache="+randomnr;
 onError=clError;
  onSuccess=ShowChannellaunch;
  doRequest(); 
 }
}
function clError()
{
	var ca_content= document.getElementById('center-cl-container');
	ca_content.innerHTML= '<h4>This website is using Ajax, please update your browser to enjoy all features!<h4>';
	errorCounter++;
}
function LoadCA_Update() 
{
 with (new Ajax()) {
  randomnr= Math.random();
  url="/xml/ca_update.xml?cache="+randomnr;
  onError=caError;
  onSuccess=ShowCA_Update;
  doRequest(); 
 }
}
function caError()
{
	var ca_content= document.getElementById('center-ca-container');
	ca_content.innerHTML= '';
	errorCounter++;
}
function noSuggest()
{
	var ca_content= document.getElementById('logo-left');
	ca_content.innerHTML= '';
}
//Umformen der übertragenen asb_entries.xml nach HTML
function changeValue(def_val, sender) {
    if (sender.value == def_val) {
        sender.value = "";
    } else if (sender.value == "") {
        sender.value = def_val;
    }
}
function ShowLiveChart(txt,xml) 
{
  //Fehler beim Laden von asb_entries.xml?
  if (asbHasError(txt)) {
    asbShowError(asbGetError(txt));
    return null;
  }
  if (chartnr ==0){nextchartnr=1;} else {nextchartnr=0;}
 var ticker = new String();
 var centermiddle  = new String();
  var servicename = new String();
  var tempname = new String();
  var entryNode, frequencyNode, frequency, fileNode, file, nameNode;
  var entry = new Array();
 
    entryNode = xml.getElementsByTagName('PROGRAM')[chartnr];
    frequencyNode = entryNode.getElementsByTagName('FREQUENCY')[0];
    frequency = frequencyNode.firstChild.nodeValue;
    fileNode = entryNode.getElementsByTagName('FILE')[0];
    file = fileNode.firstChild.nodeValue;
    
    entryNode = xml.getElementsByTagName('PROGRAM')[nextchartnr];
    nameNode = entryNode.getElementsByTagName('NAME')[0];
    servicename = nameNode.firstChild.nodeValue;

    //if (chartnr ==0){chartnr=1;} else {chartnr=0;}
    chartnr = nextchartnr;
   centermiddle = document.getElementById('center-middle');
  // ticker = document.getElementById('ticker');
   //  ticker.innerHTML = +servicename+'...';
    if(loadedLiveChart != file)
    {
	     loadedLiveChart = file;
	     centermiddle.innerHTML= '<img src="/images/livechart/'+file+'" border="0" width="668" height="240">';
	    
	   
    }
    else
    {
	    // centermiddle.innerHTML= 'old';
    }
}


function ShowCA_Update(txt,xml) 
{
  //Fehler beim Laden von asb_entries.xml?
  if (asbHasError(txt)) {
    asbShowError(asbGetError(txt));
    return null;
  }
 
  var servicename = new String();
  var screenshot = new String();
  var screenshotTime = new String();
  var tempname = new String();
  var entryNode, pathNode, itemNode, item, ca_content, link, linkNode;
  var itemDate=''; var itemDateString='';var itemService=''; var itemType='';var itemTypeString='';
  var itemStatus='';var itemServiceString='';var itemFrequency='';var itemSatellite='';
  var itemStatusString='';
  var cl_string='';
  var itemString;
  var entry = new Array();
  var jobcounter = new Array();
  
  for(i=0; i<xml.getElementsByTagName('item').length;i++) 
  {
    entryNode = xml.getElementsByTagName('item')[i];
    dateNode = entryNode.getElementsByTagName('pubDate')[0];
    date = dateNode.firstChild.nodeValue;
    itemNode = entryNode.getElementsByTagName('title')[0];
    item = itemNode.firstChild.nodeValue;
    linkNode = entryNode.getElementsByTagName('link')[0];
    link = linkNode.firstChild.nodeValue; 
    var Ausdruck = /:\d+\s+(\w.+)\s+(is now free to air|is now crypted)\((.+)-(.+)\)/;
    Ausdruck.exec(item);
    itemService= RegExp.$1;
    itemStatus= RegExp.$2;
    if(itemStatus == 'is now free to air') {itemStatus = '<div style="height:15px;"><img src="/images/icons/16-security-lock-open.png" border="0" height="15" width="15"></div>';}
     else{itemStatus = '<div style="height:15px;"><img src="/images/icons/key.png" border="0" height="15" width="15"></div>';}
    itemStatusString =  itemStatus +' '+itemStatusString;
    //itemType= RegExp.$1.toUpperCase();
    itemTypeString=itemTypeString+itemType+'<br>';
    itemStatus= itemStatus + RegExp.$2+'<br>';
    itemFrequency= itemFrequency + RegExp.$3+'<br>';
    itemSatellite= itemSatellite + RegExp.$4+'<br>';
    itemDate = date.substr(0,22)+' UTC';
    if(i==0){itemDateString = itemDate;}
     else{
	     itemDateString = itemDateString +'  <br> '+itemDate;
     }
     if(itemService.length > 15){ itemService=itemService.substr(0,13)+'..';}
    itemServiceString = itemServiceString + '<a href="'+link+'"title=New Channel">'+itemService+'</a><br>';
  }
//ca_content= document.getElementById('center-ca-head');
//ca_content.innerHTML= 'CA Status Update';
ca_content= document.getElementById('center-ca-date');
ca_content.innerHTML= itemDateString;
ca_content= document.getElementById('center-ca-service');
ca_content.innerHTML= itemServiceString;
ca_content= document.getElementById('center-ca-type');
ca_content.innerHTML= itemTypeString;
ca_content= document.getElementById('center-ca-status');
ca_content.innerHTML= itemStatusString;
ca_content= document.getElementById('center-ca-frequency');
ca_content.innerHTML= itemFrequency;
ca_content= document.getElementById('center-ca-satellite');
ca_content.innerHTML= itemSatellite;
}

function ShowChannellaunch(txt,xml) 
{
  //Fehler beim Laden von asb_entries.xml?
  if (asbHasError(txt)) {
    asbShowError(asbGetError(txt));
    return null;
  }
 
  var servicename = new String();
  var screenshot = new String();
  var screenshotTime = new String();
  var tempname = new String();
  var entryNode, pathNode, itemNode, item, ca_content, link, linkNode;
  var itemDate=''; var itemDateString='';var itemService=''; var itemType='';var itemTypeString='';
  var itemStatus='';var itemServiceString='';var itemFrequency='';var itemSatellite='';
  var itemStatusString='';
  var cl_string='';
  var itemString;
  var entry = new Array();
  var jobcounter = new Array();
  
  for(i=0; i<xml.getElementsByTagName('item').length;i++) 
  {
    entryNode = xml.getElementsByTagName('item')[i];
    dateNode = entryNode.getElementsByTagName('pubDate')[0];
    date = dateNode.firstChild.nodeValue;
    itemNode = entryNode.getElementsByTagName('title')[0];
    item = itemNode.firstChild.nodeValue;
    linkNode = entryNode.getElementsByTagName('link')[0];
    link = linkNode.firstChild.nodeValue; 
    var Ausdruck = /(\w.+)(TV|Radio|HDTV)\s+(free to air|crypted)\s+\((.+)-(.+)\)/;
     Ausdruck.exec(item);
     itemService= RegExp.$1;
     itemType= RegExp.$2.toUpperCase();
     itemTypeString=itemTypeString+itemType+'<br>';
     itemStatus = RegExp.$3;
     if(itemStatus == 'crypted') {itemStatus = '<div style="height:15px;"><img src="/images/icons/key.png" border="0" height="15" width="15"></div>';}
     else{itemStatus = '<div style="height:15px;"><img src="/images/icons/16-security-lock-open.png" border="0" height="15" width="15"></div>';}
     itemStatusString =  itemStatusString +'  '+itemStatus;
     itemFrequency= itemFrequency + RegExp.$4+'<br>';
     itemSatellite= itemSatellite + RegExp.$5+'<br>';
     //itemDate = item.substr(0,16);
     itemDate = date.substr(0,22)+' UTC';
     if(i==0){itemDateString = itemDate;}
     else{
	     itemDateString = itemDateString +'  <br> '+itemDate;
     }
     if(itemService.length > 15){ itemService=itemService.substr(0,13)+'..';}
     itemServiceString = itemServiceString + '<a href="'+link+'"title=New Channel">'+itemService+'</a><br>';
  }
//ca_content= document.getElementById('center-cl-head');
//ca_content.innerHTML= 'Channel Launch';
ca_content= document.getElementById('center-cl-date');
ca_content.innerHTML= itemDateString;
ca_content= document.getElementById('center-cl-service');
ca_content.innerHTML= itemServiceString;
ca_content= document.getElementById('center-cl-type');
ca_content.innerHTML= itemTypeString;
ca_content= document.getElementById('center-cl-status');
ca_content.innerHTML= itemStatusString;
ca_content= document.getElementById('center-cl-frequency');
ca_content.innerHTML= itemFrequency;
ca_content= document.getElementById('center-cl-satellite');
ca_content.innerHTML= itemSatellite;
}



//allgemeine Fehlerbehandlung
function asbShowError(msg) 
{
	if(msg == 'Es konnte kein XMLHttpRequest-Objekt erstellt werden.')
	{
		//return(9);
	}
	//alert(msg);
}

//Überprüft Rückgabe eines PHP-Skripts auf Fehlermeldung
function asbHasError(msg)
{
  //Hat msg einen Inhalt?
  if (!msg) return false; 
  
  //Befindet sich Zeichenkette AOEERROR: am Anfang von msg?
  if (msg.indexOf("ASBERROR:") == 0) {
    return true;
  } else {
    return false;
  }
}

//Aufbereiten der Fehlermeldung eines PHP-Skripts
function asbGetError(msg)
{
  //AOEERROR: aus Fehlermeldung entfernen
  return msg.replace(/ASBERROR:/, "");
}

//String-Objekt um die Funktion trim erweitern
String.prototype.trim = function () {
   return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
