﻿var onloadEvents = window.onload;
window.onload = function(){
	for(a=0; a<99; a++){
		if(document.forms){
			var f = document.forms[a];
			if(f){
				f.funcs = (f.onsubmit) ? f.onsubmit : function(){};
				f.onsubmit = function(){
					return (validate(this) && this.funcs());
				}
			}
		}
	}
	if(onloadEvents){
		onloadEvents();
	}
}
function validate(f){
	for(i=0; i<f.length; i++){
		if(f[i].getAttribute('validate')){
			
			//required field
			if(r = f[i].getAttribute('required')){
				if(r == 'true'){
					if(f[i].value == ''){
						return exit(f[i]);
					}
				}
			}
			
			//match with another field
			if(r = f[i].getAttribute('match')){
				if(f[i].value != eval("f." + r + ".value")){
					return exit(f[i]);
				}
			}
			
			//check if value is valid email
			if(r = f[i].getAttribute('email')){
				if(!validate_email(f[i].value)){
					return exit(f[i]);
				}
			}
			
			//match with another fiild
			if(r = f[i].getAttribute('minlength')){
				if(f[i].value.length < r){
					return exit(f[i]);
				}
			}
			
		}else if(r = f[i].getAttribute('setvalue')){
			f[i].value = eval(r);
		}
	}
	return true;
}

function exit(el){
	alert(el.getAttribute('message'));
	el.focus();
	return false;
}

function validate_email(str) {
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(reg1str);
		var reg2 = new RegExp(reg2str);
		if (!reg1.test(str) && reg2.test(str)) return true;
	} else {
		if(str.indexOf("@") >= 0 && str.indexOf(".") >= 0) return true;
	}
	return false;
}
