﻿function writeSwf(url, width, height){
     document.write('<embed src="'+ url +'" quality="best" wmode="transparent" bgcolor="transparent" sifr="true" menu="false" type="application/x-shockwave-flash" width="'+ width +'" height="'+ height +'"></embed>');
}

function confirmDelete() {
    return confirm("Confirma a deleção deste registro?");
}

function confirmSave() {
    return confirm("Confirma a gravação do registro?");
}


function setTitle(str){
    document.title = str;
}

// Confirma um comentario
function confirmComment(idComment) {
    var url = "Default.aspx?idComment="+ idComment;
    if(confirm("Deseja realmente liberar este comentario?")){
        document.location.href = url;
    }
}


function updateFCKeditor(id){
    try{
        id = "ctl00_ContentPlaceHolder1_"+ id;
	    var oEditor = FCKeditorAPI.GetInstance(id);
	    document.getElementById(id).value = oEditor.GetXHTML( true );
	}catch(e){
	    
	}
}




// Adiciona um método em um evento HTML
function addEvent(target, eventName, handlerName){
	if ( target.addEventListener )
	  	target.addEventListener(eventName, handlerName, false);
	else if ( target.attachEvent )
	  	target.attachEvent("on" + eventName, handlerName);
	else
		target["on" + eventName] = handlerName;		
}

function upperCaseImpl(evt){
	try{
    	var keynum = getTecla(evt);
		if ((keynum >= 126 && keynum <= 138) || (keynum >= 140 && keynum <= 146) || (keynum >= 152 && keynum <= 191) || keynum == 96 || keynum == 94) {
			window.event.keyCode = 0;					
		}
    	   
		if ((keynum >= 97 && keynum <= 122) || (keynum >= 224 && keynum <= 255)) {       
			keynum = keynum - 32;
			
			// A
			keynum = changeLetter(keynum, 192, 197, 65);
			// E
			keynum = changeLetter(keynum, 200, 203, 69);
			// I
			keynum = changeLetter(keynum, 204, 207, 73);
			// O
			keynum = changeLetter(keynum, 210, 214, 79);
			// U
			keynum = changeLetter(keynum, 217, 220, 85);
			// Ç
			keynum = (keynum == 199 ? 67 : keynum);
			window.event.keyCode = keynum;
		}  
		   
    }catch(e){}
}


function changeLetter(keynum, ini, fim, key){
	if(keynum >= ini && keynum <= fim){
		return key;                
	}else{
		return keynum;
	}
}

function trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}


function formatar(src, mask ) {
    var i = src.value.length;
    var saida = mask.substring(0,1);
    var texto = mask.substring(i);
    if (texto.substring(0,1) != saida) {
        src.value += texto.substring(0,1);
    }
}


function getTecla(e){
	return (window.event) ? e.keyCode: e.charCode;
}

function SomenteNumero(e){
	var tecla = getTecla(e);
	if((tecla > 47 && tecla < 58) || tecla == 13 || tecla == 0){
		return true;
	}else{ 
		if (tecla != 8){
			if (e && e.preventDefault) { 					
				e.preventDefault();
			}else{
				return false;
			}					
		}else{
			return true;
		}
	}
}	

function retornaFalso(e, x) {
	if (e && e.preventDefault) { 					
		e.preventDefault();
	}else{
		return false;
	}
}


function formatarCpfEvt(evt) {
	formatar(evt.srcElement || evt.target, '###.###.###-##');
}

function formatarCnpjEvt(evt) {
	formatar(evt.srcElement || evt.target, '##.###.###/####-##');
}

function formatarDataEvt(evt) {
	formatar(evt.srcElement || evt.target, '##/##/####');
}

function formatarCepEvt(evt) {
	formatar(evt.srcElement || evt.target, '##.###-###');
}

function validaDataEvt(evt) {
	validaDatasFormularios(evt.srcElement || evt.target);
}

function funValidaData(Data){
	var dma = -1;
	var data = Array(3);
	var ch = Data.charAt(0); 
	for(i=0; i < Data.length && (( ch >= '0' && ch <= '9' ) || ( ch == '/' && i != 0 ) ); ){
		data[++dma] = '';
		if(ch!='/' && i != 0) return false;
		if(i != 0 ) ch = Data.charAt(++i);
		if(ch=='0') ch = Data.charAt(++i);
		while( ch >= '0' && ch <= '9' ){
			data[dma] += ch;
			ch = Data.charAt(++i);
		} 
	}
	//if(ch!='') return false;
	if(data[0] == '' || isNaN(data[0]) || parseInt(data[0]) < 1) return false;
	if(data[1] == '' || isNaN(data[1]) || parseInt(data[1]) < 1 || parseInt(data[1]) > 12) return false;  
	//****************************************************************************************
	// Esta linha foi alterada para a data aceitar apenas o ano com 4 digitos.
	// if(data[2] == '' || isNaN(data[2]) || ((parseInt(data[2]) < 0 || parseInt(data[2]) > 99 ) && (parseInt(data[2]) < 1900 || parseInt(data[2]) > 9999))) return false;
	//****************************************************************************************
	if ( data[2] == '' || isNaN(data[2]) || (data[2].length != 4) || ( (parseInt(data[2]) < 1900 || parseInt(data[2]) > 9999) ) ) return false;
	if(data[2] < 50) data[2] = parseInt(data[2]) + 2000;
	else if(data[2] < 100) data[2] = parseInt(data[2]) + 1900;
	switch(parseInt(data[1])){
		case 2: { if(((parseInt(data[2])%4!=0 || (parseInt(data[2])%100==0 && parseInt(data[2])%400!=0)) && parseInt(data[0]) > 28) || parseInt(data[0]) > 29 ) return false; break; }
		case 4: case 6: case 9: case 11: { if(parseInt(data[0]) > 30) return false; break;}
		default: { if(parseInt(data[0]) > 31) return false;}
	}
	return true; 
}

