/*************
Funcoes do Ajax
**************/
// Testa se o browser suporta o XMLHttpRequest.
try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}
/**
* @return void
* @param param: valores:
*               execBefore: uma string que recebera um eval() antes de fazer o pedido pro servidor
*               execAfter: uma string que recebera um eval() depois de fazer o pedido pro servidor
*               method: O metodo que os parametros seer�o mandados pro servidor, GET ou POST; DEFAULT = GET.
*               url: a url que sera chamada
*               idTarget: id do elemento HTML que recebera a string que o servidor retornar
* @desc Faz um pedido ao servidor e coloca o resultado (string) em um elemento HTML
* @call ajaxRun({idTarget:"ID_ELEMENTO",url:"URL_CHAMADA",method:"POST",execBefore:"alert('Start')",execAfter:"alert('End')"})
**/

/**
 * lockRequest: TRUE impede que a func�o ajaxRun faca novas requisicoes ao server
**/
var lockRequest = false;
function ajaxRun(param){
    // Testa se lockRequest esta liberado para um novo pedido
    if(lockRequest == false) {
        // Trava lockRequest para que novos pedidos n�o sejam executados
        lockRequest = true;
        // se execBefore for passado executa a string (comando ou funcao) antes de comecar o pedido pra server
        if(param.execBefore) {
            eval(param.execBefore);
        }
        // Se o metodo n�o for passado assumir GET
        if(!param.method) {
            param.method = "GET";
        }
        // Transforma a string do metodo para uppercase
        param.method = param.method.toUpperCase();

        // Testa se o browser suporta XMLHttpRequest
        if(xmlhttp) {
            // se suportar abre a conexao
            // Abre conexao
            //xmlhttp.abort();
            xmlhttp.open(param.method,param.url,true);
            xmlhttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
            //Funcao para tratamento do retorno
            xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4){
                    //Mostra o HTML recebido
                    retorno = unescape(xmlhttp.responseText.replace(/\+/g," "))

                    // coloca a string retornada pelo servidor (retorno) no elemento HTML com o id == param.idTarget
                    document.getElementById(param.idTarget).innerHTML=retorno;
                    // se execAfter for passado executa a string (comando ou funcao) depois que o retorno foi colocado no elemento

                    // Libera lockRequest para novos pedidos
                    lockRequest = false;
                    if(param.execAfter) {
                        eval(param.execAfter);
                    }
                }
            }
            //Executa
            if(param.method == "POST" && param.strPost) {
                sendPost = param.strPost;
            } else {
                sendPost = null;
            }
            xmlhttp.send(sendPost)
        } else {
            // se nao suportar envia para a url passada
            window.location = param.url.replace("&ajax=1","");
        }
    } else {
        //contentLoading("Por favor, aguarde");
        ;
    }
}

function gebi(id) {
    return document.getElementById(id);
}

function mainFormCheck(form) {
    if(form.statesCombo.value == "" || form.statesCombo.value == "null" || form.cy_code.value == "" ||  form.cy_code.value == "null") {
        gebi("selectAlert").style.display = "inline";
        return false;
    } else {
        return true;
    }
}

/**
* @retun Array
* @param str qs: QueryString de uma URL
* @desc Tranforma uma querystring de uma URL em um array associativo variavel = valor
**/
function Querystring(qs) {
    this.params = new Object();
    //qs = "http://localhost/svn/www.intelimen.com.br/controller.php?menu=empresa&selectedMenu=empmissao&page=atendimento_solucao";
    if(qs.indexOf("?") > 0) {
        tmp = qs.split("?");
        qs = tmp[1];
        tmp = "";
    }
    args = qs.split("&");
    var name,value
    for(var x = 0 ; x < args.length ; x++) {
        tmp = args[x].split("=");
        name = tmp[0];
        value = tmp[1];
        this.params[name] = value;
    }
    return this.params;
}

