﻿
/************************************
| Main Javascript Functions
*************************************/


//Detectar a versão do browser
//document.write(navigator.userAgent + "<br/>");

var ieversion = 0;
var safariversion = 0;
var chromeversion = 0;
var ffversion = 0;

if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
    /Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)
    safariversion = new Number(RegExp.$1);
    safariversion = (safariversion >= 4 ? safariversion : 0)
    //document.write(safariversion + "<br/>");
    //Safari >= 4
}

if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
    chromeversion = new Number(RegExp.$1);
    chromeversion = (chromeversion >= 4 ? chromeversion : 0)
    //document.write(chromeversion + "<br/>");
    //Chrome >= 4
}


if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
    ffversion = new Number(RegExp.$1);
    ffversion = (ffversion >= 3.5 ? ffversion : 0)
    //document.write(ffversion + "<br/>");
    //FF >= 3.5
}


if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
    ieversion = new Number(RegExp.$1);
    ieversion = (ieversion >= 8 ? ieversion : 0)
    //document.write(ieversion + "<br/>");
    //IE >= 8
}

if (ieversion == 0 && safariversion == 0 && chromeversion == 0 && ffversion == 0) {
    document.location.href = "/Resources/PaginasErro/Browser.asp";
}





function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}
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 MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
    }


function LoadTabelaClassificacao(ElementIdToUpdate, ElementIdToBlock, CdCompeticao,CdFase,CdGrupo,CdEpocaDesportiva) {
    $(ElementIdToBlock).mask("Aguarde, por favor...");
    $(ElementIdToUpdate).load("/competicao_nacional/tabela_classificacao.asp?CdCompeticaoNacional=" + CdCompeticao + "&CdFase=" + CdFase + "&CdGrupo=" + CdGrupo + "&CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
}

function LoadCalendarioJogosCompleto(ElementIdToUpdate, ElementIdToBlock, CdCompeticao, CdFase, CdGrupo, CdEpocaDesportiva,Old) {
    $(ElementIdToBlock).mask("Aguarde, por favor...");
    if (!Old) {
        $(ElementIdToUpdate).load("/competicao_nacional/calendario_total.asp?CdCompeticaoNacional=" + CdCompeticao + "&CdFase=" + CdFase + "&CdGrupo=" + CdGrupo + "&CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
    }
    else {
        $(ElementIdToUpdate).load("/competicao_nacional/calendario_historico_total.asp?CdCompeticaoNacional=" + CdCompeticao + "&CdFase=" + CdFase + "&CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
    }
}


function LoadCalendarioJogosInternacionaisCompleto(ElementIdToUpdate, ElementIdToBlock, CdCompeticao, CdFase, CdGrupo, CdEpocaDesportiva, Old) {
    $(ElementIdToBlock).mask("Aguarde, por favor...");
    if (!Old) {
        $(ElementIdToUpdate).load("/competicao_internacional/calendario_total.asp?CdCompeticaoInternacional=" + CdCompeticao + "&CdFase=" + CdFase + "&CdGrupo=" + CdGrupo + "&CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
    }
    else {
        $(ElementIdToUpdate).load("/competicao_internacional/calendario_historico_total.asp?CdCompeticaointernacional=" + CdCompeticao + "&CdFase=" + CdFase + "&CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
    }
}


function LoadClubesEscaloesByEpocaDesportiva(ElementIdToUpdate, ElementIdToBlock, CdEpocaDesportiva) {
    $(ElementIdToBlock).mask("Aguarde, por favor...");
    $(ElementIdToUpdate).load("/a_fpr/GetClubesEscaloesByEpocaDesportiva.asp?CdEpocaDesportiva=" + CdEpocaDesportiva, function() { $(ElementIdToBlock).unmask() });
}





var ua = navigator.userAgent
var ps = navigator.productSub
var dom = (document.getElementById) ? 1 : 0
var ie4 = (document.all && !dom) ? 1 : 0
var ie5 = (document.all && dom) ? 1 : 0
var nn4 = (navigator.appName.toLowerCase() == "netscape" && parseInt(navigator.appVersion) == 4)
var nn6 = (dom && !ie5) ? 1 : 0
var sNav = (nn4 || nn6 || ie4 || ie5) ? 1 : 0
var xPos, yPos, mx, my, scl, sct, ww, wh, obj, sl, st, ih, iw, vl, hl, sv, evlh, evlw, tbody
var doc_root = ((ie5 && ua.indexOf("Opera") < 0 || ie4) && document.compatMode == "CSS1Compat") ? "document.documentElement" : "document.body"
var PX = (nn6) ? "px" : ""


// INIT variaveis de acordo com o Browser
if (nn4 || nn6) {
    mx = "e.pageX"
    my = "e.pageY"
    scl = "window.pageXOffset"
    sct = "window.pageYOffset"
    if (nn4) {
        sl = "left"
        st = "top"
        ih = "clip.height"
        iw = "clip.width"
        vl = "'show'"
        hl = "'hide'"
        sv = "visibility="
    }
}
if (ie4 || ie5) {
    mx = "event.x"
    my = "event.y"
    scl = "eval(doc_root).scrollLeft"
    sct = "eval(doc_root).scrollTop"
    if (ie5) {
        mx = mx + "+" + scl
        my = my + "+" + sct
    }
}
if (ie4 || dom) {
    sl = "style.left"
    st = "style.top"
    ih = "offsetHeight"
    iw = "offsetWidth"
    vl = "'visible'"
    hl = "'hidden'"
    sv = "style.visibility="
}
if (ie4 || ie5 || ps >= 20020823) {
    ww = "eval(doc_root).clientWidth"
    wh = "eval(doc_root).clientHeight"
}
else {
    ww = "window.innerWidth"
    wh = "window.innerHeight"
    evlh = eval(wh)
    evlw = eval(ww)
    sbw = 15
}



//--------------------------------------------
//DETERMINAR A STRING PARA ENCONTRAR O OBJECTO
// NO DOM DE ACORDO COM O BROWSER
//--------------------------------------------
function getObjectCallString(object_name) {
    var ret;
    if (nn4 || nn6) {
        if (nn4) {
            ret = "document." + object_name + "."
        }
        else ret = "document.getElementById('" + object_name + "')."
    }
    if (ie4 || ie5) {
        ret = "document.getElementById('" + object_name + "')."
    }
    return ret;

}




//--------------------------------------------
//DETERMINAR A COORDENADA X DE UM OBJECTO
//--------------------------------------------
function getObjXPos(object_name) {
    var xPos

    if (!nn4) {
        //DETERMINAR A COORDENADA X DE UM OBJECTO
        xPos = object_name.offsetLeft;
        tempEl = object_name.offsetParent;
        while (tempEl != null) {
            xPos += tempEl.offsetLeft;
            tempEl = tempEl.offsetParent;
        }

    }
    else {
        xPos = eval(object_name).x
    }

    return xPos
}




//--------------------------------------------
//DETERMINAR A COORDENADA Y DE UM OBJECTO
//--------------------------------------------
function getObjYPos(object_name) {
    var YPos

    if (!nn4) {
        //DETERMINAR A COORDENADA Y DE UM OBJECTO
        yPos = object_name.offsetTop;
        tempEl = object_name.offsetParent;
        while (tempEl != null) {
            yPos += tempEl.offsetTop;
            tempEl = tempEl.offsetParent;
        }
    }
    else {
        yPos = eval(object_name).y
    }
    return yPos
}



//--------------------------------------------
//DETERMINAR A ALTURA DE UM OBJECTO
//--------------------------------------------
function getObjHeight(object_name) {
    var ret;
    ret = eval(getObjectCallString(object_name) + ih)

    return ret
}


//--------------------------------------------
//DETERMINAR A ALTURA DE UM OBJECTO
//--------------------------------------------
function getObjWidth(object_name) {
    var ret;
    ret = eval(getObjectCallString(object_name) + iw)

    return ret
}



//--------------------------------------------
//POSICIONAR O X E Y DE DETERMINADO OBJECTO (LAYER)
// USADO NESTE CASO PARA POSICIONAR DINAMICAMENTE OS 
// DE ACORDO COM A LOCALIZAÇÃO DAS OPÇÕES
//--------------------------------------------
function setPosSubmenuVert(obj, menu_name, offSetX, offSetY) {

    var xPos, yPos, altura, largura

    xPos = getObjXPos(obj)
    yPos = getObjYPos(obj)
    //alert(obj.id + "  X: " + xPos + "     Y: " + yPos)

    altura = getObjHeight(obj.id) + offSetY
    largura = getObjWidth(obj.id) + offSetX

    //alert(largura)
    //alert(parseInt(eval(ww+"+"+scl)));
    //alert(parseInt(eval(wh+"+"+sct)));

    eval(getObjectCallString(menu_name) + sl + "=xPos+largura+PX;");
    eval(getObjectCallString(menu_name) + st + "=yPos+altura+PX;");
    //alert(obj+sl+"=X+PX;");
    //document.getElementById(menu_name).style.top= '162px';
}





//--------------------------------------------
//ESCONDER, NO CASO DO IE, OS OBJECTOS QUE FICAM
// SOBREPOSTOS SOBRE AS LAYERS (dropdown,applet,iframe)
//--------------------------------------------

function hideShowCovered(objecto) {

    var tags = new Array("applet", "select");
    var el = objecto;



    var p = { x: 0, y: 0 };
    p.x = getObjXPos(objecto)
    p.y = getObjYPos(objecto)

    //alert(p.x + " - " + p.y)

    var EX1 = p.x;
    var EX2 = el.offsetWidth + EX1;
    var EY1 = p.y;
    var EY2 = el.offsetHeight + EY1;

    for (var k = tags.length; k > 0; ) {
        var ar = document.getElementsByTagName(tags[--k]);
        var cc = null;

        for (var i = ar.length; i > 0; ) {
            cc = ar[--i];

            p.x = getObjXPos(cc)
            p.y = getObjYPos(cc)

            var CX1 = p.x;
            var CX2 = cc.offsetWidth + CX1;
            var CY1 = p.y;
            var CY2 = cc.offsetHeight + CY1;

            //alert(hl)
            if (el.style.visibility == eval(hl) || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
                cc.style.visibility = "visible";
            } else {
                cc.style.visibility = "hidden";
            }
            //alert(cc.style.visibility + " - " + el.style.visibility)
        }
    }
}	



function pesquisar() {
    if (document.pesquisa && document.pesquisa.expressao_pesquisa && document.pesquisa.expressao_pesquisa.value.length > 0)
        document.pesquisa.submit();
    else
        alert("Indique, por favor, a expressão a pesquisar.")
}

function altera_estado_display(objecto, estado) {
    //alert(objecto + " - " + estado)
    //var imagem = new Image;
    var novo_estado = (estado == "none") ? "block" : "none"
    var nova_designacao = (estado == "none") ? "Detalhes [-]" : "Detalhes [+]"
    //var nova_imagem = (estado == "none") ? "menos.gif" : "mais.gif"
    //imagem.src = "../imagens/" + nova_imagem

    //alert(objecto)
    eval(getObjectCallString(objecto) + "style.display='" + novo_estado + "'")
    eval(getObjectCallString('link_' + objecto) + "innerHTML='" + nova_designacao + "'")


}