/**
* Verifica se a data esta ok
*/
function validaDatasFormularios(oDataInicial){

	var blnValido = true;	

	strDataInicial = oDataInicial.value;
	
	if( (strDataInicial != "") && (!funValidaData(strDataInicial)) )
	{
		alert('Data Inválida!');
		oDataInicial.value = "";
		oDataInicial.focus();
		blnValido = false;
	}
	return blnValido;
}

// *********************************************
// Adiciona suporte para Replace All em tipos Strings
// *********************************************
String.prototype.replaceAll = function(de, para){
    var str = this;
    var pos = str.indexOf(de);
    while (pos > -1){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
    return (str);
}

//**************************************************
//*** Utilitario do PUC, formata valor digitado para ###.###.###,##
//*** formata qd esta apagando tb.
//**************************************************
function digitaMonetarioEvt(evt) {
	var elemento = evt.srcElement || evt.target;
	var str = elemento.value;
	str=str.replaceAll('.', '');
	str=str.replaceAll(',', '');
	if(str.length<=2){
		elemento.value = str;
	} else {
		if(str.length>2 && str.length<=5) {	
			var str1 = str.substring(0,str.length-2);
			var str2 = str.substring(str.length-2, str.length)
			elemento.value = str1+","+str2;
		} else {
			if(str.length>5 && str.length<=8) {
				var str1 = str.substring(0, str.length-5);
				var str2 = str.substring(str.length-5, str.length-2);
				var str3 = str.substring(str.length-2, str.length);
				elemento.value = str1+"."+str2+","+str3;  
			} else {
				var str1 = str.substring(0, str.length-8);
				var str2 = str.substring(str.length-8, str.length-5);
				var str3 = str.substring(str.length-5, str.length-2);
				var str4 = str.substring(str.length-2, str.length);
				elemento.value = str1+"."+str2+"."+str3+","+str4;  
			}
		}
	}
}

// Injeta os metodos nos campos de acordo com cada atributo informado
try{
	addEvent(window, 'load', injetaMetodo);
}catch(e){}

function injetaMetodo() {
	try{
	    var inputs = document.getElementsByTagName('input');
	    injetaMetodoImpl(inputs);
	    var textAreas = document.getElementsByTagName('textarea');
	    injetaMetodoImpl(textAreas);
	}catch(e){}
}

function injetaMetodoImpl(obj){
	try{
		var i;
		for (i = 0; i < obj.length; i++) {
			if(obj[i].type == "text" || obj[i].type == "textarea"){
			
				if(obj[i].getAttribute("upper") != "false"){
					obj[i].style.textTransform = "uppercase";
					addEvent(obj[i], "keypress", upperCaseImpl);
				}
	
				if(obj[i].getAttribute("numero") == "true"){
					addEvent(obj[i], "keypress", SomenteNumero);
					addEvent(obj[i], "paste", retornaFalso);
				}
				
				if(obj[i].getAttribute("moeda") == "true"){
					addEvent(obj[i], "keyup", digitaMonetarioEvt);
					addEvent(obj[i], "keypress", SomenteNumero);
					addEvent(obj[i], "paste", retornaFalso);
				}
				if(obj[i].getAttribute("cep") == "true"){
					obj[i].maxLength = "10";
					obj[i].style.width = "80px";
					addEvent(obj[i], "keypress", SomenteNumero);
					addEvent(obj[i], "keypress", formatarCepEvt);
					addEvent(obj[i], "paste", retornaFalso);
				}		
				if(obj[i].getAttribute("cpf") == "true"){
					addEvent(obj[i], "keypress", formatarCpfEvt);
					addEvent(obj[i], "keypress", SomenteNumero);
					obj[i].maxLength = "14";
					obj[i].style.width = "120px";
					addEvent(obj[i], "paste", retornaFalso);
				}
				if(obj[i].getAttribute("cnpj") == "true"){
					addEvent(obj[i], "keypress", formatarCnpjEvt);
					addEvent(obj[i], "keypress", SomenteNumero);
					obj[i].maxLength = "18";
					obj[i].style.width = "150px";
					addEvent(obj[i], "paste", retornaFalso);					
				}	

                if(obj[i].getAttribute("data") == "true"){
					addEvent(obj[i], "keypress", formatarDataEvt);
					addEvent(obj[i], "keypress", SomenteNumero);
					obj[i].maxLength = "10";
					obj[i].style.width = "60px";
					addEvent(obj[i], "paste", retornaFalso);
					addEvent(obj[i], "blur", validaDataEvt);
				}
												
			}
		}
	}catch(e){}
}