function validate_newsletter(){
    var tTarget = "newsletter_validate";
    cleardata(tTarget);
    bValid = true;
    if(checkfieldnomatch('txtNewsletterName','Your name', 'Please enter your name',tTarget)!='true'){bValid = false}
    if(checkfield('txtNewsletterName', 'Please enter your name',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtNewsletterEmail', 'Please enter your email address',tTarget,'required valid-email')!='true'){bValid = false}
    //alert(bValid)
    if(bValid == false){
        return false;
    }
}
function validate_advice(){
    var tTarget = "advice_validate";
    cleardata(tTarget);
    bValid = true;
    if(checkfield('txtEnquiryFirstName', 'Please enter your first name',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtEnquiryLastName', 'Please enter your last name',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtEnquiryEmail', 'Please enter your email address',tTarget,'required valid-email')!='true'){bValid = false}
    if(checkfield('txtEnquiryComments', 'Please enter your question',tTarget,'required')!='true'){bValid = false}
    if(bValid == false){
        return false;
    }
}
function validate_enquiry(){
    var tTarget = "enquiry_validate";
    cleardata(tTarget);
    bValid = true;
    if(checkfield('txtEnquiryFirstName', 'Please enter your first name',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtEnquiryLastName', 'Please enter your last name',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtEnquiryEmail', 'Please enter your email address',tTarget,'required')!='true'){bValid = false}
    if(checkfield('txtEnquiryEmail', 'Please enter a valid email address',tTarget,'valid-email')!='true'){bValid = false}
    if(checkfield('txtEnquiryEmail|txtEnquiryEmail2', 'Confirm Email and Email must match',tTarget,'matches')!='true'){bValid = false}
    if(checkdropdown('cboCountry', 'Please select your nationality',tTarget)!='true'){bValid = false}
    if(checkfield('txtNumAdults', 'Please enter one or more adults',tTarget,'required numeric greater-than-zero')!='true'){bValid = false}
    if(checkfield('txtNumChildren', 'Number of children can only be zero or more',tTarget,'numeric greater-equal-than-zero')!='true'){bValid = false}
    if(checkfield('datepicker', 'Please select a valid start-date for your travel',tTarget,'valid-date')!='true'){bValid = false}
    if(checkfield('datepicker2', 'Please select a valid end-date for your travel',tTarget,'valid-date')!='true'){bValid = false}

    if(document.getElementById("txtDateIdea").value == ""){
        if(document.getElementById("datepicker").value == "" || document.getElementById("datepicker2").value == ""){
            appenddata(tTarget, "Please select your travel dates or provide an idea of dates");
            bValid = false;
        }else{
            var today = new Date();
            var aDate = document.getElementById("datepicker").value.split("/");
            var date1 = new Date(aDate[2], aDate[0]-1, aDate[1]);
            aDate = document.getElementById("datepicker2").value.split("/");
            var date2 = new Date(aDate[2], aDate[0]-1, aDate[1]);
            if(date2 <= date1 || date1 <= today){
                appenddata(tTarget, "Please select valid travel dates");
                bValid = false;
            }
        }
    }
    //if(checkfield('txtEnquiryEmail', 'Please enter your email address',tTarget)!='true'){bValid = false}
    //alert(bValid)
    if(bValid == false){
        return false;
    }
}


function validation_required(val){
    if(trim(val) == ""){return false}else{return true}
}
function validation_numeric(val){
    if(isNaN(val)){return false}else{return true}
}
function validation_greater_than_zero(val){
    if(val <= 0){return false}else{return true}
}
function validation_greater_equal_than_zero(val){
    if(val < 0){return false}else{return true}
}
function validation_email(val){
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(reg.test(val) == false) {return false;}else{return true;}
}
function validation_date(val){
    if(val == ""){return true};
    //var reg = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:20\d{2})/;
    var reg = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
    if(reg.test(val) == false) {return false;}else{return true;}
}

/* ********************************************** */

function cleardata(tObj){
    if(document.getElementById(tObj).innerHTML != ""){
    document.getElementById(tObj).innerHTML = "";
    }
}
function appenddata(tObj, tVal){
    if(tVal != ""){
        document.getElementById(tObj).innerHTML = document.getElementById(tObj).innerHTML + tVal + '<br/>';
    }
}

function checkfield(tField, tMessage, tAppendTo, validation){

    bRet = true;
    //var validation = "required valid-email numeric greater-than-zero";
    avalidation = validation.split(" ")
    for(var i = 0; i < avalidation.length; i++){
        var svalidation = avalidation[i];
        if(svalidation == 'matches') {
            parts = tField.split("|");
            var myinput = document.getElementById(parts[0]).value;
            var myinput2 = document.getElementById(parts[1]).value;
        } else {
            var myinput = document.getElementById(tField).value
        }
        if(svalidation == "matches"){
            if(myinput != myinput2){
                bRet = false;
                break;
            }
        }
        if(svalidation == "required"){
            if(!validation_required(myinput)){
                bRet = false;
                break;
            }
        }
        if(svalidation == "valid-email"){
            if(!validation_email(myinput)){
                bRet = false;
                break;
            }
        }
        if(svalidation == "numeric"){
            if(!validation_numeric(myinput)){
                bRet = false;
                break;
            }
        }
        if(svalidation == "greater-than-zero"){
            if(!validation_greater_than_zero(myinput)){
                bRet = false;
                break;
            }
        }
        if(svalidation == "greater-equal-than-zero"){
            if(!validation_greater_equal_than_zero(myinput)){
                bRet = false;
                break;
            }
        }
        if(svalidation == "valid-date"){
            //alert(validation_date(myinput))
            if(!validation_date(myinput)){
                bRet = false;
                break;
            }
        }
    }

 if(!bRet){
  appenddata(tAppendTo, tMessage)
  return 'false';
 }else{
  return 'true'
 }
}
function checkfieldnomatch(tField, tMatch, tMessage, tAppendTo){
 if(document.getElementById(tField).value == tMatch){
  appenddata(tAppendTo, tMessage)
  return 'false';
 }else{
  return 'true'
 }
}

function checkdropdown(tField, tMessage, tAppendTo){
 if(document.getElementById(tField).selectedIndex == 0){
  //alert(tMessage)
  //document.getElementById(tField).focus()
  appenddata(tAppendTo, tMessage)
  return 'false';
 }else{
  return 'true'
 }
}

function focusme(tObj, sVal){
    if(tObj.value == sVal){tObj.value = ""}
}
function blurme(tObj, sVal){
    if(tObj.value == ""){tObj.value = sVal}
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

