function AbrePagina(Foto, tamx, tamy) {
	window.open(Foto,"","resizable=no,toolbar=no,status=no,menubar=no,scrollbars=no,width=" + tamx + ",height=" + tamy)
}
function addFoto(galeria_id, id){
	var w = 400;
	var h = 300;
	var url = (id) ? "admin/galerias/fotos_crud/"+galeria_id+"/exibir/"+id : "admin/galerias/fotos_crud/"+galeria_id+"/criar/";
	var win = new Window({className: "alphacube", 
						  width:w, 
						  height:h, 
						  zIndex: 100, 
						  resizable: true, 
						  title: "Editar/Inserir Foto", 
						  draggable:true, 
						  wiredDrag: true, 
						  url: url,
						  destroyOnClose: true
						  }) 
	win.setConstraint(true, {left:0, right:20, top: 0, bottom:0});
	win.showCenter();
	return false;
}

function reloadIframe(galeria_id){
	//parent.fotos.location.href = "admin/galerias/fotos/"+galeria_id;
	parent.fotos.location.reload();
}

function checkAll(obj, form){
	var inputs = form.getElementsByTagName('input');
	var status = (obj.checked) ? 'checked' : false ;
	for(i=0; i<inputs.length; i++){
		if(inputs[i].type == 'checkbox' && inputs[i].name != obj.name){
			inputs[i].checked = status;
		}
	}
}

function showPage(id){
	var w = window.screen.availWidth-100;
	var h = window.screen.availHeight-250;
	var url = (id) ? "admin/conteudo/page/editar/"+id : "admin/conteudo/page/criar/" ;
	var win = new Window({className: "alphacube", 
						  width:w, 
						  height:h, 
						  zIndex: 100, 
						  resizable: true, 
						  title: "Editar conte&uacute;do", 
						  draggable:true, 
						  wiredDrag: true, 
						  url: url,
						  destroyOnClose: true
						  }) 
	win.setConstraint(true, {left:0, right:20, top: 0, bottom:0});
	win.showCenter();
	return false;
}

function showGaleria(id){
	var w = window.screen.availWidth-100;
	var h = window.screen.availHeight-250;
	var url = (id) ? "admin/galerias/crud/exibir/"+id : "admin/galerias/crud/criar/" ;
	var win = new Window({className: "alphacube", 
						  width:w, 
						  height:h, 
						  zIndex: 100, 
						  resizable: true, 
						  title: "Editar Galeria", 
						  draggable:true, 
						  wiredDrag: true, 
						  url: url,
						  destroyOnClose: true
						  }) 
	win.setConstraint(true, {left:0, right:20, top: 0, bottom:0});
	win.showCenter();
	return false;
}


function showText(id){
	var w = window.screen.availWidth-100;
	var h = window.screen.availHeight-250;
	var url = (id) ? "admin/texto/carrega/"+id : "admin/conteudo/page/criar/" ;
	var win = new Window({className: "alphacube", 
						  width:w, 
						  height:h, 
						  zIndex: 100, 
						  resizable: true, 
						  title: "Editar conte&uacute;do", 
						  draggable:true, 
						  wiredDrag: true, 
						  url: url,
						  destroyOnClose: true
						  }) 
	win.setConstraint(true, {left:0, right:20, top: 0, bottom:0});
	win.showCenter();
	return false;
}

/*Limitar caracter no textarea */
function Caracteres(objeto){
    var limite = 10;
    var erro = "Você ultrapassou o limite de caracteres.";

    tamanho = objeto.value.length;
    if (tamanho>limite) {
 objeto.value = objeto.value.substring(0,limite);
 alert(erro);
    } else {
 document.getElementById('restantes').innerHTML = (limite-objeto.value.length);
    }
}

