function randomstring() {
	var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0;i<string_length;i++){
		var rnum = Math.floor(Math.random()*chars.length);
		randomstring += chars.substring(rnum, rnum+1);
	}
	return randomstring;
}
function fillrandom() {
        var inputboxes = document.boeken.getElementsByTagName("INPUT");
        for (var i = 0; i < inputboxes.length; i++) {
		if(inputboxes[i].getAttribute('type')=='text') {
			if(inputboxes[i].value == '') { inputboxes[i].value = randomstring(); }
			if(inputboxes[i].name == 'email') { inputboxes[i].value = 'dont@mail.me'; }
			if(inputboxes[i].name == 'homestay_telhome') { inputboxes[i].value = '1234567890'; }
		}
        }
	var selectboxes = document.getElementsByTagName("SELECT");
	for (var i = 0; i < selectboxes.length; i++) {
		//alert(selectboxes[i].name);
		var deel = selectboxes[i].name.split('_');
		if(deel[2] == 'day'){
			selectboxes[i].selectedIndex = ((Math.random()*29)+1)
		}
                if(deel[2] == 'month'){
                        selectboxes[i].selectedIndex = ((Math.random()*10)+1)
                }
                if(deel[2] == 'year' && deel[0] == 'pax'){
                        selectboxes[i].selectedIndex = ((Math.random()*40)+18)
                }
                if(deel[2] == 'year' && deel[0] == 'kind'){
                        selectboxes[i].selectedIndex = ((Math.random()*5+3))
                }
                if(deel[2] == 'year' && deel[0] == 'babie'){
                        selectboxes[i].selectedIndex = (Math.random()+1)
                }
	}
}
function Xmlcheckbookingsform() {
	if(document.getElementById('break')) {
		document.getElementById('break').value=0;
	}
	var volw = 2;
	var kind = 0;
	var babie = 0;
	if(!readCookie('volw')) {
		if(document.forms['boeken'].pax_1_gender) {
			volw = 1;
		}
                if(document.forms['boeken'].pax_2_gender) {
                        volw = 2;
                }
                if(document.forms['boeken'].pax_3_gender) {
                        volw = 3;
                }
                if(document.forms['boeken'].pax_4_gender) {
                        volw = 4;
                }
                if(document.forms['boeken'].pax_5_gender) {
                        volw = 5;
                }
                if(document.forms['boeken'].pax_6_gender) {
                        volw = 6;
                }
                if(document.forms['boeken'].pax_7_gender) {
                        volw = 7;
                }
                if(document.forms['boeken'].pax_8_gender) {
                        volw = 8;
                }
		createCookie('volw', volw);
	}
        if(!readCookie('kind')) {
                if(document.forms['boeken'].kind_1_gender) {
                        kind = 1;
                }
                if(document.forms['boeken'].kind_2_gender) {
                        kind = 2;
                }
                if(document.forms['boeken'].kind_3_gender) {
                        kind = 3;
                }
                if(document.forms['boeken'].kind_4_gender) {
                        kind = 4;
                }
                createCookie('kind', kind);
        }
        if(!readCookie('babie')) {
                if(document.forms['boeken'].babie_1_gender) {
                        babie = 1;
                }
                if(document.forms['boeken'].babie_2_gender) {
                        babie = 2;
                }
                if(document.forms['boeken'].babie_3_gender) {
                        babie = 3;
                }
                if(document.forms['boeken'].babie_4_gender) {
                        babie = 4;
                }
                createCookie('babie', babie);
        }

	if (document.forms['boeken'].Stap.value == 2) {
		var pax = parseFloat(document.forms['boeken'].volw.value);
		if(document.forms['boeken'].kind.value>0) {
			pax = pax + parseFloat(document.forms['boeken'].kind.value);
		}
		var sel_min_pax = 0;
		var sel_max_pax = 0;

		var selectboxes = document.forms['boeken'].getElementsByTagName("SELECT");
		for (var i = 0; i < selectboxes.length; i++) { 
			var unit = selectboxes[i].name.split('|');
			var min_pax = unit[3];
			var max_pax = unit[4];
			sel_min_pax = sel_min_pax + (selectboxes[i].value * min_pax);
			sel_max_pax = sel_max_pax + (selectboxes[i].value * max_pax);
		}

		if(sel_max_pax < pax) {
			alert('U heeft te weinig kamers gekozen!');
			return false;	
		}
                if(sel_min_pax > pax) {
                        alert('U heeft te veel kamers gekozen!');
                        return false;
                }

		var to_transport = 0;
		if(document.forms['boeken'].to_transport) {
                if (document.forms['boeken'].to_transport.length == undefined) {
                                if(document.forms['boeken'].to_transport.checked == true) {
                                        to_transport = 1;
                                }
                } else {
			for (i = 0; i < document.forms['boeken'].to_transport.length; i++) {
				if(document.forms['boeken'].to_transport[i].checked == true) {
					to_transport = 1;
				}
			}
		}
		if(to_transport == 0) {
			alert('Kies alstublieft uw heenvlucht!');
			return false;
		}}

                var from_transport = 0;
		if (document.forms['boeken'].from_transport) {
		if (document.forms['boeken'].from_transport.length == undefined) {
                                if(document.forms['boeken'].from_transport.checked == true) {
                                        from_transport = 1;
                                }			
		} else {
	                for (i = 0; i < document.forms['boeken'].from_transport.length; i++) {
        	                if(document.forms['boeken'].from_transport[i].checked == true) {
                	                from_transport = 1;
                        	}
	                }
		}
                if(from_transport == 0) {
                        alert('Kies alstublieft uw terugvlucht!');
			return false;
                }}
	} else if (document.forms['boeken'].Stap.value == 4) {
		var selectboxes = document.boeken.getElementsByTagName("SELECT");
                for (var i = 0; i < selectboxes.length; i++) {
			var box = selectboxes[i];
			if(box[box.selectedIndex].value==0) {
				error = 1;
				box.style.border = '1px solid red';
			} else {
				box.style.border = '1px solid #6B90DA';
			}
		}
		extramelding = '';
		var selectboxes = document.boeken.getElementsByTagName("INPUT");
                for (var i = 0; i < selectboxes.length; i++) {
                        var box = selectboxes[i];
			if(box.type == "text") {
				dezefout = 0;
				naam = box.name.split('_');
				if(naam[0] == 'pax' || naam[0] == 'kind' || naam[0] == 'baby'){
					var illegalChars= /[\(\)\<\>\.\-\_\,\;\:\\\/\"\[\]]/
					var expressie = /[^a-zA-Z\s]/
					if(expressie.test(box.value)){
						dezefout = 1;
						var extraerror = 2;
					}
				}
				if(box.name == "email"){
					var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					if (!filter.test(box.value)) {
						box.style.border = '1px solid red';
						error = 1;
						extramelding += "\nControleer het e-mailadres!";
					} else {
						box.style.border = '1px solid #6B90DA';
					}
				}
				if(box.name == "homestay_telhome"){
					//niet meer dan 14 characters
					var illegalChars= /[\(\)\<\>\.\_\,\;\:\\\/\"\[\]]/;
					var expressie = /^[0-9- ]+$/;
					if(expressie.test(box.value) == true){
						//geen foute karakters dus nummer is goed
						box.style.border = '1px solid #6B90DA';
					} else {
						box.style.border = '1px solid red';
						error = 1;
						extramelding += "\nHet telefoonnummer mag alleen cijfers, het dwarsstreepje (-) en spaties bevatten!";
					}
				}
	                        if((box.value=="" && naam[2] != "infix") || dezefout == 1) {
        	                        error = 1;
                	                box.style.border = '1px solid red';
	                        } else {
        	                        box.style.border = '1px solid #6B90DA';
                	        }
			}
                }
		
		if(extraerror){
			var foutje = '\nDe namen van de reizigers mogen geen leestekens bevatten!';
		} else {
			var foutje = '';
		}
                if(error) {
                        alert('Alstublieft de rode velden controleren!'+foutje+extramelding);
                        return false;
                }
	        var verzekeringen_error = 0;
		var error = '';
		if(document.forms['boeken'].annuleringsverzekering[0].checked || document.forms['boeken'].annuleringsverzekering[1].checked) {
			document.getElementById('annul_verz').style.color='black';
		} else {
			document.getElementById('annul_verz').style.color='red';
			error = error + '- U heeft nog geen keuze gemaakt voor de annuleringsverzekering\n';
			verzekeringen_error=1;
		}
        	if(document.forms['boeken'].reisverzekering[0].checked || document.forms['boeken'].reisverzekering[1].checked || document.forms['boeken'].reisverzekering[2].checked || document.forms['boeken'].reisverzekering[3].checked || document.forms['boeken'].reisverzekering[4].checked) {
        	        document.getElementById('reis_verz').style.color='black';

			if(!document.forms['boeken'].reisverzekering[4].checked) {
				//Aanvullende geldverzekeringen
			        if(document.forms['boeken'].aanv_geld[0].checked || document.forms['boeken'].aanv_geld[1].checked) {
		        	        document.getElementById('verz_aanv_geld').style.color='black';
		        	} else {
        		        	document.getElementById('verz_aanv_geld').style.color='red';
		        	        error = error + '- U heeft nog geen keuze gemaakt voor de aanvullende geldverzekering\n';
        		        	verzekeringen_error=1;
			        }
        		        //Aanvullende ongevallen verzekeringen
        	        	if(document.forms['boeken'].aanv_ongevallen[0].checked || document.forms['boeken'].aanv_ongevallen[1].checked) {
        	                	document.getElementById('verz_aanv_onge').style.color='black';
		                } else {
        		                document.getElementById('verz_aanv_onge').style.color='red';
        	        	        error = error + '- U heeft nog geen keuze gemaakt voor de aanvullende ongevallenverzekering\n';
        	                	verzekeringen_error=1;
		                }
        		        //Aanvullende verzekeringen
        	        	if(document.forms['boeken'].aanv_rechtsbijstand[0].checked || document.forms['boeken'].aanv_rechtsbijstand[1].checked) {
        	                	document.getElementById('verz_aanv_recht').style.color='black';
		                } else {
        		                document.getElementById('verz_aanv_recht').style.color='red';
        	        	        error = error + '- U heeft nog geen keuze gemaakt voor de aanvullende rechtsbijstandverzekering\n';
        	                	verzekeringen_error=1;
		                }
			}
        	} else {
        	        document.getElementById('reis_verz').style.color='red';
        	        error = error + '- U heeft nog geen keuze gemaakt voor de reisverzekering\n';
        	        verzekeringen_error=1;
        	}
	        var overig_error = 0;
        	if(document.forms['boeken'].reisbescheiden[0].checked || document.forms['boeken'].reisbescheiden[1].checked) {
        	        document.getElementById('bescheiden').style.color='black';
        	} else {
        	        document.getElementById('bescheiden').style.color='red';
        	        error = error + '- U heeft nog geen keuze gemaakt voor de reisbescheiden\n';
        	        overig_error=1;
        	}
		if(document.getElementById("autohuurofferte") == 1){
	        	if(document.forms['boeken'].autohuurofferte[0].checked || document.forms['boeken'].autohuurofferte[1].checked) {
        		        document.getElementById('offerte').style.color='black';
	        	} else {
        		        document.getElementById('offerte').style.color='red';
        		        error = error + '- U heeft nog geen keuze gemaakt voor de autohuur offerte\n';
	        	        overig_error=1;
        		}
		}
        	//Overig controleren
        	var bevestiging_error = 0;
        	if(document.forms['boeken'].voorwaarden.checked) {
        	        document.getElementById('voorw').style.color='black';
        	} else {
			document.getElementById('voorw').style.color='red';
			error = error + '- U heeft niet aangegeven de voorwaarden gelezen te hebben\n';
			bevestiging_error = 1;
		}
       	        if(verzekeringen_error || overig_error || bevestiging_error) {
                        alert(error);
                        return false;
                }
	}
	document.location.href='#';
	document.getElementById('hidescreen').style.display='block';
	document.getElementById('xmlboekingscreen').style.display='block';
	startBooking();

	return true;
}

function XmlcheckRequestForm() {
        var selectboxes = document.getElementsByTagName("SELECT");
	var error = 0;
        for (var i = 0; i < selectboxes.length; i++) {
                var box = selectboxes[i];
                if(box[box.selectedIndex].value==0) {
          	      error = 1;
                      box.style.border = '1px solid red';
                } else {
                      box.style.border = '1px solid #6B90DA';
                }
        }

                var roomboxes = document.getElementsByTagName("INPUT");
                for (var i = 0; i < roomboxes.length; i++) {
                        if(roomboxes[i].getAttribute('type')=='text'){
                                if(roomboxes[i].value.length < 2) {
                                        roomboxes[i].style.border='1px solid red';
                                        error = 1;
                                } else {
                                        roomboxes[i].style.border='1px solid #6B90DA';
                                }
                        }
                }

        if(error) {
                alert('Alstublieft de rode velden controleren!');
                return false;
        }
        return true;
}


function XmlgetHeight() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}

function XmlsetHeight() {
	if(readCookie('height') == 0) {
		var height = getHeight();
		createCookie('height', height);
	}
}

function toggle(regel) {
	var teken = regel+"teken";
	if( document.getElementById(regel).style.display=='none' ){
		document.getElementById(regel).style.display = '';
		document.getElementById(teken).innerHTML = "<IMG SRC=\"/afbeeldingen/minus.png\" WIDTH='12' HEIGHT='12' BORDER='0'>";
	} else {
		document.getElementById(regel).style.display = 'none';
                document.getElementById(teken).innerHTML = "<IMG SRC=\"/afbeeldingen/plus.png\" WIDTH='12' HEIGHT='12' BORDER='0'>";
	}
}
function printboeking(nummer) {
day = new Date();
id = day.getTime();
url = 'http://travelsearch.straus.nl/printboeking/'+nummer;
newWindow = window.open(url, id, 'location,scrollbars,resizable,width=810,height=630');
}
function printanfrage(nummer) {
day = new Date();
id = day.getTime();
url = 'http://travelsearch.straus.nl/printanfrage/'+nummer;
newWindow = window.open(url, id, 'location,scrollbars,resizable,width=810,height=630');
}

function getWidth() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return myWidth;
}
function create_http() {
try
  {
        // Firefox, Opera 8.0+, Safari
         http=new XMLHttpRequest();
  } 
catch (e)
  {
  // Internet Explorer
  try
    {
    http=new ActiveXObject("Msxml2.XMLHTTP");
    } 
  catch (e)
    {
    try
      {
      http=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
  return http;
}

function sendSellRequest(){
	var PackageID = document.getElementById('packageid').value;
//	if(PackageID.substring(0,2) == 'DJ') {
//		PackageID=PackageID.substring(3);
//	}
	var DepartureDate = document.getElementById('departuredate').value;
	var DeparturePoint = document.getElementById('departurepoint').value;
	var BoardType = document.getElementById('boardtype').value;
	var Duration = document.getElementById('duration').value;
	var AccoID = document.getElementById('accommodationid').value;
	var ArrivalDate = document.getElementById('arrivaldate').value;
	var DepartureDate2 = document.getElementById('departuredate2').value;
	var ToTransport = document.getElementById('to_transport').value;
	var FromTransport = document.getElementById('from_transport').value;
	var Autohuur = document.getElementById('autohuur').value;
	var Unitassignment = document.getElementById('unitassignment').value;

        var params = 'PackageID=' + PackageID + '&DepartureDate=' + DepartureDate + '&DeparturePoint=' + DeparturePoint + '&Board=' + BoardType + '&Duration=' + Duration + '&AccoID=' + AccoID + '&ArrivalDate=' + ArrivalDate + '&DepartureDate2=' + DepartureDate2 + '&to_transport=' + ToTransport + '&from_transport=' + FromTransport + '&autohuur=' + Autohuur + '&unitassignment=' + Unitassignment;
        http = create_http();
        var url = "/ajax/xmlboeking/sell.php";
        http.open("POST", url, true); 
    
        //Send the proper header information along with the request
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");
        http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4) {
                        var rt = http.responseText;
			var rec_id = "";
			var send_id = "";
			var msg_seq = 3;
			document.getElementById('xmlboekingscreen').innerHTML += rt;
			if(document.getElementById('ReceiverSessionID')) {
				rec_id = document.getElementById('ReceiverSessionID').innerHTML;
			}
                        if(document.getElementById('SenderSessionID')) {
                                send_id = document.getElementById('SenderSessionID').innerHTML;
                        }			
			document.getElementById('img_1').src = '/images/algemeen/xmlboeking/stap1_over.png';
			sendAssignRequest(msg_seq, send_id, rec_id);
                }
        } 
        http.send(params);
}
function sendAssignRequest(msg_seq, send_id, rec_id){
	var inputs = document.getElementsByTagName('INPUT');
	var params = '';
	for(var i=0; i<inputs.length; i++){
		if(inputs[i].name != 'reisinfo' && inputs[i].name != 'xml'){
			params += '&'+inputs[i].name+'='+inputs[i].value;
		}
	}
	var selects = document.getElementsByTagName('select');
	for(var i=0; i<selects.length; i++){
		params += '&'+selects[i].name+'='+selects[i].value;
	}
	params += '&MessageSequence='+msg_seq+'&ReceiverSessionID='+send_id+'&SenderSessionID='+rec_id;
        http = create_http();
        var url = "/ajax/xmlboeking/assign.php";
        http.open("POST", url, true);
        //Send the proper header information along with the request
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");
        http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4) {
                        var rt = http.responseText;
                        var rec_id = "";
                        var send_id = "";
                        var msg_seq = 5;
                        document.getElementById('xmlboekingscreen').innerHTML += rt;
                        if(document.getElementById('ReceiverSessionID')) {
                                rec_id = document.getElementById('ReceiverSessionID').innerHTML;
                        }
                        if(document.getElementById('SenderSessionID')) {
                                send_id = document.getElementById('SenderSessionID').innerHTML;
                        }
			document.getElementById('img_2').src = '/images/algemeen/xmlboeking/stap2_over.png';
			sendBookRequest(msg_seq, send_id, rec_id);
                }
        } 
        http.send(params);
	//alert(params);
}
function sendBookRequest(msg_seq, send_id, rec_id){
        var inputs = document.getElementsByTagName('INPUT');
	var opmerkingen = document.getElementById('opmerkingen').value;
        var params = '';
        for(var i=0; i<inputs.length; i++){
                if(inputs[i].name != 'reisinfo' && inputs[i].name != 'xml'){
			if(inputs[i].type == 'radio'){
				if(!inputs[i].checked){
					//negeren
				} else {
					params += '&'+inputs[i].name+'='+inputs[i].value;
				}
                        } else if(inputs[i].type == 'checkbox') {
                               if(!inputs[i].checked){
                                        //negeren
                                } else {
                                        params += '&'+inputs[i].name+'='+inputs[i].value;
                                }
			} else {
                        	params += '&'+inputs[i].name+'='+inputs[i].value;
			}
                }
        }
        var selects = document.getElementsByTagName('select');
        for(var i=0; i<selects.length; i++){
                params += '&'+selects[i].name+'='+selects[i].value;
        }
	params += '&MessageSequence='+msg_seq+'&ReceiverSessionID='+send_id+'&SenderSessionID='+rec_id+'&opmerking='+opmerkingen;
        http = create_http();
        var url = "/ajax/xmlboeking/book.php";

        http.open("POST", url, true);

        //Send the proper header information along with the request
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");
        http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4) {
                        var rt = http.responseText;
                        document.getElementById('xmlboekingscreen').innerHTML += rt;
			document.getElementById('img_3').src = '/images/algemeen/xmlboeking/stap3_over.png';
			setTimeout("document.location.href='/boeken_xml/finish'", 2000);
			return true;
                }
        } 
        http.send(params);
        //alert(params);
}
function startBooking(){
	sendSellRequest();
}
