// Strip leading and trailing white-space
String.prototype.trim = function() {
	return this.replace(/^\s*|\s*$/g, "");
}

// Replace repeated spaces, newlines and tabs with a single space
String.prototype.normalize_space = function() {
	return this.replace(/^\s*|\s(?=\s)|\s*$/g, "");
}

// Valida se o número é inteiro
function isInt(x) {
    var y=parseInt(x);
	if (isNaN(y)) return false;
	return x==y && x.toString()==y.toString();
}

// Valida se variável é valida ex: isset('myvar')
function isset(variable_name){
	try{
		if (typeof(eval(variable_name)) != 'undefined')
		if (eval(variable_name) != null)
		return true;
	}catch(e){ }
	return false;
}

// Retorna numero float
function strToFloat(num) {
	if(num.indexOf(',')!=-1){
		num = num.replace(/[.]/g,'').replace(/[,]/g,'.');
	}
	num = parseFloat(num);
	return isNaN(num) ? 0 : num;	
}

// Retorna numero inteiro
function strToInt(num) {
	if(num.indexOf(',')!=-1){
		num = num.replace(/[.]/g,'').replace(/[,]/g,'.');
	}
	num = parseInt(num);
	return isNaN(num) ? 0 : num;
}

/**************************************************************************
Função para simular um Tab quando for pressionado a tecla Enter
Exemplo: onKeyDown="TABEnter()"
Funciona em TEXT BOX,RADIO BUTTON, CHECK BOX e menu DROP-DOWN
**************************************************************************/
function TABEnter(oEvent){
  var oEvent = (oEvent)? oEvent : event;
  var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
  if(oEvent.keyCode==13)
    oEvent.keyCode = 9;
  if(oTarget.type=="text" && oEvent.keyCode==13)
    //return false;
    oEvent.keyCode = 9;
  if (oTarget.type=="radio" && oEvent.keyCode==13)
    oEvent.keyCode = 9;
}

// Avisa antes de sair de um cadastro aberto
function confirma(tipo,url){
	var del = 'Tem certeza de que deseja EXCLUIR este ítem?\n\nPS: Não pode-se reverter o processo!';
	var add = 'Deseja SAIR deste cadastro atual e iniciar um novo?\n\nPS: Os dados não salvos serão perdidos!';
	var fin = 'Tem certeza de que deseja FINALIZAR este ítem?\n\nPS: Não pode-se reverter o processo!';
	var reab = 'Tem certeza de que deseja REABRIR este ítem?\n\nPS: Não pode-se reverter o processo!';
	var exec = 'Tem certeza de que deseja EXECUTAR este procedimento?\n\nPS: Não pode-se reverter o processo!';
	if(tipo && window.confirm(eval(tipo))){
		if(url!=''){
			location.href = url;
		}else{
			return true;
		};
	}else{
		return false;
	}
}

function BuscaCep(){
	tb_show('Busca de CEP por Logradouro',sistema_url + "busca_cep.htm?TB_iframe=true&"+(jQuery.browser.msie ? "width=330&height=350" : "width=300&height=300"))
}

function FreteDetalhes(tipo){
	tb_show('Detalhes da forma de entrega / Frete',sistema_url + "pop_fretedetalhes.php?tipo="+ tipo +"&width=450&height=350")
}

function indicar(tipo,id){
	tb_show('Recomendar / Indicar para um amigo(a)',base_url+'?m=indicar&modo=ajax&tipo='+tipo+'&id='+id+'&width=350&height='+(tipo=='prod' ? 400 : 300));
	$('#TB_ajaxContent').css('overflow','hidden');
}

function VerImagem(campo,img) { 
    document.getElementById(img).src = campo.value;
}

function AjUrl(url){
	return url.replace(/&amp;/gi,'&');
}

function Go(url){
	if(url.indexOf('http://')==-1){
		url = base_url + url;
	}
	location.href = AjUrl(url);
}

function GoTop(achor){
	achor = achor!=undefined ? achor : '';
	if (location.href.indexOf('#')!=-1){
		location.href = location.href.split("#")[0]+'#'+achor;		
	}else{
		location.href = location.href+'#'+achor;
	}
}

function addBookmark(title,url) {
	if (window.sidebar){
		window.sidebar.addPanel(title, url,"");
	}else if( document.all ){
		window.external.AddFavorite( url, title);
	}else{
		return true;
	}
}

