var xmlHttp;
var lastEditted;
var lastVerwijderd;
var lastToegevoegd;
/*
* Send 'str' to a server-side file 'file'.
*/
function send(str, file, getkey) { 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
	alert ("Browser does not support HTTP Request");
	return;
	}
	var url=file;
	url=url+"?"+getkey+"="+str;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		var ret = xmlHttp.responseText;
		if(ret.substring(1,9) == "editted_"){
			resetMsg();
			var x = ret.substring(9, ret.length-1);//id in html
			var id ="msg_"+x;
			lastEditted = id;
			document.getElementById(id).innerHTML =  "<b>Bewerkt</b>";
			self.setTimeout('document.getElementById(lastEditted).innerHTML = "Bewerkt"',2000);
		}
		else if(ret.substring(1,9) == "deleted_"){
			resetMsg();
			var x = ret.substring(9, ret.length-1);//id in html
			var id ="row_"+x;
			document.getElementById(id).style.display = 'none';
			var id ="buttons_"+x;
			document.getElementById(id).style.display = 'none';
			var id ="msgrow_"+x;
			document.getElementById(id).style.display = 'none';
			var z = x.split("_");
			var id ="delmsg_"+z[0];
			document.getElementById(id).innerHTML = '<b>Verwijderd</b>';
			lastVerwijderd=id;
			self.setTimeout('document.getElementById(lastVerwijderd).innerHTML = "Verwijderd"',2000);
		}
		else if(ret.substring(1,7) == "added_"){
			resetMsg();
			var x = ret.substring(7, ret.length-1);//id in html
			var id= "msg_"+x;
			lastToegevoegd = id;
			document.getElementById(id).innerHTML = "<b>Toegevoegd</b>";
			self.setTimeout('document.getElementById(lastToegevoegd).innerHTML = "Toegevoegd"',1000);
			location.reload();
		}
	} 
	
}

function GetXmlHttpObject() { 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function showEditor(){
	newwindow=window.open(url,'name','height=400,width=400');
	if (window.focus) {newwindow.focus();}
	return false;
}

/**
* Updates all elements in the db that are stored by the form named formname (valid actions: 'add', 'edit', 'del')
*/
function modify(formname, action, id){
		if(action == "del"){//ask: are you sure?
			var agree=confirm("Weet u zeker dat u dit element wilt verwijderen?");
			if (!agree) return false;
		}
		if(action == "add"){
			id= "id";
		}
		var elts = document.getElementById(formname).elements;
		var ret="";
		var el;
		for(var i=0;i<elts.length-1;i++){ 
			//el =stripUnderscores(elts[i].value);
			if(elts[i].type == "text" || elts[i].type == "hidden") {
				el = elts[i].value;
				ret=ret+el+"_";
			}
		}
		var formnm = formname.split("_");//formnm[0] = tablename
		ret=ret+formnm[0]+"_"+id+"_"+formnm[1];
		send(ret,"functions/requesthandler.php",action);
}



/**
* Replaces all underscores in given str, and returns it with the &#95; character.
*/
function stripUnderscores(str){
	
}

/**
* Function that removes the last message that's displayed.
*/
function resetMsg(){
	if(lastEditted) document.getElementById(lastEditted).innerHTML = "&nbsp;";
	if(lastVerwijderd) document.getElementById(lastVerwijderd).innerHTML = "&nbsp;";
	if(lastToegevoegd) document.getElementById(lastToegevoegd).innerHTML = "&nbsp;";	
}

/**
* Function that checks if a form is filled out completely. submits it if it is, else gives error message.
*/
function checkForm(formid){
	
	formelt = document.getElementById(formid);

	for(i=0;i<formelt.elements.length;i++){
		if(formelt.elements[i].value == ""){
			if(formelt.elements[i].name == "titel" ||
			   formelt.elements[i].name == "tussenvoegsel" ||
			   formelt.elements[i].name == "factuuradres2" ||
			   formelt.elements[i].name == "nnv" ||
			   formelt.elements[i].disabled){
				//do nothing
				//alert(formelt.elements[i].name + " is optioneel.\ndisabled: " + formelt.elements[i].disabled);
			} else {
				alert("Een aantal velden is niet ingevuld.\nVul deze in ");
				return;
			}
		}
	}
	//all fine, submit
	formelt.submit();
}

function zeker(formid){
	formelt = document.getElementById(formid);
	agree=confirm("Weet u zeker dat u deze persoon wilt verwijderen?");
	if (!agree) return false;
	else{
	formelt.submit();
	}
}

function disable(formid, andereid){
	
	//disablet het 'andere' vakje wel of niet
	formelt = document.getElementById(formid);
	anderelt = document.getElementById(andereid);
	opts = formelt.options;
	for(i=0;i<opts.length;i++){
		if(opts[i].selected && (opts[i].text == 'Andere' || opts[i].text == 'Ja')){
			anderelt.disabled=false;
			return;
		}
		else if(opts[i].selected && opts[i].text != 'Andere' || opts[i].text == 'Nee'){
			anderelt.disabled=true;
			return;
		}
	}

}


    var temp = new Array();
    temp[1] = 0;
    temp[2] = 0;
    temp[3] = 0;

    function voorkeur(name, count, total){
      
      elt = document.getElementById(name+count);
      if(elt.selectedIndex != 0){
        // als iets anders geselecteerd is dan 'Geen voorkeur'
    
        // controleren of deze disabled is
        if(elt.options[elt.selectedIndex].disabled){;
          alert('Deze optie is al gekozen.');
          elt.selectedIndex = 0;
        } else {
          // is niet disabled, dan..
    
          // gekozen waarde bij andere voorkeuren weer enablen
          if(temp[count] != ""){
            for(var x = 1; x <= total; x++){
            document.getElementById(name + x).options[temp[count]].disabled=false;
            document.getElementById(name + x).options[temp[count]].style.color='#000000';
          }
        }
          // selectie onthouden
          temp[count] = elt.selectedIndex;
    
          // volgende voorkeur opengooien
          var next = count + 1;
          if(count != total){
            document.getElementById(name + next).disabled=false;
          }
    
          // gekozen waarde disablen bij andere voorkeuren
          for(var x = 1; x <= total; x++){
            if(x != count){
              document.getElementById(name + x).options[elt.selectedIndex].disabled=true;
              document.getElementById(name + x).options[elt.selectedIndex].style.color="#a0a0a0";
            }
          }
    
        }
    
      } else {
        // als 'Geen voorkeur' geselecteerd is
    
        // de daaropvolgende voorkeuren disablen en op 'Geen voorkeur' zetten.
        for(var x = count + 1; x <= total; x++){
          document.getElementById(name + x).disabled=true;
          document.getElementById(name + x).selectedIndex=0;
        }
    
        // gekozen waarde bij andere voorkeuren weer enablen
        for(var x = 1; x <= total; x++){
          document.getElementById(name + x).options[temp[count]].disabled=false;
          document.getElementById(name + x).options[temp[count]].style.color='#000000';
        }
    
      }
    
    }	

