/****************************************************************************************************************************************
FUNÇÕES PARA OS COMENTÁRIOS
****************************************************************************************************************************************/
function getComentarios(id_foto, id_galeria)
{
	/** recebe o id da foto como parâmetro e pega os comentários da foto
	@author: Rodrigo Campos <rodrigo@dotcode.com.br>
	@since: 17/12/2008 **/
    if (parseInt(var1)==0) { return; }
    document.getElementById('commentform').reset();
    document.getElementById('id_foto').value = id_foto;
    document.getElementById('id_galeria').value = id_galeria;
	var handler = new XMLHandler();
	var xmlreq = new XMLClient('portlets/get_comentario.php');
	xmlreq.addParam('id_foto', id_foto);

	handler.onError = function(e) { alert(e); }
	handler.onProgress = function() { };
	handler.onInit = function() { };
	handler.onLoad = function(xmlStr) {
        if (xmlStr != "") {
            var parser = new XMLParser();
	        var xmlobj = parser.parseString(xmlStr);
        	var rootnd = xmlobj.documentElement;
            var row = rootnd.getElementsByTagName('row');

            var divPrincipal = document.getElementById("coluna-esq");
        	var divComentarios = document.getElementById("comentarios");

            if (row.length == 1) {
	     	    divComentarios.getElementsByTagName("h2")[0].innerHTML = row.length + " Coment&aacute;rio";
        	} else {
        		divComentarios.getElementsByTagName("h2")[0].innerHTML = row.length + " Coment&aacute;rios";
         	}

            var objOL = divComentarios.getElementsByTagName('ol')[0];
        	objOL.innerHTML = "";

            for (var i=0; i<row.length; i++)
            {
                var objLI = document.createElement('li');
        		objLI.id = "comment-" + row[i].getElementsByTagName('id_comentario')[0].childNodes[0].nodeValue;
        		objLI.className = "comentario";

        		var div1 = document.createElement('div');
        		div1.className = "autor";
        		var p1 = document.createElement('p');
        		var a1 = document.createElement('a');
        		a1.className = "url";
        		a1.href = "mailto:" + row[i].getElementsByTagName('email')[0].childNodes[0].nodeValue;
        		a1.innerHTML = row[i].getElementsByTagName('autor')[0].childNodes[0].nodeValue;
        		p1.appendChild(a1);
        		var p3 = document.createElement('p');
        		p3.className = "small";
        		p3.innerHTML = row[i].getElementsByTagName('data')[0].childNodes[0].nodeValue;

        		div1.appendChild(p1);
        		div1.appendChild(p3);
        		objLI.appendChild(div1);

        		var div2 = document.createElement('div');
        		div2.className = "text";
        		var p2 = document.createElement('p');
        		p2.innerHTML = row[i].getElementsByTagName('texto')[0].childNodes[0].nodeValue;
        		div2.appendChild(p2);
        		objLI.appendChild(div2);

        		var div3 = document.createElement('div');
        		div3.className = "clear";
        		objLI.appendChild(div3);

        		objOL.appendChild(objLI);
            };
            divPrincipal.style.display = "block";
        };
	};
	xmlreq.query(handler);
};

function openEscreva()
{
	/** abrindo a div para escrever comentário
	@author: Rodrigo Campos <rodrigo@dotcode.com.br>
	@since: 17/12/2008 **/
	var divEscreva = document.getElementById("comente");
	if (divEscreva.style.display == "none") {
		divEscreva.style.display = "block";
		location.hash = "#comente";
	} else {
		divEscreva.style.display = "none";
	}
};


/****************************************************************************************************************************************
FUNÇÕES DE VALIDAÇÃO
****************************************************************************************************************************************/
function isEmail(email)
{
    /* função para validação de campo de e-mail, utilizando expressão regular
	@author: Rodrigo Campos <rodrigo@dotcode.com.br>
	@since: 10/02/2008 */
    validEmail = /^([\w\.\-])+@+([\w\.\-])+([\.])+([\w\.\-])+$/i;
    return validEmail.test(email);
};

function isEmpty( s ) {
   /* função para validação de campo texto
	@author: Rodrigo Campos <rodrigo@dotcode.com.br>
	@since: 10/02/2008 */
  var re = /\s/g;
  var s  = s.replace( re , "" );
  RegExp.multiline = true;
  return ( s.length == 0 || s == '0,0' ) ? true : false;
};

