// SCRIPTS GERAIS
var Logger = Class.create();
Logger.message = function(info) {
    alert(info);
}

Event.observe(window, 'load', page_loaded);
Event.observe(window, 'resize', resizeScroll);


function isAccessible(element) {
    var accessible = true;
    $(element).ancestors().each(
        function(e) {
            if ( e.style.display == 'none' ) {
                accessible = false;
                throw $break;
            }
        }
    );
    return accessible;
}


function page_loaded(evt) {

    /** FOCUS */
    var firstInput = false;

    for (f=0; f < document.forms.length; f++){

        for(i=0; i < document.forms[f].length; i++) {
            if (document.forms[f][i].type != "hidden" && document.forms[f][i].type != "button" && document.forms[f][i].type != "submit") {
                if (document.forms[f][i].disabled != true && document.forms[f][i].disabled != "disabled"
                    && document.forms[f][i].readonly != true && document.forms[f][i].readonly != "readonly") {
                    if(document.forms[f][i].id != "") {
                        if ( isAccessible(document.forms[f][i]) ) {
                              document.forms[f][i].focus();
                               var firstInput = true;
                        }
                    }
                }
            }

            if (firstInput == true)
                break;
        }

        if (firstInput == true)
            break;
    }
    /** // FOCUS */

    /** MENU */
    if($("menu")) {
        var menuArray = $A($("menu").getElementsByClassName("menuItem"));
        if(menuArray) {
            menuArray.each(function(o) {

                // REDIMENSIONA MENU
                var menuElement = $(o);
                var percentMenu = 100;

                if(!!(window.attachEvent && !window.opera)) { // Se for IE
                    percentMenu = 99.9;
                }

                menuElement.style.width = (percentMenu / menuArray.length) + "%";

                // TAB SELECIONADA
                var menuClassName = $("title").className;
                var menuColorName = menuClassName.replace("title", "");
                if(menuElement.className.search(menuColorName) != -1){
                    menuElement.className = menuElement.className + "High";
                }

                Event.observe(o, 'mouseover', menuOver, false);
                Event.observe(o, 'mouseout', menuOut, false);

            });
        }
    }
    /** // MENU */

    /** TABS */
    if($("submenuSet")){
        var tab = $A($("submenuSet").getElementsByClassName("tab"));
        if(tab) {
            tab.each(function(o) {
                Event.observe(o, 'mouseover', tabOver, false);
                Event.observe(o, 'mouseout', tabOut, false);
            });
        }
    }
    /** // TABS */

    /** BUTTONS */
    var contentButtons = $A(document.getElementsByClassName("button"));
    if(contentButtons) {
        contentButtons.each(function(o) {
            var buttonNameSize = o.value.length;
            var buttonClassName = o.className;

            //alert(o.id);

            if(buttonNameSize <= 10) {
                Event.observe(o, 'mouseover', changeImage, false);
                Event.observe(o, 'mouseout', changeImage, false);
            } else {
                o.className = "buttonBig";
                Event.observe(o, 'mouseover', changeImage, false);
                Event.observe(o, 'mouseout', changeImage, false);
            }
        });
    }
    /** // BUTTONS */

    /** TAMANHO DO SCROLL */
    resizeScroll();
    /** // TAMANHO DO SCROLL */
}

/** REDIMENSIONA SCROLL */
function resizeScroll(){
    var actionBarSize = $("actionBar") ? $("actionBar").offsetHeight : 0;
    var header = $("header") ? $("header").offsetHeight : 16;
    var date = $("date") ? $("date").offsetHeight : 0;
    var menu = $("menu") ? $("menu").offsetHeight : 0;
    var title = $("title") ? $("title").offsetHeight : 0;
    var footer = $("footer") ? $("footer").offsetHeight : -15;
    var browserFix = +19;

    //if(!!(window.attachEvent && !window.opera)) { // Se for IE
        //browserFix = -3;
    //}

    var newSize = $("main").offsetHeight -
                    (header +
                    date +
                    menu +
                    title +
                    actionBarSize +
                    footer + browserFix) + "px";

    Element.setStyle("content",{height: newSize});

}
/** // REDIMENSIONA SCROLL */


/** LIST && BUTTON */


var Colorizer = Class.create();

/*Colorizer.prototype = {
    initialize: function() {},

    changeLineColor: function(evt, element) {
        //var element = Event.element(evt);
        //alert(element.id);
        change(element, 'listaCellData listBgGrey', 'listaCellData listBgYellow');
    },

    register: function(o) {
        Event.observe(o, 'mouseover', this.changeLineColor.bindAsEventListener(this, o), false);
        Event.observe(o, 'mouseout', this.changeLineColor.bindAsEventListener(this, o), false);
    }
}
*/

function changeLineColor(evt, element) {
    //var element = Event.element(evt);
    //alert(element.id);
    var elementClass = element.className;
    //alert(elementClass);
    if(elementClass.search("High") != -1) {
        change(element, elementClass, elementClass + 'High');
    } else {
        change(element, elementClass, elementClass.replace('High',''));
    }
}

function changeImage(evt) {

    var element = getElement(evt);
    var buttonNameSize = element.value.length;
    var classOriginal = "";
    var classHighlight = "";

    if(element){

        if (element.value == "...") {
            classOriginal = "buttonEtcLow";
            classHighlight = "buttonEtcHigh";
        } else if(element.className == "buttonBig" || element.className == "buttonBigHigh") {
            classOriginal = "buttonBig";
            classHighlight = "buttonBigHigh";
        } else {
            classOriginal = "buttonLow";
            classHighlight = "buttonHigh";
        }

        change(evt, classOriginal, classHighlight);
    }
}

