// Função para iniciarmos o Ajax no browser do cliente.
function openAjax() {

var ajax;

try{
    ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
}catch(ee){
    try{
        ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
    }catch(e){
        try{
            ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
        }catch(E){
            ajax = false;
        }
    }
}
return ajax;
}

// Função que realiza a busca instantânea

function abre(id, url) {
	
	if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
		
		var exibeResultado = document.getElementById(id); // div que exibirá o resultado da busca.
		
			var ajax = openAjax(); // Inicia o Ajax.
			ajax.open("GET", url, true); // Envia o termo da busca como uma querystring, nos possibilitando o filtro na busca.
			ajax.onreadystatechange = function() {
				if(ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
					exibeResultado.innerHTML = "<br><br><br><center><img src='layout/carregando.gif'><br><h4>Carregando...</h4></center><br><br><br><br><br><br><br><br><br>";
				}
				if(ajax.readyState == 4) { // Quando estiver tudo pronto.
					if(ajax.status == 200) {
						var resultado = ajax.responseText; // Coloca o resultado (da busca) retornado pelo Ajax nessa variável (var resultado).
						resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
						resultado = unescape(resultado); // Resolve o problema dos acentos
						exibeResultado.innerHTML = resultado;
					} else {
						exibeResultado.innerHTML = "<br><br><br><center><h4>Erro! </h4><br>Comunique o administrador...</center><br><br><br><br><br><br><br><br><br>";
					}
				}
			}
			ajax.send(null); // submete
		
	}
}	


function addfavoritos(vUrl,vDescricao, vRetorno)
{
  window.external.AddFavorite(vUrl,vDescricao);
  if (vRetorno==null)
  {
    //não retorna nada
  }
  else
  {
    //retorna qualquer coisa que você definir em vRetorno 
    //obs.: aplicavel ao caso de querer retornar uma outra função ou o valor de outra função
    return vRetorno;
  };
};

function paginicial(vId, vUrl, vRetorno)
{
  var ns = (navigator.appName == "Netscape");
  var ie = (navigator.appName == "Microsoft Internet Explorer");
  if(ie)
  {
    vId.style.behavior='url(#default#homepage)';
    vId.setHomePage(vUrl);
  } 
  else if(ns)
  {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite");
    navigator.preference("browser.startup.homepage", vUrl);
  };

  if (vRetorno==null)
  {
    //não retorna nada
  }
  else
  {
    //retorna qualquer coisa que você definir em vRetorno 
    //obs.: aplicavel ao caso de querer retornar uma outra função ou o valor de outra função
    return vRetorno;
  };
};


function escondeGeral(id){
	//alert('esconde'+i);
	var obj = document.getElementById(id);
	//if(obj.style.visibility == "visible"){
		obj.style.visibility = "hidden";
		obj.style.display = "none";
	//}
}

function escondeMostra(id){
	var obj = document.getElementById(id);
	if(obj.style.visibility == "visible"){
		obj.style.visibility = "hidden";
		obj.style.display = "none";
	} else {
		obj.style.visibility = "visible";
		obj.style.display = "block";
	}
}

function esconde(i){
	//alert('esconde'+i);
	var obj = document.getElementById("Layer" + i);
	//if(obj.style.visibility == "visible"){
		obj.style.visibility = "hidden";
		obj.style.display = "none";
	//}
}
function mostra(i){
	//alert('mostra'+i);
	var obj = document.getElementById("Layer" + i);
	//if(obj.style.visibility == "hidden"){
		obj.style.visibility = "visible";
		obj.style.display = "block";
	//}
}





<!-- VALIDAÇÃO DE FORMULÁRIOS -->

function requeridoStr(str, campo){
	if(str==""){
		return "<li>Preencha o campo "+campo+". </li>";
	}else{
		return "";	
	}
	
}
function requeridoEmail(str, campo){
	if(str==""){
		return "<li>Preencha o campo "+campo+". </li>";
	}else{
		if(str.indexOf('@', 0) == -1){
			return "<li>O "+campo+" informado é inválido. </li>";
		}else{
			return "";	
		}
	}
	
}


function envia(){
	var busca = document.form10.busca.value;
	
	if((busca!="")&&(busca!=" ")){
		abre('resultado','pesquisa_produto?a=1&busca='+busca);
	}
}


function contatos(){ //enviar email, formulário de contato
	
	var  erro="";	
	
	var nome = document.form1.nome.value;
	
	var email = document.form1.email.value;
	
	var mensagem = document.form1.mensagem.value;
	
	var fone = document.form1.fone.value;	
	
	erro +=  requeridoStr(nome, "Nome");
	
	erro +=  requeridoEmail(email, "E-mail");
	
	erro +=  requeridoStr(mensagem, "Mensagem");
	
	
	if(erro==""){
		
		abre('conteudo','contato.php?sub=true&nome='+nome+'&email='+email+'&mensagem='+mensagem+'&fone='+fone);
		return "";
	}else{
		
		mostraErro(erro);
		return "";
	}
}


function indique(){ //enviar email, formulário indique
	
	var  erro="";	
	
	var nome = document.form1.nome.value;
	
	var titulo = document.form1.titulo.value;
	
	var email = document.form1.email.value;	
	
	var nome_amigo = document.form1.nome_amigo.value;	
	
	var email_amigo = document.form1.nome_amigo.value;
	
	var mensagem = document.form1.mensagem.value;
	
	erro +=  requeridoStr(nome, "Nome");
	
	erro +=  requeridoEmail(email, "E-mail");
	
	erro +=  requeridoStr(nome_amigo, "Nome do Amigo");
	
	erro +=  requeridoEmail(email, "E-mail do Amigo");
	
	erro +=  requeridoStr(mensagem, "Mensagem");
	
	
	if(erro==""){
		
		abre('conteudo','indique.php?sub=true&nome='+nome+'&email='+email+'&mensagem='+mensagem+'&nome_amigo='+nome_amigo+'&email_amigo='+email_amigo+'&titulo='+titulo);
		return "";
	}else{
		
		mostraErro(erro);
		return "";
	}
}


function mailinfo(){ //enviar email, formulário de contato	

	var  erro="";	
	var nome = document.formail.nome.value;
	var email = document.formail.email.value;
		
	erro +=  requeridoStr(nome, "Nome");
	erro +=  requeridoEmail(email, "E-mail");	
	
	if(erro==""){
		//alert ('E-mail enviado com sucesso!');
		abre('mail_info','mailinfo.php?sub=true&nome='+nome+'&email='+email);	
		return "";
	}else{
		alert(erro);		
		return "";
	}
}
<!-- VALIDAÇÃO DE FORMULÁRIOS -->

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 imgTroca(id,src){
	document.getElementById(id).src=src;
}


function atualizatexto(id, str){	
	var exibeResultado = document.getElementById(id); // div que exibirá o resultado da busca.
	var resultado = str;
	resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
	resultado = unescape(resultado); // Resolve o problema dos acentos
	exibeResultado.innerHTML = resultado;	
}


function mostraErro(erro){
	var exibeResultado = document.getElementById('error'); // div que exibirá o resultado da busca.	
	var resultado = "Ocorreram os seguintes erros: <ul>"+erro+"</ul>";
	resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
	resultado = unescape(resultado); // Resolve o problema dos acentos
	exibeResultado.innerHTML = resultado;					
	
}