/**
 * @author Dirceu
 */
//XHTTP Request, função para achar um deles... cross-browser
try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
};
//Fila de conexes
fila=[];
ifila=0;
//Carrega via XMLHTTP a url recebida e coloca seu valor
//no objeto com o id recebido
// tform, tipo de form. é 1 se for o form de inclusão - 2 edição
function ajaxHTML(id,url){
    document.getElementById(id).innerHTML="<div style='text-align: right; padding: 5px; font-size: 11px;color: #FFFFFF;'>Loading.</div>";
    fila[fila.length]=[id,url];
    if((ifila+1)==fila.length)ajaxRun();
};
//executa o ajax.
function ajaxRun(){
	//faz verificação se a url já vem com parametros '?'
	//se vier o meio entre a url e o RANDOM para evitar cache vai ser '&'
	//se não vai ser '?'
	if (fila[ifila][1].indexOf('?') !=- 1) {
		chara = "&";
	} else {
		chara = "?";
	}
	//open na pagina, url...
	//prestar atenção que onde tem 'rdn="+Math.ceil(...' é um random para evitar cache...
    xmlhttp.open('GET',fila[ifila][1]+chara+"?rdn="+Math.ceil(Math.random()*100000),true);
	//quando começar executar o xmlhttp
	xmlhttp.onreadystatechange=function() {
		//quando terminar de carregar...
		if (xmlhttp.readyState==4){
			//faz limpeza no retorno
            retorno=unescape(xmlhttp.responseText.replace(/\+/g," "));
			//preenche 'conteudo' com o que vier do arquivo
            document.getElementById(fila[ifila][0]).innerHTML=retorno;
			//faz ler o que veio p/ achar scripts
			ExtraiScript(retorno);
			//executa próximo da fila
            ifila++;
            if(ifila<fila.length)setTimeout("ajaxRun()",20);
        }
    }
    xmlhttp.send(null)
};
//função para ler scripts dentro da pagina chamada por ajax. lembrar que operadores bugam
//alternativa foi usar '~' no lugar de '+' dentro da pagina que vem por ajax.
//cuidado ;D
function ExtraiScript(texto){
    var ini, pos_src, fim, codigo;
    var objScript = null;
    ini = texto.indexOf('<script', 0);
    while (ini!=-1){
        var objScript = document.createElement("script");
        //Busca se tem algum src a partir do inicio do script
        pos_src = texto.indexOf(' src', ini);
        ini = texto.indexOf('>', ini) + 1;

        //Verifica se este e um bloco de script ou include para um arquivo de scripts
        if (pos_src < ini && pos_src >=0){//Se encontrou um "src" dentro da tag script, esta e um include de um arquivo script
            //Marca como sendo o inicio do nome do arquivo para depois do src
            ini = pos_src + 4;
            //Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
            fim = texto.indexOf('.', ini)+4;
            //Pega o nome do arquivo
            codigo = texto.substring(ini,fim);
            //Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
            codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
            // Adiciona o arquivo de script ao objeto que sera adicionado ao documento
            objScript.src = codigo;
        }else{//Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
            // Procura o final do script
            fim = texto.indexOf('</script>', ini);
            // Extrai apenas o script
            codigo = texto.substring(ini,fim);
            // Adiciona o bloco de script ao objeto que sera adicionado ao documento
			codigo = codigo.replace("~","+");
			codigo = codigo.replace("~","+");
            objScript.text = codigo;
        }
        //Adiciona o script ao documento
        document.body.appendChild(objScript);
        // Procura a proxima tag de <script
        ini = texto.indexOf('<script', fim);
        //Limpa o objeto de script
        objScript = null;
    }
};

//validações do dreamweaver modificada da macromedia
function MM_validateForm() {

	if (document.getElementById("pais").value=="")
	{
		alert('Please eneter Pasi');
		document.getElementById("pais").focus();
		document.MM_returnValue = false;return;
	}
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-1); i+=2) { test=args[i+1]; val=document.getElementById(args[i]);
  //a modificação está nesta próxima linha, onde faz um replace da primeira letra, para transformar em maiuscula...
  //também faz um replace de underlines p/ espaços...
    if (val) { nm=val.name;nm=nm.replace(nm.charAt(0),nm.charAt(0).toUpperCase());nm=nm.replace("_"," "); if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' deve ter um endereço de e-mail valido..\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' só aceita números.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' só aceitas numeros entre '+min+' e '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' é obrigatorio.\n'; }
  } if (errors) alert('O(s) seguintes erros ocorreram:\n'+errors+'\n Corrija os dados e envie novamente.');
  document.MM_returnValue = (errors == '');
};

