﻿function checkday(val,mth,year) {
	var num = parseFloat(val);
	var mthnum = parseFloat(mth);
	var yearnum = parseFloat(year);
	if(val.length > 2) {
		return true;
	}
	else {
		if(val.length == 2) {
			if(mthnum == 4 || mthnum == 6 || mthnum == 9 || mthnum == 11) {
				if(val < "01" || val > "30") {
					return true;
				}
			}
			else {
			  if(mthnum == 2) {
			  	mod = yearnum % 4;
				if(mod == 0) {
					if(val < "01" || val > "29") {
						return true;
					}
				}
				else {
					if(val < "01" || val > "28") {
						return true;
					}
			  	}
			  }
			  else {
				if(val < "01" || val > "31") {
					return true;
				}
			  }
			 }
		}
		else {
			if((val != ''+num) || (num<1) || (num >31)) {
				return true;
			}
		}
	}
}

function checkmth(val) {

	if( val != null )
	{
	var num = parseFloat(val);
	if((val.length > 2)) {
		return true;
	}
	else {
		if(val.length == 2) {
			if(val < "01" || val > "12") {
				return true;
			}
		}
		else {
		if((val != ''+num) || (num<1) || (num >12)) {
				return true;
			}
		}
	}
}

}

function checkyear(val) {
	var num = parseFloat(val);
	if((val.length != 4) || (val != ''+num)) {
		return true;
	}
}

// Check whether string s is empty.

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or
// whitespace characters only.
function isWhitespace(s) {
    var i;
    var whitespace = " \t\n\r";

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function validateDateFormat(form1) {
	var msg="";
	if(isWhitespace(form1.tour_date.value)) {
		msg = 'Please enter tour date !';
		return msg;
	}

	var tour_date_org = "";
	tour_date_org = form1.tour_date.value == "" ? "--" : form1.tour_date.value;

	var tourdate=tour_date_org.split("-");
	if (tourdate.length != 3) {
		msg = 'Invalid tour date !';
		return msg;
	}
	
	var touryear=tourdate[0];
	var tourmth=tourdate[1];
	var tourday=tourdate[2];

	if(checkday(tourday,tourmth,touryear) || checkmth(tourmth) || checkyear(touryear)) {
		msg = 'Invalid tour date !';
	}

	if (msg == "") {
		if (tourday.length == 1) {
			tourday = '0' + tourday;
		}
		if (tourmth.length == 1) {
			tourmth = '0' + tourmth;
		}
		form1.tour_date.value = touryear + '-' + tourmth + '-' + tourday;
	} 
	
	return msg;
}

function isValidTourDate() {
	var form1 = document.frmTour;
	
	var tourDate = form1.tour_date.value;
	var flag = false;
	var isDefaultRateExist = false;
	for (var i=0; i < arr_tour_date.length; i++) {
		if (arr_tour_date[i] == "0000-00-00") {
			isDefaultRateExist = true;
		}
		if (arr_tour_date[i] == tourDate) {
			flag = true;
			break;
		}
	}
	
	if (!flag && !isDefaultRateExist) {
		return false;
	} 
	
	return true;
}

function setTourRate() {
	var form1 = document.frmTour;
	
	var tourDate = form1.tour_date.value;
	var flag = false;
	var isDefaultRateExist = false;
	for (var i=0; i < arr_tour_date.length; i++) {
		if (arr_tour_date[i] == "0000-00-00") {
			isDefaultRateExist = true;
			def_rate_adult =  arr_rate_adult[i];
			def_rate_child =  arr_rate_child[i];
			def_rate_senior =  arr_rate_senior[i];
		}
		if (arr_tour_date[i] == tourDate) {
			form1.rate_adult.value = arr_rate_adult[i];
			form1.rate_child.value = arr_rate_child[i];
			form1.rate_senior.value = arr_rate_senior[i];
			flag = true;
			break;
		}
	}
	if (!flag && isDefaultRateExist) {
			form1.rate_adult.value = def_rate_adult;
			form1.rate_child.value = def_rate_child;
			form1.rate_senior.value = def_rate_senior;
	} 
	
		if (form1.rate_adult.value == 0 && form1.rate_child.value == 0 && form1.rate_senior.value == 0) {
			alert('On-line booking is full, please contact our hotline 852-2368 7111.');
			isFull = true;
			return false;
		}
}

function postChangeTourDate() {
	var form1 = document.frmTour;
	
	var msg = validateDateFormat(form1);
	if (msg != "") {
		alert(msg);
		return false;
	}

	var selectday = new Date(form1.tour_date.value.replace("-","/").replace("-","/"));

	if (selectday < today) {
		alert('Tour date has passed. Please re-enter.');
		return false;
	}
	
	if (ind_china) {
		if (selectday <= today_plus_3) {
			alert('For China tour, tour date must be 3 days after from today !');
			return false;
		}
	}
	
	if (! isValidTourDate()) {
		alert("No such tour on this day!");
		return false;
	}
	
	return true;
}

function checkform(form1){
	var v=form1.title.value;
	if (v=="") {
		alert("Please enter title !");
		form1.title.focus();
		return false;
	}
	
	var v=form1.first_name.value;
	if(v==""){
		alert("Please enter first name !");
		form1.first_name.focus();
		return false;
	}
	
	var v=form1.last_name.value;
	if(v==""){
		alert("Please enter last name !");
		form1.last_name.focus();
		return false;
	}
	
	var e = form1.email.value;
	if(e == ""){
		alert("Please enter email address !");
		form1.email.focus();
		return false;
	}else{
		var p = e.indexOf('@');
		if(p<1 || p==(e.length-1)){
			alert("Invalid email address !");
			form1.email.focus();
			return false;
		}
	}

	// validation on the pax count
	var num_adult = form1.num_adult.value;
	var num_child = form1.num_child.value;
	var num_senior = form1.num_senior.value;
	var total = num_adult + num_child + num_senior
	if (total <=0) {
			alert("No. of person must be greater zero !");
			form1.num_adult.focus();
			return false;
	}
	
	// validation on tour date
	if (! postChangeTourDate()) {
		form1.tour_date.focus();
		return false;
	}
	
	if (isFull) {
		alert('On-line booking is full, please contact our hotline 852-2368 7111.');
		form1.tour_date.focus();
		return false;
	}
	
	return true;
}