function change(evt, originalItem, changeItem) {
    var element = getElement(evt);
    if(element.className == originalItem || element.className != changeItem) {
        element.className = changeItem;
    } else {
        element.className = originalItem;
    }
}
/** // LIST && BUTTON */

/** MENU */
function menuOver(evt) {
    var element = Event.element(evt); // Elemento do menu
    var elementClassName = element.className;
    var classNameChange = elementClassName + "High";

    // MUDA ESTILO DO MENU
    if(elementClassName.search("High") != -1){
    } else {
        element.className = classNameChange;
    }

    var subMenuSplit = element.id.split("menuItem");
    var subMenuNumber = subMenuSplit[1];
    var subMenuName = "submenuItem" + subMenuNumber;
    var subMenuElement = $(subMenuName);


    var menuClassName = $("title").className;
    var menuColorName = menuClassName.replace("title", "");

    /*for (i = 1; i < 6; i++) {
        if(i != subMenuNumber) {
            // HIGHLIGHT
            highlightMenu(i);
        }
    }*/
}

function menuOut(evt) {
    var element = Event.element(evt);
    var elementClassName = element.className;

    var subMenuSplit = element.id.split("menuItem");
    var subMenuName = "submenuItem" + subMenuSplit[1];
    var menuName = element;
    var mousePosY = Event.pointerY(evt);
    var subMenuElement = $(subMenuName);
    var menuHeight = subMenuElement.offsetHeight;

    var itemPosY = menuName.offsetTop + menuHeight;

    // MUDA ESTILO DO MENU
    highlightMenu(subMenuSplit[1]);
}

function highlightMenu(elementNumber){
    var menuClassName = $("title").className;
    var menuColorName = menuClassName.replace("title", "");
    var menuItemI = "menuItem" + elementNumber;

    if($(menuItemI).className.search("High") != -1){
        if($(menuItemI).className.search(menuColorName) != -1){
            // Nao faz nada
        } else {
            return $(menuItemI).className = $(menuItemI).className.replace("High", "");
        }
    }
}


function submenuClose(element) {
    var divSubmenu = element;
    var submenuLength = divSubmenu.id.length;
    /*alert(submenuLength);
    alert($(divSubmenu).id.substring(submenuLength-1, submenuLength));*/
    var numberSubmenu = $(divSubmenu).id.substring(submenuLength, (submenuLength-1));
    divSubmenu.style.display = 'none';
    highlightMenu(numberSubmenu);
}
/** // MENU */

/** TABS */
function tabOver(evt) {
    var element = Event.element(evt);
    var classNames = $A(element.classNames());
    classNames.each(function(each) {
        if(!each.endsWith("High") && each.match(/tab\w+/)) {
            element.removeClassName(each);
            element.addClassName(each + "Hover");
        }
    });
}

function tabOut(evt) {
    var element = Event.element(evt);

    var classNames = $A(element.classNames());
    classNames.each(function(each) {
        if(each.match(/tab\w+Hover/)) {
            element.removeClassName(each);
            element.addClassName(each.replace("Hover", ""));
        }
    });
}
/** TABS */

/** ROLLOVER IMAGE */
function rollOverImage(element){
    var elementImage = element;
    var imageId = elementImage.getStyle('background-image');
    var searchOne = imageId.search('_high');

    if(!searchOne != -1){
        elementImage.setStyle({'background-image' : imageId.replace('.gif', '_high.gif')});
    }
}
function rollOutImage(element){
    var elementImage = element;
    var imageId = elementImage.getStyle('background-image');
    var searchOne = imageId.search('_high');

    if(searchOne != -1){
        elementImage.setStyle({'background-image' : imageId.replace('_high', '')});
    }
}
/** ROLLOVER IMAGE */

/** MENU */
function menuGoTo(path, divContent){
    var varLocation = path;

    $(divContent).style.display = 'none';
    window.location = varLocation;
    Windows.closeAll();
}

function mouseoutClose(evt) {
    var element = getElement(evt);
    Event.observe(element, 'mouseover', stopTimeout, false);
}

var timer;
var checkMouse;
function timeoutClose() {
    checkMouse = true;
    timer = setTimeout("clickoutClose()", 1500);
}
function stopTimeout() {
    if(timer) {
        clearTimeout(timer);
        checkMouse = false;
    }
}
function clickoutClose() {
    if(checkMouse == true) {
        $('expand').style.display = 'none';
        Windows.closeAll();
    }
}
function mouseoverSubmenu() {
    Event.observe($('expand'), 'mouseover', timeoutClose, false);
}

















/** // MENU */


function atualizaDiv() {
    // Atualiza o select
    var req;
    if (window.XMLHttpRequest){
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject){
       req =  new ActiveXObject('Microsoft.XMLHTTP');
    }else{
       req =  new ActiveXObject('Microsoft.XMLHTTP2');
    }


    req.onreadystatechange= function(){
        if (req.readyState == 4){ // 4: requisição terminada, resposta pronta.
            if (req.status == 200){ // OK
                //Resposta disponivel
                result = req.responseText;
                document.getElementById('divBandeira').innerHTML = result;
            }
        }
    }

    //req.send(params);
}


/** TOOLBAR */
function getToolbar(element) {
    var varElement = element;
    var selectValue = varElement.options[varElement.selectedIndex].text;
    var toolbarName = $(element.id + "Toolbar");
    var arrayButtons = toolbarName.childElements();

    if(selectValue != "" && selectValue != null) {
        arrayButtons.each(function(o) {
                                        if(o.alt == "editar" || o.alt == "remover")
                                            //alert(1);
                                            o.style.display = "inline";
                                    });
    } else {
        arrayButtons.each(function(o) {
                                        if(o.alt == "editar" || o.alt == "remover")
                                            o.style.display = "none";
                                    });
    }
}
/** // TOOLBAR */