/* Popula o combo de cidades de acordo com o combo de estado */
function ckbSubSecoes(id){
	if(id > 0 && !isNaN(id)){
		var url = 'admin/functions/populaSubSecoes/'+id;
		var pars = '';
		var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: montaCkbSubSecoes }); 
	} else {
		$('subsecao_id').options.length = 0;
		$('subsecao_id').selectedIndex = 0;
		$('subsecao_id').options[0] = new Option('Selecione a seção', '');
	}
}
function montaCkbSubSecoes(request){
	itens = request.responseXML.getElementsByTagName("subsecoes");
	itens = request.responseXML.getElementsByTagName("item");
	if(itens.length > 0){
		$('subsecao_id').options.length = 0;
	    $('subsecao_id').selectedIndex = 0;
		for(i=0; i<itens.length; i++){
			var nome = pegaValor(itens[i].getElementsByTagName('titulo')[0]);
			var id = pegaValor(itens[i].getElementsByTagName('id')[0]);
			if(id == '' || id == null || id == 'null'){
				id = '';
			}
			$('subsecao_id').options[i] = new Option(nome, id);
		}
	} else {
		$('subsecao_id').options.length = 0;
	    $('subsecao_id').selectedIndex = 0;
		$('subsecao_id').options[0] = new Option('Esta secao possui subsecoes', '');
	}
}

function pegaValor(no){
    if(no.childNodes.length>0){
            return no.firstChild.nodeValue; //Tem filho
      } else {
            try{
                  return no.nodeValue;
            } catch (e) {
            return "";
        }
      }
}



/** 
 * Funo que formata um campo do formulrio de 
 * acordo com a mscara informada... 
 *
 * Parmetros: 
 *  => objForm (o Objeto Form);
 *  => strField (string contendo o nome do textbox); 
 *  => sMask (mascara que define o formato que o dado ser apresentado, 
 *            usando o algarismo "9" para definir nmeros e o smbolo "!" para 
 *            qualquer caracter... 
 *  => evtKeyPress (evento);
 *
 * Uso..: <input type="textbox" name="xxx" 
 * onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
 * 
 * Observao: As mscaras podem ser representadas como os exemplos abaixo: 
 * CEP -> 99.999-999  
 * CPF -> 999.999.999-99 
 * RG -> 99.999.999-9
 * CNPJ -> 99.999.999/9999-99 
 * Data -> 99/99/9999 
 * Tel Resid -> (99) 999-9999 
 * Tel Cel -> (99) 9999-9999 
 * Processo -> 99.999999999/999-99 
 * Inscrio Estadual -> 999.999.999-9999
 * C/C -> 999999-! 
 * E por a vai... 
 **/
function format(field, sMask, evtKeyPress) {

   var i;
   var nCount;
   var sValue;
   var fldLen;
   var mskLen;
   var bolMask;
   var sCod;
   var nTecla;

   if(document.all) { // Internet Explorer
      nTecla = evtKeyPress.keyCode; 
   }
   else 
   if(document.layers) { // Nestcape
      nTecla = evtKeyPress.which;
   }

   sValue = field.value;

   // Limpa todos os caracteres de formatao que
   // j estiverem no campo.
   sValue = sValue.toString().replace( "-", "" );
   sValue = sValue.toString().replace( "-", "" );
   sValue = sValue.toString().replace( ".", "" );
   sValue = sValue.toString().replace( ".", "" );
   sValue = sValue.toString().replace( "/", "" );
   sValue = sValue.toString().replace( "/", "" );
   sValue = sValue.toString().replace( "(", "" );
   sValue = sValue.toString().replace( "(", "" );
   sValue = sValue.toString().replace( ")", "" );
   sValue = sValue.toString().replace( ")", "" );
   sValue = sValue.toString().replace( " ", "" );
   sValue = sValue.toString().replace( " ", "" );
  
   fldLen = sValue.length;
   mskLen = sMask.length;

   i = 0;
   nCount = 0;
   sCod = "";
   mskLen = fldLen;

   while (i <= mskLen) 
   {
       bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
       bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

       if (bolMask) 
	   {  sCod += sMask.charAt(i);
          mskLen++; 
	   }
       else {
         sCod += sValue.charAt(nCount);
         nCount++;
       }
       i++;
   }

   field.value = sCod;
   if (nTecla != 9 && nTecla != 8 && nTecla != 46)  {
       if (sMask.charAt(i-1) == "9")  // apenas nmeros...
	   {   return ((nTecla > 47) && (nTecla < 58)); // nmeros de 0 a 9
	   } 
       else { // qualquer caracter...
         return true;
       } 
   }
   else {
       return true;
   }
}


function blokletras(objEvent)
{
  var iKeyCode;  
  iKeyCode = objkey.keyCode;  
  if(iKeyCode>=48 && iKeyCode<=57) return true;
  return false;
}



/**
 * 
 */
