/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";

// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";

// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";

// Minimum no of digits in an international phone no.
var minDigitsInIAddressNumber = 10;

// Minimum characters required for an e-mail
var emailDelimiters = "@.";

// Minimum number of characters in a valid stripped e-mail
// There should be at least 1 @ and one . in the stripped string
// for a normal non-obfuscated e-mail.
var minCharsInEmail = 2;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function findCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strAddress){
    s=stripCharsInBag(strAddress,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIAddressNumber);
}

function simpleEmailCheck(strAddress){
    s=findCharsInBag(strAddress,emailDelimiters);
    return (s.length >= minCharsInEmail);
}

function ValidateForm(formData){
	var Address=formData.address;
	var AddressType=formData.addressType;
	var Pin=formData.pin;

// alert ("the addressType is: " + AddressType.value);
	
	if ((Address.value==null)||(Address.value=="")){
		alert("Please Enter your registration id");
		Address.focus();
		return false;
	}
//	if ((Pin.value==null)||(Pin.value=="")){
//		alert("Please Enter your registration code");
//		Pin.focus();
//		return false;
//	}
//	if (isInteger(Pin.value)==false){
//		alert("Please enter a valid numeric registration code");
//		Pin.value="";
//		Pin.focus();
//		return false;
//	}
	if (checkInternationalPhone(Address.value)==false && simpleEmailCheck(Address.value)==false){
		alert("Please enter a valid phone number or e-mail address");
		Address.value="";
		Address.focus();
		return false;
	}
	if (checkInternationalPhone(Address.value)==true){
	   AddressType.value="phone";
// alert ("found phone number, the addressType is: " + AddressType.value);
	
	} else {
	   AddressType.value="email";
// alert ("found email address, the addressType is: " + AddressType.value);
	
// alert ("found email address, the addressType is: " + formData.addressType.value);
	
	}
	return true;
 }

function ValidatePCForm(formData){
	var Address=formData.address;
	var AddressType=formData.addressType;
	var Pin=formData.pin;

// alert ("the addressType is: " + AddressType.value);
	
	if ((Address.value==null)||(Address.value=="")){
		alert("Please Enter your registration id");
		Address.focus();
		return false;
	}
//	if ((Pin.value==null)||(Pin.value=="")){
//		alert("Please Enter your registration code");
//		Pin.focus();
//		return false;
//	}
//	if (isInteger(Pin.value)==false){
//		alert("Please enter a valid numeric registration code");
//		Pin.value="";
//		Pin.focus();
//		return false;
//	}
	if (simpleEmailCheck(Address.value)==false){
		alert("Please enter a valid e-mail address");
		Address.value="";
		Address.focus();
		return false;
	}
	if (simpleEmailCheck(Address.value)==true){
	   AddressType.value="email";
// alert ("found email address, the addressType is: " + AddressType.value);
// alert ("found email address, the addressType is: " + formData.addressType.value);
	}
	return true;
 }
