// Documento JavaScript var xmlHttp = createXmlHttpRequestObject();// cria instancia do objecto XMLHttpRequestfunction createXmlHttpRequestObject() { // receberá a referencia do objecto var xmlHttp; // deve funcionar com todos os browsers excepto com o IE6 e anterior try { // tenta criar objecto XMLHttpRequest xmlHttp = new XMLHttpRequest(); } catch(e) { // assumindo que é o IE6 oou anterior var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"); // tenta todos até um funcionar for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) { try { // tenta criar obejecto XMLHttpRequest xmlHttp = new ActiveXObject(XmlHttpVersions[i]); } catch (e) {} } } // faz return do objecto criado ou mostra erro if (!xmlHttp) alert("Erro ao criar o objecto XMLHttpRequest."); else return xmlHttp;}function pedido(endereco,local){ // apenas continua se xmlHttp nao for void if (xmlHttp) { // tenta ligar ao servidor try { // inicia a leitura de um ficheiro do servidor xmlHttp.open("GET", endereco, true); xmlHttp.onreadystatechange = handleRequestStateChange(); xmlHttp.send(null); } // mostra erro em caso de falha catch (e) { alert("Não foi possivel ligar ao servidor:\n" + e.toString()); } }}function handleRequestStateChange() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { try { // faz algo com a resposta do servidor handleServerResponse(local); } catch(e) { // mostra mensagem de erro alert("Erro ao ler resposta do servidor: " + e.toString()); } } else { // mostra mensagem de status alert("Existiu um problema ao receber a resposta do servidor:\n" + xmlHttp.statusText); } }}function handleServerResponse(local){ var html = xmlHttp.responseText; myDiv = getElementsById(local); myDiv.innerHTML = html;}function pedecampos(lang){ var menu = "menu.php?lang=" + lang; var content = "content.php?lang=" + lang; pedido(menu,"menu"); pedido(content,"comteudo");}