




function isnewfele(ele) {
	if(isempty(ele)) return false;
	else if(!isdefined(ele.eletype)) return false;
	else if(ele.eletype==12) return true;
	return false;
}

function newfele(ele,title) {
	ele=newvele(ele); if(!ele) return false; 
	if(ele.eletype==12) return ele;
	ele.eletype=12;

	ele.istbox=feleistbox;
	ele.ispw=feleispw;
	ele.ista=feleista;
	ele.isbtn=feleisbtn;
	ele.issubmit=feleissubmit;
	ele.isreset=feleisreset;
	ele.isimage=feleisimage;
	ele.iscb=feleiscb;
	ele.isradio=feleisradio;
	ele.isselect=feleisselect;
	ele.isfile=feleisfile;
	ele.ishidden=feleishidden;

	ele.fieldtitle=title;
	
	ele.enable=feleenable;
	ele.disable=feledisable;
	ele.checkfele=felecheckfele;

	ele.vattfilled=0;
	ele.vattnumber=0;
	ele.vattnumrange=0;
	ele.vattnumrangemin=-1;
	ele.vattnumrangemax=-1;
	ele.vattlen=0;
	ele.vattlenmin=-1;
	ele.vattlenmax=-1;
	ele.vattemail=0;
	
	ele.falseactionfilled=feledefaultfalseactionfilled;
	ele.falseactionnumber=feledefaultfalseactionnumber;
	ele.falseactionnumrange=feledefaultfalseactionnumrange;
	ele.falseactionlen=feledefaultfalseactionlen;
	ele.falseactionemail=feledefaultfalseactionemail;
	
	ele.verifyfilled=feleverifyfilled;
	ele.verifynumber=feleverifynumber;
	ele.verifynumrange=feleverifynumrange;
	ele.verifylen=feleverifylen;
	ele.verifyemail=feleverifyemail;
	
	ele.verified=feleverified;
	
	return ele;
}

function feleistbox() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='text') return true;
	return false;
}
function feleispw() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='password') return true;
	return false;
}
function feleista() {
	if(this.tagName.toLowerCase()=='textarea') return true;
	return false;
}
function feleisbtn() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='button') return true;
	return false;
}
function feleissubmit() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='submit') return true;
	return false;
}
function feleisreset() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='reset') return true;
	return false;
}
function feleisimage() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='image') return true;
	return false;
}
function feleiscb() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='checkbox') return true;
	return false;
}
function feleisradio() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='radio') return true;
	return false;
}
function feleisselect() {
	if(this.tagName.toLowerCase()=='select') return true;
	return false;
}
function feleisfile() {
	if(this.tagName.toLowerCase()=='input') if(this.type.toLowerCase()=='file') return true;
	return false;
}
function feleishidden() {
	if(this.tagName.toLowerCase()=='hidden') return true;
	return false;
}

function feleenable() {
	this.disabled=false;
	this.style.backgroundColor='#ffffff';
}
function feledisable() {
	this.disabled=true;
	this.style.backgroundColor='#eeeeee';
}
function felecheckfele(fele) {
	if(!this.iscb()||!fele) return -1;
	fele=newfele(fele);
	this.checked=false;
	fele.disable();
	this.addevent('mouseup',function(){
		if(this.checked) fele.disable();
		else fele.enable();
	});
}

function feledefaultfalseactionfilled() {
	alert(this.fieldtitle+": Required field");
}
function feledefaultfalseactionnumber() {
	alert(this.fieldtitle+": Must be number");
}
function feledefaultfalseactionnumrange() {
	alert(this.fieldtitle+": Value is either too small or too large");
	//alert(this.fieldtitle+": Must be between "+this.vattnumrangemin+" - "+this.vattnumrangemax);
}
function feledefaultfalseactionlen() {
	alert(this.fieldtitle+": Length is either too short or too long");
	//alert(this.fieldtitle+": Length must be between "+this.vattlenmin+" - "+this.vattlenmax);
}
function feledefaultfalseactionemail() {
	alert(this.fieldtitle+": Invalid email address");
}

function feleverifyfilled() {
	if(!(istbox()||ispw()||ista()||iscb()||isradio()||isselect()||ishidden())) return -1;
	var vfailed=0; var v=this.value;
	if(v.replace(/ /g,'').length<1) vfailed=1;
	if(v==null||v=='') vfailed=1;
	if(vfailed&&typeof(this.falseactionfilled)=='function') this.falseactionfilled();
	return !vfailed;
}
function feleverifynumber() {
	if(!(istbox()||ispw()||ista()||iscb()||isradio()||isselect()||ishidden())) return -1;
	var vfailed=0; var v=this.value;
	if(v==''||v==null) vfailed=1;
	if(v.replace(/ /g,'').length<1) vfailed=1;
	if(v!=0&&isNaN(v)) vfailed=1;
	if(vfailed&&typeof(this.falseactionnumber)=='function') this.falseactionnumber();
	return !vfailed;
}
function feleverifynumrange() {
	if(!(istbox()||ispw()||ista()||iscb()||isradio()||isselect()||ishidden())) return -1;
	var vfailed=0; var v=this.value;
	if(v==''||v==null) vfailed=1;
	if(v.replace(/ /g,'').length<1) vfailed=1;
	var resultmin=false; var resultmax=false;
	if(min<0||v>=min) resultmin=true; else resultmin=false;
	if(max<0||v<=max) resultmax=true; else resultmax=false;
	if(!(resultmin&&resultmax)) vfailed=1;
	if(vfailed&&typeof(this.falseactionnumrange)=='function') this.falseactionnumrange();
	return !vfailed;
}
function feleverifylen() {
	if(!(istbox()||ispw()||ista()||iscb()||isradio()||isselect()||ishidden())) return -1;
	var vfailed=0; var v=this.value;
	if(v==''||v==null) vfailed=1;
	if(v.replace(/ /g,'').length<1) vfailed=1;
	var resultmin=false; var resultmax=false;
	if(min<0||v.length>=min) resultmin=true; else resultmin=false;
	if(max<0||v.length<=max) resultmax=true; else resultmax=false;
	if(!(resultmin&&resultmax)) vfailed=1;
	if(vfailed&&typeof(this.falseactionlen)=='function') this.falseactionlen();
	return !vfailed;
}
function feleverifyemail() {
	if(!(istbox()||ispw()||ista()||iscb()||isradio()||isselect()||ishidden())) return -1;
	var vfailed=0; var v=this.value;
	if(v==''||v==null) vfailed=1;
	if(v.replace(/ /g,'').length<1) vfailed=1;
	if(v.search('@')==-1||v.search('.')==-1||v.length<5) vfailed=1;
	if(vfailed&&typeof(this.falseactionemail)=='function') this.falseactionemail();
	return !vfailed;
}

function feleverified() {
	var allv=1;
	if(this.vattfilled) if(!this.verifyfilled()) allv=0;
	if(this.vattnumber) if(!this.verifynumber()) allv=0;
	if(this.vattnumrange) if(!this.verifynumrange()) allv=0;
	if(this.vattlen) if(!this.verifylen()) allv=0;
	if(this.vattemail) if(!this.verifyemail()) allv=0;
	return allv;
}





