﻿function SwapImage(ImageId,NewSrc){
	document.getElementById(ImageId).src = NewSrc;
}

function showHide(str,obj){
	var parObj = document.getElementById("GoogleAddresses");
	if(parObj.style.display =="none"){
		parObj.style.display = "block";
	}
	var i = 1;
	while(document.getElementById(str+i)){
		document.getElementById(str+i).style.display = "none";
		i++;
	}
	document.getElementById(str+obj).style.display = "block";
}

function isInteger(theData){ return (theData.search(/^\d+$/) != -1); }

function isEmpty(s){ return ((s == null) || (s.length == 0) || s=="");}

function isMail(sString){
	var emailEXP = /^[a-z_0-9\.\-]+@[a-z_0-9\-\_\.]+\.[a-z]{2,3}$/i
	if (!sString.match(emailEXP)){
		return false;
	}
	else{
		return true;
	}
}

function isDecimal(theData){ return (theData.search(/\d*\.\d+/) != -1); }

function isChecked(theData){
	var len, found
	len = theData.length;
	found = true
	for(var i=0;i<len;i++){
		if (theData[i].checked) found=false;
	}
	return found;
}

function isDate(strDate,DateFormat){
		 DateFormat=DateFormat.toLowerCase()
		
		 if (DateFormat=='dd/mm/yyyy'){var DatePattern = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;}
		 else if (DateFormat=='mm/dd/yyyy'){var DatePattern = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;}
		 else if (DateFormat=='yyyy/mm/dd'){var DatePattern = /^(\d{2}|\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/;}
		 
		 var matchArray = strDate.match(DatePattern);
		 if (matchArray == null) return false;
		 
		 if (DateFormat=='dd/mm/yyyy'){var day = matchArray[1];var month = matchArray[3];var year = matchArray[4];}
		 else if (DateFormat=='mm/dd/yyyy'){var day = matchArray[3];var month = matchArray[1];var year = matchArray[4];}
		 else if (DateFormat=='yyyy/mm/dd'){var day = matchArray[4];var month = matchArray[3];var year = matchArray[1];}
		 else{return false;}
			
		 if (month < 1 || month > 12) return false;
		 if (day < 1 || day > 31) return false;
		 if (year < 1900) return false;
		 if ((month == 4 || month == 6 || month==9 || month == 11) && day == 31) return false;
		 if (day>=29 && month == 2 && parseInt(year) % 4 !== 0) {return false;}
		 if (day>=30 && month == 2 && parseInt(year) % 4 == 0) {return false;}
		 return true;
	}
var capId;
function setCaptcha(){
	/*var cap = new Array("0645","0680","0808","2066","2082","2450","3294","3355","3429","3682","3966","4295","4462","4503","5239","5330","5454","5692","6045","6234","6383","6590","8524","9008","9250");
	var rand = new Number(Math.round(Math.random()*(cap.length-1)));
	document.getElementById("CapthaImage").src = "Assets/Images/CAPTCHA/"+cap[rand]+".jpg";
    capId = cap[rand];*/
}

function CheckForm(){
    var HasErrors = false;
    var f = document.getElementById("TheForm");
    var ErrStr = "Please correct the following errors before submitting the form.\n";
    ErrStr += "----------------------------\n"
    
    if (f.fullname.value == ""){
        ErrStr += "- The 'Full name' field is empty.\n"
        HasErrors = true;
    }
    
        
    if (f.email.value == ""){
        ErrStr += "- The 'Email' field is empty.\n"
        HasErrors = true;
    }
    else {
        if(!isMail(f.email.value)) {
            ErrStr += "- The 'Email' field does not contain a valid email address.\n"
            HasErrors = true;
        }
        else {
            if (f.email.value != f.confemail.value){
                ErrStr += "- The 'Email' and 'Confirm Email' fields do not match.\n"
                HasErrors = true;
            }
        }
        
    }
    
    if (f.country.value == ""){
        ErrStr += "- The 'Country' field has not been selected.\n"
        HasErrors = true;
    }
    
    if (f.peopleNumber.value == ""){
        ErrStr += "- The 'Persons on board' field is empty.\n"
        HasErrors = true;
    }
    
    if (f.cabinsNeeded.value == ""){
        ErrStr += "- The 'Number of cabins' field is empty.\n"
        HasErrors = true;
    }
    
    if (f.yachttypeselected.value == ""){
        ErrStr += "- The 'Type of yacht' field has not been selected.\n"
        HasErrors = true;
    }
    
    if (f.crewtypeselected.value == ""){
        ErrStr += "- The 'Crewed/Bareboat' field has not been selected.\n"
        HasErrors = true;
    }

    var StartDate = f.start_date_dd.value + "/" + f.start_date_mm.value + "/" + f.start_date.value;
    var EndDate = f.end_date_dd.value + "/" + f.end_date_mm.value + "/" + f.end_date.value;    
    
    if (!isDate(StartDate,'dd/mm/yyyy')){
        ErrStr += "- The 'Starting day' field does not contain a valid date.\n"
        HasErrors = true;
    }
    
    /*if (f.captcha.value != capId){
        ErrStr += "- The 'Verification' field does not match the displayed image\n"
        HasErrors = true;
    }*/
    
    ErrStr += "----------------------------\n"
    
    if (HasErrors == false){
        f.submit();
    }
    else {
        alert(ErrStr);
        return false;
    }
}