function isCpf(numCPFCNPJ){
	/* função para validação de cpf
	 * @author: Rodrigo Campos <rodrigo@dotcode.com.br>
	 * @since: 01/04/2008
	 */
     numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
     numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
     numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
	 numCPFCNPJ = numCPFCNPJ.replace(RegExp('[-]'),"");
	 numCPFCNPJ = numCPFCNPJ.replace(RegExp('[-]'),"");
	 numCPFCNPJ = numCPFCNPJ.replace(RegExp('[/]'),"");
	 if (numCPFCNPJ==00000000000 || numCPFCNPJ==11111111111 || numCPFCNPJ==22222222222 || numCPFCNPJ==33333333333 || numCPFCNPJ==44444444444 || numCPFCNPJ==55555555555 || numCPFCNPJ==66666666666 || numCPFCNPJ==77777777777 || numCPFCNPJ==88888888888 || numCPFCNPJ==99999999999) {
	 	return false;
	 }
	 var n1 = numCPFCNPJ.substring(0,1);
	 var n2 = numCPFCNPJ.substring(1,2);
	 var n3 = numCPFCNPJ.substring(2,3);
	 var n4 = numCPFCNPJ.substring(3,4);
	 var n5 = numCPFCNPJ.substring(4,5);
	 var n6 = numCPFCNPJ.substring(5,6);
	 var n7 = numCPFCNPJ.substring(6,7);
	 var n8 = numCPFCNPJ.substring(7,8);
	 var n9 = numCPFCNPJ.substring(8,9);
	 var d1 = n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
	 d1 = 11 - ( mod(d1,11) );
	 if (d1>=10) d1 = 0;
	 var d2 = d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
	 d2 = 11 - ( mod(d2,11) );
	 if (d2>=10) d2 = 0;
	 if ((d1+':'+d2)==(numCPFCNPJ.substring(9,10)+':'+numCPFCNPJ.substring(10,11))){
	  return true;
	 }
	 else {
	  return false;
	 }
};

function isCnpj(numCPFCNPJ){
	/* validação de CNPJ
	 * @author: Rodrigo Campos <rodrigo@dotcode.com.br>
	 * @since: 24/02/2008
	 */
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[.]'),"");
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[-]'),"");
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[-]'),"");
    numCPFCNPJ = numCPFCNPJ.replace(RegExp('[/]'),"");
    var n1 = numCPFCNPJ.substring(0,1);
    var n2 = numCPFCNPJ.substring(1,2);
    var n3 = numCPFCNPJ.substring(2,3);
    var n4 = numCPFCNPJ.substring(3,4);
    var n5 = numCPFCNPJ.substring(4,5);
    var n6 = numCPFCNPJ.substring(5,6);
    var n7 = numCPFCNPJ.substring(6,7);
    var n8 = numCPFCNPJ.substring(7,8);
    var n9 = numCPFCNPJ.substring(8,9);
    var n10 = numCPFCNPJ.substring(9,10);
    var n11 = numCPFCNPJ.substring(10,11);
    var n12 = numCPFCNPJ.substring(11,12);
    var d1 = n12*2+n11*3+n10*4+n9*5+n8*6+n7*7+n6*8+n5*9+n4*2+n3*3+n2*4+n1*5;
    d1 = 11 - ( mod(d1,11) );
    if (d1>=10) d1 = 0;
    var d2 = d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6;
    d2 = 11 - ( mod(d2,11) );
    if (d2>=10) d2 = 0;
    if ((d1+':'+d2)==(numCPFCNPJ.substring(12,13)+':'+numCPFCNPJ.substring(13,14))){
        return true;
    }
    else {
        return false;
    }
};


