// FORÇA LINKS A ABRIREM EM UMA NOVA JANELA
//******************************************************************************
// A W3C não aceita mais o atributo "target" em links (tag <a>) em doctypes XHTML 1.0 Strict
// A função abaixo faz com que todos os links que possuem rel="externo" no link, abram em outra janela conforme no exemplo abaixo:
// EXEMPLO:
//******************************************************************************
//<a href="index.php" title="Link de Exemplo" rel="externo">

/* Para chamar a função, insira no body  == <script type="text/javascript">createExternalLinks();</script>  */
function createExternalLinks() {
    if(document.getElementsByTagName) {
        var anchors = document.getElementsByTagName('a');
        for(var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
            if(anchor.getAttribute("href") && anchor.getAttribute('rel')=='externo') { // <-- É necessário inserir rel="externo" no link
                anchor.target = '_blank';
                var title = anchor.title + ' (Este link abre uma nova janela)'; // <-- Insere este texto no final do Title do link
                anchor.title = title;
            }
        }
    }
}


/*
* PROTOTYPES - ROGERIO
*
 * Variaveis globais
 **/

String.PAD_LEFT  = 0;
String.PAD_RIGHT = 1;
String.PAD_BOTH  = 2;

String.prototype.pad = function(size, pad, side) {
  var str = this, append = "", size = (size - str.length);
  var pad = ((pad != null) ? pad : " ");
  if ((typeof size != "number") || ((typeof pad != "string") || (pad == ""))) {
    throw new Error("Wrong parameters for String.pad() method.");
  }
  if (side == String.PAD_BOTH) {
    str = str.pad((Math.floor(size / 2) + str.length), pad, String.PAD_LEFT);
    return str.pad((Math.ceil(size / 2) + str.length), pad, String.PAD_RIGHT);
  }
  while ((size -= pad.length) > 0) {
    append += pad;
  }
  append += pad.substr(0, (size + pad.length));
  return ((side == String.PAD_LEFT) ? append.concat(str) : str.concat(append));
}


Number.prototype.format = function(d_len, d_pt, t_pt) {
  var d_len = d_len || 0;
  var d_pt = d_pt || ".";
  var t_pt = t_pt || ",";
  if ((typeof d_len != "number")
    || (typeof d_pt != "string")
    || (typeof t_pt != "string")) {
    throw new Error("wrong parameters for method 'String.pad()'.");
  }
  var integer = "", decimal = "";
  var n = new String(this).split(/\./), i_len = n[0].length, i = 0;
  if (d_len > 0) {
    n[1] = (typeof n[1] != "undefined") ? n[1].substr(0, d_len) : "";
    decimal = d_pt.concat(n[1].pad(d_len, "0", String.PAD_RIGHT));
  }
  while (i_len > 0) {
    if ((++i % 3 == 1) && (i_len != n[0].length)) {
      integer = t_pt.concat(integer);
    }
    integer = n[0].substr(--i_len, 1).concat(integer);
  }
  return (integer + decimal);
}      


/*
* FIM - PROTOTYPES - ROGERIO
*
  **/












/*
 * Variaveis globais
 **/
//CARACTERES DIVERSOS
var letrasmai = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var letrasmin = "abcdefghijklmnopqrstuvwxyz";
var numeros   = "0123456789";
var emails    = letrasmin+"_."+numeros;
var telefones = "()-x "+numeros;
//CARACTERES UNICOS
var emailsc   = "@";
var moeda     = ",";
//MASCARAS
var datas     = "  /  /    ";
var horas     = "  :  ";

/*
 * Tipo do navegador
 **/
var agt = navigator.userAgent.toLowerCase();
var is_ie	    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_opera  = (agt.indexOf("opera") != -1);
var is_mac    = (agt.indexOf("mac") != -1);
var is_mac_ie = (is_ie && is_mac);
var is_win_ie = (is_ie && !is_mac);
var is_gecko  = (navigator.product == "Gecko");



