// JavaScript Document
xmlResponse = null;
if (!window.XMLHttpRequest){
  window.XMLHttpRequest = function(){
    var types = [    'Microsoft.XMLHTTP',
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP'    ];
    for (var i = 0; i < types.length; i++){
      try{
        return new ActiveXObject(types[i]);
      }
      catch(e) {}
    }
    return undefined;
  }
}
http_weather = new XMLHttpRequest();
http_traffic = new XMLHttpRequest();
http_rssfeed = new Array();
feeds_done = new Array();
rss_output = new Array();

rssCounter = 0;

function getTdfInfo(tbl, fld, val){
	var tdf = new XMLHttpRequest();
  tdf.open('POST', '/xml/tdfget.php');
  tdf.onreadystatechange = function(){ handleGetTdf(tdf)};
  tdf.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  tdf.send('tbl='+tbl+'&fld='+fld+'&val='+val);
}

function handleGetTdf(tdf){
	if(tdf.readyState == 4 && tdf.status==200){
		var response = tdf.responseXML;
   	var iso = response.getElementsByTagName("iso")[0].firstChild.data;
   	var name = response.getElementsByTagName("name")[0].firstChild.data;
   	var teamname = response.getElementsByTagName("teamname")[0].firstChild.data;
   	var teamcode = response.getElementsByTagName("code")[0].firstChild.data;
		var elm=document.getElementById('riderName');

		var inner = '<div style="display: block; float: left; width: 16px; margin-right: 2px;"><img src="/images/flags/'+iso.toLowerCase()+'.gif"></div> <b>'+name+'</b>';
		elm.innerHTML = inner;

		var telm=document.getElementById('teamStuff');
		var tinner = '<img style="float: left;" width="28" src="/images/tdf/2009/teams/'+teamcode+'.gif">'+teamname;
		telm.innerHTML = tinner;
	}
}

function getJerseys(rider){
	var jrs = new XMLHttpRequest();
		var jelm=document.getElementById('riderJersey');
		jelm.innerHTML = '';
  jrs.open('POST', '/xml/tdfget.php');
  jrs.onreadystatechange = function(){ handleJersey(jrs)};
  jrs.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  jrs.send('tbl=currentjerseys&val='+rider);
}

function handleJersey(jrs){
	if(jrs.readyState == 4 && jrs.status==200){
		var jelm=document.getElementById('riderJersey');
		jelm.innerHTML = '';
		var response = jrs.responseXML;
   	var standing = response.getElementsByTagName("standing")[0].firstChild.data;

		var jinner = '';
		if(standing == 1){
			jinner += '<img src="/images/tdf/maillotJaune.gif" width="14" height="11" alt="Geel" title="Hij heeft GEEL">';
		}
		if(standing == 2){
			jinner += '<img src="/images/tdf/maillotVert.gif" width="14" height="11" alt="Groen" title="Rijdt in het groen">';
		}
		if(standing == 3){
			jinner += '<img src="/images/tdf/maillotApois.gif" width="14" height="11" alt="Bolletjes" title="Kan goed klimmen">';
		}
		jelm.innerHTML = jinner;
	}
}

function getRSSFeeds(){
	var rssFile = new Array();
	rssCtr = 0;
	var rssCounter = 0;

	var feeds = new XMLHttpRequest();
  feeds.open('POST', '/xml/get.php');
  feeds.onreadystatechange = function(){ handleGetRSSFeeds(rssFile, rssCtr, feeds)};
  feeds.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  feeds.send('type=rssfeeds');
}

function handleGetRSSFeeds(rssFile, rssCtr, feedz){

//rssFile, rssCtr
	if(feedz.readyState == 4 && feedz.status==200){
	//alert(rssCtr);
		var response = feedz.responseXML;
//		var feedsLen = response.getElementsByTagName("url").length;
		var feedsLen = 4;
		for(var l=0 ; l < feedsLen ; l++){
			var feedURL = response.getElementsByTagName("url")[l].firstChild.data;
			var feedID = response.getElementsByTagName("id")[l].firstChild.data;
			var feedUID = response.getElementsByTagName("userid")[l].firstChild.data;

			rssCtr++;

			rssFile[rssCtr] = new Array();
			rssFile[rssCtr]["url"] = "xml/getfeed.php?src="+escape(feedURL);
			rssFile[rssCtr]["id"] = feedID;
			rssFile[rssCtr]["userid"] = feedUID;
			//alert(rssFile[rssCtr]["url"]);
			//setTimeout( "fillRssDiv( " + rssFile[rssCtr] + " , " + l + ")", 500 );
			fillRssDiv( rssFile[rssCtr] , l);
			//alert(l);
			//alert(feedURL);
		}
		//stdRssFiles = rssCtr;
	}
}

function xmlSet(xml_cat, xml_var, xml_val){
	//alert(xml_cat+' '+xml_var+' '+xml_val);
  var http_set = new XMLHttpRequest();
  http_set.open('POST', 'xml/set.php');
  http_set.onreadystatechange = function(){
    if(http_set.readyState == 4){
      var response = http_set.responseXML;
    	var retVal = response.getElementsByTagName("ret")[0].firstChild.data;
  		if(retVal != "OK"){
        alert(retVal);
      }else{
      	//alert("OK")
      }
    }
  }
  http_set.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  http_set.send('type='+xml_cat+'&cat='+xml_var+'&val='+xml_val);
}

function userLogin(userID, password, chl){
  uid = document.getElementById(userID).value;
  pwd = document.getElementById(password).value;
  http_login = new XMLHttpRequest();
  http_login.open('POST', 'xml/login.php');
  http_login.onreadystatechange = processLogin;
  http_login.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  cPasswd = hex_md5(hex_md5(pwd)+chl);
  http_login.send('uid='+uid+'&pwd='+cPasswd);
  document.getElementById(password).value = null;
}

function userLogout(){
  http_login = new XMLHttpRequest();
  http_login.open('POST', 'xml/login.php');
  http_login.onreadystatechange = processLogin;
  http_login.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  http_login.send('uid=&pwd=');
}

function processLogin(){
  if(http_login.readyState == 4){
    var response = http_login.responseXML;
 		userID = response.getElementsByTagName("user_id")[0].firstChild.data;
 		//alert(userID);
 		if(response.getElementsByTagName("error")[0].firstChild.data!="OK"){
      alert(response.getElementsByTagName("error")[0].getAttribute('desc'));
    }
 		if(parseInt(userID)>0){
      document.getElementById('btn_login').style.display='none';
      document.getElementById('btn_register').style.display='none';
      document.getElementById('loginWindow').style.display='none';
      
      //document.getElementById('btn_prefs').style.display='block';
      window.setTimeout("document.getElementById('btn_logout').style.display='block'",1000*.5);
      window.setTimeout("document.getElementById('btn_menu').style.display='block'",1000*.5);
            
    }else{
      document.getElementById('loginWindow').style.display='none';
      document.getElementById('btn_logout').style.display='none';
      document.getElementById('btn_menu').style.display='none';
      //document.getElementById('btn_prefs').style.display='none';

      //window.setTimeout("document.getElementById('btn_login').style.display='block'",1000*.5);
      window.setTimeout("document.getElementById('btn_register').style.display='block'",1000*.5);
    }
 		fillLinksDivs();
  }
}

function addLogentry(name, title, category, online, reaction, logid, allowReactions){
  http_addReaction = new XMLHttpRequest();

  http_addReaction.open('POST', 'xml/log.php');
  http_addReaction.onreadystatechange = function(){
    if(http_addReaction.readyState == 4){
      var response = http_addReaction.responseXML;
  		var result = response.getElementsByTagName("result")[0].firstChild.data;
  		if(result != "OK"){
        alert(result);
      }else{
        document.getElementById('ri_text').value='';
        document.getElementById('ri_title').value='';
        window.location.reload();
				//alert(result);
      }
    }
  }
  http_addReaction.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  http_addReaction.send('action=addlogentry&name='+name+'&title='+title+'&category='+category+'&online='+online+'&allowreactions='+allowReactions+'&log='+logid+'&text='+reaction);
}

function addReaction(name, email, homepage, remember, reaction, logid, code){
  http_addReaction = new XMLHttpRequest();

  http_addReaction.open('POST', 'xml/log.php');
  http_addReaction.onreadystatechange = function(){
    if(http_addReaction.readyState == 4){
      var response = http_addReaction.responseXML;
  		var result = response.getElementsByTagName("result")[0].firstChild.data;
  		if(result != "OK"){
        alert(result);
      }else{
        document.getElementById('ri_text').value='';
        window.location.reload();
      }
    }
  }
  http_addReaction.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  http_addReaction.send('action=addreaction&name='+name+'&email='+email+'&homepage='+homepage+'&remember='+remember+'&reaction='+reaction+'&logid='+logid+'&code='+code);
}

function fillLinksDivs(){
  html_out = '';
  links_http = new XMLHttpRequest();
  links_http.open('GET', 'xml/links.php');
  links_http.onreadystatechange = function(){
    if(links_http.readyState == 4){
      var response = links_http.responseXML;
  		var categories = response.getElementsByTagName("category");
  		for(iCtr = 0; iCtr < categories.length; iCtr++){
  		  divStyle = '';
  		  if(categories[iCtr].getAttribute('open')=='1'){
          divStyle = ' style="display: block;" ';
        }
        catID = categories[iCtr].getAttribute('id');
    		html_out += '<div onclick="swapDiv(\'link_container_'+catID+'\')" class="link_category" id="link_cat_'+catID+'">'+categories[iCtr].getAttribute('name')+'</div><div class="link_container" id="link_container_'+catID+'"'+divStyle+'>';
        var links = categories[iCtr].getElementsByTagName("link");
     		for(lCtr = 0; lCtr < links.length; lCtr++){
          var desc = categories[iCtr].getElementsByTagName("link")[lCtr].firstChild.data;
          var link = categories[iCtr].getElementsByTagName("link")[lCtr].getAttribute('url');
          html_out += '<div class="linkEntry_'+(1 & lCtr)+'" id="link_'+lCtr+'_'+catID+'"><a target="_blank" href="'+link+'">'+desc+'</a></div>';
     		}
     		html_out+='</div>';
      }
      document.getElementById('linksContents').innerHTML = html_out;
    }
  }
  links_http.send(null);
}
function _getUid(){
  sess_http = new XMLHttpRequest();
  sess_http.open('GET', 'xml/session.php');
  sess_http.onreadystatechange = function(){
    if(sess_http.readyState == 4){
      var response = sess_http.responseXML;
      userID = response.getElementsByTagName("user_id")[0].firstChild.data;
    }
  }
  sess_http.send(null);
}

function fillWeatherDiv(){
  http_weather.open('GET', 'xml/getfeed.php?src=weather.xml&rnd='+Math.random());
  http_weather.onreadystatechange = fillWeather;
  http_weather.send(null);
  window.setTimeout("fillWeatherDiv()",1000*5*60);
}
function fillWeather(){
	/* readyStates:
		0: Uninitialized
		1: Loading
		2: Loaded
		3: Interactive
		4: Finished */
	if(http_weather.readyState == 4){ //Finished loading the response
		var response = http_weather.responseXML;
		temp = response.getElementsByTagName("tmp");
    tempText = temp[0].firstChild.data+'&deg; C';

		f_temp = response.getElementsByTagName("flik");
    f_tempText = f_temp[0].firstChild.data+'&deg; C';

		icon = response.getElementsByTagName("icon");
    iconImg = '<img id="img_ic" title="Gevoelstemperatuur: '+f_tempText+'" src="weer/64x64/'+icon[0].firstChild.data+'.png">';

		f_day = response.getElementsByTagName("day");

		f_icon = f_day[1].getElementsByTagName("icon");
    f_iconImg = '<img id="img_fc" src="weer/32x32/'+f_icon[0].firstChild.data+'.png">';
    
    if(document.getElementById('weather_icon_big').innerHTML != iconImg){
		  document.getElementById('weather_icon_big').innerHTML = iconImg;
		}
		if(document.getElementById('weather_text').innerHTML != tempText){
      document.getElementById('weather_text').innerHTML = tempText;
    }
    if(document.getElementById('weather_fcast').innerHTML != "morgen:<br>"+f_iconImg){
      document.getElementById('weather_fcast').innerHTML = "morgen:<br>"+f_iconImg;
    }
    if(IEbrowser==true){
      correctPNG();
    }
  }
}



function fillTrafficDiv(){
  http_traffic.open('GET', 'xml/getfeed.php?src=traffic.xml&rnd='+Math.random());
  //http_traffic.open('GET', 'xml/Copy of traffic.xml');
  http_traffic.onreadystatechange = fillTraffic;
  http_traffic.send(null);
  window.setTimeout("fillTrafficDiv()",1000*5*60);
}

function fillTraffic(){
	if(http_traffic.readyState == 4){ //Finished loading the response
		var response = http_traffic.responseXML;
		files = response.getElementsByTagName("file");
		mCounter = 0;
		fCounter = 0;
		fLength = 0;
		for(l=0; l<files.length; l++){
		  mCounter++;
		  file = files[l];
		  fLen = file.getElementsByTagName("intlength");
      fLength += parseInt(fLen[0].firstChild.data);
      if(parseInt(fLen[0].firstChild.data)>0){
        fCounter ++;
      }
		}
    verboseMeldingen = '';
    if(mCounter==0){
      meldingen_text = 'Geen meldingen';
    }else{
      if(fCounter == mCounter){
        if(fCounter == 1){
          meldingen_text = 'Eén filemelding';
        }else{
          meldingen_text = mCounter + ' filemeldingen';
        }
  	  }else{
  	    if(fCounter==0){
  	      if(mCounter==1){
            meldingen_text = 'Geen files, één melding';
          }else{
            meldingen_text = 'Geen files, ' + mCounter + ' meldingen';
          }
        }else{
          if(fCounter==1){
            meldingen_text = 'Eén file, ' + mCounter + ' meldingen';
          }else{
            meldingen_text = fCounter + ' files, ' + mCounter + ' meldingen';
          }
        }
      }
      meldingen = response.getElementsByTagName("file");
      for(tCtr=0; tCtr<mCounter; tCtr++){
        if(parseInt(meldingen[tCtr].getElementsByTagName("intlength")[0].firstChild.data)>0){
          road = meldingen[tCtr].getElementsByTagName("road")[0].firstChild.data;
          if (road.substr(0,1)=='N'){
          	roadClassName = 'tr_nRoad';
          }else{
          	roadClassName = 'tr_road';
          }
          from = meldingen[tCtr].getElementsByTagName("from")[0].firstChild.data;
          heading = meldingen[tCtr].getElementsByTagName("heading")[0].firstChild.data;
          flength = meldingen[tCtr].getElementsByTagName("length")[0].firstChild.data;
          between = meldingen[tCtr].getElementsByTagName("between2")[0].firstChild.data;
          desc = meldingen[tCtr].getElementsByTagName("desc")[0].firstChild.data;

          fileImg = '';

          if(between.indexOf("eemt toe")>0){
          	fileImg = '<img alt="plus" title="Neemt toe" width="13" height="11" style="float: left; height: 11px; width: 13px; margin-left: 1px;" src="images/file-plus.png">';
          	}

          if(between.indexOf("eemt af")>0){
          	fileImg = '<img alt="min" title="Neemt af" width="13" height="11" style="float: left; height: 11px; width: 13px; margin-left: 1px;" src="images/file-min.png">';
          	}

          verboseMeldingen += '<div class="' + roadClassName + '">' + road + '</div><div title="'+desc+'"> <img alt="file" title="'+flength+'" width="14" height="12" style="height: 12px; width: 14px; margin-left: 2px; float: left;" src="images/file.png"> ' + fileImg + ' &nbsp;('+ from + ' - ' +heading + ') ' + flength + ' voor ' + between + '</div>';

        }else{
          road = meldingen[tCtr].getElementsByTagName("road")[0].firstChild.data;
          if (road.substr(0,1)=='N'){
          	roadClassName = 'tr_nRoad';
          }else{
          	roadClassName = 'tr_road';
          }
          from = meldingen[tCtr].getElementsByTagName("from")[0].firstChild.data;
          heading = meldingen[tCtr].getElementsByTagName("heading")[0].firstChild.data;
          flength = "";//meldingen[tCtr].getElementsByTagName("length")[0].firstChild.data;
          between = meldingen[tCtr].getElementsByTagName("between2")[0].firstChild.data;
          fulldesc = meldingen[tCtr].getElementsByTagName("fulldesc")[0].firstChild.data;
          verboseMeldingen += '<div class="' + roadClassName + '">' + road + '</div> <img alt="waarschuwing" title="waarschuwing" style="height: 12px; width: 14px; margin-left: 2px; float: left;" src="images/waarschuwing.png">&nbsp;<i> '+ fulldesc + '</i><br>';
        }
      }
		}
		if(fCounter==0){
      files_text = '-';
	  }else{
	    files_text = 'Filelengte ' + fLength + ' kilometer';
    }
    if(document.getElementById('traffic_contents').innerHTML != meldingen_text + '<br>' + files_text){
      document.getElementById('traffic_contents').innerHTML = meldingen_text + '<br>' + files_text;
      document.getElementById('list_traffic_contents').innerHTML = verboseMeldingen;
    }
	}
}

function fillRssDiv(rssArr, index){
//	var rssFile = rssArr["url"];
	//setTimeout("//", 500);
	var rssFile = rssArr;
	if(rssFile["url"].substr(0,4)!="&rnd"){
	 	rssCounter++;
	 	var hFeed = new XMLHttpRequest();
	  hFeed.open('GET', rssFile["url"] + "&rnd="+Math.random());
	  hFeed.onreadystatechange = function(){fillRss(hFeed, rssFile["id"], rssFile["userid"])};
	  hFeed.send(null);

//	  http_rssfeed[rssCounter] = new XMLHttpRequest();
//	  http_rssfeed[rssCounter].open('GET', rssFile["url"] + "&rnd="+Math.random());
//	  http_rssfeed[rssCounter].onreadystatechange = function(){fillRss(rssCounter, rssFile["id"], rssFile["userid"])};
//	  http_rssfeed[rssCounter].send(null);
  }
}

function fillRss(feed, feedID, userID){

//  for(ctrs=1; ctrs<rssCounter; ctrs++){
  	if(feed.readyState == 4 && feed.status==200 ){ //Finished loading the response
  		var response = feed.responseXML;
  		channel = response.getElementsByTagName("channel");
  		title = channel[0].getElementsByTagName("title")[0].firstChild.data;
  		cLink = channel[0].getElementsByTagName("link")[0].firstChild.data;
  		cDesc = channel[0].getElementsByTagName("description")[0].firstChild.data;

  		items = response.getElementsByTagName("item");
  		controlLink='';
			if(userID>0){
        controlLink = rssControlBox(feedID);
      }
  		retVal = '<div style="width: 180px;" id="cBox_'+feedID+'" ></div><div id="rssTitle" style="white-space: nowrap; overflow: hidden;">'+controlLink+'<a onclick="window.open(this.href); return false;" title="'+cDesc+'" id="rssTitleHref" href="'+cLink+'">'+title+'</a></div>';
  		for(iCtr = 0; iCtr < items.length && iCtr < 4; iCtr++){
        title = items[iCtr].getElementsByTagName("title")[0].firstChild.data;
        link = items[iCtr].getElementsByTagName("link")[0].firstChild.data;
        if(title.length>40){
          strAdd='..';
        }else{
          strAdd='';
        }
        retVal += '<div class="rssEntry_'+(1 & iCtr)+'" id="rss_'+ctrs+'_'+iCtr+'"><a onclick="window.open(this.href); return false;" id="rssLink" title="'+title+'" href="'+link+'">'+title.substring(0,40)+strAdd+'</a></div>'
      }
      rss_output=retVal;
  	}
//	}
	
//	output = '';
//  for(ctrs=1; ctrs<=rssCounter; ctrs++){
    if(feed.readyState == 4 && feed.status==200){
      if(typeof(rss_output)!="undefined"){
        output = rss_output;
      }
    }
//  }

/*
  if(output.length==0){
    document.getElementById("rssFeedsContents").innerHTML = 'hoi';
  }else{
  	document.getElementById("rssFeedsContents").innerHTML = output;
	}
	*/
}

function updateRssDiv(rssFile){
	//+"&rnd="+(Math.random()*1000)
  rssCounter ++;//= rCtr+1;
  //alert(rssCounter);
  http_rssfeed[rssCounter].open('GET', rssFile + "&rnd="+Math.random());
  http_rssfeed[rssCounter].onreadystatechange = updateRss;
  http_rssfeed[rssCounter].send(null);
}

function updateRss(){
  for(ctrs=1; ctrs<=rssCounter; ctrs++){
  	if(http_rssfeed[ctrs].readyState == 4 && http_rssfeed[ctrs].status==200 ){ //Finished loading the response
  		var response = http_rssfeed[ctrs].responseXML;
  		items = response.getElementsByTagName("item");
  		for(iCtr = 0; iCtr < items.length && iCtr < 4; iCtr++){
        title = items[iCtr].getElementsByTagName("title")[0].firstChild.data;
        link = items[iCtr].getElementsByTagName("link")[0].firstChild.data;
        if(title.length>40){
          strAdd='..';
        }else{
          strAdd='';
        }
        if(document.getElementById('rss_'+ctrs+'_'+iCtr).innerHTML != '<a onclick="window.open(this.href); return false;" id="rssLink" title="'+title+'" href="'+link+'">'+title.substring(0,40)+strAdd+'</a>'){
          document.getElementById('rss_'+ctrs+'_'+iCtr).innerHTML = '<a onclick="window.open(this.href); return false;" id="rssLink" title="'+title+'" href="'+link+'">'+title.substring(0,40)+strAdd+'</a>';
        }
      }
  	}
	}
}


