fieldIds = new Array();
required = new Array();
labels = new Array();
types = new Array();

function checktext(myValue){
	var pattern = /^[a-zA-Z0-9,\.\:\&%$#@!\\(\\)\s\-\+\']*$/;
	//alert('Value' + myValue + ' Pattern:' +pattern)
	//alert(myValue.search(pattern))
	if(myValue.search(pattern) != -1)
		return ""
	return "Invalid characters";
	
}

function checkphone(myValue){
	pattern = /^[-0-9\\(\\)\s]*$/;
	if(myValue.search(pattern) != -1)
		return ""
	return "Invalid phone number"
	
}

function checknum(myValue){
	pattern =/^[0-9\.]*$/;
	if(myValue.search(pattern) != -1)
		return ""
	return "Please enter only numbers"	
}
function mod10 (ccNumber) {

var ary = new Array(ccNumber.length)
	var i = 0, sum = 0
	for (i = 0; i < ccNumber.length; i++)
		ary[i] = parseInt(ccNumber.charAt(i))
	for (i = ary.length - 2; i >= 0; i -= 2) {
		ary[i] *= 2
		if (ary[i] > 9)
			ary[i] -= 9
	}
	for (i = 0; i < ary.length; i++)
		sum += ary[i]
	return sum % 10 == 0
}
function checkccNum(myValue, myId){
	
	
	testValue = myValue.replace(/[ \-]/g, "")
	switch (document.getElementById("cctype").value) {
	case "Visa":
		myReg = /^4\d{12}(\d{3})?$/
		break
	case "Discover":
		pattern = /^6011\d{12}?$/
		break
	case "Master Card":
		myReg = /^5[1-5]\d{14}$/
		break
	case "Isracard":
		myReg = /^\d{8}$/
		if (found(testValue, myReg)) {
			setValue(id, testValue)
			return ""
		}
		return BADCCNUMBER
		break
	case "American Express":
		myReg = /^3[47]\d{13}?$/
		break
	case "Diners Club":
		myReg = /^3(0[0-5]|[68]\d)\d{11}$/
		break
	}
	//alert(myReg)
	if((testValue.search(myReg) != -1)&& mod10(testValue)){
		document.getElementById(myId).value =  testValue
		return ""
	}
	return "Invalid Credit Card Number"
}
	
function checkemail(myValue) {
	pattern =  /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	if(myValue.search(pattern) != -1)
		return ""
	return "Invalid email address"
}

function checkForm(){
	var pattern = /[<>]/gi;
	for(i = 0; i < fieldIds.length; i++){
		if(document.getElementById(fieldIds[i])){
		message = ''
		if(document.getElementById(fieldIds[i]).options){
			myValue = document.getElementById(fieldIds[i]).options[document.getElementById(fieldIds[i]).selectedIndex].value	
		}
		else
			myValue = document.getElementById(fieldIds[i]).value
		if(required[i] & myValue == ''){
			alert(labels[i] + " is a required field");
			document.getElementById(fieldIds[i]).focus();
			return false
		}
		if(myValue && myValue != ''){
		switch(types[i]){
    		case "text":
	        	message = checktext(myValue);
        		break;
	        case "phone":
	        	message = checkphone(myValue);
        		break;
	        case "num":
	        	message = checknum(myValue);
        		break;
	        case "email":
        		message = checkemail(myValue);
        		break;
	        case "ccNum":
	        	message = checkccNum(myValue, fieldIds[i]);
        		break;
        	default:
        		message = '';
        		break;
    	}
	}
	if(message != ''){
			alert(labels[i] + ":" + message);
			return false;
		
	}
}
	}
	return true;
	

	}
	


document.onkeypress=doEnter;
function doEnter(e){
            if (!e) 
               var e = window.event;
            var targ;
            if (e.target) 
               targ = e.target;
            else if (e.srcElement) 
               targ = e.srcElement;
            if (targ.nodeType == 3) // defeat Safari bug
                targ = targ.parentNode;
            //alert("the keycode: " + e.keyCode + " and the target type: " + targ.type)
            if ((e.keyCode == 13) && (targ.type != 'textarea')){
               targ.focus()
             return false;
             }
}