function abre_PopUp(larg,altura,link)
{
  var vl_alt  = parseInt(altura);
  var vl_lar  = parseInt(larg);
  var desktop = window.open(link, "_blank", "width="+vl_lar+",height="+vl_alt+",toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,top=120,left=120" );
}

function js_PopUp(pPagina,pJanela,pLargura,pAltura,pScroll,pResize,autoClose) {

  var posX = (window.screen.width - pLargura - 16) / 2;
  var posY = (window.screen.height - pAltura) / 2;
  var win = window.open(pPagina,pJanela,"width=" + pLargura + ",height=" + pAltura + ",top=" + posY + ",left=" + posX + ",scrollbars=" + pScroll + (pResize ? ",resizable=yes" : ""));
  if(win){
    win.focus();
    if (autoClose){
      if (is_ie) {
        attachEvent("onunload", function(){closePop(win)});
      } else {
        addEventListener("unload", function(){closePop(win)}, true);
      }
    }
  }
  return win;
}
/*
 * Abre uma janela pop-up no centro da tela
    **/
function abrePop(pPagina,pLargura,pAltura,pScroll,pResize,autoClose) {
  var name = pPagina.substr(pPagina.lastIndexOf("/")+1,pPagina.lastIndexOf(".")-pPagina.lastIndexOf("/")-1);
  var posX = (window.screen.width - pLargura - 16) / 2;
  var posY = (window.screen.height - pAltura) / 2;
  var win = window.open(pPagina,name,"width=" + pLargura + ",height=" + pAltura + ",top=" + posY + ",left=" + posX + ",scrollbars=" + pScroll + (pResize ? ",resizable=yes" : ""));
  if(win){
    win.focus();
    if (autoClose){
      if (is_ie) {
        attachEvent("onunload", function(){closePop(win)});
      } else {
        addEventListener("unload", function(){closePop(win)}, true);
      }
    }
  }
  return win;
}

/*
 * Testa se a popup existe e fecha a mesma
 **/
function closePop(obj){
  if(!isNull(obj))
    if(!obj.closed)
      obj.close();
  return true;
}

/*
 * Executa o metodo submit do formulario
 **/
function doSubmit(tform){
  if (tform && !tform.action) tform = document.getElementById(tform);
  if (tform) {
    if (!tform.onsubmit || tform.onsubmit()){
      tform.submit();
      return true;
    }
    return false;
  }
  alert("Formulario nao encontrado!");
  return false;
}

/*
 * Redireciona a pagina para a url informada
 **/
function redirect(url){
  document.location.href=url;
}

/*
 * Verifica se a tecla pressionada pode ser incluida no campo
 **/
function testaMascara(obj,str,strone,mask,mykey){
  //SE O CAMPO EH READONLY CAI FORA
  if (obj.readOnly) return false;

  if (document.selection){
      document.selection.createRange().text = "";
  }else if (obj.selectionStart || obj.selectionStart == "0"){
    var selectionStart = obj.selectionStart;
    var selectionEnd = obj.selectionEnd;
    obj.value = obj.value.substring(0, selectionStart) + obj.value.substring(selectionEnd);
    obj.setSelectionRange(selectionStart, selectionStart);
  }

  //VERIFICA TECLA EH IGUAL A MASCARA OU VALIDA EM "str" E "strone"
  if (mykey == mask.charAt(obj.value.length) && mykey != " " && mykey != "%") return true;
  if ((str+strone)!="" && (str+strone).indexOf(mykey) ==-1) return false;
  if (strone!="" && obj.value.indexOf(mykey)!=-1 && strone.indexOf(mykey)!=-1) return false;

  //VERIFICA MASCARA
  if(mask.charAt(0)=="%"){
    var mylength=0;
    var i=mask.length;
    while(i>0 && mylength==0){
      i--;
      if(obj.value.lastIndexOf(mask.charAt(i))!=-1) mylength=i;
    }
    obj.value=obj.value.substr(0,obj.value.length-mylength)+mykey+mask.substr(1,mask.length);
    return false;
  }

  if(mask.charAt(mask.length-1)=="%"){
    if(obj.value=="") obj.value=mask.substr(0,mask.indexOf("%"));
    return true;
  }

  var tam=obj.value.length;
  while (mask.charAt(tam) && mask.charAt(tam)!=" " && tam<=mask.length){
    if(mask.charAt(tam)!=" ") obj.value+=mask.charAt(tam);
    tam++;
  }
  if(mask.substr(tam+1,mask.length-tam).indexOf(" ")==-1 && tam<mask.length && mask.length-tam!=1){
    obj.value+=mykey+mask.substr(tam+1,mask.length-tam);
    return false;
  }

  if(obj.value.length<mask.length || mask.length==0) return true;
  if(obj.value.length>mask.length) obj.value=obj.value.substr(0,mask.length);
  return false;
}

