// JavaScript Document

function FormataTel(tammax,pos,teclapres){
	var tecla = teclapres.keyCode;
	var fvr = '';
	vr = event.srcElement.value;
	for(i=0;i<vr.length;i++){
		ch=vr.charAt(i);
		if((ch=="1")||(ch=="2")||(ch=="3")||(ch=="4")||(ch=="5")||(ch=="6")||(ch=="7")||(ch=="8")||(ch=="9")||(ch=="0")){
			fvr=fvr+ch;
		}
		}
		vr=fvr;
		
	tam = vr.length ;
	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){ tam = tam - 1 ; }
			
	if ( tecla == 8 || tecla == 88 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){
			event.srcElement.value = "("+vr
		}
		if ( tam > pos+2 && tam <= tammax ){
			event.srcElement.value = vr.substr( 0, tam - pos ) + '-' + vr.substr( tam - pos, tam );
			txt=event.srcElement.value
			event.srcElement.value = "("+txt.substr(0,2)+")"+txt.substr(2,tam)
		}
	}
}

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(".")
		str = str.replace(".",",")
		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))
		}		
		//Retornando o valor
	  	return str
	}catch(e){//Verificando erro
  		alert("Este não é um valor válido!")
		return "";
	}
}

function soma(num1,num2,dec) {
  if (dec+"" == "") dec = 2
  var num1 = FormataCalculo(num1)
  var num2 = FormataCalculo(num2)
  return FormatNumber(num1+num2,dec)
}

function subtracao(num1,num2,dec) {
  if (dec+"" == "") dec = 2
  var num1 = FormataCalculo(num1)
  var num2 = FormataCalculo(num2)
  return FormatNumber(num1-num2,dec)
}

function multiplicacao(num1,num2,dec) {
  if (dec+"" == "") dec = 2
  var num1 = FormataCalculo(num1)
  var num2 = FormataCalculo(num2)
  return FormatNumber(num1*num2,dec)
}

function divisao(num1,num2,dec) {
  if (dec+"" == "") dec = 2
  var num1 = FormataCalculo(num1)
  var num2 = FormataCalculo(num2)
  return FormatNumber(num1/num2,dec)
}

function maior(num1,num2) {
  var n1 = FormataCalculo(num1)
  var n2 = FormataCalculo(num2)
  return n1>n2
}

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,"+features)
	return win
}

function FormatData(obj)
{
	var k = event.keyCode
	if (k==104 || k==72){
		var now = new Date()
		obj.value = now.getDate() + "/" + (now.getMonth()+1) + "/" + now.getYear() 		
	}
	else{
		if ((obj.value.length==2) || (obj.value.length==5)) obj.value = obj.value+"/"
	}
	MascaraInteiro()
}

function FormatHora(obj)
{
	if (obj.value.length == 8)
		event.keyCode = 0
	else
		if (obj.value.length==2 || obj.value.length==5)
			obj.value = obj.value+":"
	MascaraInteiro()
}


function ValidaHora(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 = 0
                        if (hora[1]+'' != '')
                           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 ValidaData(obj)
{
	var d,m,a,data,valData
	if (obj.value.length==0) return
	valData = true
	data = obj.value.split("/")
	d = parseFloat(data[0])
	m = parseFloat(data[1])
	a = data[2]
	
	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
}

function somaData(pDate,pDias){
	var d = parseInt(pDate.split("/")[0],10)
	var m = parseInt(pDate.split("/")[1],10)
	var a = parseInt(pDate.split("/")[2],10)
	d = parseInt(pDias,10)+parseInt(d,10)
	var mes = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
	var bis = (a % 4 == 0)?28:29;
	var correto = false
	while (!correto){
		if (m==2 && d>bis){
			m=3
			d=d-28
		}
		else if (d > mes[m-1]){
			if (m==11){
				m=1
				a++
			}
			else
				m++
			d=d-mes[m-1]
		}		
		else
			correto = true
		d
	}
	return d+"/"+m+"/"+a
}

function trim(str) {
		
	if (str+'' == '') return ''
	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)
{
	MascaraInteiro()
	//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 MaxLength(obj,tam)
{
	if (obj.value.length*1>=tam*1)
		event.keyCode = 0;
}	

function Maximizar()
{
	self.resizeTo(screen.availWidth,screen.availHeight)
	self.moveTo(0,0)
}

function CentralizarJanela(w,h)
{
	self.moveTo((screen.availWidth/2)-(w/2),(screen.availHeight/2)-(h/2))
}

function showFlash(pArquivo, pLargura, pAltura, pBgcolor, pId, pQualidade, pAlinhamento, pTransparente) {
	obj = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+pLargura+'" height="'+pAltura+'" id="'+pId+'" align="'+pAlinhamento+'">';
	obj+= '<param name="allowScriptAccess" value="sameDomain" />';
	obj+= '<param name="menu" value="false" />';
	obj+= '<param name="movie" value="'+pArquivo+'" />';
	obj+= '<param name="quality" value="'+pQualidade+'" />';
	if(pTransparente) {
		obj+= '<param name="wmode" value="transparent" />';
	}
	obj+= '<param name="bgcolor" value="'+pBgcolor+'" />';
	obj+= '<embed src="'+pArquivo+'" '+((pTransparente)?'wmode="transparent"':'')+'" quality="'+pQualidade+'" bgcolor="'+pBgcolor+'" width="'+pLargura+'" height="'+pAltura+'" name="'+pId+'" align="'+pAlinhamento+'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	obj+= '</object>';
	document.write(obj);
}

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
}


