/*
 * Vagner Monteiro e equipe
 * $Date: 2003/06/03 20:10:04 $
 */
 
var DFsubmited=false;
function DFcheckForm(f,onlyObligatory){
	DFclearClass(f);
	for (var i=0;i<f.length;i++) {
		v=true;
		if (f[i].type=='text'||f[i].type=='file'||f[i].type=='textarea'||f[i].type=='password')v=f[i].value;
		else if (f[i].type=='select-one')v=f[i][f[i].selectedIndex].value;
		else if (f[i].type=='radio'){
			v=false;
			if(f[f[i].name].length!=null){
				for(var j=0;j<f[f[i].name].length;j++){
					if(f[f[i].name][j].checked)v=f[f[i].name][j].value;
				}
			}else{
				if(f[f[i].name].checked)v=f[f[i].name].value;
			}
		}else if(f[i].type=='checkbox'){
			v=false;if(f[i].checked)v=f[i].value;
		}
		var xtype=f[i].getAttribute('xtype');
		var obligatory=f[i].getAttribute('obligatory');
		if(xtype=='date'||xtype=='birthday'){
			if((!onlyObligatory&&obligatory!='no')||(onlyObligatory&&obligatory=='yes')){
				var ret=DFcheckDate(f[i],((xtype=='birthday')?1:0));
				if(!ret)return DFcheckFormAlert(f[i],xtype,((ret==null)?2:null));
			}else{
				var dVal=DFreturnDateValues(f[i]);
				var d=dVal[0];
				var m=dVal[1];
				var a=dVal[2];
				if(d!=''||m!=''||a!=''){
					if(!DFcheckDate(f[i],((xtype=='birthday')?1:0)))return DFcheckFormAlert(f[i],xtype);
				}
			}
			i=i+2;
		}else{
			if(!v){
				if(f[i].type!='hidden'&&((!onlyObligatory&&obligatory!='no')||(onlyObligatory&&obligatory=='yes')))return DFcheckFormAlert(f[i],xtype);
			}else{
				if(f[i].type=='text'||f[i].type=='textarea'||f[i].type=='password'){
					if(!DFcheckMinLength(f[i]))return false;
					if(xtype){
						S='DFcheck'+xtype.charAt(0).toUpperCase()+xtype.substring(1).toLowerCase();
						if(isDef(S)){
							if(!eval(S)((xtype=='password')?f[i]:f[i].value))return DFcheckFormAlert(f[i],xtype);
						}
					}
				}
			}
		}
	}
	
	if(!DFsubmited){
		DFsubmited=true;
		return true;
	}else{
		return false;
	}
}
function DFscrollTopPosition(){
	return(is.ie)?document.body.scrollTop:pageYOffset;
}
function DFcheckFormAlert(c,plus,m){
	var scrTop=DFscrollTopPosition();
	title=c.getAttribute('title');
	title=(title)?title:c.name;
	if(m){
		S=eval(DFMsg[m]);
	}else{
		if((c.type=='select-one'||c.type=='radio')&&!plus)S=eval(DFMsg[0]);
		else if(plus)S=eval(DFMsg[1]);
		else S=eval(DFMsg[2]);
		if(plus=='password')S=eval(DFMsg[3]);
		if(plus=='minlength')S=eval(DFMsg[4]);
	}
	if(c.type!='hidden'){
		if(plus=='password'){
				for(var i=0;i<c.form.length;i++){
					if(c.form[i].getAttribute('xtype')=='password')c.form[i].className='DF-alert';
				}
			}
			else if(c.type=='radio'){
				for(var i=0;i<c.form[c.name].length;i++){
					c.form[c.name][i].className='DF-alert';
				}
			}
			else if((plus=='birthday')||(plus=='date')){
				var cName=c.name.substr(0,c.name.lastIndexOf('_')+1);
				eval('c.form.'+cName+'dia').className='DF-alert';
				eval('c.form.'+cName+'mes').className='DF-alert';
				eval('c.form.'+cName+'ano').className='DF-alert';
			}
			else c.className='DF-alert';
			c.focus();
		}else{
			for(var i=0;i<c.form.length;i++){
				if(c.form[i].getAttribute('target')==c.name)c.form[i].className='DF-alert';
			}
			for(var i=0;i<c.form.length;i++){
				if(c.form[i].getAttribute('target')==c.name){c.form[i].focus();
				break;
			}
		}
	}
	if(scrTop!=DFscrollTopPosition())scrollBy(null,scrTop>DFscrollTopPosition()?-20:80);
	window.alert(S);
	return false;
}