/*
 * Verifica a mascara e retorna se a tecla pressionada pode ser incluida no campo
 **/
function maskedit(eve,obj,str,strone,mask) {
  var codesIE = new Array(8,9,13);
  var codesMZ = new Array(8,9,13,33,35,36,37,38,39,40,46,112,113,114,115,116,117,118,119,120,121,122,123);
  if (!eve) eve = window.event;
  var code;
  var li;
  if (is_gecko){
    code = eve.keyCode;
    for (li=0; li<codesMZ.length; li++) if(code == codesMZ[li]) return true;
    code = eve.charCode;
  }else{
    code = eve.keyCode ? eve.keyCode : eve.which ? eve.which : void 0;
    for (li=0; li<codesIE.length; li++) if(code == codesIE[li]) return true;
  }
  return testaMascara(obj,str,strone,mask,String.fromCharCode(code));
}

/*
 * Verifica se o valor eh valido
 **/
function isNull(str){ return (str+"" == "null"); }
function isUndefined(str){ return (str+"" == "undefined"); }
function isEmpty(str){
  if(!str) return true;
  if (str.value) str = str.value;
  return (str+"" == "") || (str+"" == ".") || (str+"" == " ");
/*
  var invalid = " .\n\t";
  for(var li=0;li<str.length;li++) {
    if(invalid.indexOf(str.charAt(li)) != -1) return false;
  }
  return true;
*/
}

/*
 * Retorna se o campo TEXT foi preenchido
 **/
function okText(obj,desc,value){
  if(!obj) return true;
  if (isNull(obj.value) || isUndefined(obj.value) || ""+obj.value == "" || obj.value == value) {
    alert("Preencha o campo "+desc+"!");
    obj.focus();
    return false;
  }
  if (isEmpty(obj.value)) {
    alert("Preencha corretamente o campo "+desc+"!");
    obj.focus();
    return false;
  }
  return true;
}

/*
 * Verifica se o numero de caracteres nao excede o limite
 **/
function okLeng(obj,desc,tam){
  if(!obj) return true;
  if (obj.value.length>tam) {
    alert("O numero de caracteres excedeu o limite no campo "+desc+"!");
    obj.focus();
    return false;
  } else return true;
}
function okEqualLeng(obj,desc,tam){
  if(!obj) return true;
  if (obj.value.length != tam) {
    alert("O campo "+desc+" deve ter "+tam+" digitos!");
    obj.focus();
    return false;
  } else return true;
}
function okLessLeng(obj,desc,tam){
  if(!obj) return true;
  if (obj.value.length < tam) {
    alert("O campo "+desc+" deve ter no minimo "+tam+" digitos!");
    obj.focus();
    return false;
  } else return true;
}

/*
 * Retorna se o campo SELECT foi selecionado
 **/
function okList(obj,desc,value){
  if(!obj) return true;
  if (isEmpty(obj.value) || obj.value == value) {
    alert("Selecione o campo "+desc+"!");
    obj.focus();
    return false;
  } else return true;
}

/*
 * Retorna se o campo RADIO foi marcado
 **/
