// === Validation Functions === //
function jfIsValid( sValue, strValidChars  ) {
	var isValid = new Boolean()
	isValid=true
	var myChar=""
	var myInt=0

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=strValidChars.indexOf(myChar)

			if (myInt == -1) {
				isValid=false
				break;
			}
		}
	}
	else {
		isValid=false
	}

	return isValid
}

function jfIsDate(data,datename)
{

// function created : 31.12.03
// created by 		: Farrakh Aslam
// input paramaters : data     - the formname
//datename - the fieldname specified when calling the vbscript date box function
// description      : Can be used to validate any of the vbscript date box functions
data = "document." + data + "."

var day   = eval( data + datename + "_d.value")
var month = eval( data + datename + "_m.value")
var year  = eval( data + datename + "_y.value")

var calcYear = (year % 4 == 0)
if (!calcYear)
	{
	leapDays = 28
	}
else
	{
	leapDays = 29
	}

if (month == 02)
	{
	if (day > leapDays)
	   {
	   return false;
	   }


	}
else if (month == 04 || month == 06 || month == 09 || month == 11)
	{
	if (day > 30)
	   {
	   return false;
	   }

	}
return true;
}


function jfIsEmail(incoming) {
	var emailstring = incoming;
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
		// find a dot in the portion of the string after the ampersand only
	var dotIndex = afterAmp.indexOf(".");
		// determine dot position in entire string (not just after amp portion)
	dotIndex = dotIndex + ampIndex + 1;
		// afterAmp will be portion of string from ampersand to dot
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
		// afterDot will be portion of string from dot to end of string
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));

	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/
		// index of -1 means "not found"
	if ((emailstring.indexOf("@") != "-1") &&
		(emailstring.length > 5) &&
		(afterAmp.length > 0) &&
		(beforeAmp.length > 1) &&
		(afterDot.length > 1) &&
		(email_regex.test(emailstring)) ) {
		  return true;
	} else {
			return false;
	}
}

function jfIsPhoneNum( sValue ) {
	var isPhoneNum = new Boolean()
	isPhoneNum=true
	var myChar=""
	var myInt=0
	var strValidChars = "0123456789";

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=strValidChars.indexOf(myChar)

			if (myInt == -1) {
				isPhoneNum=false
			}
		}

	} else {
		isPhoneNum=false
	}

	return isPhoneNum
}

function jfIsInt( sValue ) {
	var isInteger = new Boolean()
	isInteger=true
	var myChar=""
	var myInt=0

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=parseInt(myChar)

			if (isNaN(myInt)) {
				isInteger=false
			}
		}

	} else {
		isInteger=false
	}

	return isInteger
}


function jmenu( iMenu, sClassName )
{
		t=document.getElementById("menu_"+iMenu) ;
		t.className=sClassName;
}

function jcallback(){
	frm = document.frmEmail

	if (frm.txtFullname.value == ""){
		alert("Please enter your name.")
		frm.txtFullname.focus()
		return;
	}
	else if (frm.txtTel1.value == ""){
		alert("Please enter your contact telephone number.")
		frm.txtTel1.focus()
		return;
	}
	
	frm.submit()
}

function jsJoinForUpdates(){
	frm = document.frmJoinForUpdates

	if (frm.txtFullname.value == ""){
		alert("Please enter your name.")
		frm.txtFullname.focus()
		return;
	}
	else if (frm.txtTel1.value == ""){
		alert("Please enter your contact telephone number.")
		frm.txtTel1.focus()
		return;
	}
	
	frm.submit()
}
	
function jLaunchWindow( sURL, sWidth, sHeight ){
	sParams = "'directories=no,height=300,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,width=" + sWidth + ",height=" + sHeight + ",toolbar=no'"
     newWin = window.open( sURL,'Help', sParams);
}	


function jclaimform(){
	frm = document.frmClaim

	if (frm.optTitle.value == 0){
		alert("Please enter your Title.")
		return;
	}
	else if (frm.txtFirstName.value == ""){
		alert("Please enter your Forename(s).")
		return;
	}
	else if (frm.txtLastName.value == ""){
		alert("Please enter your Surname.")
		return;
	}
	else if (frm.txtHomeTel.value == "" && frm.txtMobile.value == "" && frm.txtWorkTel.value == "" ){
		alert("Please enter a contact number.")
		return;
	}
	else if (frm.optAccident.value == 0){
		alert("Please select your Accident Type.")
		return;
	}
	else if (frm.optTime.value == 0){
		alert("Please select your Best Time to call.")
		return;
	}
	frm.submit()
}

function jsMenu(iMenu){

	sMenu = "menu-" + iMenu

	if (document.getElementById(sMenu).style.display=="none"){
		document.getElementById(sMenu).style.display="";
	}
	else{
		document.getElementById(sMenu).style.display="none";
	}
	
}

function jsLocation( sURL ){	  

	document.location = sURL;        
	
}	

function jsAdhaan(){

	emailwindow = dhtmlmodal.open('Adhaan', 'iframe', 'adhaan.asp', '', 'width=390px,height=310px,center=1,resize=0,scrolling=0', 'recal')

	emailwindow.onclose = function(){ 
	
		var frm = this.contentDoc.forms[0]
		
		return true;
	}
	
} 

