function createHTTPHandler(){
    	httphandler = false;
	    /*@cc_on @*/
	    /*@if (@_jscript_version >= 5)
	    // JScript gives us Conditional compilation, we can cope with old IE versions.
	    // and security blocked creation of the objects.
	    try {
	      httphandler = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	      try {
	       httphandler = new ActiveXObject("Microsoft.XMLHTTP");
	      } catch (E) {
	          httphandler = false;
	      }
   	}
   	@end @*/
    		if (!httphandler && typeof XMLHttpRequest!='undefined') {
      	 	 	httphandler = new XMLHttpRequest();
    		}
	return httphandler;
}
		
function on_focus(a){
	a.style.fontStyle="normal";
	if(a.value == a.title){
  		a.value = '';
		if(a.type == "password"){
			a.style.backgroundImage="none";
		}
  	}
}

function on_blur(a){
	if(a.value == '' || a.value == a.title){
 		 a.value = a.title;
		 a.style.fontStyle="italic";
		if(a.type == "password"){
			a.style.backgroundImage="url('/images/design/ww.png')";
		}
	}
	else{
		 a.style.fontStyle="normal";	
	}
}

function transition(ke,ov,nv,st,to){
	if(ov == null){
		ov = parseFloat(eval(ke));
	}
	if(st == null){
		 st = Math.abs(ov-nv)/3;
	}
	if(to == null){
		 to = 0;
	}
	for(var i = 1; i < st+1; i=i+1){
		setTimeout(ke+"='"+Math.round((ov+nv)/2+(ov-nv)/2*Math.cos(Math.PI/st*i))+"px'",i*15+to);
	}
}

function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function snelTekst(obj,e){
	var begin = obj.value.length;
	var hui = '';
	var vor = '';
 	if(obj.value.length > 0 && e.keyCode != 8){
 	var XMLHTTPObject = createHTTPHandler();
		XMLHTTPObject.onreadystatechange = function(){
		if(XMLHTTPObject.readyState == 4){
		 	if(XMLHTTPObject.responseText.length > 0 && XMLHTTPObject.responseText != obj.value && begin == obj.value.length){
				obj.value = XMLHTTPObject.responseText;
				if (window.getSelection) {
					obj.selectionStart = begin;
					obj.selectionEnd = obj.value.length;
				}
				else if (document.selection) {
					var rng = obj.createTextRange();
					rng.moveStart('character',begin);
						rng.select();
				}
			}
		}
	}
	
	if(e.keyCode == 45){
		if (window.getSelection){
		 	// Opera & FF	
		 	var st = obj.selectionStart;
		 	var hui = obj.value.substring(0,st);
		 	var vor = obj.value;
		 	begin = hui.length;
		 	obj.value = hui;
		}
		else if(document.selection){
		 	// IE
		 	obj.focus();
			var rng = document.selection.createRange();
			var hui = obj.value.substring(0,obj.value-rng.text.length);
		 	var vor = obj.value;
		 	begin = hui.length;
		 	obj.value = hui;
		}
		else{
			hui = obj.value;
		}
	}
	else{
		hui = obj.value;
	}
	
	XMLHTTPObject.open('GET', '/ajax/snel.php?te='+encodeURI(hui)+'&hu='+encodeURI(vor), true);
	XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	XMLHTTPObject.setRequestHeader('Connection', 'close');	
	XMLHTTPObject.send(null);
	}
}

function submitPoll(po,obj){
	for(var i = 0; i < document.getElementById(obj).getElementsByTagName("input").length-1; i++){
		if(document.getElementById(obj).getElementsByTagName("input")[i].checked){
			var op = document.getElementById(obj).getElementsByTagName("input")[i].value;
		}
		document.getElementById(obj).getElementsByTagName("p")[i].innerHTML = '<img src="/images/design/poll.jpg" alt="Laden..." style="width: 14px; height: 13px" /> '+document.getElementById(obj).getElementsByTagName("p")[i].innerHTML;
	}
	while(document.getElementById(obj).getElementsByTagName("input").length > 0){
		document.getElementById(obj).getElementsByTagName("input")[0].parentNode.removeChild(document.getElementById(obj).getElementsByTagName("input")[0]);
	}
			
	var XMLHTTPObject = createHTTPHandler();
	XMLHTTPObject.onreadystatechange = function(){
		if(XMLHTTPObject.readyState == 4){
		 	var arr = XMLHTTPObject.responseText.split("\n");
			for(i = 0; i < document.getElementById(obj).getElementsByTagName("img").length; i++){
				document.getElementById(obj).getElementsByTagName("img")[i].alt = Math.round(parseFloat(arr[i+1])) + "%";
				document.getElementById(obj).getElementsByTagName("img")[i].title = Math.round(parseFloat(arr[i+1])) + "%";
				transition('document.getElementById(\''+obj+'\').getElementsByTagName("img")['+i+'].style.width',14,Math.round(parseFloat(arr[i+1])/parseFloat(arr[0])*30+1),100);
			}
		}
	}
	XMLHTTPObject.open('GET', '/ajax/poll.php?op='+op+'&po='+po, true);
	XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
	XMLHTTPObject.send(null);	
}

