function Validate_int(fld, msg) {
	var val = fld.value;
	var ret = true;

	if (val == "")
		ret = false;
	
	if (isNaN(val))
		ret = false;
		
	if (parseInt(val) != val)
		ret = false;
		
	if (ret == false) {
		alert(msg + "\n- Must be a valid non decimal number");
		fld.value = 0;
		fld.focus();
	}
			
	return ret;
}
function Validate_cat(fld, msg) {
	if (fld.value == 0){
		alert(msg + "\n- Please ensure to select an option");
		ret = false;
	} else {
		ret = true;
	}
	return ret;
}

function Validate_mcat(fld, msg) {
	if (fld.value == 0){
		alert(msg + "\n- Please ensure to select an option");
		ret = false;
	} else {
		ret = true;
	}
	return ret;
}

function Validate_radio(fld, msg){
	var ret = true;
	var num_checked = 0;
	var i = 0
	var isOther = false;
	var objOther = 0;
	for(i=0; i<=(fld.length - 1); i++){
		if(fld[i].value == "Other"){
			isOther = true;
			objOther = i;
		}
	}
	if(isOther == true){
		for(i=0; i<=(fld.length - 1); i++){
			if(fld[i].type == 'text' && fld[i].value != ""){
				num_checked++;
			}
		}
	}
	for(i=0; i<=(fld.length - 1); i++){
	   if(fld[i].checked){
	   		if(fld[i].value != "Other") num_checked++;
	   }
	}
	if (num_checked == 0) {
		alert(msg + "\n- Please ensure to select an option");
		ret = false;
	}
	return ret;
}

function Validate_agree(fld, msg) {
	var ret = true;
	if(fld.checked == false) ret = false;
	if (ret == false) {
		alert(msg + "\n- You must argree to continue");
		fld.focus();
	}
	return ret;
}

function Validate_check(fld, msg){
	var ret = true;
	var num_checked = 0;
	var i = 0
	var isOther = false;
	var objOther = 0;
	for(i=0; i<=(fld.length - 1); i++){
		if(fld[i].value == "Other"){
			isOther = true;
			objOther = i;
		}
	}
	if(isOther == true){
		for(i=0; i<=(fld.length - 1); i++){
			if(fld[i].type == 'text' && fld[i].value != ""){
				num_checked++;
			}
		}
	}
	for(i=0; i<=(fld.length - 1); i++){
	   if(fld[i].checked){
	   		if(fld[i].value != "Other") num_checked++;
	   }
	}
	if (num_checked == 0) {
		alert(msg + "\n- Please ensure to select an option");
		ret = false;
	}
	return ret;
}


function Validate_cur(fld, msg) {
	var ret = true;

	fld.value = fld.value.replace(/ $/, "");
	var val = fld.value.replace(/^\$/, "");
	
	if (parseFloat(val) != val) ret = false;

	if (ret == false) {
		alert(msg + "\n- Must be a valid currency entry");
		fld.value = 0;
		fld.focus();
	}
	return ret;
}

function Validate_text(fld, msg) {
	var val = fld.value.replace(/ */, "");
	var ret = true;
	
	if (val == "")
		ret = false;
		
	if (ret == false) {
		alert(msg);
		fld.value = "";
		fld.focus();
	}
	return ret;
}

function Validate_hidden(fld, msg) {
	var val = fld.value.replace(/ */, "");
	var ret = true;
	
	if (val == "")
		ret = false;
		
	if (ret == false) {
		alert(msg);
		fld.value = "";
		fld.focus();
	}
		
	return ret;
}

function Validate_html(fld, msg) {
	var val = fld.value.replace(/ */, "");
	var ret = true;
	
	if (val == "")
		ret = false;
		
	if (ret == false) {
		alert(msg);
		fld.value = "";
		fld.focus();
	}
		
	return ret;
}

function Validate_email(fld, msg) {

	var val = fld.value.replace(/ */, "");
	var ret = true;
	var charsallowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.@-";
	
	if (val.length < 6)
		ret = false;
	else {
		if (val.indexOf('@', 0) == -1)
			ret = false;
			
		if (val.indexOf('.', 3) == -1)
			ret = false;
			
		for (i=0 ; i < fld.value.length ; i++) {
			chr = fld.value.substring(i, i+1);

			if (charsallowed.indexOf(chr,0) == -1)
				ret = false;
		}
	}
	
		
	if (ret == false) {
		alert(msg + "\n- Must be a valid email address");
		fld.value = "";
		fld.focus();
	}
		
	return ret;
}