function zoom(imagem,path){
	path = (path) ? path : ''; 
	if(imagem){
		abre(base_url+'?m=zoom&tipo=single&imagem='+ path + imagem, 'zoom', 300, 300, 0, 0);
	}
}

function pagamento(url){
	janela = abre(base_url + url,'janela_pagar', 790, 550, 1, 1, 1);
	window.setTimeout(function(){janela.focus()},300);
}

function videomp(video){
	abre(base_url+'pop_video.php?video='+video+'&tipo=mp','videomp', 320, 300, 0, 0)
}



function ProdMudaImg(id){
	id = id-1;
	$("#prod_det #imgs #big li").hide();	
	$("#prod_det #imgs #big li:eq("+id+")").show();	
	//
	$("#prod_det #imgs #peq a.active").removeClass("active");
	$("#prod_det #imgs #peq a:eq("+id+")").addClass("active");
}

function Refresh_Frame(frame){
	$('#'+frame).attr("src", $('#'+frame).attr("src") );
}

function MouseOver(src){
	$(src).addClass("focus");
}
function MouseOut(src){
	$(src).removeClass("focus");
}

function randomNumber(limit){
  return Math.floor(Math.random()*limit)+1;
}

// Adiciona eventos
function addEvent(obj, evType, fn){
    if (obj.addEventListener){
       obj.addEventListener(evType, fn, false);
       return true;
    }else if (obj.attachEvent){
       var r = obj.attachEvent("on"+evType, fn);
       return r;
    }else{
		 return false;
    }
}



function abre(url, janela, width, height, Scroll, stat, menu, retorno, maximize){
	var left   = (screen.availWidth/2) - width/2;
	var top    = ((screen.availHeight/2) - height/2)-20;
	var janela = window.open(url,'CarmemVenzons'+janela, 'top='+top+',left='+left+',width='+width+',height='+height+',toolbar=no,location=no,resizable=yes,fullscreen=0,status='+stat+',menubar='+menu+',scrollbars='+Scroll+'');
	if(!janela){
		alert("AVISO:\n\nPara ver o conteudo interativo é nescesário desativar\no Bloqueador de Popups (janelas) para este Site.");
	}else{
		if(maximize){
			janela.moveTo(-4, -4);
			janela.resizeTo(screen.availWidth+8, screen.availHeight+8);		
		}
		janela.focus();
		if(retorno){
			return janela;
		}
	}
}

function abreFrame(url, janela){
	parent['Icert'+janela].location.href= AjUrl(url);
}

function maximizeWin() {
	if (window.screen) {
		var	width 	= screen.availWidth;
		var height	= screen.availHeight;
		window.moveTo(0, 0);
		window.resizeTo(width, height);
	}
}

function MudaFoco(e){
	var keynum = (window.Event) ? e.which : e.keyCode;
	if (keynum == 13){window.event.keyCode = 9;} 
}


function printf(valor,casas,pont) {
	var toStr=valor.toString()+'00';
	if(toStr.indexOf(".") == -1) {
		return valor+pont+'00';
	}else {
	    var div=toStr.split(".");
	    var fcent=div[1].substring(0,casas);
	    return div[0]+pont+fcent;
	}
}

function validaemail(email){
	if (email.length == 0){	return true}
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(reg1str);
		var reg2 = new RegExp(reg2str);
		if (!reg1.test(email) && reg2.test(email)){	return true  }
											  else{ return false }
	} else {
		if(str.indexOf("@") >= 0) return true;
		return false;
	} 		 
}

// Valida CEP com mascara 99.999-999
function validacep(cep){
	if (cep.length == 0){return true};
	if (window.RegExp) {
		var reg1str = "^[0-9]{2}[.][0-9]{3}[-][0-9]{3}$";
		var reg1 = new RegExp(reg1str);
		if (reg1.test(cep)){ return true  }
		               else{ return false }		 
	} else {
		if(str.indexOf("-") >= 0 && cep.length >= 10) return true;
		return false;
	} 
}

function validaCNPJ(cnpj){
	// Retira Formatação
	cnpj = cnpj.replace(/[^0-9]/gi,'');
	// Inicializa verificação
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
	digitos_iguais = 1;
	for (var 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 (var 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)) {
			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)) {
			return false;
		}
		return true;
	}else{
		return false;
	}
}