function DFalert(a,cArr){
	DFclearClass(cArr[0].form);
	for(var i=0;i<cArr.length;i++){
		if(cArr[0].type=='radio'){
			for(var i=0;i<cArr[0].form[cArr[0].name].length;i++){
				cArr[0].form[cArr[0].name][i].className='DF-alert';
			}
			break;
		}
		else cArr[i].className='DF-alert';
	}
	cArr[0].focus();
	window.alert(a);
	DFsubmited=false;
	return false;
}

function DFclearClass(f){
	for(var i=0;i<f.length;i++){
		if(!f[i].classNameOld)f[i].classNameOld=f[i].className||'df-null';
		else f[i].className=f[i].classNameOld;
	}
}

function DFcheckNumber(v){
	if(!isNaN(v))return true;
}

function DFcheckMoney(v){
	return (v.match(/^([0-9]{1,3}\.?)+\,[0-9]{1,2}$/));
}

function DFcheckFullname(v){
	return (v.match(/\w[^ ]+.+/));
}

function DFcheckEmail(v){
	return (v.match(/^[a-z0-9_-]+(\.[a-z0-9_-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$/));
}

function DFcheckUrl(v){
	alert(v);
	// return(v.match(/^(ht|f)tp\:\/\/[a-zd][a-z\d-]{1,63}(\.[a-z\d][a-z\d-]{2,64})*\.[a-z]{2,4}(\/[\w-%]+)*\/?$/));
	return (v.match(/^http\:\/\/[a-z0-9][a-z0-9-]{1,64}(\.[a-z0-9][a-z0-9-]{2,64})*\.[a-z]{2,4}$/));
}

function DFreturnDateValues(c){
	var cName=c.name.substr(0,c.name.lastIndexOf('_')+1);var d=(c.type=='text')? eval('c.form.'+cName+'dia').value : DFvalSel(eval('c.form.'+cName+'dia'));var m=(c.type=='text')? eval('c.form.'+cName+'mes').value : DFvalSel(eval('c.form.'+cName+'mes'));var a=(c.type=='text')? eval('c.form.'+cName+'ano').value : DFvalSel(eval('c.form.'+cName+'ano'));return Array(d,m,a)}function DFreturnDate(c){var dVal=new Array();dVal=DFreturnDateValues(c);var d=dVal[0];var m=dVal[1];var a=dVal[2];	if(d==''||m==''||a=='')return null;m--;
	if(!DFcheckDateDay(d))return false;
	else if(!DFcheckDateMonth(m))return false;
	else if(!DFcheckDateYear(a))return false;
	else if((m==3||m==5||m==8||m==10)&&(d==31))return false;
	else if(m==1&&(d>29||(d==29&&((a%4)!=0))))return false;
	return new Date(a,m,d);
}

function DFcheckDateDay(v){
	if(v>0&&v<32)return true;
}

function DFcheckDateMonth(v){
	if(v>=0&&v<12)return true
}

function DFcheckDateYear(v){
	if(v>0)return true
}

function DFcheckDate(c,b){
	var Tdate=DFreturnDate(c);
	if(!Tdate)return Tdate;
	if(b){
		DFdateIni=(isDef('DFdateIni'))?DFdateIni:new Date(1900,01,01);
		DFdateFin=(isDef('DFdateFin'))?DFdateFin:new Date(2002,01,01);
		if(Tdate<DFdateIni||Tdate>DFdateFin)return false;
	}
	return true;
}

function DFcheckBirthday(c){
	return DFcheckDate(c,1);
}

function DFcheckPassword(f){
	for(var i=0;i<f.form.length;i++){
		if(f.form[i].getAttribute('xtype')=='password'&&f.form[i]!=f){
			if(f.form[i].value&&f.value!=f.form[i].value)return false
		}
	}
	return true;
}

function DFcheckCpf(v){
	var s=null;
	var r=null;
	if(v.length!=11||v.match(/1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}/))return false;
	s=0;
	for(var i=0;i<9;i++)s+=parseInt(v.charAt(i))*(10-i);r=11-(s%11);
	if(r==10||r==11)r=0;
	if(r!=parseInt(v.charAt(9)))return false;
	s=0;
	for(var i=0;i<10;i++)s+=parseInt(v.charAt(i))*(11-i);
	r=11-(s%11);
	if(r==10||r==11)r=0;
	if(r!=parseInt(v.charAt(10)))return false;
	return true;
}

function DFcheckCnpj(v){
	var dig1=0;
	var dig2=0;
	var x;
	var Mult1='543298765432';
	var Mult2='6543298765432';
	for(x=0;x<=11;x++){
		dig1=dig1+(parseInt(v.slice(x,x+1))*parseInt(Mult1.slice(x,x+1)));
	}
	for(x=0;x<=12;x++){
		dig2=dig2+(parseInt(v.slice(x, x+1))*parseInt(Mult2.slice(x,x+1)));
	}
	dig1=(dig1*10)%11;dig2=(dig2*10)%11;
	if(dig1==10){
		dig1=0;
	}
	if(dig2==10){
		dig2=0;
	}
	if(dig1!=parseInt(v.slice(12, 13))){
		return false;
	}else{
		if(dig2!=parseInt(v.slice(13, 14))){
			return false;
		}else{
			return true;
		}
	}
}

function DFcheckMinLength(f){
	minL=f.getAttribute('minlength');
	if(minL){
		if(f.value.length<minL){
			return DFcheckFormAlert(f,'minlength');
		}
	}
	return true;
}

function DFvalSel(c,retIndex){
	var i=c.selectedIndex;
	return(retIndex)? i : c[i].value;
}

function DFtextareaMaxLength(f,length,e){
	if(is.ns){
		if(e.which==0||e.which==8)return true;
	}
	if(f.value.length>=length)return false;
}

function DFtextareaCounter(f){
	f.form.DFcounter.value=f.value.length;
}

function DFtextareaCheckLength(f,len){
	if(f.value.length>len){
		title=f.getAttribute('title');title=(title)?title:f.name;
		alert(eval(DFMsg[5]));f.value=f.value.substr(0,len);
		DFtextareaCounter(f);
	}
}

function DFonlyThisChars(num,alpha,others,e){
	if(!e) e = window.event;
	if(window.event){key=window.event.keyCode;}
	else if(e){key=e.which;}
	else {return true;}
	S=(others)?others:'';
	if(num)S+='0123456789';
	if(alpha)S+='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	if(key==null||key==0||key==8||key==9||key==13||key==27)return true;
	else if(S.indexOf(String.fromCharCode(key))!=-1)return true;
	else return false;
}

function DFnotOnlyThisChars(S,e){
	if(window.event)key=window.event.keyCode;
	else if(e)key=e.which;
	else return true;
	if(!S){return false;}
	else if(key==null||key==0||key==8||key==9||key==13||key==27)return true;
	else if(S.indexOf(String.fromCharCode(key))!=-1)return false;
	else return true;
}

function DFchangeField(o,d,e){
	if(window.event)key=window.event.keyCode;
	else if(e)key=e.which;
	else return true;
	if(key==9||key==2||key==16)return false;
	if(d<=2&&o.value.length==o.maxLength){
		for(var i=0;i<o.form.length;i++){
			if(o.form[i]==o&&o.form[i+1]){
				o.form[i+1].focus();
				break;
			}
		}
	}
	if(d>1&&o.value.length==0&&key==8){
		for(var i=0;i<o.form.length;i++){
			if(o.form[i]==o&&o.form[i-1]){
				o.form[i-1].focus();
				o.form[i-1].value=o.form[i-1].value;
				break;
			}
		}
	}
}