function okRadio(obj,desc){
  if(!obj) return true;
  if (!obj.length) {
    if(obj.checked) return true;
    alert("Selecione o campo "+desc+"!");
    obj.focus();
    return false;
  }

  for(var li=0;li<obj.length;li++){
    if(obj[li].checked) return true;
  }
  alert("Selecione o campo "+desc+"!");
  obj[0].focus();
  return false;
}

/*
 * Retorna se o campo DATA foi preenchido corretamente
 **/
function okDate(obj,desc) {
  if(!obj) return true;
  if (obj.value == "") return true;
  
  var meses = new Array(31,29,31,30,31,30,31,31,30,31,30,31);

  if (obj.value.length==5) obj.value = obj.value + "/2004";
  if (obj.value.length<10 && obj.value.substr(1,1)=="/") obj.value = "0"+obj.value;
  if (obj.value.length<10 && obj.value.substr(4,1)=="/") obj.value = obj.value.substr(0,3)+"0"+obj.value.substr(3);
  if (obj.value.length==8 && obj.value.substr(2,1)=="/" && obj.value.substr(5,1)=="/") obj.value = obj.value.substr(0,6)+"20"+obj.value.substr(6);

  if (obj.value.substr(2,1)!="/" || obj.value.substr(5,1)!="/" || isNaN(obj.value.substr(0,2)) || isNaN(obj.value.substr(3,2)) || isNaN(obj.value.substr(6,4))){
    alert("Preencha corretamente o campo "+desc+"!");
    obj.focus();
    return false;
  }
  
  if (0+obj.value.substr(6,4)<1900 || 0+obj.value.substr(6,4)>2010){
    alert("Ano invalido no campo "+desc+"!");
    obj.focus();
    return false;
  }
  
  if (0+obj.value.substr(3,2)<1 || 0+obj.value.substr(3,2)>12){
    alert("Mes invalido no campo "+desc+"!");
    obj.focus();
    return false;
  }
  
  if (0+obj.value.substr(0,2)<1 || 0+obj.value.substr(0,2)>31 || 0+obj.value.substr(0,2) > meses[obj.value.substr(3,2)-1]){
    alert("Dia invalido para o mes especificado no campo "+desc+"!");
    obj.focus();
    return false;
  }
  
  return true;
}

/*
 * Retorna se o campo EMAIL foi preenchido corretamente
 **/
function okEmail(obj,desc,value) {
  if(!obj) return true;
  if (!okText(obj,desc,value)) {
    return false;
  } else
  if((obj.value.indexOf("@")<2)||(obj.value.substring(obj.value.indexOf("@")+1,obj.value.length).indexOf(".")<2) ||
     (obj.value.indexOf("@") != obj.value.lastIndexOf("@"))||(obj.value.lastIndexOf(".")>=obj.value.length-2)){
       alert("Preencha corretamente o campo "+desc+"!");
       obj.focus();
       return false;
  } else return true;
}

/*
 * Verifica se o digito de um CPF/CNPJ eh valido
 */