//funções que fazem pegar a pseudo-popup
function showProducts(id) {
	showPseudoPopUp(id,"products");
}
function showAds(id) {
	showPseudoPopUp(id,"advertising");
}

// produtos - comentarios se referindo sempre à próxima linha.
// define diferença, ou seja, o tamanho aumentado do 'content' para se igualar ao 'popProduto'.
// lembrando que ao valor da igualdade é adicionado 60pixels.
var $diferenca = 0;
// define mostrando = 0, para indicar que a pseudo-popup não está na tela.
var $mostrando = 0;
/* função que faz a pseudo-popup, carregar conteúdo dentro. lembrando que dentro da página que vai
ser carregada pelo AJAX, é executado uma função javascript. */
function showPseudoPopUp(id,pasta) {
	//se a tela não tiver sendo mostrada...
	if ($mostrando == 0) {
		//define como sendo mostrada.
		$mostrando = 1;
		//cria uma div dentro de content chamada id: detalhe. com a class detalhe.
		var content = document.getElementById("content");
		var el_1 = document.createElement('div');
		el_1.className = "detalhe";
		el_1.setAttribute('id', 'detalhe');
		el_1.style.position = "absolute";
		content.appendChild(el_1);

		//coloca para que quando der resize executar posição novamente.
		onresize = function () {
			posicao();
	    }
		//carrega conteúdo, lembrando que tem javascript dentro!
		ajaxHTML('detalhe','../'+pasta+'/detail.asp?id='+id+'&xhttp=true');
		posicao();
	}
};
//posicao, faz o div, com fundo semitransparente ('datalhe') ficar em cima do 'content'
function posicao() {
	//liga a variavel 'content' e 'detalhe' com o objeto html.
	var content = document.getElementById("content");
	var detalhe = document.getElementById("detalhe");
	//verifica se é IE
	var isIE;
	if (parseInt(navigator.appVersion) >= 4) {
		if (navigator.appName == "Netscape") {
			//não é
			isIE = false;
		} else {
			//é!
			isIE = true;
		}
	}
	//posições
	//pega o x do content.
	x = getPageOffsetLeft(content);
	//pega o y do content.
	y = getPageOffsetTop(content);
	//pega o widht do content.
	w = content.offsetWidth;
	//se for IE
	if (isIE == true) {
		//tira 9pixels do width.
		w = w - 9;
		//adiciona 7 pixels do x (left).
		x = x + 7;
	}
	//seta 'detalhe' com position absolute
	detalhe.style.position = "absolute";
	//joga 'detalhe' à 60pixels a mais do que o y do 'content'.
	detalhe.style.top = y + 60 + "px";
	//joga 'detalhe' no mesmo lugar do x do 'content'
	detalhe.style.left = x + "px";
	//define width do 'detalhe' igual ao do 'content'
	detalhe.style.width = w + "px";
	//lembrar que x e width do content são manipulados alteriormente caso o navegador for IE.
};

//função para definir tamanhos e posições depois de ter carregado a pagina via AJAX
function rePosiciona() {
	//lugar
	posicao();
	//liga a variavel 'content' e 'detalhe' com o objeto html.
	var popProduto = document.getElementById("popProduto");
	var content = document.getElementById("content");
	
	//define hcontent como altura(height) do 'content'
	var hcontent = content.offsetHeight;
	//difne hpop como altura(height) do 'popProduto'
	var hpop = popProduto.offsetHeight;
	
	//define a global '$diferenca' como (altura atual do 'popProduto' menos altura anterior do 'hcontent')
	//ou seja, o quando aumentou.
	if (hpop-hcontent >= 0) {
		$diferenca = hpop-hcontent;
	}
	
	//define tamanho do 'content' sendo (tamanho do 'popProduto' + 60pixels)
    if (hpop-hcontent >= 0) {
		content.style.height = hpop + 60 + "px";
	}
	
};
	
