//############################################################################################################################
//# Autor: Flávio Caio Ferreira Bruschi                                                                                      #
//# e-mail: flavio@makex.com.br                                                                                              #
//############################################################################################################################
function abrirJanela(url,nome,w,h,conf) {  //abre uma janela  conf = toolbar,location,status,menubar,scrollbars,resizable
	var winl = (screen.width - w) / 2;
	var wint = ((screen.height - h) / 2);
	novajanela=window.open(url,nome,'width='+w+',height='+h+',left='+winl+',top='+wint+','+conf);
	novajanela.window.focus();
	//return (false);
}//fim function abrirJanela(url,nome,w,h,conf)
//############################################################################################################################
function verificarDados(campo,checkStr){ //verifica se os carecteres digitados no campo são válidos 
	checkOK = getChars(campo);
	if (checkStr.charCodeAt()==8) return (true); //Backspace
	if (checkStr.charCodeAt()==0) return (true); //  <- -> del
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid)
		return (false);
	else 
		return (true);
}//fim function verificarDados(campo,checkStr)
//############################################################################################################################
function getkey(e){ //retorna a tecla pressionada - Internet Explorer e Netscape
	if (window.event)
		key = window.event.keyCode;
	else
		key = e.which;
	return String.fromCharCode(key);
}//fim function getkey(e)
//############################################################################################################################
function firstUpper (element) //primeira letra em maiusculo e o resto em minunculo
{
	var txtArray=element.value.split(" ");
	var txt = "";
	for (i=0; i<txtArray.length; i++) {
		first = txtArray[i].substring(0,1);
		rest = txtArray[i].substring(1);
		first = first.toUpperCase();
		rest = rest.toLowerCase();
		txt = txt+first+rest+" ";
	}
	while ( txt.charAt(0) == " " || txt.charAt(0) == "'" ||  txt.charAt(0) == "\"" )
		txt = txt.substring(1,txt.length);
	element.value = txt.superTrim();
}//fim function firstUpper (element
//############################################################################################################################
function lower (element){ //todas as letras em minusculo
	txt = element.value.toLowerCase();
	while ( txt.charAt(0) == " " || txt.charAt(0) == "'" ||  txt.charAt(0) == "\"" )
		txt = txt.substring(1,txt.length);
	element.value = txt.superTrim();
}//fim function lower (element)
//############################################################################################################################
String.prototype.superTrim = superTrim; //Implementa o método superTrim() no objeto String.
function superTrim(){ return( this.replace( /^\s+|\s+$/gi, "" ).replace( /\s{2,}/gi, " " ) ) }
//############################################################################################################################
function elementFocus(element){ //seleciona o foco no elemento do form
	if ( element.type == "text" || element.type == "radio" ){
		element.select();
		element.focus();	
	}
	if ( element.type == "select-one")
		element.focus();		
}//fim function elementFocus(element)
//############################################################################################################################
function pularEdit(n,t,target) { //pula altomaticamente para o proximo campo a ser preenchido
	if (n==t)
		elementFocus(target);
}
//############################################################################################################################
function goToURL(targ,url) {
  eval(targ+".location='"+url+"'");
}
//############################################################################################################################
function getChars(campo){ //retorna os carecteres permitidos nos campos
   switch(campo){
	  case "senha": return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-@\t\r\n\f";
      case "telefone": return "0123456789-\t\r\n\f";
	  case "endereco":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789ªº()'. -\t\r\n\f";
      case "numero": return "0123456789\t\r\n\f";
	  case "decimal": return "0123456789,\t\r\n\f";
	  case "bairro":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789()'. -\t\r\n\f";
	  case "razao":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789. -/&\t\r\n\f";
	  case "inscricao":  return "0123456789-.\t\r\n\f";
	  case "responsavel":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü. \t\r\n\f";
      case "nome":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü. \t\r\n\f";
      case "email": return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-@\t\r\n\f";
      case "cep": return "0123456789-\t\r\n\f";
	  case "categoria":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789-,:()&. \t\r\n\f";
	  case "marca":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789-,:()&. \t\r\n\f";
	  case "nomeProduto":  return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÇÈÉÊËÌÍÎÏGÑÒÓÔÕÖÙÚÛÜIàáâãäçèéêëìíîïgñòóôõöùúûü0123456789-,:()&. \t\r\n\f";
	  case "moeda": return "0123456789.,\t\r\n\f";
	  case "porcentagem": return "0123456789.\t\r\n\f";
	  case "uf": return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\t\r\n\f";
	}
}
//############################################################################################################################
var callFlashFunction = function(name) {
			 var isIE = navigator.appName.indexOf ("Microsoft") != -1;
			 if(isIE) var movieID = window["topoFlash"];
			 else var movieID = document["topoFlash"];
	
			 movieID.SetVariable("_root.functionName", name);
			 movieID.SetVariable("_root.flag", true);
};	
//############################################################################################################################
function setarDDD(ddd,campo){
	if (campo.value=="")
		campo.value=ddd;
}
//############################################################################################################################
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}
//############################################################################################################################
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//############################################################################################################################
function mOvr(src,clrOver) {
    if (!src.contains(event.fromElement)) {
	 // src.style.cursor = 'hand';
	  src.bgColor = clrOver;
	}
  }
  
function mOut(src,clrIn) {
	if (!src.contains(event.toElement)) {
	 // src.style.cursor = 'default';
	  src.bgColor = clrIn;
	}
  }
//############################################################################################################################
function cepUf(cep,uf){	//verifica se o primeiro digito do cep corresponde ao uf digitado
	dCep=cep.substr(0,1);
	msg='O Estado ('+uf+') não confere com o CEP ('+cep+').';
	switch(dCep){
		case '0' : if (uf!='SP') { alert(msg); return false; }  break;
		case '1' : if (uf!='SP') { alert(msg); return false; }  break;
		case '2' : if (uf!='RJ' && uf!='ES') { alert(msg); return false; }  break;
		case '3' : if (uf!='MG') { alert(msg); return false; }  break;
		case '4' : if (uf!='BA' && uf!='SE') { alert(msg); return false; }  break;
		case '5' : if (uf!='PE' && uf!='AL' && uf!='PB' && uf!='RN') { alert(msg); return false; }  break;
		case '6' : if (uf!='CE' && uf!='PI' && uf!='MA' && uf!='PA' && uf!='AM' && uf!='AC' && uf!='AP' && uf!='RR') { alert(msg); return false; }  break;
		case '7' : if (uf!='DF' && uf!='GO' && uf!='TO' && uf!='MT' && uf!='MS' && uf!='RO') { alert(msg); return false; }  break;
		case '8' : if (uf!='PR' && uf!='SC') { alert(msg); return false; }  break;
		case '9' : if (uf!='RS') { alert(msg); return false; }  break;
		default : 
			alert(msg);
			return false;
		break;
	}
	return true;
}
//############################################################################################################################
function setBanner(tagid,arq){ 
		if (arq!=""){
			ext=arq.split('.');
			if (ext[1]=='jpg' || ext[1]=='JPG')
				tagid.innerHTML='<img src="programacao/banners/'+arq+'">';
			if (ext[1]=='swf' || ext[1]=='SWF') {
				xmlhttp.open("GET", "programacao/swf.php?arq="+arq);
				xmlhttp.onreadystatechange=function() {
					if (xmlhttp.readyState==4){
							tagid.innerHTML=xmlhttp.responseText;	
					}
				}
				xmlhttp.send(null);					
			}
		}
}
//############################################################################################################################
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}  
  
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true); 