function stars_over(cla){
 	for(var i = 0; i < 20; i++){
 	 	if(i < cla){
			document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/green'+(i%4+1)+'.gif';
		}
		else{
			document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/empty'+(i%4+1)+'.gif';
		}
	}
}

function stars_out(cla){
 	for(var i = 0; i < 20; i++){
 	 	if(i < cla){
			document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/full'+(i%4+1)+'.gif';
		}
		else{
			document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/empty'+(i%4+1)+'.gif';
		}
	}
}

function stars_click(cla,sid){
	var XMLHTTPObject = createHTTPHandler();
	XMLHTTPObject.open('GET', '/ajax/classificatie.php?cl='+cla+'&id='+sid, true);
  	XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
   	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   	XMLHTTPObject.setRequestHeader('Connection', 'close');
   	XMLHTTPObject.onreadystatechange = function(){
		if(XMLHTTPObject.readyState == 4){	 
		 	var tek = XMLHTTPObject.responseText.split("\n");
			document.getElementById("cl").innerHTML = tek[2];
			document.getElementById("aa").innerHTML = tek[1];
			for(var i = 0; i < 20; i++){
 	 			if(i < parseInt(tek[0])){
					document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/full'+(i%4+1)+'.gif';
				}
				else{
					document.getElementById("stars").getElementsByTagName("img")[i].src='/images/design/stars/empty'+(i%4+1)+'.gif';
				}
				document.getElementById("stars").getElementsByTagName("img")[i].onmouseover = null;
				document.getElementById("stars").getElementsByTagName("img")[i].onmouseout = null;
				document.getElementById("stars").getElementsByTagName("img")[i].onclick = null;
			}	
		}
	}
   	XMLHTTPObject.send('');
 
}

function bbTekst(obj,par){
 	on_focus(obj, 'Reactie');
	if (window.getSelection){
	 	// Opera & FF	
	 	var st = obj.selectionStart;
	 	var en = obj.selectionEnd;
		obj.value = obj.value.substring(0,st)+'['+par+']'+obj.value.substring(st,en)+'[/'+par+']'+obj.value.substring(en);
		// Specifiek voor Opera
		if(window.opera && st == en){
			obj.focus();
			obj.selectionStart = 2 + par.length + st;
		}
		else{
			obj.select();
			obj.selectionStart = 2 + par.length + st;
			obj.selectionEnd = 2 + par.length + en;
		}
	}
	else if(document.selection){
	 	// IE
	 	obj.focus();
		var rng = document.selection.createRange();
		var let = rng.text.length;
		rng.text ='['+par+']'+rng.text+'[/'+par+']';
	 	var txt = obj.createTextRange();
		rng.moveStart('character',((3+par.length+let)*-1));
		rng.moveEnd('character',((3+par.length)*-1));
		rng.select();
	}	
}

function emoTekst(obj,par){
 	on_focus(obj, 'Reactie');
	if (window.getSelection){
	 	// Opera & FF	
	 	var st = obj.selectionStart;
	 	var en = obj.selectionEnd;
		obj.value = obj.value.substring(0,st)+par+obj.value.substring(en);
		// Specifiek voor Opera
		if(window.opera && st == en){
			obj.focus();
			obj.selectionStart = par.length + st;
		}
		else{
			obj.select();
			obj.selectionStart = st + par.length;
			obj.selectionEnd = st + par.length;
		}
	}
	else if(document.selection){
	 	// IE
	 	obj.focus();
		var rng = document.selection.createRange();
		var let = par.length;
		rng.text = par;
	 	var txt = obj.createTextRange();
		rng.select();
	}	
}

