//<![CDATA[

/*****
 * main.js
 * Autor: Néstor Fioritto Briano @ http://www.nfbriano.com
 * Copyright © 2009
 * Criado em: Abril/2009
 * ----------------------------------------------------
 * Rotinas genéricas em javaScript
 * Dependências: JQuery
 */

/*****
 * função exibição de uma URL numa janela diferente
 * parâmetros:
 *      url = URL a ser carregada
 *	perguntaUsuario = se TRUE, pede do usuário confirmação de exibição
 *	popUp = se TRUE, exibe a URL em janela pop. SE FALSE, será em nova janela cheia
 ***/
function openNewWindow(url, perguntaUsuario, popUp) {
    // solicita autorização do usuário para continuar
    if (perguntaUsuario) {
        var msg = 'ATENÇÃO: A página solicitada está fora de nosso servidor.'+eol()+'Não nos responsabilizamos pelo seu conteúdo!'+eol()+eol()+'Deseja continuar?';
        if (!confirm(msg)) return false;
    }
    var newWindow = null;
    // verifica se é para abrir popup ou janela cheia
    if (popUp)
        newWindow = window.open(url,"popup","toobar=no, location=no, menubar=no, scrollbars=yes, resizable=no, status=no, width=730, height=600");
    else
        newWindow = window.open(url);
    newWindow.focus();
    return newWindow;
} // openNewWindow

/*****
 * função para retorno do EOL (fim de linha)
 * dependendo do tipo de OS do pc local
 ***/
function eol() {
    return (navigator.platform.indexOf('Mac') > -1) ? "\r" : "\n";
} // eol

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,'') }

/*****
 *
 */
function focusField(id) {
    document.getElementById(id).focus();
}

/*****
 * Cookie handling
 */
var Cookie = {
    read: function (name) {
        var arrCookies = document.cookie.split ('; ');
        for (var i=0; i<arrCookies.length; i++) {
            var arrCookie = arrCookies[i].split ('=');

            if (arrCookie[0] == name) {
                return decodeURIComponent (arrCookie[1]);
            }
        }
        return false;
    },

    write: function (name, value, expires, path) {
        if (expires) {
            var date = new Date ();
            date.setTime (date.getTime () + (((((expires * 24) * 60) * 60) * 1000)));
            expires = '; expires=' + date.toGMTString ();
        }
        else expires = '';

        if (!path) path = '/';

        document.cookie = name+'='+encodeURIComponent (value)+expires+'; path='+path;
    },

    remove: function (name) {
        this.write (name, '', -1);
    }
} // Cookie

/*****
 * Detects if can set a cookie in the browser
 */
function browserSupportsCookies() {
    Cookie.write('cookiesEnabled', 1);
    var boolCookiesEnabled = Cookie.read('cookiesEnabled');
    Cookie.remove('cookiesEnabled');
    if (boolCookiesEnabled != 1) {
        return false;
    }
    return true;
} // function browserSupportsCookies

/*****
 * Detects if the browser supports Ajax
 */
function browserSupportsAjax() {
    if (typeof XMLHttpRequest == "undefined" && typeof ActiveXObject == "undefined" && window.createRequest == "undefined") {
        return false;
    }
    return true
} // function browserSupportsAjax

/*****
 * Detects if the browser can use ActiveX if necessary
 */
function ActiveXEnabledOrUnnecessary() {
    if (typeof ActiveXObject != "undefined") {
        var xhr = null;
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
                try {
                    xhr = new ActiveXObject("Msxml2.XMLHTTP.4.0");
                } catch (e3) {
                    xhr = null;
                }
            }
        }
        if (xhr == null) { return false }
    }

    return true;
} // function ActiveXEnabledOrUnnecessary

/*****
 * função auto-load para todos as páginas
 ***/
$(function(){
    /* urls externo */
    $(".url_external").bind("click", function(e) {
        // abrea o link em nova janela cheia
        openNewWindow(this.href, false, false);
        return false;
    });

    $(".url_popup").bind("click", function(e) {
        // abrea o link em nova janela popup
        openNewWindow(this.href, false, true);
        return false;
    });

    /* urls internos permitidos */
    var linksInternos =
        "#manutencao_lnk, #glossario_lnk, #normas_lnk, #organizer_lnk, "+
        "#manutusuarios-lnk, #manutgruposusuarios-lnk, "+
        "#manutgrupos-lnk, #manutareas-lnk, #manutclientes-lnk, "+
        "#manutnormas-lnk, #manutglossarios-lnk, #manuttopicosorganizer-lnk, "+
        "#manutcategoriasorganizer-lnk, "+
        "#relatacessosok-lnk, #relatacessosdeny-lnk";
    $(linksInternos).bind("click", function(e) {
        permiteMudancaPagina();
    });
});

//]]>