function execRePosiciona() {
	//fica reposicionando de 100 em 100 milisecounds
	//depois de 1000 milisecounds para
	exectime = window.setInterval("rePosiciona()", 100);
	window.setTimeout('clearInterval(exectime)',10000);
}

function hidePseudoPopUp() {
	//para o interval de reposicionamento
	clearInterval(exectime);
	//define no onresize não fazer nada!
	onresize = function () {
	}
	//liga a variavel 'content' e 'detalhe' com o objeto html.
	var content = document.getElementById("content");
	var detalhe = document.getElementById("detalhe");
	
	//some com a CHILD 'detalhe'. isso é DOM. a "tag" realmente vai sumir, não vai ser somente 'escondida' por css.
	content.removeChild(detalhe);
	//retira o valor anteriormente adicionado à 'content' quando fez mostrar a psudo-popup.
	var atual = content.style.height.replace("px","");
	content.style.height = (atual) - ($diferenca) - (80) + "px";
	//fala que não tá mais mostrando.
	$mostrando = 0;
	$diferenca = 0;
};

//função do menu, para abrir e fechar...
function menuProdutos(id) {
	//liga 'link' com o objeto html
	var link = document.getElementById("link_menu"+id);
	//lifa 'menu' com objeto html 
	var menu = document.getElementById("menu_produtos"+id);
	//se a classe do 'link' for selecionado (padrão p/ pagina produtos)
	if (link.className == "selecionado") {
		//marca como não selecionado
		link.className = "nselecionado";
		//esconde submenu
		menu.style.display = "none";
		//caso não tiver selecionado
	} else {
		//marca como selecionado
		link.className = "selecionado";
		//mostra submenu
		menu.style.display = "";
	}
};

//submenu de produtos, para expandir/recuar - parecido com acima, com algumas diferenças
function subMenuProdutos(id) {
	//linka 'id' com objeto html 
	var submenu = document.getElementById(id);
	//se tiver mostrando
	if (submenu.style.display !== "none") {
		//esconde submenu
		submenu.style.display = "none";
		//caso não tiver mostrando
	} else {
		//mostra
		submenu.style.display = "";
	}
};

//função para trocar a foto do produto quando clica em um thumb na 'pseudo-popup'
function ampliaProduto(local) {
	//instancia objeto html
	var fotogrande = document.getElementById("foto_grande");
	//seta o src como 'local' que é enviado pela 'onclick' do 'thumb'
	fotogrande.src = "../docs/fotos/"+local;
};

//função para expandir os textos quando tem titulo e o texto tá em baixo...
function naIntegra(id) {
	var link = document.getElementById("mais"+id);
	var integra = document.getElementById("integra"+id);
	
	if (integra.style.display == "none") {
		link.innerHTML = "[Clique para minimizar]";
		integra.style.display = "";		
	} else {
		link.innerHTML = "[Clique para ver na integra]";
		integra.style.display = "none";		
	}	
};

//função para contato, selecionar se é Retailer/Custumer
function changeContactOpt(opt) {
	var opt_empresa = document.getElementById("opt_empresa");
	var profissio=document.getElementById("profissao");

	if (opt == "1") {
		opt_empresa.style.display = "";
		profissio.disabled=true;
	}
	if (opt == "2") {
		opt_empresa.style.display = "none";
		profissio.disabled=true;
	}
	if (opt=="3")
	{
		opt_empresa.style.display = "none";
		profissio.disabled=false;
	}
};

//submenu por Dirceu (da index)
function showSub(obj){
	link = document.getElementById(obj);
	x = getPageOffsetLeft(link) + link.offsetWidth;
	y = getPageOffsetTop(link) //+ link.offsetHeight;
	var submenu = document.getElementById(obj+"_sub");
	submenu.style.left = x + "px";
	submenu.style.top  = y + "px";
	submenu.style.display = "block";
	link.className = "menu_hover";
};
function hideSub(obj){
	var submenu = document.getElementById(obj+"_sub");
	submenu.style.display = "none";
	link.className = "";
};
//posições
//função necessario para submenu (showSub)
function getPageOffsetLeft(_){var q;q=_.offsetLeft;
if(_.offsetParent!=null)q+=getPageOffsetLeft(_.offsetParent);return q};
function getPageOffsetTop(_){var q;q=_.offsetTop;
if(_.offsetParent!=null)q+=getPageOffsetTop(_.offsetParent);return q};