function toRound(number,X) {
// Wagner 01/09/2004
// rounds number to X decimal places, defaults to 2
X = (!X ? 2 : X);
return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
//-----------------------------------------------------------------------------------------------------------------------

function str_ltrim(aString) {
  return aString.replace(/^[\s]+/g,"");
}
//-----------------------------------------------------------------------------------------------------------------------

function str_rtrim(aString) {
  return aString.replace(/[\s]+$/g,"");
}
//-----------------------------------------------------------------------------------------------------------------------

function str_trim(aString) {
  result = String( aString ).replace( /^[\s]+/g , "" );
  return result.replace( /[\s]+$/g,"" );
}
//-----------------------------------------------------------------------------------------------------------------------

function mod(dividendo,divisor) {
  return Math.round(dividendo - (Math.floor(dividendo/divisor)*divisor));
}
//-----------------------------------------------------------------------------------------------------------------------

function FrmValidationElement(oElement) {
  if(!oElement.bProcessed){
    //*** BEGIN OnBlur ********************************************************
    if(oElement.onblur){
      oElement.fblur=oElement.onblur;
    } //end id
    oElement.onblur=function( event ){
    try {
      // -------------------------------------------------------------------
      if(this.fblur && this.fblur()==false){
        event.returnValue=false;
      } //end id
      var sFmtUpperCase=this.getAttribute("FmtUpperCase");
      if(sFmtUpperCase){
        this.value = this.value.toUpperCase();
      } // end if
      var sFmtLowerCase=this.getAttribute("FmtLowerCase");
      if(sFmtLowerCase){
        this.value = this.value.toLowerCase();
      } // end if
      var sFmtfilter=this.getAttribute("Fmtfilter");
      if(sFmtfilter){
       var re=new RegExp('[^'+sFmtfilter+']'); 
       var sFrmFormat=oElement.getAttribute("FrmFormat");
       if(sFrmFormat){ 
        for(var i=0;i<sFrmFormat.length;i++){
         if(sFrmFormat.substr(i,1)!='#'){
          if(this.value.substr(i,1)!= sFrmFormat.substr(i,1)){
           this.value = '';
           break;
          }
         } 
         else{
          if(re.test(this.value.substr(i,1))){
           this.value = '';
           break;
          } // end if	   
         }
        }
       }
       else{
        if(re.test(this.value)){
         oElement.value = '';
        } // end if
        event.returnValue=false;
       } // end if
      } // end if
      // -------------------------------------------------------------------
      } catch (err) {}

      var sFmtFloatBrasil=this.getAttribute("FmtFloatBrasil");
      if(sFmtFloatBrasil){
        this.value = FmtFloatBrasilToBrasilP(this.value);
      } // end if
      var sFmtDate=this.getAttribute("FmtDate");
      if(sFmtDate){
        this.value = FtmDateBrasil(this.value);
      } // end if	  
    } //*** END OnBlur ********************************************************

    //*** BEGIN OnFocus *******************************************************
    if(oElement.onfocus){
      oElement.ffocus=oElement.onfocus;
    } //end if
    oElement.onfocus=function(){
      if(this.ffocus && this.ffocus()==false){
        event.returnValue=false;
      } //end if
      var sFmtFloatBrasil=this.getAttribute("FmtFloatBrasil");
      if(sFmtFloatBrasil){
        this.value = FmtFloatBrasilPToBrasil(this.value);
        this.select();
      } // end if
    } // end function onfocus
    //*** END OnFocus *********************************************************

    //*** BEGIN OnKeyPress ****************************************************
    
    if(oElement.onkeypress){
      oElement.fKeypress=oElement.onkeypress;
    } // end if
    if ( typeof( window.captureEvents ) == 'function' ) window.captureEvents( Event.KEYPRESS );
    oElement.onkeypress=function( event ){
      var keyCode  = ( ! window.event ) ? event.which : window.event.keyCode;
      pressedKey  = String.fromCharCode( keyCode );
      if ( pressedKey == '\r' || parseInt( pressedKey.charCodeAt( 0 ) ) == 0 || parseInt( pressedKey.charCodeAt( 0 ) ) == 8 || pressedKey == '' ) {
        return true;
      }
      if(this.fKeypress && this.fKeypress()==false){
        event.returnValue=false;
      } // end if

      var sFmtfilter=this.getAttribute("Fmtfilter");
      if ( sFmtfilter ) {
        var sKey = String.fromCharCode( keyCode );
        var re   = new RegExp( '[^' + sFmtfilter + ']' );
        if ( re.test( sKey ) ) {
          try {
            event.preventDefault();
          } catch ( err ) {
            window.event.returnValue = false;
          }
          return false
        }
      }

      var sFmtUpperCase=this.getAttribute("FmtUpperCase");
      if(sFmtUpperCase){
        var sKey=String.fromCharCode(event.keyCode);
        sKey = sKey.toUpperCase();
        event.keyCode=sKey.charCodeAt(0);
      } // end if

      var sFmtLowerCase=this.getAttribute("FmtLowerCase");
      if(sFmtLowerCase){
        var sKey=String.fromCharCode(event.keyCode);
        sKey = sKey.toLowerCase();
        event.keyCode=sKey.charCodeAt(0);
      } // end if

      var sFrmFormat=this.getAttribute("FrmFormat");
      if( sFrmFormat ) {
        var stext        = this.value;
        var sKey         = String.fromCharCode( keyCode );
        var strSelection = ( document.selection ) ? document.selection.createRange().text : this.value.substr( this.selectionStart , this.selectionEnd );
        if ( strSelection != '' ) {
          this.value = '';
          try {
            event.preventDefault();
          } catch ( err ) {
            window.event.returnValue = false;
          }
          //document.selection.clear();
        } else {
          if ( sFrmFormat.substr( stext.length , 1 ) == '#' ) {
            if ( ( sFrmFormat.substr( stext.length + 1 , 1 ) != '#' ) && ( sFrmFormat.substr( stext.length + 1 , 1 ) != '' ) ) {
              this.value = this.value + sKey + sFrmFormat.substr( stext.length + 1 , 1 );
              try {
                event.preventDefault();
              } catch ( err ) {
                window.event.returnValue = false;
              }
            } else {
              //event.returnValue=true;
            }
          } else {
            if ( stext.length + 1 <= sFrmFormat.length ){
              this.value = this.value + sFrmFormat.substr( stext.length , 1 ) + sKey;
              //keyCode = 0;
            }
            try {
              event.preventDefault();
            } catch ( err ) {
              window.event.returnValue = false;
            }
          }
        }
      }
      var sAutotab=this.getAttribute("Autotab");
      if(sAutotab){
       e = this.form.elements;
       if(this.value.length+1==this.getAttribute("maxlength")) {
        try {
         var elementobj = eval(sAutotab);
         if(event.keyCode!=0){
          var sKey=String.fromCharCode(event.keyCode);
          this.value = this.value + sKey;
         }
         event.returnValue=false;
         elementobj.focus();
         elementobj.select();
        } // try
        catch (ee){
         for(i=0; i<e.length; i++){
          if(e[i]==this){
           if(event.keyCode!=0){
            var sKey=String.fromCharCode(event.keyCode);
            this.value = this.value + sKey;
           }
           event.returnValue=false;
           try{ 
           if(i+1<e.length){
            e[i+1].focus();
            e[i+1].select();
           }
           else{
            e[0].focus();
            e[0].select();
            }
           }//try
           catch (eee){  }
          }
         } // for
        } // catch
       } // if
      } // end if

      var sFmtFloatBrasil=this.getAttribute("FmtFloatBrasil");
      if(sFmtFloatBrasil){
        var sKey=String.fromCharCode(event.keyCode);
        var re=new RegExp('[^0-9,]|(,[0-9]*,)');
        var atestar = this.value + sKey
        if(sKey!="\r" && re.test(atestar)){
          event.returnValue=false;
        } // end if
        event.keyCode=sKey.charCodeAt(0);
      } // end if

      var sFmtDate=this.getAttribute("FmtDate");
      if(sFmtDate){
        this.maxlength = '10';
        var sKey=String.fromCharCode(event.keyCode);
        var re=new RegExp('[^0-9/]|(/[0-9]*/[0-9]*/)');
        var atestar = this.value + sKey
        if(sKey!="\r" && re.test(atestar)){
          event.returnValue=false;
        } // end if
        else{
          if(document.selection.createRange().text==''){
            atestar = this.value;
            if(sKey!='/'){
              if((atestar.length==1)||(atestar.length==4)){
                this.value += sKey + '/';
                event.returnValue=false;
              } // end if
              else if((atestar.length==2)||(atestar.length==5)){
                this.value += '/';
              } // end else if
            } // end if
            else {
              if((atestar.length==0)||(atestar.length==3)){
                event.returnValue=false;
              } // end if
              else if(atestar.length==1){
                this.value = '0' + this.value;
              } // end else if
              else if(atestar.length==4){
                this.value = this.value.substr(0,3)+ '0' + this.value.substr(3,1);
              } // end else if
            } // end else
          } // end if
        } // end else
        event.keyCode=sKey.charCodeAt(0);
      } // end if data
    } //*** END OnKeyPress ******************************************************

    //*** BEGIN OnChange ******************************************************
    //*** END OnChange ********************************************************

    //*** BEGIN onChange ******************************************************
    //*** END onChange ********************************************************

    //*** BEGIN onKeyDown *****************************************************
    //*** END onKeyDown *******************************************************

    //*** BEGIN onKeyUp *******************************************************
    //*** END onKeyUp *********************************************************

    //*** BEGIN onSelect ******************************************************
    //*** END onSelect ********************************************************

  } // end if oElement.bProcessed
} // end function

function FrmValidation_all() {
  var i,iForms=document.forms.length;
  for(i=0; i<iForms; i++){
    var oForm=document.forms[i];
    if(!oForm.bProcessed){
      var j, iElements=oForm.elements.length;
      for(j=0; j<iElements; j++){
	    var oElement=oForm.elements[j];
	    //alert(oElement.name);//localName
	    FrmValidationElement(oElement);	
      } //end for
    } //end if
  } //end for
} //end function

window.onload = function() {
    FrmValidation_all();
}
