/*
  -------------------------------------------------------------------------
	                Minds Eye Validation Script in JavaScript
                                Version 3.0
					
	Copyright 2008 mindseye-marketing.com. All rights reserved.
    This javascript code is installed as part of JavaScript Coder software.
	You may adapt this script for your Web pages, provided these opening credit
    lines (down to the lower dividing line) are kept intact.
    You may not reprint or redistribute this code without permission from 
    mindseye-marketing.com.

    -------------------------------------------------------------------------  
*/
var inputLength = 3;
var inputValue="0";
var ReadyToGo = 0;
var allErrors = "";
var errorCount = 0;
var plural = "";

function checkField(inputName,inputCheck,checkType) {
	if (allErrors =="") {
	// document.getElementById('errorDiv').className = "errorDivOff";
	// document.getElementById('errorDiv').innerHTML = "&nbsp;";
	}



switch(inputCheck) {
case "minlen" :
inputValue = document.getElementById('myform')[inputName].value;
inputLength = inputValue.length;
	if (inputLength > checkType) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
	} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please enter at least ' + (checkType + 1) + ' characters for the ' + inputName+ ' field.');
	}
	break;    


case "email" :
inputValue = document.getElementById('myform')[inputName].value;
	var myEmail = inputValue;
	var testEmail = njlValidateEmail(myEmail);
	if (testEmail == true) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
	} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please enter a valid email address for the ' + inputName+ ' field.');
	}
	break;

case "mustbe":
var checkThis = document.getElementById('myform')[inputName].value;
var againstThis = checkType.toLowerCase();
var checkThisNow = checkThis.toLowerCase();
	if (checkThisNow == againstThis) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
	} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please enter &#145;' + againstThis + '&#146; to continue.');
	}
break;


case "tel" :
inputValue = document.getElementById('myform')[inputName].value;
var thisTel = inputValue.split(" ").join("");
if (thisTel.length < 11) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please enter the full Telephone Number - with area code.');
} else if (isNaN(thisTel) == true) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please enter the full Telephone Number - with area code.');
} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}
break;

case "select":
var mySelection = document.getElementById(inputName).value;
//alert (inputName + "(" + checkType + ") currently read as: '" + mySelection + "'" + " - " + mySelectionValue);
if (mySelection =="mm" || mySelection =="dd" || mySelection =="yyyy" || mySelection =="none") {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'Please make a selection in the ' + checkType + ' drop down list.');

} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}
break;


case "tickbox_On":
var tickBox = inputName;
var tickBoxValue = document.getElementById(inputName).checked;
// alert ('You are checking the tick box for: ' + tickBox + '(' + tickBoxValue + ')');
if(tickBoxValue === true) {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;

} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(inputName ,'You must tick to agree to the Terms of Usage to continue.');
}
break;

case "depend":
// not currently used - superceded by radios...
var thisField = inputName;
var theseVars = checkType
var thisCheckers = theseVars.split('_');
var CheckerField = thisCheckers[0];
var CheckerValue = thisCheckers[1];
var CheckerMessage = thisCheckers[2];
// alert ('You are checking ' + thisField + ' with '  + CheckerField + "\n" + CheckerValue + "\n" + CheckerMessage);
alert (document.getElementById(CheckerField).Value);
if (document.getElementById(CheckerField).Value != CheckerValue) {
	document.getElementById('checker_' + CheckerField).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(thisField ,'Please tick a box for the &#145; ' + CheckerMessage + '&#146; question.');
} else {
	document.getElementById('checker_' + CheckerField).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}
break;

case "radios":
var thisField = inputName;
var chk = document.getElementsByName(thisField);
var thisTotal = 0;

for (i = 0; i < chk.length; i++) {
	//alert ('Tick box ' + i + ' of ' + thisField + ' is: ' + chk[i].checked)
	if (chk[i].checked == false){
	thisTotal = thisTotal + 0;
	} else {
	thisTotal = thisTotal + 1;
	}

}
// now do the final sum
	if (thisTotal > 0) {
	document.getElementById('checker_' + thisField).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
	} else {
	//alert ('All Checkboxes are UNCHECKED!');
	document.getElementById('checker_' + thisField).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    njlAlert(thisField ,'Please select one of the &#145;' + checkType + '&#146; tick boxes.');
	}
break;


case "int":
var thisField = inputName;
var thisString = document.myform[thisField].value;
//alert ('Checking if ' + thisField + ' is a number ('+ thisString +').'); 
var errorTrap = thisString.search("[^0-9]");
	if (thisString.length > 0 && errorTrap >=0 ){
		if (thisString < 1) {
    	njlAlert(thisField ,'Please enter a number (only) for the &#145;' + checkType + '&#146;.');
		}
	} else {
	//alert ('Content Includes Exclusively Numbers.');
    ReadyToGo = ReadyToGo + 1;
	}
