function Inint_AJAX() {
    try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
    try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
    alert("XMLHttpRequest not supported");
    return null;
};
    
function doChange(src,val1,val2) {
    var req = Inint_AJAX();
    req.onreadystatechange = function () {
	if (req.readyState==4) {
	    if (req.status==200) {
		document.getElementById(src).innerHTML=req.responseText; //return value
	    }
	}
    };
    req.open("GET", "inc.ajax.php?data="+src+"&val1="+val1+"&val2="+val2); //make connection
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
    req.send(null); //send value
}

function initChange(cid,did,aid) {
    if(cid > 0 && (did == 0 || did > 0) && aid == 0) {
	doChange('destinations',cid,did);
	doChange('areas',did,0);
    } else if(cid > 0 && (did == 0 || did > 0) && aid > 0) {
	doChange('destinations',cid,did);
	doChange('areas',did,aid);
    }
}

function validEmail(email) {
    invalidChars = " /:,;"
    if (email == "") {
	return false
    }
    
    for (i=0; i<invalidChars.length; i++) {
	badChar = invalidChars.charAt(i)
	if (email.indexOf (badChar,0) != -1) {
	    return false
	}
    }  // for (i=0.. 
    
    atPos = email.indexOf ("@",1)
	
    if (atPos == -1) {
	return false
    }
    
    if ( email.indexOf ("@", atPos+1) != -1) {
	return false
    }
    periodPos = email.indexOf (".", atPos)
    
    if ( periodPos == -1) {
	return false
    }
    
    if ( periodPos+3 > email.length)    {
	return false
    }
    return true
}  // validEmail 
    
    
function validForm(form) {
    var message;
    message = '';
    if(!validEmail(form.email.value) || form.email.value != form.email2.value) {
	message += "Please check email address and make sure the confirmed email address is correct\n";
    }
    
    if(form.fname.value == '' || form.lname.value == '') {
	message += "Please specify your full name\n";
    }
    
    if(message != '') {
	alert(message);
	return false;
    } else {
	return true;
    }	
}

function parseDate(str) {
    var dateSplit = str.split('-');
    var returnDate = new Date();
    returnDate.setFullYear(dateSplit[0],dateSplit[1]-1,dateSplit[2]);
    return returnDate;
}

function daydiff(first, second) {
    return Math.floor((second-first)/(1000*60*60*24));
}

    
function validReservation(form) {
    var message;
    var datemessage;
    var validDate;
    var low_stay = form.low_stay.value;
    var xmas_stay = form.xmas_stay.value;
    
    message 	= '';
    datemessage	= "Dates are not valid format\n";
    if(form.country.value == 0 || form.country.value == '0') {
	message += "Please input country\n";
    }
    
    if(!validEmail(form.email.value)) {
	message += "Please check email address\n";
    }
    
    if(form.fname.value == '' || form.lname.value == '') {
	message += "Please specify your full name\n";
    }
    
    validDate = false;
    if(form.checkin.value != '' && form.checkout.value != '') {
	var inDate=parseDate(form.checkin.value);
	var outDate=parseDate(form.checkout.value);
	// need the year of the checkin to determine xmas date
	var xmas = new Date(inDate.getFullYear(),11,24);
	var newyear = new Date(inDate.getFullYear(),11,31);
	var xmas_included = inDate <= xmas && outDate >= xmas;
	var newyear_included = inDate <= newyear && outDate >= newyear;
	var boxingday = inDate > xmas && outDate < newyear;
	if(xmas_included || newyear_included || boxingday) {
	    // xmas stay AND/OR new years stay
	    if(daydiff(inDate, outDate) >= xmas_stay) {
		validDate = true;
	    } else {
		datemessage	= "Minimum stay of "+xmas_stay+" for christmas and new year\n";
	    }
	} else {
	    if(daydiff(inDate, outDate) >= low_stay) {
		validDate = true;
	    } else {
		datemessage	= "Minimum stay of "+low_stay+" days\n";
	    }

	}
    }

    if(!validDate) {
	message += datemessage;
    }
    
    if(message != '') {
	alert(message);
	return false;
    } else {
	form.action = "http://www.eatsandretreats.com/enquiry.php";
	return true;
    }
}

function validRealestate(form) {
    var message;
    var datemessage;
    var validDate;
    message 	= '';
    
    if(form.country.value == 0 || form.country.value == '0') {
	message += "Please input country\n";
    }
    
    if(!validEmail(form.email.value)) {
	message += "Please check email address\n";
    }
    
    if(form.fname.value == '' || form.lname.value == '') {
	message += "Please specify your full name\n";
    }
    
    
    if(message != '') {
	alert(message);
	return false;
    } else {
	form.action = "http://www.webperspective.hk/re-enquiry.php";
	return true;
    }
}

function validReview(form) {
    var message;
    message = '';
    
    if(!validEmail(form.email.value)) {
	message += "Please check email address\n";
    }
    
    if(form.fname.value == '') {
	message += "Please specify your full name\n";
    }
    if(form.heading.value == '') {
	message += "Please specify your review heading\n";
    }
    if(form.comments.value == '') {
	message += "Please insert your review\n";
    }
	
    if(message != '') {
	alert(message);
	return false;
    } else {
	form.action = "http://www.webperspective.hk/review.php";
	return true;
    }
    
}