function stateAcronim(ac,action) {
    //alert(techSig);
    var techSig = 'dc';
    var location = window.frames['frameComboCities'].location
    var qs = Querystring(location.toString());
    var interna = "";
    var servico = "";
    if(qs["interna"]) {
        interna = "&interna="+qs["interna"];
    } else {
        document.getElementById("cy_code").value = "";
        enableDisableOk();
    }
    if(qs["cy_type_code"]) {
        servico = "&cy_type_code="+qs["cy_type_code"];
    }
    //alert(location.toString());
    //alert("controller.php?action="+action+"&st_acronym="+ac+"&tec="+techSig+interna+servico);

    window.frames['frameComboCities'].location = "controller.php?action="+action+"&st_acronym="+ac+"&enable_combo=true&tec="+techSig+interna+servico;
}
function cityId(combo) {
    var option = combo.options[combo.options.selectedIndex];
    if(option.getAttribute("mig") == 1 || option.getAttribute("mig") == "null") {
        disableMig(true);
    } else {
        disableMig(false);
    }
    window.parent.document.getElementById("cy_code").value = combo.value;
    window.parent.enableDisableOk();
}
function disableMig(disable) {
    var rd = window.parent.document.getElementById("terra");
    if(disable) {
        rd.checked = false;
        rd.disabled = true;
        window.parent.document.getElementById("terra_tech").checked = true;
        window.parent.document.getElementById("migracao").className = "migDisable";
    } else {
        rd.disabled = false;
        window.parent.document.getElementById("migracao").className = "migEnable";
    }
}
function enableDisableOk() {
    var comboStates = gebi("statesCombo");
    var comboStatesValue = comboStates.options[comboStates.options.selectedIndex].value;
    var cy_codeValue = gebi("cy_code").value;
    var terra = gebi("terra");
    var terra_tech = gebi("terra_tech");
    var radioOk = false;
    var comboOk = false;
    if(cy_codeValue != "" && cy_codeValue != "null" && comboStatesValue != "" && comboStatesValue != "null") {
        //alert("Combo Cities OK");
        comboOk = true;
        terra_tech.disabled = false;
    } else {
        terra_tech.disabled = true;
    }
    if((!terra.disabled) || (!terra_tech.disabled)) {
        //alert("Radio OK");
        radioOk = true;
    }

    //alert(comboStatesValue);
    if(radioOk && comboOk) {
        document.getElementById("btn_ok_servico").src = "web/html/images/btn_ok_servico.jpg";
        document.getElementById("btn_ok_servico").disabled = false;
        document.getElementById("btn_ok_servico").style.cursor = "pointer";
        document.getElementById("completa").className = "migEnable";
        document.getElementById("h3_oqnecessita").className = "";
    } else {
        document.getElementById("btn_ok_servico").src = "web/html/images/btn_ok_servico_disable.jpg";
        document.getElementById("btn_ok_servico").disabled = true;
        document.getElementById("btn_ok_servico").style.cursor = "default";
        document.getElementById("completa").className = "migDisable";
        document.getElementById("migracao").className = "migDisable";
        document.getElementById("h3_oqnecessita").className = "migDisable";
        terra_tech.disabled = true;
        terra.disabled = true;
    }
}

function goNewCity(ele,servico) {
    var id = ele.value;
    //Giuliano 18-04-07 Evita que o formulario seja submetido com um valor nulo. retornava erro na pagina (http://terrabandalarga/controller.php?action=74&interna=true&cy_type_code=1&city_selected=8&st_acronym=AC) ao dar submit;
	if(id == "null"){
		return false;
	}
	var option = ele.options[ele.options.selectedIndex];
    option.mig = option.getAttribute("mig");
    var url = "controller.php?action=62&cy_code="+id+"&cy_type_code="+servico;
    if(option.mig == 2 || servico == 1) {
        window.parent.location = url;
    } else {
        var dvAlert = parent.document.getElementById("dvAlert");
        var container = parent.document.getElementById("alertContainer");
        container.innerHTML = option.text+" n�o possui planos para troca de provedor. Deseja ver os planos de solu��o completa?<div class=\"dvBtns\"><a href=\"#\" onclick=\"return goCityFull('"+id+"')\"><img src=\"web/html/images/btn_sim.gif\" alt=\"Sim\" /></a><a href=\"#\" onclick=\"document.getElementById('"+dvAlert.id+"').style.display='none'\"><img src=\"web/html/images/btn_nao.gif\" alt=\"N�o\" /></a></div>";
        dvAlert.style.display = "block";
    }
}
function goCityFull(id) {
    var url = "controller.php?action=62&cy_code="+id+"&cy_type_code=1";
    window.location = url;
    return false;
}

