<!--//
////////////////////////////////////////////////////////////////////////////////
//
// JS Auto Form Validator version 1.0.3 (19.03.2007)
// Author: Leumas Naypoka <leumas.a@gmail.com>
// Lisence: GNU GPL
// Site: http://phpbuilder.blogspot.com
//
////////////////////////////////////////////////////////////////////////////////
//
// Usage:
// -----
// //*** copy this line between <head> and </head> tags
// <script type="text/JavaScript" src="form.scripts.js"></script> 
//
// //*** copy this lines between before your </form> tag
// <input type="submit" name="button" value="Submit"
//        onClick="return onSubmitCheck(document.forms['central']);"> 
//
////////////////////////////////////////////////////////////////////////////////
//para usar o AJAX no html:
//input onBlur="check_us(this.value,'c','../lib/check.php',re_cpf)"

function change(color)
{
var el=event.srcElement;
      if (el.tagName=="INPUT"&&el.type=="button")
      {
       event.srcElement.style.backgroundColor=color;
      }
}


function ck_preto(este,cor,quant,result,subtot)
{
var ob1 = document.getElementById(cor);
var ob2 = document.getElementById(quant);
var rest = document.getElementById(result);
var tot = document.getElementById(subtot);

total = Math.ceil(ob1.value*ob2.value);

	if(este.checked)
	{
	  total = total + (total * 0.15);
	  total = Math.ceil(total);	
	}

	if(!isNaN(total)){
	   rest.innerText = "R$ " + total + ",00";
	   tot.value = total; 
	}else
	{
	   rest.innerText = "";
	}

}
function defCores(obj,tag)
{
	var tep = document.getElementById(tag);
	tep.value = obj;
}

function calculaPreco(obj1,obj2,result,subtot,ck)
{ 

tot = document.getElementById(subtot);
sec = document.getElementById(obj2).value;
rest = document.getElementById(result);
check = document.getElementById(ck);
total = Math.ceil(obj1.value*sec);

	if(check.checked)
	{
	
	  total = total + (total * 0.15);
	  total = Math.ceil(total);
	
	}
	
	if(!isNaN(total)){
	   rest.innerText = "R$ " + total + ",00";
	   tot.value = total; 
	}else
	{
	   rest.innerText = "";
	}
//alert(tot.value);
}//funcao

function GetObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
} 

function upViews(id,divobject)
{
 var obj = document.getElementById(divobject);
 var upto = GetObject();
 
  if(upto == null)
  {
   alert("Seu navegador nao suporta AJAX!");
  }
  
  var url = "../includes/views.php?id="+id;
   url = url+"&sid="+Math.random();

 upto.onreadystatechange=function()
 {
   obj.innerText = upto.responseText+" visualizações";   
 }
 
   upto.open("GET",url,true);
   upto.send(null);
}




function check_us(valor_variavel,variavel,file,echofunction)
{ 
xmlHttp=GetObject();
if (xmlHttp==null)
  {
  alert ("Seu navegador nao suporta AJAX!");
  return;
  } 
  //esta uri é o nome do arquivo a validar a acao vinda do AJAX
  var url=file;
  //----------------------
  //ts é a variavel de GET
  //str é o seu valor
  url=url+"?"+variavel+"="+valor_variavel;
  //-------------------------------------------
url=url+"&sid="+Math.random();
//echofunction é a funcao declarada aqui no arquivo para dar a resposta do AJAX (o que fazer qdo a resposta vem)
xmlHttp.onreadystatechange=echofunction;
//---------------------------------------------------------------------------
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}



function closeRemote() {
timer = setTimeout('window.close();', 10);
}

function pop_win(loc) {
  win='janela01';
  wd=820;
  ht=620;
        self.name= 'main';
  		popwin = document.open(loc,win,"width="+wd+",height="+ht+",toolbar=no,resizable=no,scrollbars=yes");
 	    
	 }


function changeBack(lol,mode)
{

  if(mode)
  {
   lol.style.background='#FFCC00';
 
  }else
  {
    lol.style.background='white';
   
  }

}



