/***
	schalen.js

	Een drietal functies die nodig zijn om de afmetingen
	van een venster op te slaan in een koekje, zodat er 
	vanuit andere scripts tabellen van de juiste afmetingen
	gegenereerd kunnen worden


	wijzigingen
	 > 16102002/nawien
	   . aangemaakt
***/

	var oude_afmetingen=false
	var schaalInterval=false
	
	function geefAfmetingen(){
		var breedte=800
		var hoogte=600
			
		if(document.all){
			breedte=document.body.clientWidth
			hoogte=document.body.clientHeight
			
		//	alert(
		//		'document.body.clientWidth:\t'+document.body.clientWidth+'\n'+
		//		'document.body.offsetWidth:\t'+document.body.offsetWidth
		//	)
			
		}else if(document.getElementById){
			breedte=window.innerWidth
			hoogte=window.innerHeight
		}else if(document.layers){
			breedte=window.innerWidth
			hoogte=window.innerHeight
		}
		
		return {breedte:breedte,hoogte:hoogte}
	}
	
	function schrijfAfmetingenKoekie(){
		f=geefAfmetingen()
	   	document.cookie='afmetingen='+f.breedte+'x'+f.hoogte+';path=/'
	}
	
	
	
	var bezig_met_herladen=false
	
	function herlaad(){
		if(!bezig_met_herladen){
			bezig_met_herladen=true
			//alert('bezig!')
			window.status+="["+oude_afmetingen.breedte+"."+oude_afmetingen.hoogte+"|"+
				nieuwe_afmetingen.breedte+"."+nieuwe_afmetingen.hoogte+"]"
			
			var breedteVervangen=false
			var hoogteVervangen=false
			if(location.search.length){
				zoekecho=''
				zoekreeks=location.search.substring(1,location.search.length).split('&')
				for(i=0;i<zoekreeks.length;i++){
					t=zoekreeks[i].split('=')
					zoekecho+='\n'+t[0]+'\t'+t[1]
					
					if(t[0]=='breedte'){
						breedteVervangen=true
						t[1]=nieuwe_afmetingen.breedte
					}
					else if(t[0]=='hoogte'){
						hoogteVervangen=true
						t[1]=nieuwe_afmetingen.hoogte
					}
					zoekreeks[i]=t.join('=')
				}
				if(!breedteVervangen)zoekreeks[zoekreeks.length]='breedte='+nieuwe_afmetingen.breedte
				if(!hoogteVervangen)zoekreeks[zoekreeks.length]='hoogte='+nieuwe_afmetingen.hoogte
				zoekreeks='?'+zoekreeks.join('&')
				//alert(zoekecho)
			}
			else{
				zoekreeks='?breedte='+nieuwe_afmetingen.breedte+'&hoogte='+nieuwe_afmetingen.hoogte
			}
			
			//alert(zoekreeks)
			
			location.replace(location.protocol+'//'+location.host+location.pathname+zoekreeks)
			
			oude_afmetingen=nieuwe_afmetingen
		}
	}
	
	var laadVertraging=false
	var nieuwe_afmetingen=false;
	
	function schaal(){
		nieuwe_afmetingen=geefAfmetingen()
		
		//alert(document.cookie+'\n\n'+oude_afmetingen.breedte+' <-> '+nieuwe_afmetingen.breedte+'\n'+oude_afmetingen.hoogte+' <-> '+nieuwe_afmetingen.hoogte)
		
		if(
			oude_afmetingen.breedte!=nieuwe_afmetingen.breedte
		//&&	oude_afmetingen.hoogte!=nieuwe_afmetingen.hoogte
			){
			
		//	alert(
		//		'breedte: '+oude_afmetingen.breedte+' -> '+nieuwe_afmetingen.breedte+'\n'+
		//		'hoogte: '+oude_afmetingen.hoogte+' -> '+nieuwe_afmetingen.hoogte
		//	)
			
			//setTimeout('bewaarAfmetingen()',10)
			bewaarAfmetingen()
			
		}
	}
	
	
	
	
	
	String.prototype.escape=function(){
		return escape(this.toString())
	}
	String.prototype.unescape=function(){
		return unescape(this.toString())
	}
	
	
  /*--(( koekjes ))--*/
  
  // 
  // prototype voor koekjes
  // 
	function _koekje(naam,duur,wortel){
		this.naam=naam     // naam van het koekje ([a-zA-Z0-9_]+)
		this.duur=duur     // bewaarduur in GMT (Date.toGMTString())
		this.wortel=wortel // pad vanaf waar het koekje moet gelden
	}
	
  //
  // schrijf een koekje weg
  //
	_koekje.prototype.schrijf=function(data){
		var uit=this.naam+'='+data.escape()
		if(this.duur)  uit+=';expires='+this.duur
		if(this.wortel)uit+=';path='+this.wortel
		document.cookie=uit
	}
	
  //
  // lees een koekje uit
  //
	_koekje.prototype.lees=function(){
		var begin=document.cookie.indexOf(this.naam)
		if(begin<0)return false
		var eind =document.cookie.indexOf(';',begin+1)
		if(eind<0)eind=document.cookie.length
		return document.cookie.substring(begin+this.naam.length+1,eind).unescape()
	}
	
  //
  // test of je koekjes kan schrijven
  //
	_koekje.test=function(){
		var k=new _koekje('schrijftest',false,'/')
		k.schrijf('1')
		return k.lees()?true:false
	}
	
	
	
	
	
	function bewaarAfmetingen(){
		
		//alert(bewaarAfmetingen.bezig)
		
		if(bewaarAfmetingen.bezig)return
		
		
		
		bewaarAfmetingen.bezig=true
		
	  // vensterafmetingen opvragen
		var afmetingen=geefAfmetingen()
		
	  // verwijder breedte en hoogte uit pad
		var zoekreeks=location.search.substring(1,location.search.length).split('&')
		var zoekreeks2=new Array()
		for(var i=0;i<zoekreeks.length;i++){
			var t=zoekreeks[i].split('=')
			if(t[0]!='breedte' && t[0]!='hoogte')zoekreeks2.push(t.join('='))
		}
		zoekreeks=zoekreeks2
		
	  // controleren of we koekjes kunnen schrijven
		//if(_koekje.test()){
		  // we kunnen schrijven
		  //
			
		  // koekje wegschrijven met de afmetingen
			var k=new _koekje('afmetingen',false,'/')
			var koekjeswaarde=afmetingen.breedte+'x'+afmetingen.hoogte
			k.schrijf(koekjeswaarde)
			
			for(var i=0;i<1000000;i++){
				var zzz=1+2
			  // even wachten
			}
			
		  // herlaadt de pagina
			//setTimeout('location.reload(true)',5000)
			
		//}else{
		if(true || k.lees()!=koekjeswaarde){
		  // we kunnen niet schrijven, dus gaan we het op een andere
		  // manier proberen
		  //
			
			//alert(k.lees()+'\n'+koekjeswaarde)
			
		  // voeg de breedte en hoogte toe aan het adres
			zoekreeks.push('breedte='+afmetingen.breedte)
			zoekreeks.push('hoogte='+afmetingen.hoogte)
			
		}
		
	  // laadt het nieuwe adres
		//setTimeout("location.search=zoekreeks",5000)
		
		zoekreeks=zoekreeks.join('&')
		if(zoekreeks.length)zoekreeks='?'+zoekreeks
		//document.write(location.hostname+location.pathname+zoekreeks)
		//document.write('herlaadt via javascript<br />')
		
		//bewaarAfmetingen.bezig=false
		//alert('herlaadt: '+location.hostname+location.pathname+zoekreeks)
		location.replace('http://'+location.hostname+location.pathname+zoekreeks)
		
	}
	bewaarAfmetingen.bezig=false
	