function validaCPF(CPF){
	var CPF = CPF.replace(/[^0-9]/gi,''); // Recebe o valor digitado no campo
	// Valida se CPF inválido
	if (CPF == '00000000000' || CPF == 12345678909 || CPF == 11111111111 || CPF == 22222222222 || CPF == 33333333333 || CPF == 44444444444 || CPF == 55555555555 || CPF == 66666666666 || CPF == 77777777777 || CPF == 88888888888 || CPF == 99999999999) {
		return false;
	}
	var posicao, i, soma, dv, dv_informado;
	var digito = new Array(10); //Cria uma array de 11 posições para armazenar o CPF
	dv_informado = CPF.substr(9, 2); // Armazena os dois últimos dígito do CPF
	for (i=0; i<=8; i++) { // Desmembra o número do CPF na array digito
		digito[i] = CPF.substr( i, 1);
	}
	// Calcula o valor do 10° dígito da verificação
	posicao = 10;
	soma = 0;
	for (i=0; i<=8; i++) {
		soma = soma + digito[i] * posicao;
		posicao = posicao - 1;
	}
	digito[9] = soma % 11;
	if (digito[9] < 2) {
		digito[9] = 0;
	}else{
		digito[9] = 11 - digito[9];
	}
	// Calcula o valor do 11° dígito da verificação
	posicao = 11;
	soma = 0;
	for (i=0; i<=9; i++) {
		soma = soma + digito[i] * posicao;
		posicao = posicao - 1;
	}
	digito[10] = soma % 11;
	if (digito[10] < 2) {
		digito[10] = 0;
	}else {
		digito[10] = 11 - digito[10];
	}
	//Verifica se os dígitos verificadores conferem
	dv = digito[9] * 10 + digito[10];
	return (dv == dv_informado);
}	

function ValidarCadastro(){
  var field=document.form.CLI_NOME;
  var dados=field.value.length;
  if( dados < 3 )
    {alert("O campo 'Nome' deve ser preenchido!!");
     field.focus();
     field.select();
     return false;}

  var field=document.form.CLI_EMAIL;
  var dados=field.value.length;
  if (!validaemail(field.value) || dados < 5)
	  {alert('Preencha com um e-mail válido.');
      field.focus();
      field.select();
      return false;} 

  var field=document.form.CLI_FONE;
  var dados=field.value.length;
  if( dados < 10 )
    {alert("O campo 'Fone' deve ser preenchido!!");
     field.focus();
     field.select();
     return false;}

  document.form.submit()		 
}

function Valida_Busca(form){
	var field = form.busca;
	if (field.value.length < 3 || field.value=='Pesquisar...'){
		alert('Preencha com no mínimo de 3 letras na palavra de busca.');
     	field.focus();	field.select();
		return false;
	}else{
		return true;
	}
}

function Valida_CadNews(form){
	var field=form.CLI_EMAIL;
	if (!validaemail(field.value)){
		alert('Preencha com um e-mail válido.');
     	field.focus();	field.select();
		return false;
	}else{
		return true;
	}
}


today = new Date()
ano_atual =today.getFullYear();
window.defaultStatus = document.title + " -  by Icert Informática"
var sorry =  document.title + '\nCopyright © '+ano_atual+' - Todos os direitos Reservados.\nDesign e Tecnologia Icert Informática.';

