
function setDate(frm, inputname)
{
	var day = frm.elements[inputname + '_day'].options[frm.elements[inputname + '_day'].options.selectedIndex].value;
	var month = frm.elements[inputname + '_month'].options[frm.elements[inputname + '_month'].options.selectedIndex].value;
	var year = frm.elements[inputname + '_year'].options[frm.elements[inputname + '_year'].options.selectedIndex].value;
	var curDate = year + '-' + month + '-' + day;
	frm.elements[inputname].value= curDate;	
}


function StartAnimation()
{ 	
	if (document.images) document['img_progressbar'].src = imgProgressBar.src; 
}

function StartProgressBar(frm)
{	
	if(document.getElementById('overzicht_reizen'))
	{
		document.getElementById('overzicht_reizen').style.visibility = 'hidden'; 
		document.getElementById('overzicht_reizen').style.display = 'none';
	}
	if(document.getElementById('overzicht_reizen1'))
	{
		document.getElementById('overzicht_reizen1').style.visibility = 'hidden'; 
		document.getElementById('overzicht_reizen1').style.display = 'none';
	}
	if(document.getElementById('overzicht_reizen2'))
	{
		document.getElementById('overzicht_reizen2').style.visibility = 'hidden'; 
		document.getElementById('overzicht_reizen2').style.display = 'none';
	}
	if(document.getElementById('overzicht_reizen3'))
	{
		document.getElementById('overzicht_reizen3').style.visibility = 'hidden'; 
		document.getElementById('overzicht_reizen3').style.display = 'none';
	}
	if(document.getElementById('progressbar'))
	{
		document.getElementById('progressbar').style.visibility = 'visible'; 
		document.getElementById('progressbar').style.display = 'block';
	}
	setTimeout("StartAnimation()", 200);
} 

function setCCDate(frm)
{
	var month = frm.elements['ccdate_month'].options[frm.elements['ccdate_month'].options.selectedIndex].value;
	var year = frm.elements['ccdate_year'].options[frm.elements['ccdate_year'].options.selectedIndex].value;
	var curDate = year + '-' + month;
	frm.elements['bookingdata/ccdate'].value= curDate;
}

function popup(sUrl,sWidth,sHeight) {
	var oWin = window.open(sUrl,'profile','height='+sHeight+',width='+sWidth+',scrollbars=yes,location=no,resize=yes');
	oWin.focus();
}

function checkBooking(frm)
{
	var idname;
	var value;
	var strMsg ='';
	var blnCheck =true;
	var title = '';
	var allInputFields = document.all ?    document.all.tags('INPUT') :    document.getElementsByTagName ?     document.getElementsByTagName('INPUT') : new Array();
	for (var i = 0; i < allInputFields.length; i++)
	{
		idname = allInputFields[i].id;
		value = allInputFields[i].value;
		title = allInputFields[i].title;
		switch(idname)
		{
			case 'required':
				if(isEmpty(value))
				{
					strMsg += title  + ' is verplicht.\n';
					blnCheck = false;
				}
				break;
			case 'email':
				if(isEmpty(value))
				{
					strMsg += title  + ' is verplicht.\n';
					blnCheck = false;
				} else {
					if(!checkMail(value))
					{
						strMsg += title  + ' is een ongeldig emailadres.\n';
						blnCheck = false;
					}			
				}
				break;
			case 'postcode':
				if(isEmpty(value))
				{
					strMsg += title  + ' is verplicht.\n';
					blnCheck = false;
				} 
/* De postcodecheck komt te vervallen wegens te streng voor buitenlandse klanten
				else {
					if(!checkPostcode(value))
					{
						strMsg += title  + ' is  een ongeldige postcode.\n';
						blnCheck = false;
					}
				}
*/
				break;
			case 'phone':
				if(isEmpty(value))
				{
					strMsg += title  + ' is verplicht.\n';
					blnCheck = false;
				} else {
					if(!checkPhone(value))
					{
						strMsg += title  + ' is  een ongeldige telefoonnummer.\n';
						blnCheck = false;
					} else {
						if(value.length < 10)
						{
							strMsg += title  + ' dient minimaal 10 cijfers te zijn.\n';
							blnCheck = false;
						} 
					}
				}
				break;
			case 'date':
				if(!isDate(value))
				{
					strMsg += title  + ' is een ongeldige datum.\n';
					blnCheck = false;
				}
				break;
			case 'checked':
				if(!allInputFields[i].checked)
				{
					strMsg += 'U dient akkoord te gaan met de algemene voorwaarden.\n';
					blnCheck = false;
				}				
				break;
			case 'newsletter':
				frm.elements['bookingdata/newsletter'].value=0;
				if(allInputFields[i].checked)
				{
					frm.elements['bookingdata/newsletter'].value=1;
				}	
				break;
			case 'ccrequired':	
			case 'ccnumber':						
				if(getRadioValue(frm.elements['bookingdata/paymenttype'])== 0)
				{
					if(isEmpty(value))
					{
						strMsg += title  + ' is verplicht.\n';
						blnCheck = false;
					} else{
						if (idname == 'ccnumber')
						{
							if(!checkNumeric(value))
							{
								strMsg += title  + ' dient numeriek te zijn.\n';
								blnCheck = false;
							} 
						}
					}
				}
				break;	
			case 'paymentrequired':			
				var paymenttype = getRadioValue(frm.elements['bookingdata/paymenttype']);				
				if(paymenttype == null || paymenttype < 0)
				{
						strMsg += title  + ' is verplicht.\n';
						blnCheck = false;
				}
				break;			

			case 'bankrequired':
			case 'banknumber':						
				if(getRadioValue(frm.elements['bookingdata/paymenttype'])== 1)
				{
					if(isEmpty(value))
					{
						strMsg += title  + ' is verplicht.\n';
						blnCheck = false;
					} else{
						if (idname == 'banknumber')
						{
							if(!checkNumeric(value))
							{
								strMsg += title  + ' dient numeriek te zijn.\n';
								blnCheck = false;
							} 
						}
					}
				}
				break;

		}		
	}
	
	if (blnCheck)
	{
		frm.submit();
	} else {
		alert(strMsg);
	}
	return blnCheck;
}

