// JavaScript Document

function ValidaEmail(pStr){
	var pEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	return pEmail.test(pStr)
}

function FormataCalculo(str)
{
	var valor = ""+str
	if (valor+""=="") valor = "0";

	if ((valor.indexOf(".")>=0)&&(valor.indexOf(",")>=0))
	{
		if (valor.indexOf(".") < valor.indexOf(",")) // 1.200,00
		{
			valor = valor.replace(".","");
		}
		else if (valor.indexOf(".") > valor.indexOf(",")) // 1,200.00
		{
			valor = valor.replace(",","");
			valor = valor.replace(".",",");
		}
	}
	valor = parseFloat(valor.replace(",",".")) // 1200,00 , 1200.00
	return valor
}

function FormatNumber(num,dec)
{
	try{
		var zeros = "00000000000000000000000000000000000000000000000000000"
		if (num+""=="")
	  		str = "0";
	  	else
	 		str = ""+FormataCalculo(num);

		var ponto = str.indexOf(".")
		if (ponto==-1 && dec>0)
		{
			str = str+"."+zeros.substring(0,dec)
		}
		else if (ponto>=0)
		{
			if ((str.length-1)-ponto>dec && dec==0) //Tem mais casas que desejado e dec = 0
				str = str.substring(0,ponto)
			else if ((str.length-1)-ponto>dec && dec>0) //Tem mais casas que desejado e dec > 0
				str = str.substring(0,ponto)+ "." + str.substring(ponto+1,ponto+1+dec)
			else if (ponto-(str.length-1)<dec) //Tem menos casas que desejado
				str = str + zeros.substring(0,dec-((str.length-1)-ponto))
		}
		//Formatando milhar
		var ponto = str.indexOf(".")
		if (ponto == -1) ponto = str.length;
		var mil = ""+str.substring(0,ponto)
		n = mil.length
		var mNovo = ""
		while (n>3)
		{
			mNovo =  "." + mil.substring(n-3,n) + mNovo
			n = n - 3
		}
		mNovo =  mil.substring(0,n) + mNovo
		var ponto = str.indexOf(".")
		if (ponto == -1)
			str = mNovo
		else
			str = mNovo + "," + str.substring(ponto+1,str.length)
		//Retornando o valor
	  	return str
	}catch(e){//Verificando erro
  		alert("Este não é um valor válido!")
		return "";
	}
}

function MascaraData(obj)
{
	if (obj.value.length == 10)
		event.keyCode = 0
	else
		if ((obj.value.length==2) || (obj.value.length==5))
			obj.value = obj.value+"/"
	MascaraInteiro()
}

function MascaraHora(obj,seg)
{
	if (obj.value.length == 8)
		event.keyCode = 0
	else
		if (obj.value.length==2 || obj.value.length==5)
			obj.value = obj.value+":"
	MascaraInteiro()
}


function FormatHora(obj,seg)
{
	if (obj.value.length==0) return
	var valHora = true
	if (obj.value.indexOf(":")>0)
	{
		var hora = obj.value.split(":")
		if (hora.length==2)
		{
			var a = parseFloat(hora[0])
			var b = parseFloat(hora[1])
			var c = 0
		}
		else if(hora.length==3)
		{
			var a = parseFloat(hora[0])
			var b = parseFloat(hora[1])
			if (hora[2]+'' == '' )
			{
				valHora = false
				var c = 0
			}
			else
			{
				var c = parseFloat(hora[2])
			}
		}
		if (a>23) valHora = false
		else if (b>59) valHora = false
		else if (c>59) valHora = false
	}
	else
	{
		var a = parseFloat(obj.value)
              	var b = 0
              	var c = 0
                if (a>23) valHora = false
	}
	if (!(valHora))
	{
		alert("Hora inválida!")
		obj.value = ""
		obj.focus()
	}
        else
	{
               if (a<10)
               	    obj.value = "0"+a
               else
                    obj.value = a

              if (b<10)
               	    obj.value += ":0"+b
               else
                    obj.value += ":"+b
              if (seg) {
              	if (c<10)
               	    	obj.value += ":0"+c
               	else
                    	obj.value += ":"+c
              }
	}

}

function FormatDate(obj)
{
	var d,m,a,data,valData
	if (obj.value.length==0) return
	valData = true
	data = obj.value.split("/")
	if (data.length == 3)
	{
		d = parseFloat(data[0])
		m = parseFloat(data[1])
		a = data[2]

                if (d==0||m==0)
                {
			alert("Data inválida!")
			obj.value = ""
			obj.focus()
		}

		if (a.length==3) a = "2"+a
		else if (a.length==2) a = "20"+a
		else if (a.length==1) a = "200"+a

		a = parseFloat(a)
		if (a%4==0)
		{
			if ((m==2)&&(d>29)) valData = false
			else if ((d>30)&&((m==4)||(m==6)||(m==9)||(m==11))) valData = false
			else if (d>31) valData = false
			else if (m>12) valData = false
		}
		else
		{
			if ((m==2)&&(d>28)) valData = false
			else if ((d>30)&&((m==4)||(m==6)||(m==9)||(m==11))) valData = false
			else if (d>31) valData = false
			else if (m>12) valData = false
		}
		if ((isNaN(m))||(isNaN(d))||(isNaN(a))) valData = false
		if (!(valData))
		{
			alert("Data inválida!")
			obj.value = ""
			obj.focus()
		}
		else
			obj.value = d+"/"+m+"/"+a
	}
	else
	{
		alert("Data inválida!")
		obj.value = ""
		obj.focus()
	}
}