function jsSecurePayment( ){
 
 	frm = document.frmSecure
 
 	sAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz- '()"
 	sAlphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-1234567890'()"

	 // ==== Personal Details ==== //

	 // Amount //
 	if ( frm.txtDonation.value.length < 1 ){
 		frm.txtDonation.focus()
 		alert("Please enter a donation amount.")
 		return;
 	}
 	else if ( jfIsPhoneNum(frm.txtDonation.value) == false){
 		frm.txtDonation.focus()
 		alert("Please enter a correct donation amount.")
 		return;
 	}

	if ( frm.optDonationCategory.value == 0 ){
		frm.optDonationCategory.focus()
		alert("Please select category for your donation.")
		return;
	}	

	// Full Name //
	if (frm.txtFullName.value ==""){
		frm.txtFullName.focus()
		alert("Please enter your full name.")
		return;
	}
	else if (frm.txtFullName.value.length < 3){
		frm.txtFullName.focus()
		alert("Your full name must be 3 or more characters in length.")
		return;
	}
	else if (jfIsValid (frm.txtFullName.value, sAlpha) == false){
		frm.txtFullName.focus()
		alert("Your full name must contain alphabetic characters only.")
		return;
	}

	// Email Address //
	if ( frm.txtEmail.value == ""){
		frm.txtEmail.focus()
		alert("Please enter your email address.")
		return;
	}
	else if ( jfIsEmail(frm.txtEmail.value) == false){
		frm.txtEmail.focus()
		alert("Please enter a valid email address.")
		return;
	}
	
	//alert(frm.chkUKTaxPayer.checked)
	if ( frm.chkUKTaxPayer.checked == true ){
		// House Number //
		if ( frm.txtAdd1.value == ""){
			frm.txtAdd1.focus()
			alert("Please enter the first line of your address.")
			return;
		}
	
		// City //
		if ( frm.txtCity.value == "" ){
			frm.txtCity.focus()
			alert("Please enter your town/city.")
			return;
		}
		// Postcode //
		if ( frm.txtPostcode.value == "" ){
			frm.txtPostcode.focus()
			alert("Please enter your postcode.")
			return;
		}
		else if ( frm.txtPostcode.value.length < 6 ){
			frm.txtPostcode.focus()
			alert("Please enter a valid postcode.")
			return;
		}
	
	}


	 /* Home Tel //
 	if ( frm.txtTel.value.length < 11 ){
 		frm.txtTel.focus()
 		alert("Please enter a valid phone number.")
 		return;
 	}
 	else if ( jfIsPhoneNum(frm.txtTel.value) == false){
 		frm.txtTel.focus()
 		alert("Please enter a valid phone number.")
 		return;
 	}
	*/

	// ==== Card Type ==== //
	if ( frm.optcardtype.value == 0 ){
		frm.optcardtype.focus()
		alert("Please select your credit card.")
		return;
	}	

	 // ==== Card Number ==== //
	if ( jfIsInt(frm.txtcardnum.value ) == false ){
		frm.txtcardnum.focus()
		alert("Please enter a valid credit card number.")
		return;
	}	

	if ( frm.optvalidfrommonths.value == "" || frm.optvalidfromyears.value == "" ){
		frm.optvalidfrommonths.focus()
		alert("Please enter a valid from date.")
		return;
	}

	if ( frm.optexpirymonths.value == "" || frm.optexpiryyears.value == "" ){
		frm.optexpirymonths.focus()
		alert("Please enter a valid expiry date.")
		return;
	}

	if ( frm.txtsecuritycode.value == ""){
		frm.txtsecuritycode.focus()
		alert("Please enter the last 3 digits of your security code.")
		return;
	}	

	// ==== Card Holders ==== //
	if (frm.txtCardHoldername.value == "" ){
		frm.txtCardHoldername.focus()
		alert("Please enter the card holder's name.")
		return;
	}
	

 	frm.submit();
 }
 
function jsSecure(){
 	frm = document.frmSecure
 	frm.submit();
}

function jsGetMyDetails( iValue ){
 	frm = document.frmSecure

	if (frm.txtPasscode.value == "" ){
		frm.txtPasscode.focus()
		alert("Please enter your passcode.")
		return;
	}

	frm.txtStep.value = iValue;
	frm.txtAction.value = 0;
 	frm.submit();
}

function jsSendMePasscode( iValue ){
 	frm = document.frmSecure

	// Email Address //
	if ( frm.txtEmailPasscode.value == "Enter your email"){
		frm.txtEmailPasscode.focus()
		alert("Please enter your email address.")
		return;
	}
	else if ( frm.txtEmailPasscode.value == ""){
		frm.txtEmailPasscode.focus()
		alert("Please enter your email address.")
		return;
	}
	else if ( jfIsEmail(frm.txtEmailPasscode.value) == false){
		frm.txtEmailPasscode.focus()
		alert("Please enter a valid email address.")
		return;
	}

	frm.txtStep.value = iValue;
	frm.txtAction.value = 1;
 	frm.submit();
}

// TESTIMONIAL NAVIGATION //

function jnavigateDonor( iEventType, iPage ){

	frm = document.frmDonor
	iEventType = 1
		frm.action = "Donor.asp"
	
	frm.txtDonor.value = 0
	iMaxPage = frm.txtMaxPage.value
	if ( iPage == 0 ){
		iPage = 1
	}
	else if ( iPage >= iMaxPage ){
		iPage = iMaxPage
	}
	frm.txtPage.value = iPage
	frm.submit();
}