function okCPFCNPJ(obj, desc) {
  if(!obj) return true;
	var s_aux = obj.value;
	sOK = false;
	if (s_aux.length == 11 ) {
		var d1, d2;
		var digito1, digito2, resto;
		var digitoCPF;
		var nDigResult;
		d1 = d2 = 0;
		digito1 = digito2 = resto = 0;
		for (var n_Count = 1; n_Count < s_aux.length -1; n_Count++) {
			digitoCPF = eval(s_aux.charAt(n_Count -1));
			d1 = d1 + ( 11 - n_Count ) * digitoCPF;
			d2 = d2 + ( 12 - n_Count ) * digitoCPF;
		}
		resto = (d1 % 11);
		if (resto < 2) digito1 = 0;
		else digito1 = 11 - resto;
		d2 += 2 * digito1;
		resto = (d2 % 11);
		if (resto < 2) digito2 = 0;
		else digito2 = 11 - resto;
		var nDigVerific = s_aux.substring (s_aux.length-2, s_aux.length);
		nDigResult = (""+digito1) + (""+digito2);
		sOK = nDigVerific == nDigResult;
	} else if (s_aux.length == 14) {
		var soma = 0, dig;
		var cnpj_calc = s_aux.substring(0,12);
		var chr_cnpj = s_aux;
		for(var i = 0; i < 4; i++ ) soma += chr_cnpj.charAt(i) * (6 - (i + 1));
		for(var i = 0; i < 8; i++ ) soma += chr_cnpj.charAt(i+4) * (10 - (i + 1));
		dig = 11 - (soma % 11);
		cnpj_calc += ( dig == 10 || dig == 11 ) ? "0" : ""+dig;
		soma = 0;
		for (var i = 0; i < 5; i++ ) soma += chr_cnpj.charAt(i) * (7 - (i + 1));
		for (var i = 0; i < 8; i++ ) soma += chr_cnpj.charAt(i+5) * (10 - (i + 1));
		dig = 11 - (soma % 11);
		cnpj_calc += ( dig == 10 || dig == 11 ) ? "0" : ""+dig;
		sOK = s_aux == cnpj_calc;
	}
	if (!sOK) {
       alert(desc+" invalido!");
       obj.focus();
	}
	return sOK;
}

/*
 * Verifica se o cartao de credito eh valido
 */
function okCartaoCredito(obj) {
	var cartao = obj.value;
	if (cartao.length > 19) return false;
	var sum = 0; 
	var mul = 1; 
	var l = cartao.length;
	for (var i = 0; i < l; i++) {
		var digit = cartao.substring(l-i-1,l-i);
		var tproduct = parseInt(digit ,10)*mul;
		if (tproduct >= 10) sum += (tproduct % 10) + 1;
		else sum += tproduct;
		if (mul == 1) mul++;
		else mul--;
	}
	if (sum % 10 == 0) return true;
	alert("Cartao de Credito invalido!");
	obj.focus();
}

/*
 * Converte a string passada em numero
 **/
function toNumber(valor,depois){
  if(!valor) valor = "0,00";
  if(""+depois=="undefined") depois = 2;
  valor = "" + valor;
  try{
    while(valor.indexOf(".")>-1) valor = valor.replace(".","");
    valor = valor.replace(",",".");
    if(valor.indexOf(".")<0) valor += ".0";
    valor = valor.substring(0,valor.indexOf(".")+depois+1);
    if(valor=="") valor = 0.0;
    return eval("1*"+valor);
    //return Math.round(valor*Math.pow(10,depois))/Math.pow(10,depois);
  }catch(e){
    return "isNaN";
  }
}
function toCurr(valor,depois){
  if(!valor) valor = "0,00";
  if(""+depois=="undefined") depois = 2;
  valor = "" + valor;
  try{
    valor = valor.replace(".",",");
    if(valor.indexOf(",")==-1) valor = valor + ",0";

    var aux = valor.substring(valor.lastIndexOf(","),valor.lastIndexOf(",")+depois+1);
    valor = valor.substring(0,valor.lastIndexOf(","));
    while(valor.length>3){
      aux = "." + valor.substring(valor.length-3,valor.length) + aux;
      valor = valor.substring(0,valor.length-3);
    }
    valor = valor + aux;
  }catch(e){
    valor = "0,00";
  }
  if(depois==0) valor = valor.substring(0,valor.indexOf(","));
  else while(valor.indexOf(",")>=valor.length-depois) valor = valor + "0";
  return valor;
}

/*
 * Retorna se o campo NUMBER eh valido
 **/
function okNumber(obj,desc){
  if(!obj) return true;
  if (isNaN(toNumber(obj.value))) {
    alert("O campo "+desc+" nao contem um numero valido!");
    obj.focus();
    return false;
  } else return true;
}

function disableField(obj,disable) {
  obj.disabled = disable;
  obj.style.backgroundColor = (disable ? "#ECE9D8" : "");
}