function openCallBack() {
    var url = "http://ad.doubleclick.net/clk;36224987;6328799;g?http://callback.terra.com.br/callback/?origem=banda_larga";
    //var url = "http://200.203.21.143:8102/callback/";
    //var url = "http://acesso.terra.com.br/callback/";
	var larg = "593";
    var alt = "418";
    var janela = "Atendimento_imediato";
    window.open(url,janela,"toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars="+scroll+",resizable=no,copyhistory=no,width="+larg+",height="+alt);
    return false;
}
var cache = {
    vtCity:"",
    dvs:new Array(),
    setCache:function(id,content) {
        //alert("Set - "+id);
        cache.dvs[id] = content;
    },
    getCache:function(id) {
        //alert("Get - "+id);
        return cache.dvs[id];
    },
    setVtCity:function(str) {
        cache.vtCity = str;
    },
    getVtCity:function(str) {
        return cache.vtCity;
    }
}

function showTechDesc(ele,tblCode) {
    ele.blur();
    hideAllDescs(ele.id);
    var tmp = ele.href;
    var qs = Querystring(tmp.toString());
    var barClass = ele.parentNode.className;
    var descClass = gebi("dvTech_"+ele.id).className;
    if(barClass.indexOf("Selected") >= 0) {
        barClass = barClass.replace("Selected","");
        descClass =  descClass.replace("Selected","");
        gebi("dvVitrineContent").innerHTML = cache.getVtCity();
    } else {
        if(gebi("cyVit").innerHTML != "") {
            var teste =  gebi("cyVit").innerHTML.replace(/(&lt;)/g,"<");
            teste =  teste.replace(/(&gt;)/g,">");
            cache.setVtCity(teste);
        }
        var cacheId = "dvTech_"+ele.id+"_"+tblCode;
        //alert(cacheId);
        var varCache = cache.getCache(cacheId);
        if(!varCache) {
            //alert(ele.href);
            var par = {"url":ele.href+"&ajax=1&echoDesc=true","idTarget":"dvTech_"+ele.id,"execBefore":"loading('dvTech_"+ele.id+"')","execAfter":"getVitrine('"+qs['th_code']+"','"+cacheId+"');scrollPage('"+ele.id+"')"};
 //{"url":ele.href+"&ajax=1&echoDesc=true","idTarget":"dvTech_"+ele.id,"execBefore":"loading('dvTech_"+ele.id+"')","execAfter":"createCache('dvTech_"+ele.id+"','"+cacheId+"');getVitrine('"+qs['th_code']+"','"+cacheId+"');scrollPage('"+ele.id+"')"};
            //;getVitrine('"+ele.href+"&ajax=1&echoVitrine=true','"+cacheId+"')
            //"dvTech_"+ele.id
            ajaxRun(par);
        } else {
            if(cache.getCache(cacheId+"_vitrine")) {
                gebi("dvVitrineContent").innerHTML = cache.getCache(cacheId+"_vitrine");
            } else {
                gebi("dvVitrineContent").innerHTML = cache.getVtCity();
            }
            //gebi("dvTech_"+ele.id).innerHTML = varCache;
        }
        barClass+= "Selected";
        descClass+= "Selected";
    }
    ele.parentNode.className = barClass;

    gebi("dvTech_"+ele.id).className = descClass;
    if(varCache) {
        scrollPage(ele.id);
    }
    return false;
}
function getVitrine(th_code,cacheId) {
    //alert(gebi("vitrine_"+th_code).innerHTML);
    if(gebi("vitrine_"+th_code).innerHTML != "") {
        gebi("dvVitrineContent").innerHTML = "";
        //alert(gebi("vitrine_"+th_code).innerHTML);
        var teste =  gebi("vitrine_"+th_code).innerHTML.replace(/(&lt;)/g,"<");
        teste =  teste.replace(/(&gt;)/g,">");
        cache.setCache(cacheId+'_vitrine',teste);
        gebi("dvVitrineContent").innerHTML = teste;
    } else {
        if(cache.getVtCity()) {
            gebi("dvVitrineContent").innerHTML = cache.getVtCity();
        }
    }
}
function scrollPage(id) {
    //alert(id);
    var url = window.location;
    url = url.toString();
    url = url.split("#");
    //alert(url[0]);
    //alert(url[0] + "#" + id);
    window.location = url[0] + "#" + id;
}
function getVitrine_2(th_code,cacheId) {
    cache.setCache(cacheId+'_vitrine',gebi("vitrine_"+th_code).innerHTML);
    alert(gebi("vitrine_"+th_code).innerHTML);
    if(cache.getCache(cacheId+"_vitrine")) {
        //gebi("dvVitrineContent").innerHTML = cache.getCache(cacheId+"_vitrine");
        gebi("dvVitrineContent").appendChild(gebi("vitrine_"+th_code));
    } else {
        gebi("dvVitrineContent").innerHTML = "";
    }
}
function getVitrine__(url,cacheId) {
    var par = {"url":url,"idTarget":"dvVitrineContent","execAfter":"cache.setCache('"+cacheId+"_vitrine',gebi('dvVitrineContent').innerHTML);"};
    //"dvTech_"+ele.id
    ajaxRun(par);
}
function hideAllDescs(idNoHide) {
    var a = document.getElementsByTagName("a");
    for(var x = 0 ; x < a.length ; x++) {
        if(a[x].id.indexOf("a_") >= 0 && idNoHide != a[x].id) {
            //a[x].style.border = "1px solid red;";
            //a[x].hideDesc = true;
            descClass = gebi("dvTech_"+a[x].id).className;
            descClass =  descClass.replace("Selected","");
            //descClass+= "Selected";
            gebi("dvTech_"+a[x].id).className = descClass;
            var barClass = a[x].parentNode.className;
            barClass = barClass.replace("Selected","");
            a[x].parentNode.className = barClass;
        }
    }
}