function soNumero(event){
	var key = window.event;
	var keyCode = key.keyCode ? key.keyCode : event.which ? event.which : event.charCode;
	var caract = new RegExp(/^[0-9]+$/i);
	var caract = caract.test(String.fromCharCode(keyCode));

    if (keyCode != 9 && keyCode != 8 && keyCode != 46) // backspace
	if(!caract){
		keyCode=0;
		return false;
	}
}

/**
 * 
 */
function mascaraMoeda(cur,len) {
	n='__0123456789';
	d=cur.value;
	l=d.length;
	r='';

	if (l > 0)
	{   z = d.substr(0,l-1);
		s = '';
		a = 2;

		for (i=0; i < l; i++)
		{
			c = d.charAt(i);
			if (n.indexOf(c) > a)
			{   a=1;
				s+=c;
			}
		}

		l = s.length;
		t = len-1;

		if (l > t)
		{   l = t;
			s = s.substr(0,t);
		}

		if (l > 2)
		{   r = s.substr(0,l-2)+','+s.substr(l-2,2);
		}
		else	
		{   if (l == 2)
			{	 r='0, '+s;
			}
			else
			{  if (l == 1)
				{   r = '0,0'+s;
				}
			}
		}

		if (r == '')
		{   r = '0,00';
		}
		else
		{   l = r.length;
			if (l > 6)
			{   j  = l%3;
				w  = r.substr(0,j);
				wa = r.substr(j,l-j-6);
				wb = r.substr(l-6,6);
				if (j > 0)
				{   w += '.';
				}
				k = (l-j)/3-2;

				for (i=0; i < k; i++)
				{	w += wa.substr(i*3,3)+'.';
				}

				r = w+wb;
			}
		}
	}

	if (r.length <= len)
	{   cur.value=r;
	}
	else
	{   cur.value=z;
	}

	return 'ok';
}

function iframeAutoHeight(quem,heu){
    //by Micox - elmicox.blogspot.com - elmicox.com - webly.com.br
    if(navigator.appName.indexOf("Internet Explorer")>-1){ //ie sucks
        var func_temp = function(){
            var val_temp = quem.contentWindow.document.body.scrollHeight + 5
            quem.style.height = val_temp + "px";
            //alert(val_temp)        
	}
        setTimeout(function() { func_temp() },100) //ie sucks
    }else{
        var val = quem.contentWindow.document.body.parentNode.offsetHeight + 5
        quem.style.height= val + "px";
    }
}

/*	-------------------------------------------------
	VALIDACAO EMAIL
	-------------------------------------------------*/
	function isEmail(str)
	{
		var supported = 0;
		if (window.RegExp)
		{
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
		}
		if (!supported) 
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)|( )|(\\.@)");
		var r2 = new RegExp("^.[a-zA-Z0-9\\-\\.\\_]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
		return (!r1.test(str) && r2.test(str));
	}

/*	-------------------------------------------------
	VALIDACAO DE DATA
	-------------------------------------------------*/
function validarData(campo){
var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
var msgErro = 'Formato inválido de data.';
if ((campo.value.match(expReg)) && (campo.value!='')){
var dia = campo.value.substring(0,2);
var mes = campo.value.substring(3,5);
var ano = campo.value.substring(6,10);
if(mes==4 || mes==6 || mes==9 || mes==11 && dia > 30){
alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
return false;
} else{
if(ano%4!=0 && mes==2 && dia>28){
alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
return false;
} else{
if(ano%4==0 && mes==2 && dia>29){
alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
return false;
} else{
alert ("Data correta!");
return true;
}}}} else {
alert(msgErro);
campo.focus();
return false;
}}


/*	-------------------------------------------------
	VALIDACAO DE CPNJ
	-------------------------------------------------*/