// inserão dos swf - animações em flash - bug winxp
function flash (URL, WIDTH, HEIGHT, TRANSPARENT, ID) {
  if (is_ie) {
    document.write (' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ');
    document.write (' codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" ');
    document.write (' id="'+ ID +'" ');
    document.write (' width="'+ WIDTH +'" height="'+ HEIGHT +'">');
    document.write (' <param name="movie" value="'+ URL +'" />');
    document.write (' <param name="quality" value="high" />');
    document.write (' <param name="salign" value="L" />');
    if ( TRANSPARENT ) document.write (' <param name="Wmode" value="Transparent" />');
    document.write (' </object> ');
  } else {
    document.write (' <embed src="'+ URL +'" quality="high" ');
    if ( TRANSPARENT ) document.write (' Wmode = "transparent" ');
    document.write (' pluginspage="https://www.macromedia.com/go/getflashplayer" ');
    document.write (' type="application/x-shockwave-flash" salign="L" ');
    document.write (' id="'+ ID +'" width="'+ WIDTH +'" height="'+ HEIGHT +'"></embed> ');
  }
}


/*####################################FUNÇÕES NICOLAS###########################################*/

function verifica_horas(obj)
{
	if(obj.value.length < 8)
		obj.value = '';
	else
	{
		hr = parseInt(obj.value.substring(0,2));
		mi = parseInt(obj.value.substring(3,5));
		se = parseInt(obj.value.substring(6,8));
		if((hr < 0 || hr > 23) || (mi < 0 || mi > 60) || (se < 0 || se > 60 ))
		{
			obj.value = '';
			alert('Hora inválida');
		}
	}
}

function valida_horas(edit, ev)
{
	li = new Array(':');
	liE = new Array(58);
	
	somenteNumero(edit,ev,li,liE);
	
	if(edit.value.length == 2 || edit.value.length == 5)
	edit.value += ":";
}

function somenteNumero(obj,e,liberado,liberadoE)
{

	var valor, val;
	
	if(liberado == '')
		liberado = new Array(',','.');
	if(liberadoE == '')
		liberadoE = new Array(188,190,8);

	valor = obj.value;
	if(document.all)
	{
		if(!((e.keyCode > 47 && e.keyCode < 58) || Array.find(liberadoE,e.keyCode) != '-1' ))
		{
			obj.value = valor.substr(0,valor.length - 1);
		}
	}
	else
	{
		val = '';
		
		for (x = 0; x < valor.length; x++)
		{
			if(!isNaN(valor[x]) || Array.find(liberado,valor[x]) != '-1')
			{
				val += valor[x];
			}
		}
		obj.value = val;
	}
}

Array.find = function(ary, element)
{
    for(var i=0; i<ary.length; i++)
	{
        if(ary[i] == element)
		{
            return i;
        }
    }
    return -1;
}

function buscaRetorno(campo, valor, clo)
{
	
	obj = opener.document.getElementById(campo);
	obj.value = valor;
	
	if(clo == 1)
		window.close();
}

function closeObj(id, method)
{
	obj = document.getElementById(id);
	
	if(method == 'display')
		obj.style.display = 'none';
	else
		obj.style.visibility = 'hidden';
	
}

function openObj(id, method)
{
	obj = document.getElementById(id);
	
	if(method == 'display')
		obj.style.display = 'block';
	else
		obj.style.visibility = 'visible';
	
}


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


function Abas(id)
{
	ob1 = 'evento';
	ob2 = 'ingressos';
	
	bt1 = document.getElementById('ev');
	bt2 = document.getElementById('in');
	
	if(id == 1)
	{
		closeObj(ob2,'display');
		openObj(ob1,'display');
		
		bt1.className = 'choose';
		bt2.className = '';
	}
	else
	{
		closeObj(ob1,'display');
		openObj(ob2,'display');
		
		bt2.className = 'choose';
		bt1.className = '';
	}
	
}