function Validate_username(fld, msg) {
	
	var ret = true;
	var charsallowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	var val = fld.value.replace(/ */, "")
	var length = val.length;
	
	if (length < 1)
		ret = false;
	else {
		for (i=0 ; i < fld.value.length ; i++) {
			chr = fld.value.substring(i, i+1);

			if (charsallowed.indexOf(chr,0) == -1)
				ret = false;
		}
	}
	
	if (ret == false) {
		alert(msg + '\n- Must not be at least 1 character in length\n- Must be alpha-numeric (letters & numbers only)');
		fld.value = "";
		fld.focus();
	}
	
	return ret;
}

function Validate_password(fld, msg) {
	
	var ret = true;
	var charsallowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	var val = fld.value.replace(/ */, "")
	var length = val.length;
	
	if (length < 5 || length  > 8)
		ret = false;
	else {
		for (i=0 ; i < fld.value.length ; i++) {
			chr = fld.value.substring(i, i+1);

			if (charsallowed.indexOf(chr,0) == -1)
				ret = false;
		}
	}
	
	if (ret == false) {
		alert(msg + '\n- Must not be between 5 & 8 characters in length\n- Must be alpha-numeric (letters & numbers only)');
		fld.value = "";
		fld.focus();
	}
	
	return ret;
}

function Validate_memo(fld, msg) {
	return Validate_text(fld, msg);
}

function Validate_img(fld, msg) {
	return Validate_text(fld, msg);
}

function Validate_date(fld, msg) {

	year = fld[2].value;
	month = fld[1].value;
	day = fld[0].value;
	
	if (ValidateDate(year, month, day) == false) {
		alert(msg + "\n- Must be a valid date");
		fld[0].value = 1;
		fld[0].focus();
		return false;
	}
	
	return true;	
}

function Validate_bit(fld, msg) {
	if (fld.value != 0 && fld.value != 1) {
		alert(msg + "\n- Must be a valid bit (either 1 or 0)");
		fld.value = 0;
		fld.focus();
		return false;
	}
	
	return true;
}

function Validate_cc(fld, type, msg) {
	
	var val = fld.value;
	var ret = true;
	
	if (val.length > 19)
		ret = false;
	
	if (ret) {
		sum = 0; mul = 1; l = val.length;
	  	for (i = 0; i < l; i++) {
	    	digit = val.substring(l-i-1,l-i);
	    	tproduct = parseInt(digit ,10)*mul;
	    	if (tproduct >= 10)
	      		sum += (tproduct % 10) + 1;
	    	else
	      		sum += tproduct;
	    
			if (mul == 1)
	      		mul++;
	    	else
	      		mul--;
	  	}
	
	  	if ((sum % 10) != 0) ret = false;
	}
		
	if (ret) {
	
		switch (type) {
			case "1" :
				ret = cc_visa(val);
				break;
				
			case "2" :
				ret = cc_mastercard(val);
				break;
				
			case "3" :
				ret = cc_bankcard(val);
				break;
				
			case "4" :
				ret = cc_amex(val);
				break;
				
			case "5" :
				ret = cc_diners(val);
				break;
				
			case "6" :
				ret = cc_jcb(val);
				break;
				
			case "7" :
				ret = cc_discover(val);
				break;
		}
	}
	
	if (ret == false) {
		alert(msg + "\n- Must be a valid credit card number.");
		fld.focus();
		return false;
	}
	
	return true;
}

function checkFields(frm) {

	if (Validate_text(frm.firstname, "Please, enter your first name.") == false) {
		return false;
	}
	if (Validate_text(frm.surname, "Please, enter your surname.") == false) {
		return false;
	}
	if (Validate_text(frm.position, "Please, enter a Job Title.") == false) {
		return false; 
	} 
	if (Validate_text(frm.companyname, "Please, enter a Company Name.") == false) {
		return false;
	}
	if (Validate_email(frm.email, "Please,enter a valid email address.") == false) {
		return false;
    }
    if (Validate_text(frm.tafname, "Please, enter your friends first name.") == false) {
		return false;
	}
	if (Validate_text(frm.tafsurname, "Please, enter your friends surname.") == false) {
		return false;
	}
	if (Validate_email(frm.tafemail, "Please,enter a valid email address for your friend.") == false) {
		return false;
	}
   return true;
}