function block_sub(){
	
	var doc=document.forms[0];
	var nm=doc.rtNome.value;
	if (xmlHttp.readyState==4)
	{ 
	 if(xmlHttp.responseText == "block"){
	 alert(nm+' ja existe um pedido em andamento!\n clique no botao Voltar para ir a pagina inicial');
	 doc.sub1.disabled = true;
	 return false;
	 }
  }

}


function re_email() 
{ 
var doc=document.forms[0];
	if (xmlHttp.readyState==4)
	{ 	
		if(xmlHttp.responseText != "ok"){					
		   alert(xmlHttp.responseText);
		   doc.reEmail.focus();
		   doc.butRegister.disabled = true;
	    }else{
		   doc.butRegister.disabled = false;
		}	
	}
}
function re_cpf() 
{ 
var doc=document.forms[0];
	if (xmlHttp.readyState==4)
	{ 	
		if(xmlHttp.responseText != "ok"){					
		   alert(xmlHttp.responseText);
		   doc.ryCPF.focus();
	       doc.butRegister.disabled = true;
	    }else{
		   doc.butRegister.disabled = false;
		}
		
	}
}



function enable_fields(lol,alt,larg)
{
  var tr = lol.options[lol.selectedIndex].value;
  var altura=document.forms[0].alt;
  var largura=document.forms[0].larg;
		if(tr == 'personalizado')
		{
		 //alert('As dimensoes devem ser definidas em Centimetros');
		 altura.disabled =false;
		 largura.disabled=false;
		 altura.focus();
		
		}else
		{
		 altura.disabled =true;
		 largura.disabled=true;
		
		}
  

}
var digits="0123456789";
var digits1="0123456789.";
var digits2="0123456789,";
var digits3="0123456789.,";
var textchars="/'\"[]{}()*&^%$#@!~?<>-_+=|\\ \r\t\n.,:;";
var lwr="abcdefghijklmnopqrstuvwxyz";
var upr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var diac_lwr="àâäåéèëêïîôöüùñæßç";
var diac_upr="àâÄÅÉèëêïîôÖÜùÑÆßÇ";
var rtypes="rs";              
var vtypes="nifatepylzv";       

function makeArray(n){for(var i=1; i<=n;i++){this[i]=0;}return this;};
var dInM=makeArray(12);dInM[1]=31;dInM[2]=29;dInM[3]=31;dInM[4]=30;dInM[5]=31;dInM[6]=30;dInM[7]=31;dInM[8]=31;dInM[9]=30;dInM[10]=31;dInM[11]=30;dInM[12]=31;
var PassLength=6;
var LoginLength=6;

var bgcolor_error = "#ff8822";
var bgcolor_normal_1 = "#ffffff";
var bgcolor_normal_2 = "#fcfaf6";
var MaxInt=13
var MaxString=30;
var MaxAdress=200;
var MaxCP=15;
var whitespace=" \t\n\r";                     
var decimalPointDelimiter=".";                  
var phoneNumberDelimiters="()- ";  
var validPhoneChars=digits + phoneNumberDelimiters;
var validWorldPhoneChars=digits + phoneNumberDelimiters + "+"; 
var SSNDelimiters="- ";
var validSSNChars=digits + SSNDelimiters;  // intr-un nr. SSN
var digitsInSocialSecurityNumber=9;
var digitsInPhoneNumber=9;
var digitsInMinPhoneNumber=5;
var ZIPCodeDelimiters="-";
var validZIPCodeChars=digits + ZIPCodeDelimiters;
var digitsInZIPCode1=5;
var digitsInZIPCode2=9;
var creditCardDelimiters=" "
var USStateCodeDelimiter="|";
var DEOK=false;