function checkMail(strValue)
{
	var email = strValue;
	var blnEmail = false;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)) {
		blnEmail = true;
	};
	return blnEmail;
}

function SetPayOption(vOption){
	if(vOption=="Option_1"){
		document.getElementById("Option_1").style.display = "block";
		document.getElementById("Option_2").style.display = "none";
	}else if(vOption=="Option_2"){
		document.getElementById("Option_1").style.display = "none";
		document.getElementById("Option_2").style.display = "block";
	}
}

function getRadioValue (radioButtonOrGroup) {
  var buttonsLength = radioButtonOrGroup.length;
  if (buttonsLength) { // group
    for (var b = 0; b < buttonsLength; b++)
      if (radioButtonOrGroup[b].checked)
        return radioButtonOrGroup[b].value;
  }
  else if (radioButtonOrGroup.checked)
    return radioButtonOrGroup.value;
  return null;
}


function checkNumeric(strValue)
{
	var Numeric = strValue;
	var blnNumeric = false;
	var filter  = /^([0-9])+$/;
	if (filter.test(Numeric)) {
		blnNumeric = true;
	};
	return blnNumeric;
}
function checkPostcode(strValue)
{
	var postcode = strValue;
	var blnPostcode = false;
	var filter  = /^([0-9]{4})([a-zA-Z]{2})$/;
	if (filter.test(postcode)) {
		blnPostcode = true;
	};
	return blnPostcode;
}
function checkPhone(strValue)
{
	var phone = strValue;
	var blnPhone = false;
	var filter  = /^(0)([0-9-.\s])+([0-9])$/;
	if (filter.test(phone)) {
		blnPhone = true;
	};
	return blnPhone;
}
function trimspaces(str)
{	
	 while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  return str;
};
function isEmpty(strTmp)
{
	var chkEmpty = false;	
	if (trimspaces(strTmp) == ''){		
		chkEmpty = true;
	};	
	return chkEmpty;
}

function isDate(strValue) {
	var dt = strValue.split('-');
	var year = dt[0];
	var month = dt[1];
	var day = dt[2];
 	var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    /*month = ((!month) ? today.getMonth():month-1);*/
    if (!day) return false
	if (!month) return false
	month = month - 1;
    var test = new Date(year,month,day);		
    if ((year == y2k(test.getYear())) && (month == test.getMonth()) && (day == test.getDate()) ){
        return true;
    } else {
        return false;
	};		
};

function y2k(number) { return (number < 1000) ? number + 1900 : number; }