function showTechDescTab(ele,tab,tblCode) {
    //alert(ele.id);
    ele.blur();
    //alert(tblCode+" ** ");
    //@call ajaxRun({idTarget:"ID_ELEMENTO",url:"URL_CHAMADA",method:"POST",execBefore:"alert('Start')",execAfter:"alert('End')"})
    //alert(ele.href);
    //cache.setCache("dvTech_"+ele.id,"teste de cache");
    //alert(ele.hideDesc);

    var tmp = tab.href;
    //alert(tab.href);
    var qs = Querystring(tmp.toString());
    //if(!ele.hideDesc) {
        var cacheId = "dvTech_"+ele.id+"_"+tblCode;
        var varCache = cache.getCache(cacheId);
        //alert(cacheId);
        if(!varCache) {
            var par = {"url":tab.href+"&ajax=1&echoDesc=true","idTarget":"dvTech_"+ele.id,"execBefore":"loading('dvTech_"+ele.id+"')","execAfter":"createCache('dvTech_"+ele.id+"','"+cacheId+"');scrollPage('"+ele.id+"')"};
            ajaxRun(par);
        } else {
            scrollPage(ele.id);
            gebi("dvTech_"+ele.id).innerHTML = varCache;
        }
        //var par = {"url":tab.href+"&ajax=1&echoDesc=true","idTarget":"dvTech_"+ele.id,"execBefore":"loading('dvTech_"+ele.id+"')","execAfter":"createCache('dvTech_"+ele.id+"','"+cacheId+"')"};
        //ajaxRun(par);
        //ele.hideDesc = true;
    //} else {
        //ele.hideDesc = false;
        //alert("None");

    //}
    return false;
}
function createCache(id,cacheId) {
    var content = gebi(id).innerHTML
    //eval(gebi(id).innerHTML);
    cache.setCache(cacheId,content);
}

function loading(id) {
    gebi(id).innerHTML = "<span id=\"spLoading\">carregando...</span>";
}

function dbug(h){
  var r="";
  for(ef in h){
    r+=ef+" -  ";
  }
  alert(r);
}
function openSonoraPopup() {
    var url = "/popup_sonora/sonora.htm";
    var larg = "600";
    if(document.all) {
        larg = "550";
    }
    var alt = "300";
    var janela = "Popup_Sonora";
    window.open(url,janela,"toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars="+scroll+",resizable=no,copyhistory=no,width="+larg+",height="+alt);
    return false;
}
function openWifiPopup() {
    var url = "/popup_wifi/pop_wifi.htm";
    var larg = "575";
    var alt = "150";
    var janela = "Popup_wifi";
    window.open(url,janela,"toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars="+scroll+",resizable=no,copyhistory=no,width="+larg+",height="+alt);
    return false;
}
function openVoipPopup() {
    var url = "/popup_voip/index.htm";
    var larg = "476";
    var alt = "453";
    var janela = "Terra_VOIP";
    window.open(url,janela,"toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars="+scroll+",resizable=no,copyhistory=no,width="+larg+",height="+alt);
    return false;
}
function openSMSPopup() {
    var url = "/popup_sms/pop_sms.htm";
    var larg = "576";
    var alt = "253";
    var janela = "Alerta_SMS";
    window.open(url,janela,"toolbar=0,location=0,directories=0,status=no,menubar=0,scrollbars="+scroll+",resizable=no,copyhistory=no,width="+larg+",height="+alt);
    return false;
}