function isEmpty(s){return((s==null)||(s.length==0))}
function isShorter(str_text, str_length){s_length=(str_length==null) ? "1" : str_length;if(str_text.length < s_length) return true;else return false;}
function isValid(parm,val){if(parm=="")return true;for(i=0;i<parm.length;i++){if(val.indexOf(parm.charAt(i),0)==-1)return false;}return true;}
function isSubmitReqType(parm){return isLower(parm) && isValid(parm,rtypes);}
function isSubmitVarType(parm){return isLower(parm) && isValid(parm,vtypes);}
function isNumeric(parm,type){ptype=(type==null)?"0":type; pdigits=-1;switch(ptype){case 0:pdigits=digits;break;case1:pdigits=digits1;break;case 2:pdigits=digits2;break;case 3:pdigits=digits3;break;default:pdigits=digits;break;}return isValid(parm,pdigits);}
function isLower(parm){return isValid(parm,lwr);}
function isUpper(parm){return isValid(parm,upr);}
function isAlpha(parm){return isValid(parm,lwr + upr);}
function isAlphaNumeric(parm){return isValid(parm,lwr + upr + digits);}
function isText(parm){return isValid(parm,lwr + upr + digits3 + textchars + diac_lwr + diac_upr);}
function isAny(parm){return true;}
function isWhitespace(s){i=0;if(isEmpty(s)) return true; for(i=0;i< s.length;i++){c=s.charAt(i);if(whitespace.indexOf(c)==-1) return false;} return true;}
function isLetter(c){return (((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z")))}
function isDigit(c){return ((c>="0")&&(c<="9"))}
function isLetterOrDigit(c){return (isLetter(c)||isDigit(c))}
function isInteger(s){i;if(isEmpty(s)) if(isInteger.arguments.length==1) return DEOK; else return (isInteger.arguments[1]==true);for(i=0;i< s.length;i++){c=s.charAt(i);if(!isDigit(c)) return false;} return true;}
function isSignedInteger(s){if(isEmpty(s)){if(isSignedInteger.arguments.length==1) return DEOK;else return (isSignedInteger.arguments[1]==true);}else{startPos=0;secondArg=DEOK;if(isSignedInteger.arguments.length>1) secondArg=isSignedInteger.arguments[1];if((s.charAt(0)=="-") || (s.charAt(0)=="+")) startPos=1;return (isInteger(s.substring(startPos,s.length),secondArg));}}
function isPositiveInteger(s){secondArg=DEOK;if(isPositiveInteger.arguments.length > 1) secondArg=isPositiveInteger.arguments[1];return (isSignedInteger(s,secondArg) && ((isEmpty(s) && secondArg) || (parseInt(s) > 0)));}
function isNonnegativeInteger(s){secondArg=DEOK;if(isNonnegativeInteger.arguments.length > 1) secondArg=isNonnegativeInteger.arguments[1];return (isSignedInteger(s,secondArg) && ((isEmpty(s) && secondArg) || (parseInt(s) >=0)));}
function isNegativeInteger(s){secondArg=DEOK;if(isNegativeInteger.arguments.length > 1) secondArg=isNegativeInteger.arguments[1]; return (isSignedInteger(s,secondArg) && ((isEmpty(s) && secondArg) || (parseInt(s) < 0)));}
function isNonpositiveInteger(s){secondArg=DEOK;if(isNonpositiveInteger.arguments.length > 1) secondArg=isNonpositiveInteger.arguments[1];return (isSignedInteger(s,secondArg) && ((isEmpty(s) && secondArg) || (parseInt (s) <=0)));}
function isFloat(s){i=0;seenDecimalPoint=false; if(isEmpty(s)) if (isFloat.arguments.length==1) return DEOK; else return (isFloat.arguments[1]==true); if(s==decimalPointDelimiter) return false; for(i=0; i < s.length; i++){ c=s.charAt(i); if((c==decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint=true; else if(!isDigit(c)) return false; } return true; }
function isSignedFloat(s){if(isEmpty(s))if(isSignedFloat.arguments.length==1) return DEOK;else return (isSignedFloat.arguments[1]==true);else{startPos=0;secondArg=DEOK;if(isSignedFloat.arguments.length > 1) secondArg=isSignedFloat.arguments[1];if((s.charAt(0)=="-") || (s.charAt(0)=="+")) startPos=1;return (isFloat(s.substring(startPos, s.length), secondArg))}}
function isIntegerInRange(s,a,b){if(isEmpty(s))if(isIntegerInRange.arguments.length==1) return DEOK;else return (isIntegerInRange.arguments[1]==true);if(!isInteger(s, false)) return false;num=parseInt(s);return ((num >=a) && (num <=b));}
function isAlphabetic(s){i=0;if(isEmpty(s))if(isAlphabetic.arguments.length==1) return DEOK;else return (isAlphabetic.arguments[1]==true);for(i=0;i<s.length;i++){c=s.charAt(i);if(!isLetter(c)) return false;}return true;}
function isAlphanumeric(s){i=0;if(isEmpty(s))if(isAlphanumeric.arguments.length==1) return DEOK;else return (isAlphanumeric.arguments[1]==true);for(i=0;i<s.length;i++){c=s.charAt(i);if(!(isLetter(c) || isDigit(c))) return false;}return true;}
function isZipCode(s){return isValid(s,validZIPCodeChars);}

function Trim(fld){result="";c=0; for(i=0;i<fld.length;i++){if (fld.charAt(i) !=" " || c > 0){result +=fld.charAt(i);if (fld.charAt(i) !=" ") c=result.length;}}return result.substr(0,c);} 
function isEmail(s){if(isEmpty(s))if(isEmail.arguments.length==1) return DEOK;else return(isEmail.arguments[1]==true);if(isWhitespace(s)) return false;i=1;sLength=s.length;while((i<sLength) && (s.charAt(i) !="@")){i++};if((i >=sLength) || (s.charAt(i) !="@")) return false;else i +=2;while((i < sLength) && (s.charAt(i) !=".")){i++};if((i >=sLength - 1) || (s.charAt(i) !=".")) return false;else return true;}
function isPassword(s){return !isShorter(s,PassLength) && isValid(s,lwr+upr + digits);};
function isLogin(s){return (!isShorter(s,LoginLength) && isValid(s.charAt(0),lwr + upr) && isValid(s,lwr + upr + digits));};
function validField(fld){fld=stripBlanks(fld);if(fld=='') return false;return true;}

function isMobPhoneNumber(s){if(isEmpty(s))if(isMobPhoneNumber.arguments.length==1) return DEOK; else return (isMobPhoneNumber.arguments[1]==true); return (isInteger(s)  && s.length==digitsInPhoneNumber);}
function isFixPhoneNumber(s){if(isEmpty(s))if(isFixPhoneNumber.arguments.length==1) return DEOK; else return (isFixPhoneNumber.arguments[1]==true); return (isInteger(s) && s.length==digitsInPhoneNumber);}
function isInternationalPhoneNumber(s){if(isEmpty(s))if(isInternationalPhoneNumber.arguments.length==1) return DEOK; else return (isInternationalPhoneNumber.arguments[1]==true);  return (isPositiveInteger(s)); }
function isYear(s){if(isEmpty(s))if(isYear.arguments.length==1)return DEOK; else return (isYear.arguments[1]==true); if (!isNonnegativeInteger(s)) return false; return (s.length==4);}
function isMonth(s){if(isEmpty(s))if(isMonth.arguments.length==1)return DEOK;else return (isMonth.arguments[1]==true);return isIntegerInRange(s,1,12);}
function isDay(s){if(isEmpty(s))if(isDay.arguments.length==1)return DEOK;else return (isDay.arguments[1]==true);return isIntegerInRange(s, 1, 31);}
function daysInFebruary(year){return(((year % 4==0) && ((!(year % 100==0)) || (year % 400==0) ) ) ? 29 : 28 );}
function isDate(year,month,day){if(!(isYear(year,false) && isMonth(month, false) && isDay(day, false))) return false; intYear=parseInt(year); intMonth=parseInt(month); intDay=parseInt(day); if (intDay > dInM[intMonth]) return false; if ((intMonth==2) && (intDay > daysInFebruary(intYear))) return false; return true; }

function getProValidateFieldValue(frm,p_ind){cur_field_name=frm.elements[p_ind].name.substring(2,frm.elements[p_ind].name.length);cur_field_prefics = frm.elements[p_ind].name.substring(0,2);found_field_ind=-1;for(gvind=0;((gvind<frm.elements.length) && (found_field_ind==-1));gvind++){if((cur_field_name==frm.elements[gvind].name.substring(2, frm.elements[gvind].name.length)) && (cur_field_prefics != frm.elements[gvind].name.substring(0,2))){found_field_ind=gvind; break;}}if(found_field_ind !=-1) return frm.elements[found_field_ind].value;else return -1;}
function getValidateField(frm,p_ind,ret_type){cur_field_name=frm.elements[p_ind].name.substring(2,frm.elements[p_ind].name.length);found_field_ind=-1;for(gvind=0;((gvind<frm.elements.length) && (found_field_ind==-1));gvind++){if(cur_field_name==frm.elements[gvind].name.substring(2, frm.elements[gvind].name.length))found_field_ind=gvind;}if(found_field_ind !=-1){if(ret_type=="type") return frm.elements[found_field_ind].name.charAt(1);else return frm.elements[found_field_ind].title;}else{return 0;}}
function isValidateField(frm,p_ind){validation_result=false;cur_field_name=frm.elements[p_ind].name.substring(2,frm.elements[p_ind].name.length);cur_field_type=frm.elements[p_ind].name.charAt(1);found_field_ind=-1;for(vind=0;((vind<frm.elements.length)&&(found_field_ind==-1));vind++){if((cur_field_type !=frm.elements[vind].name.charAt(1)) && (cur_field_name==frm.elements[vind].name.substring(2, frm.elements[vind].name.length)))found_field_ind=vind;}if(found_field_ind !=-1){if(frm.elements[found_field_ind].name.charAt(1)=="e"){validation_result=isEmail(frm.elements[p_ind].value);}else if(frm.elements[found_field_ind].name.charAt(1)=="p"){validation_result=isPassword(frm.elements[p_ind].value);}else{validation_result=false;}}else{validation_result=false;}return validation_result;}
function equalValidateField(frm,p_ind){validation_result=false;cur_field_name=frm.elements[p_ind].name.substring(2,frm.elements[p_ind].name.length);cur_field_type=frm.elements[p_ind].name.charAt(0);found_field_ind=-1;for(evind=0;((evind<frm.elements.length) && (found_field_ind==-1)); evind++){ if((cur_field_type !=frm.elements[evind].name.charAt(1)) && (cur_field_name==frm.elements[evind].name.substring(2, frm.elements[evind].name.length))) found_field_ind=evind; }if(found_field_ind !=-1){validation_result=(frm.elements[p_ind].value==frm.elements[found_field_ind].value);}else{validation_result=false;}return validation_result;}

function setNormalBackground(frm, ind){
    if(frm.elements[ind].type.substring(0,6) !="select"){
        frm.elements[ind].style.background = bgcolor_normal_1;
    }else{
        frm.elements[ind].style.background = bgcolor_normal_2;                            
    }    
}
function setErrorBackground(frm, ind){
    frm.elements[ind].style.background = bgcolor_error;                                
}
function getFieldTitle(frm,ind){title_field=frm.elements[ind].title;if(title_field=="")title_field=frm.elements[ind].name.substring(2,frm.elements[ind].name.length);return title_field;}
function onSubmit(frm){return true;}
function onReqAlert(frm,ind){
    title_of_field=getFieldTitle(frm,ind);
    alert(title_of_field + " e um campo requerido!\nPor favor, digite um  " + title_of_field + " valido.");
    frm.elements[ind].focus();
    setErrorBackground(frm, ind);    
    if(frm.elements[ind].type.substring(0,6) !="select"){ frm.elements[ind].select(); }
    return false;
}

function onInvalidAlert(frm, ind, ftype){
    type_of_field="value";
    title_of_field=getFieldTitle(frm,ind);    
    switch (ftype){
        case 'n': type_of_field="ser em valor numerico"; break;
        case 'i': type_of_field="deve ser um valor inteiro"; break;
        case 'f': type_of_field="deve ser um valor real(ponto flutuante)"; break;
        case 'a': type_of_field="deve ser um valor alfabetico"; break;
        case 't': type_of_field="deve ser um texto "; break;
        case 'p': type_of_field="ter pelo menos" + PassLength + " caracteres\ne deve consistir de letras e numeros"; break;
        case 'l': type_of_field="ter pelo menos" + LoginLength + " caracteres ,\niniciado por letra e deve ser constituido de letras ou numeros"; break;
        case 'z': type_of_field="ser um valor de CEP Postal"; break;
        case 'e': type_of_field="ser em formato de email"; break;
        case 'v': if(getValidateField(frm, ind, "type")=="e")
                    type_of_field="ser em formato de email"; 
                  else if(getValidateField(frm, ind, "type")=="p")
                    type_of_field="ser pelo menos " + PassLength + " caracteres "; 
                  else
                    type_of_field="ser um campo requerido";
                  break;  
        default: break; 
    }
    alert("O campo <" + title_of_field + "> deve ser " + type_of_field + "!\nPor favor, redigite.");
    frm.elements[ind].focus();
    setErrorBackground(frm, ind);
    if(frm.elements[ind].type.substring(0,6) !="select") frm.elements[ind].select();
    return false;    
}

function onNotEqualAlert(frm,ind){
    type_of_field=getValidateField(frm, ind, "name");
    title_of_field=getFieldTitle(frm,ind);
    if(type_of_field==0) type_of_field="campo requerido";
    alert("O campo <" + title_of_field + "> deve coincidir com " + type_of_field + "!\nPor favor, redigite.");
    frm.elements[ind].focus();
    setErrorBackground(frm, ind);        
    if(frm.elements[ind].type.substring(0,6) !="select") frm.elements[ind].select();
    return false;
}


// parametr - check hidden fields+check display.none fileds 
function onSubmitCheck(frm){
var tsd= document.forms[0];

	for(x=0;x<tsd.length;x++)
	{
	if(tsd[x].tagName =='SELECT')	 
		if(tsd[x].value == 'none'){
		  alert(' Selecione um item valido para \n ' +  tsd[x].title);
		  tr = tsd[x];
		  tr.focus();
		  return false;
		}else if((tsd[x].tagName =='INPUT') && (tsd[x].value == 'N.A.'))
		{
		  alert ('Digite um valor para '+ tsd[x].title); tsd[x].focus(); return false;
		}		 
	}
	
	
	
    is_required="";
    a_type="";
    for(ind=0;ind<frm.elements.length;ind++){         
        is_required=frm.elements[ind].name.charAt(0);
        a_type=frm.elements[ind].name.charAt(1);
        true_value=true;
        if(isSubmitReqType(is_required) && isSubmitVarType(a_type) && (frm.elements[ind].style.display !="none")){
            field_value=frm.elements[ind].value; //trim
            if(is_required=='r'){
                if(isEmpty(field_value)){ return onReqAlert(frm,ind); } else { setNormalBackground(frm,ind); }
            }; 
            if(((is_required=='r') || ((is_required=='s') && (!isEmpty(field_value)))) ||
               ((a_type=='v') && (!isEmpty(getProValidateFieldValue(frm,ind)))) 
              ){
                switch (a_type){
                    case 'n': if(!isNumeric(field_value, 3)){ true_value=false; } break;
                    case 'i': if(!isInteger(field_value))   { true_value=false; } break;
                    case 'f': if(!isFloat(field_value))     { true_value=false; } break;
                    case 'a': if(!isAlphabetic(field_value)){ true_value=false; } break;
                    case 't': if(!isText(field_value))      { true_value=false; } break;
                    case 'e': if(!isEmail(field_value))     { true_value=false; } break;
                    case 'p': if(!isPassword(field_value))  { true_value=false; } break;
                    case 'y': if(!isAny(field_value))       { true_value=false; } break;
                    case 'l': if(!isLogin(field_value))     { true_value=false; } break;
		    case 'z': if(!isZipCode(field_value))   { true_value=false; } break;
                    case 'v': if(!isValidateField(frm, ind)){ true_value=false; }
                              else if(!equalValidateField(frm, ind)) {return onNotEqualAlert(frm, ind);}                              
                              break;
                    default: break; 
                }
                if(!true_value) return onInvalidAlert(frm, ind, a_type);
            }            
        }
    }
	
    return true;
}