break;

case "posi" :
var thisField = inputName;
var thisString = document.myform[thisField].value;
// alert ('Checking ' + thisString + ' against positive numbers.');
	if (thisString == 0) {
    	njlAlert(thisField ,'Please enter a number for the &#145;' + checkType + '&#146;.');
	} else {
	//alert ('Content Includes Exclusively Numbers.');
    ReadyToGo = ReadyToGo + 1;
	}

break;

case "tick" :

if (document.getElementById(inputName).checked == false) {
    	njlAlert(thisField ,'Please tick to accept our privacy policy.');
    	alert('Please tick to accept our privacy policy.');
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}
break;



case "multiple" :
var myselRef = document.getElementById(inputName).options.length -1;
var totalSelected = 0;
for (var i=0; i <= myselRef;i++) {
	// alert("The value of element " + i + " is " + document.getElementById(inputName).options[i].selected);
	if (document.getElementById(inputName).options[i].selected) {
	totalSelected = totalSelected + 1;
	}
}
if (totalSelected<1) {
    	njlAlert(thisField ,'Please check your ' + checkType + ' entries match.');
} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}
break;


case "match" :
var thisField = inputName;
var thisString = document.getElementById(thisField).value;
var checkAgainst = document.getElementById(checkType).value;
// alert ('Checking ' + thisString + ' against positive numbers.');
	if (checkAgainst != thisString) {
	alert('Please check your ' + checkType + ' entries match.');
		document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
    	njlAlert(thisField ,'Please check your ' + checkType + ' entries match.');
	} else {
	//alert ('Content Includes Exclusively Numbers.');
    ReadyToGo = ReadyToGo + 1;
	}

break;

case "combinedDate":
var theDay = document.getElementById(inputName + "day").value;
var theMonth = document.getElementById(inputName + "month").value;
var theYear = document.getElementById(inputName + "year").value;
if(theDay=="none" || theMonth=="none" || theYear=="none") {
    	njlAlert(thisField ,'Please enter your ' + checkType + '.');
		document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
} else {
	document.getElementById('checker_' + inputName).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}

break;


case "specify":
var fieldOne = document.getElementById(inputName).value;
var fieldTwo = document.getElementById(checkType).value;
if(fieldOne == "other") {
	if(fieldTwo=="" || fieldTwo== undefined  ) {
    	njlAlert(thisField ,'Please specify your ' + checkType + '.');
		document.getElementById('checker_' + checkType).innerHTML = "<img src='/assets/buttons/aqua_alert.jpg' />";
	} else {
	document.getElementById('checker_' + checkType).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
		}


} else {
	document.getElementById('checker_' + checkType).innerHTML = "<img src='/assets/buttons/aqua_tick.jpg' />";
    ReadyToGo = ReadyToGo + 1;
}


break;


}
// show the error div?


}


function  njlAlert(errorField,errorMessage){
	if (allErrors =="") {
	// document.getElementById('errorDiv').className = "errorDivOff";
	// document.getElementById('errorDiv').innerHTML = "&nbsp;";
	}
// document.getElementById('errorDiv').className = "errorDiv";
// document.getElementById('errorDiv').innerHTML = "Form Error<hr color='#cc0033'/>" + errorMessage;
// alert(errorMessage);
allErrors =  errorMessage + "<br/>" + allErrors;
errorCount = errorCount + 1;
// document.getElementById('errorDiv').style.display = "block";
//
}


function njlValidateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function formset(theElement,theValue){
document.getElementById(theElement).value = theValue;
}

function flight()
{
var tickBoxValue = document.getElementById('flightonly').checked;
if (tickBoxValue == true){
	document.myform.accomname.value = "n/a";
	document.myform.roomtype.value = "n/a";
	document.myform.resort.value = "n/a";
	document.myform.mode.value = "normal";
	} 
}

function subscribeUser() {
ReadyToGo = 0;
checkField('fname','minlen',2);
checkField('surname','minlen',2);
checkField('email','email',3);
checkField('emailconfirm','email',3);
checkField('emailconfirm','match','email');
checkField('phone','minlen',10);
checkField('dob_','combinedDate','Date of Birth');
// checkField('exped[]','select','Expeditions');
checkField('interest','select','Main Interest');
checkField('howheard','select','How did you hear');
checkField('howheard','specify','other');
checkField('Send_Email','tick','Agree to our Privacy Policy');
	if(ReadyToGo >= 11) {
	document.forms.myform.submit();
	}


}