function goLink(strUrl,strName,W,H,features)
{
	var L = (screen.width/2) - (W/2)
	var T = (screen.height/2) - (H/2) - 24
	var win = window.open(strUrl,strName,"width="+W+",height="+H+",Top="+T+",Left="+L+",resizable=no, status=no,"+features)
	return win
}

function trim(str) {
	var SPACE = " \t";
	var ini = 0;
	var fim = str.length - 1;
	while (SPACE.indexOf(str.charAt(ini)) != -1) {
		ini++;
	}
	while (SPACE.indexOf(str.charAt(fim)) != -1) {
		fim--;
	}
	return str.substring(ini, fim + 1);
}

function MascaraNumeroVirgula()
{
	var k = event.keyCode
	if ((k>57||k<48)&&k!=44&&k!=13)
		event.keyCode = 0;
}

function MascaraReal()
{
	var k = event.keyCode
	if ((k>57||k<48)&&k!=44&&k!=46&&k!=13)
		event.keyCode = 0;
}

function MascaraPorcentagem()
{
	var k = event.keyCode
	if ((k>57||k<48)&&k!=44&&k!=46&&k!=37&&k!=13)
		event.keyCode = 0;
}

function MascaraInteiro()
{
	var k = event.keyCode
	if ((k>57||k<48)&&k!=13)
		event.keyCode = 0;
}

function MascaraCPF_CNPJ(obj)
{
	//if (event.keyCode==8) return false
	var str = ""
	for (var i=0;i<obj.value.length;i++)
		if (obj.value.substring(i,i+1)!="." && obj.value.substring(i,i+1)!="-" && obj.value.substring(i,i+1)!="/")
			str += obj.value.substring(i,i+1)
	var tam = str.length
	if (tam==3) obj.value = str + "."
	else if (tam==6) obj.value = str.substring(0,3)+"."+str.substring(3,7)+"."
	else if (tam>=9 && tam<11) obj.value = str.substring(0,3)+"."+str.substring(3,6)+"."+str.substring(6,9)+"-"+str.substring(9,str.length)
	else if (tam==11) obj.value = str.substring(0,2)+"."+str.substring(2,5)+"."+str.substring(5,8)+"/"+str.substring(8,11)
	else if (tam==12) obj.value = str.substring(0,2)+"."+str.substring(2,5)+"."+str.substring(5,8)+"/"+str.substring(8,12)+"-"
	else if (tam==14) event.keyCode = 0;
}

function CompareDate(data1, data2) {
   if (data1 != null && data2 != null && data1 != '' && data2 != '') {
	lDia1 = data1.split('/')[0];
        lMes1 = data1.split('/')[1];

	if (lDia1.length < 2) {
	   lDia1 = '0' + lDia1;
	}

	if (lMes1.length < 2) {
	   lMes1 = '0' + lMes1;
       }

	lData1 = data1.split('/')[2] + lMes1 + lDia1;


	lDia2 = data2.split('/')[0];
        lMes2 = data2.split('/')[1];

	if (lDia2.length < 2) {
	   lDia2 = '0' + lDia2;
	}

	if (lMes2.length < 2) {
	   lMes2 = '0' + lMes2;
	}

	lData2 = data2.split('/')[2] + lMes2 + lDia2;

        if (lData1 > lData2) {
                return true;
        } else {
                return false;
        }
   }
  return false;
}

function CampoReal(obj,num){
  	var str = obj.onkeypress
        if (str == null)
        	str = ""

        var lfunc1 = 'function(){MascaraReal()}'
        str = str.replace(lfunc1,"")
        obj.onkeypress = eval(str + lfunc1)
                        alert(str + lfunc1)
        str = obj.onblur
        if (str == null)
        	str = ""
        lfunc1 = 'function(){this.value=FormatNumber(this.value,'+num+')}'
        str = str.replace(lfunc1,"")
        obj.onblur = eval(str + lfunc1)
}


function makeRequest(tipo,url,post,returnFunction) {

	var varRequest = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		varRequest = new XMLHttpRequest();
		if (varRequest.overrideMimeType) {
		    varRequest.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			varRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				varRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!varRequest) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}

	varRequest.onreadystatechange = function() {
		
		if(varRequest.readyState == 4){
			if (varRequest.status == 200) 
				try{
					returnFunction(tipo,varRequest)
				}catch(e){}
			//else
				//alert('Ops! Houve um problema na chamada da página.');
		}
    }
		
	varRequest.open('GET', url, true);
	varRequest.send(post);

}

function getNodeValue(wsdl, tagName)
{
	var lRet = ""
	try {
        node = wsdl.selectNodes(".//*[local-name()=\""+tagName +"\"]");
    }catch (ex) {
		node = wsdl.getElementsByTagName(tagName);
	}
    node = node[0];
	
    // null node
    if(node == null)
        return null;
    else
		lRet = node.text
	
	if (lRet == undefined)
		lRet = node.firstChild.data
	return lRet
}