function OnDocumentLoad(func){
	func = function(){ setTimeout(func,0); }
	if (document.addEventListener) { // Firefox
		 document.addEventListener("DOMContentLoaded",func, false);
	}else{ // IE
		document.onload = func;	
	}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

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 setCookie(c_name,value,expiredays){
	expiredays = (expiredays==null) ? 3650 : expiredays;
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie = c_name +"="+ escape(value) +";expires="+ exdate.toGMTString() +";path=/";
}

function getCookie(c_name){
	if (document.cookie.length>0){
	  c_start=document.cookie.indexOf(c_name + "=")
	  if (c_start!=-1){ 
		 c_start=c_start + c_name.length+1 
		 c_end=document.cookie.indexOf(";",c_start)
		 if (c_end==-1) c_end=document.cookie.length
		 return unescape(document.cookie.substring(c_start,c_end))
		} 
	}
	return ""
}


var segundo, minuto, hora,timeout;
function Cronometro(destino){
	segundo = 0;
	minuto = 0;
	hora = 0;
	clearTimeout(timeout);
	CronometroExec(destino);
}
function CronometroExec(destino){
    if (segundo <= 58)
        ++segundo;
    else if (segundo == 59 && minuto <= 58) {
        segundo = 0;
        ++minuto;
    } else if (minuto == 59){
        segundo = 0;
        minuto = 0;
        ++hora;
    }
	f_minuto = minuto   < 10 ? '0'+minuto  : minuto;
	f_segundo = segundo < 10 ? '0'+segundo : segundo;
	$(destino).val(hora +':'+ f_minuto +':'+ f_segundo);
	timeout = window.setTimeout("CronometroExec('"+destino+"')",1000);
}

function scrollPage(sID){
	var objElement = document.getElementById(sID);
	if (objElement != null){
		objElement.scrollIntoView();
	}
}

function pageScroll() {
    	window.scrollBy(0,100); // horizontal and vertical scroll increments
    	scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds
}

function stopScroll() {
    	clearTimeout(scrolldelay);
}


/* -------------------------------------------------- *
 * ToggleVal Plugin for jQuery                        *
 * Version 1.0                                        *
 * -------------------------------------------------- *
$(document).ready(function() {
  $("#search").toggleVal();
  $("#username, #password").toggleVal("active");
});

*//*
jQuery.fn.toggleVal = function(defaultValue,focusClass) {
	this.each(function() {
		if(this.defaultValue == ''){this.defaultValue = defaultValue};

		$(this).focus(function() {
			// clear value if current value is the default
			if($(this).val() == defaultValue) { $(this).val(""); }else{ $(this).get(0).select(); }
			// if focusClass is set, add the class
			if(focusClass) { $(this).addClass(focusClass); }
		}).blur(function() {
			// restore to the default value if current value is empty
			if($(this).val() == "") { $(this).val(this.defaultValue); }
			// if focusClass is set, remove class
			if(focusClass) { $(this).removeClass(focusClass); }
		});
	});
}
*/
function EfeitoCampos(destino){
	// Testa se o destino foi informao
	destino = isset(destino) ? destino+' ' : '';
	//Adiciona Efeito para fazer mudar de cor ao entrar / sair de um campo de formulário
	$(destino+' input:text,'+destino+' input:password,'+destino+' textarea' +(!$.browser.msie ? ','+destino+' select' : ''))
		.focus( function() { MouseOver(this); this.select(); })
		.blur( function()  { MouseOut(this); });
	$(destino+'input:image,'+destino+' input:radio,'+destino+' input:checkbox').css('border','none');
}

function F_ValidaCampo(id_campo,validacao,mensagem,modo){
	campo = $(id_campo);
	valor = campo.val();
	valor = (valor) ? valor : '';
	leng  = (valor) ? valor.length : '';
	//alert(id_campo+' | '+valor+' | '+validacao+' | '+ eval(validacao));
	if( eval(validacao) ){
		if(modo==0){
			alert(mensagem);
			campo.focus().select();
		}else{
			// Mostra mensagem
			F_CaixaMensagem('body','atencao',mensagem,'ok');
			// Coloca ação ao clicar na tela
			$('body #CaixaMensagem').click( function() {
				// Fecha caixa de mensagem
				F_CaixaMensagem('body','xclose');
				// Focaliza o campo
				campo.focus().select();
			});
		}
		return false;
	}else{
		return true;		
	}
}

function F_CaixaMensagem(destino,icone,mensagem,clique){
	// Remove mensagem se existir
	$(destino+' #CaixaMensagem').remove();
	// Se nao for apenas para fechar Caixa
	if(icone!='xclose'){
		// Cria html base
		$(destino).prepend('<div id="CaixaMensagem"><iframe id="HideSelect"></iframe><div id="fundo">&nbsp;</div><div id="msg" align="center"></div></div>');
		// Esconde Caixa p/ configurar
		$(destino+' #CaixaMensagem div').hide();
		// Inicia HTML colocando icone e mensagem 
		$(destino+' #CaixaMensagem #msg').html('<img src="imagens/ico_'+ icone +'.gif" />&nbsp;'+ mensagem +'&nbsp;');
		// Deixa o texto em vermelho for um erro
		if(icone=='erro'){	$(destino+' #CaixaMensagem  #msg').css('color','red');}
		// adiciona botão OK e ação para fechar caixa ao clicar
		if(clique=='ok'){
			// Insere botão OK
			$(destino+" #CaixaMensagem #msg").append('<br/><img src="imagens/bt_ok.gif" />');		
			// Muda cursor e adiciona hint
			$(destino+" #CaixaMensagem")
				.css("cursor","pointer")
				.attr("title","Clique aqui para fechar esta mensagem continuar.")
				.click( function() { F_CaixaMensagem(destino,'xclose') });
			// Coloca atalho ao pressionar Enter, Esc ou Barra de espaços
			$(document).keypress(function(evt){ 
				if (/^13$|^27$|^32$/.test( evt.which?evt.which:window.event.keyCode )){
					$(destino+" #CaixaMensagem").click();
				}
			}); // fim keypress
		} // fim clique = ok
		// Adiciona efeto para mostrar caixa
		$(destino+' #CaixaMensagem div').show();//.fadeIn();
	}// fim icone != xclose
}
// Mostra Mensagem Ajax carregando 
function ajaxAguarde(destino){
	// Mostra carregando
	F_CaixaMensagem(destino,"loading","Aguarde, processando...");
	// Mostra quando der erro
	$(destino).ajaxError( function(){
		F_CaixaMensagem(destino,"erro","<b>A requisição falhou.</b><br/>Se problema persistir, contate o administrador do sistema","ok");
	});
}
// Carrega conteudo da url e dados passado para o destino definido
function ajaxCarrega(destino,url,data) {
	url = url=='?' ? "index.php" : url;
	// Chama a requisição AJAX
	$.ajax({ 
	  type: "GET", 
	  url: url, 
	  data: data,
	  cache: false,
 	  //contentType : "application/x-www-form-urlencoded",
	  beforeSend: function(){
		ajaxAguarde(destino);
	  },
	  success: function(data){
			$(destino).html(data);
			ajaxConverte(destino);
		}
	});
	return true;
};

// Converte links normais e formulários p/ Ajax
// os links DEVEM TER rel='ajax' e NÃO PRECISAM estar dentro de "destino"
// os forms PRECISAM estar dentro de"destino"
function ajaxConverte(destino) {
	// Converte Links p/ Ajax
	/*$("a[@target!=_blank]").each(function(i){
		if( $(this).attr('target') != 'ajax' && $(this).attr('href').indexOf('javascript:')==-1){
			$(this).attr('target','ajax').click(function(){
				ajaxCarrega(destino,this.href,'modo=ajax');
				return false;
			});
		}
	});
	// Converte Forms p/ Ajax
	$(destino +" form").each(function(i){
		if( $(this).attr('target') != 'ajax'){
			$(this).attr('target','ajax').attr("action", $(this).attr("action")+'&modo=ajax' );
		}
	});	
	// Configura e Ativa
	ajaxFormDef(destino);
	//Adiciona Efeitos*/
	EfeitoCampos(destino);
}
// Configura e Ativa Formulários no modo Ajax
function ajaxFormDef(destino) {
	// Configurações do envio e retorno
	var options = { 
		target: destino,
		cache: false,
		//contentType : "application/x-www-form-urlencoded",
		beforeSubmit: function(formData, jqForm){
				ajaxAguarde(destino);
				return true; 
			},
		success: function(responseText, statusText){
				ajaxConverte(destino);
				F_CaixaMensagem(destino,"ok","Os dados foram salvos.","ok");				
			} 
	}; 
	// Ativa Formulários no modo Ajax
	$(destino +" form").ajaxForm(options);
}

/*
// Chama ao inicializar o site
jQuery(function($){
	//Adiciona Efeitos
	EfeitoCampos();
	// Mostra/Esconde texto padrão nos campos
	$("#vl_busca").toggleVal('Pesquisar...');
	$("#vl_cadnews").toggleVal('digite seu email aqui...');

	// Coloca atalho ao pressionar tecla
	$.getScript(sistema_url+'js/jquery.hotkeys.js', function(){ 
		// Verifica se esta no admin ou no site
		if(!isset('editar_site')){
			// Mostra site
			$.hotkeys.add('F2' ,function(){ Go(ver_site) });
		}else{
			$.hotkeys.add('F2' ,function(){ Go(base_url+'adm/?'+editar_site); });
			// Link print
			$.hotkeys.add('Ctrl+F4' ,function(){ if( prompt('Link para envio de newsletter. Copie e cole no sistema de envio.\nPressione [ok] para testar o link.',base_url +'index.php?modo=print&'+ link_print))
												Go(base_url +'index.php?modo=print&'+link_print); });
			// Limpa Cache
			$.hotkeys.add('Ctrl+F8' ,function(){ if( window.confirm('Tem certeza que deseja executar este procedimento?\n\n'+sorry)) 
												Go(base_url+'index.php?m=home&_cache=clear'); });
			// Acessa Web Mail
			$.hotkeys.add('Ctrl+F12',function(){ if( window.confirm('Deseja acessar o WebMail?\n\n'+sorry))
												Go(base_url+'email'); });
		}
	});
});	
*/