function checkPos(obj,evt){
 	if(evt.keyCode == 37){
 	 	// Opera links
 	 	if(window.opera && obj.value.charAt(obj.selectionStart) == ']'){
			for(i = obj.selectionStart-2; i > -1 && i > obj.selectionStart - 8; i=i-1){
				if(obj.value.charAt(i) == '['){
					obj.setSelectionRange(i, i);
					break;
				}
			}
		}
		// FF links
		else if(!window.opera && window.getSelection && obj.value.charAt(obj.selectionStart-1) == ']'){
			for(i = obj.selectionStart-3; i > -1 && i > obj.selectionStart - 10; i=i-1){
				if(obj.value.charAt(i) == '['){
					obj.selectionStart = obj.selectionEnd = i+1;
					break;
				}
			}
		}
		// IE links
		else if(document.selection){
	 		obj.focus();
			var rng = document.selection.createRange();
			rng.moveStart('character',-1);
		 	if(rng.text == ']'){
				for(i = 0; i < 9; i=i+1){	
					rng.moveStart('character',-1);
					rng.moveEnd('character',-1);
					if(rng.text == '['){
						rng.select();
						break;
					}
				}				
			}
		}
	}
	if(evt.keyCode == 39){
	 	// Opera rechts
	 	if(window.opera && obj.value.charAt(obj.selectionStart-1) == '['){
			for(i = obj.selectionStart+1; i < obj.value.length && i < obj.selectionStart + 7; i=i+1){
				if(obj.value.charAt(i) == ']'){
					obj.setSelectionRange(i+1, i+1);
					break;
				}
			}
		}
		// FF rechts
		if(!window.opera && window.getSelection && obj.value.charAt(obj.selectionStart) == '['){
			for(i = obj.selectionStart+2; i < obj.value.length && i < obj.selectionStart + 8; i=i+1){
				if(obj.value.charAt(i) == ']'){
					obj.selectionStart = obj.selectionEnd = i;
					break;
				}
			}
		}
		// IE rechts
		else if(document.selection){
	 		obj.focus();
			var rng = document.selection.createRange();
			rng.moveEnd('character',1);
		 	if(rng.text == '['){
				for(i = 0; i < 9; i=i+1){	
					rng.moveStart('character',1);
					rng.moveEnd('character',1);
					if(rng.text == ']'){
						rng.select();
						break;
					}
				}				
			}
		}
	}
}