function validacnpj( c ) {

     var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais, cnpj = c.value.replace(/\D+/g, '');
     digitos_iguais = 1;
    if (cnpj.length != 14)
            {
                 alert('CNPJ inválido');
                 c.focus();
                 return false;
                 }

     for (i = 0; i < cnpj.length - 1; i++)
           if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                 {
                 digitos_iguais = 0;
                 break;
                 }
     if (!digitos_iguais)
           {
           tamanho = cnpj.length - 2
           numeros = cnpj.substring(0,tamanho);
           digitos = cnpj.substring(tamanho);
           soma = 0;
           pos = tamanho - 7;
           for (i = tamanho; i >= 1; i--)
                 {
                 soma += numeros.charAt(tamanho - i) * pos--;
                 if (pos < 2)
                       pos = 9;
                 }
           resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
           if (resultado != digitos.charAt(0))
{
                 alert('CNPJ inválido');
                 c.focus();
                 return false;
                 }

           tamanho = tamanho + 1;
           numeros = cnpj.substring(0,tamanho);
           soma = 0;
           pos = tamanho - 7;
           for (i = tamanho; i >= 1; i--)
                 {
                 soma += numeros.charAt(tamanho - i) * pos--;
                 if (pos < 2)
                       pos = 9;
                 }
           resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
           if (resultado != digitos.charAt(1)){
                 alert('CNPJ inválido');
                 c.focus();
                 return false;
                 }
           else {
     // alert('CNPJ  OK !');
            return true;
            }
           }
     else{
           alert('CNPJ inválido');
           c.focus();
           return false;
           }
     } 


/*	-------------------------------------------------
	VALIDACAO DE CPF
	-------------------------------------------------*/
	
function validacpf(campo) {
var cpf = campo.value.replace(/\D/g, "");
if(cpf == "")
return true;
dig1 = 0; dig2 = 0; som1 = 0; som2 = 0; resto = 0;
calc = 0;
for (i = 1, k = 10; i < cpf.length -1; i++, k--) {
som1 += k * parseInt(cpf.substring(i - 1, i));
som2 += ((k + 1) * parseInt(cpf.substring(i - 1, i)));
}
resto = som1 % 11;
if (resto < 2)
dig1 = 0;
else
dig1 = 11 - resto;
som2 += 2 * dig1;
resto = som2 % 11;
if (resto < 2)
dig2 = 0;
else
dig2 = 11 - resto;
digCpf = cpf.substr(cpf.length - 2);
digCal = String(dig1).concat(String(dig2));
if(digCal != digCpf) {
alert('Numero de CPF invalido!');
campo.focus();
return false;
}
return true;
} 

function remove(str, sub) {
i = str.indexOf(sub);
r = "";
if (i == -1) return str;
r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
return r;
}


/*	-------------------------------------------------
	VALIDACAO DO CAMPOS DO FORMULARIO
	-------------------------------------------------*/
	function valida_campo(tipo, campo, event){
		form = campo.form.name;
		cp = campo.name;
		var key = window.event;
		switch(tipo)
		{
			case 0: //RETIRA ASPAS SIMPLES E DUPLAS - EVENTO: onKeyPress
			{
				if(key.keyCode == 39 || key.keyCode == 34)
					key.returnValue = false;
				break;
			}
			case 1: //CAMPO ACEITA SOMENTE NUMERO - EVENTO: onKeyPress
			{
				if(key.keyCode <= 44 || key.keyCode == 45|| key.keyCode > 57 || key.keyCode == 46 || key.keyCode == 47 || key.keyCode == 42 || key.keyCode == 39 || key.keyCode == 34 )
					key.returnValue = false;
				break;
			}
			case 2: //CAMPO ACEITA SOMENTE TEXTO - EVENTO: onKeyPress
			{
				if (key.keyCode > 47 && key.keyCode < 58 || key.keyCode == 39 || key.keyCode == 34)
					key.returnValue = false;
				break;
			}
			case 3: //CAMPO ACEITA SOMENTE EMAIL - EVENTO: onChange
			{
				if (campo.value!=''){
					if(!isEmail(campo.value)){
						//alert(campo);
						alert('Digite o seu E-MAIL corretamente');
						key.returnValue = false;
						document.getElementById(campo.id).focus();
					}
				}
				break;		
			}
			case 4: //CAMPO ACEITA SOMENTE DATA - EVENTO: onChange
			{
				if (campo.value!=''){
					if(!validaData(campo.value)){
						key.returnValue = false;
						campo.select();
					}
				}
				break;		
			}
			case 5: //CAMPO ACEITA SOMENTE CPF - EVENTO: onChange
			{
				if (campo.value!=''){
					if(!isCpf(campo.value)){
						alert('Digite o seu CPF corretamente');
						key.returnValue = false;
						campo.select();
					}
				}
				break;
			}
		}
	}