function voorbeeldTekst(){
 	if(document.getElementById('vb').style.display == "none"){
		document.getElementById('vb').innerHTML = "Bezig met laden...";
		document.getElementById('vb_button').innerHTML     = 'Bewerken';
		document.getElementById('vb').style.display     = 'block';
		document.fo_re.be.style.display 		= 'none';
		var XMLHTTPObject = createHTTPHandler();
		XMLHTTPObject.onreadystatechange = function(){
			document.getElementById('vb').innerHTML = XMLHTTPObject.responseText;
		}
		XMLHTTPObject.open('POST', '/ajax/voorbeeld.php', true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AjaxWebBrowser");
		XMLHTTPObject.setRequestHeader('Connection', 'close');	
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.send('bericht='+escape(document.fo_re.be.value.replace(/\+/g,"%2B")));
	}
	else{
		document.getElementById('vb_button').innerHTML   = 'Voorbeeld';
		document.getElementById('vb').style.display     = 'none';
		document.fo_re.be.style.display 		= 'block';	
	}
}

function createWindow(title,html){
 	var window = document.createElement('div');
	var windowtitle = document.createElement('div');
	var windowclose = document.createElement('div');
	var windowminimalize = document.createElement('div');
	var windowcontent = document.createElement('div');
	
	window.style.marginLeft = '-250px';
	window.style.marginTop = '100px';
	window.className = 'window';
	document.body.appendChild(window);
		
	windowclose.innerHTML = '&times;';
	windowclose.className = 'windowclose';
	windowclose.title = 'Sluiten';
	windowclose.onclick = function(){ closeWindow(window); }
	window.appendChild(windowclose);
	
	windowminimalize.innerHTML = '-';
	windowminimalize.className = 'windowminimalize';
	windowminimalize.title = 'Inklappen / Uitvouwen';
	windowminimalize.onclick = function(){ showHideWindowContent(windowcontent,windowminimalize) }
	window.appendChild(windowminimalize);
	
	windowtitle.innerHTML = title;
	windowtitle.className = 'windowtitle';
	windowtitle.onmousedown = function(e){ startDragWindow(e,windowtitle); }
	window.appendChild(windowtitle);
	
	windowcontent.className = 'windowcontent';
	windowcontent.innerHTML = html;
	window.appendChild(windowcontent);
	
	return window;
}

function resizeWindow(win,bre){
	win.style.width = bre + 'px';
	win.childNodes[0].style.marginLeft = (bre-22)+'px';
	win.childNodes[1].style.marginLeft = (bre-42)+'px';	
}

function disableCloseWindow(win){
	win.childNodes[0].style.backgroundColor = 'lightgrey';
	win.childNodes[0].onclick = "";
	win.childNodes[0].style.cursor = "default";
	win.childNodes[0].title = "Sluiten (uitgeschakeld)";
}

function startDragWindow(ev, obj){
 	var evt = ev || window.event;
 	var mx = evt.clientX;
 	var my = evt.clientY;
 	var ox = parseInt(obj.parentNode.style.marginLeft);
 	var oy = parseInt(obj.parentNode.style.marginTop);
	document.onmousemove = function(e){ dragWindow(mx,my,ox,oy,e,obj); return false }
	document.onmouseup = function(){ document.onmousemove = null; return false }
}

function dragWindow(mx,my,ox,oy,ev,ob){
 	var evt = ev || window.event;
 	var ex = evt.clientX;
 	var ey = evt.clientY;
	ob.parentNode.style.marginLeft = ex  + ox - mx + 'px';
	ob.parentNode.style.marginTop = ey + oy - my + 'px';
}

function closeWindow(ob){
	ob.parentNode.removeChild(ob);
}

function showHideWindowContent(wt,wm){
	if(wm.innerHTML != '-'){
		wt.style.display = 'block';
		wm.innerHTML  = '-';		
	}
	else{
		wt.style.display = 'none';
		wm.innerHTML  = '&middot;';
	}
}

function tipWindow(ti,ar,so){
	var html = '<form action="/tipeenvriend/" method="post">';
	html += '<p style= "text-align: left">Jouw gegevens</p>';
	html += '<input name="af[na]" type="text" value="Naam" onfocus="on_focus(this);" onblur="on_blur(this);" title="Naam" style="width: 210px" />';
	html += '<input name="af[em]" type="text" value="E-mailadres" onfocus="on_focus(this);" onblur="on_blur(this);" title="E-mailadres" style="width: 210px" /><br />';
	html += '<p style= "text-align: left">Gegevens van de ontvanger</p>';
	html += '<input name="ov[na]" type="text" value="Naam" onfocus="on_focus(this);" onblur="on_blur(this);" title="Naam" style="width: 210px" />';
	html += '<input name="ov[em]" type="text" value="E-mailadres" onfocus="on_focus(this);" onblur="on_blur(this);" title="E-mailadres" style="width: 210px" /><br />';
	html += '<input name="ar" type="hidden" value="'+ar+'" />';
	html += '<input name="so" type="hidden" value="'+so+'" />';
	html += '<input type="submit" value="Verzend!" style="width: 440px" />';
	html += '</form>';
	createWindow('Tip een vriend: '+ti,html);
}

function htmlWindow(ti,ur){
	var html = '<p>Kopie&euml;r en plak onderstaande link.</p>';
	html += '<textarea style="width:400px; height: 30px" onclick="this.focus(); this.select();">'+ur+'</textarea>';
	html += '<p>Kopie&euml;r en plak onderstaande code in je HTML code voor een link.</p>';
	html += '<textarea style="width:400px; height: 30px" onclick="this.focus(); this.select();">&lt;a href=&quot;'+ur+'&quot;&gt;'+ti+'&lt;/a&gt;</textarea>';
	html += '<p>Kopie&euml;r en plak onderstaande code op BB of UBB fora.</p>';
	html += '<textarea style="width:400px; height: 30px" onclick="this.focus(); this.select();">[url='+ur+']'+ti+'[/url]</textarea>';
	createWindow('Webmaster codes: '+ti,html);
} 	

function labWindow(fo){
	var html = '<input id="font" value="'+fo+'" type="hidden" />';
	html += '<table cellspacing="0">';
	html += '<tr>';
	html += '<th>Tekst</th><th>Lettergrootte</th><th>Voorgrondkleur</th><th>Achtergrondkleur</th><th>Voorbeeldweergave</th>';
	html += '</tr>';
	html += '<tr>';
	html += '<td rowspan="3"><textarea id="text" onkeyup="updatePreview()" style="width: 300px; height: 315px" onfocus="on_focus(this)" onblur="on_blur(this)" title="Typ hier je tekst" maxlength="3000">Typ hier je tekst</textarea></td>';
	
	html += '<td><select id="size" style="width: 145px;" onchange="updatePreview()"><option value="1a">Lettergrootte</option><option value="8">8</option><option value="9">9</option><option value="a">10</option><option value="b">11</option><option value="c">12</option><option value="e">14</option><option value="g">16</option><option value="i">18</option><option value="k">20</option><option value="m">22</option><option value="o">24</option><option value="10">26</option><option value="12">28</option><option value="1a" selected="selected">36</option><option value="1m">48</option><option value="2k">72</option><option value="3i">96</option><option value="4o">128</option><option value="7a">192</option><option value="9l">255</option></select></td>';
	
	html += '<td><select id="fg" onchange="updatePreview()" style="width: 145px;"><option value="000000">Voorgrondkleur</option><option value="FFFFFF">Wit</option><option value="C0C0C0">Lichtgrijs</option><option value="808080">Grijs</option><option value="000000" selected="selected">Zwart</option><option value="FF0000">Rood</option><option value="800000">Donkerrood</option><option value="FFFF00">Geel</option><option value="808000">Olijfgroen</option><option value="00FF00">Limoen</option><option value="008000">Groen</option><option value="00FFFF">Cyaan</option><option value="008080">Donkercyaan </option><option value="0000FF">Blauw</option><option value="000080">Donkerblauw</option><option value="FF00FF">Fuchsia</option><option value="800080">Paars</option><option value="000000" onclick="specifyColor(this)">Zelf specificeren...</option></select></td>';
	
	html += '<td><select id="bg" onchange="updatePreview()" style="width: 145px;"><option value="ffffff">Achtergrondkleur</option><option value="FFFFFF" selected="selected">Wit</option><option value="C0C0C0">Lichtgrijs</option><option value="808080">Grijs</option><option value="000000">Zwart</option><option value="FF0000">Rood</option><option value="800000">Donkerrood</option><option value="FFFF00">Geel</option><option value="808000">Olijfgroen</option><option value="00FF00">Limoen</option><option value="008000">Groen</option><option value="00FFFF">Cyaan</option><option value="008080">Donkercyaan </option><option value="0000FF">Blauw</option><option value="000080">Donkerblauw</option><option value="FF00FF">Fuchsia</option><option value="800080">Paars</option><option value="ffffff" onclick="specifyColor(this)">Zelf specificeren...</option></select></td>';
	
	html += '<td><select onchange="document.getElementById(\'preview\').style.maxWidth=this.options[this.selectedIndex].value" style="width: 145px;"><option value="100%">Voorbeeldweergave</option><option value="100%" selected="selected">geschaald</option><option value="none">ware grootte</option></td>';
	
	html += '</tr>';
	html += '<tr>';
	html += '<th colspan="4" style="text-align: center">Voorbeeld</td>';
	html += '</tr>';
	html += '<tr>';
	html += '<td colspan="4" style="padding: 0"><div style="overflow: auto; height: 260px; width: 640px; padding: 10px; margin: 0; line-height: 250px; background-color: white"><img src="http://www.flexfonts.nl/images/fonts/lab/'+fo+'/1a/000000/ffffff/Typ_hier_je_tekst.jpg" id="preview" style="vertical-align: middle; display: inline; max-width: 100%;" onload="updatePreviewBg()" /></div></td>';
	html += '</tr>';
	html += '</table>';
	var win = createWindow('Lab - een gepersonaliseerde tekst in een handomdraai',html);
	resizeWindow(win,1000);
	win.style.marginLeft = '-500px';
	win.style.marginTop = '580px';
}

function updatePreview(){
	fontObj = document.getElementById("font");
	font = fontObj.value;
	
	sizeObj = document.getElementById("size");
	size = sizeObj.options[sizeObj.selectedIndex].value;
	
	bgObj = document.getElementById("bg");
	bg = bgObj.options[bgObj.selectedIndex].value;
	
	fgObj = document.getElementById("fg");
	fg = fgObj.options[fgObj.selectedIndex].value;
	
	textObj = document.getElementById("text");
	text = escape(textObj.value);
	
	document.getElementById("preview").src = "http://www.flexfonts.nl/images/fonts/lab/"+font+"/"+size+"/"+fg+"/"+bg+"/"+text+".jpg";
}

function updatePreviewBg(){
	bgObj = document.getElementById("bg");
	bg = bgObj.options[bgObj.selectedIndex].value;
	
	document.getElementById("preview").parentNode.style.backgroundColor = '#'+bg;
}

function specifyColor(obj){
	obj.value=prompt("Geef een webkleurcode op zonder hekje.\nBijvoorbeeld ffffff voor wit en 000000 voor zwart.",obj.value);
	updatePreview();
}

