/*

    Javascript for init

*/

// -------------------------- INIT

function IMS2_PagePreInit(){
    ;
}

//make the user controls available for use after the page has loaded
function IMS2_PagePostInit(){
    if(IMS2_MapManager){
        IMS2_MapManager.Init();
    }
    IMS2_OnPageResize(true);
    IMS2_DelayRegisterLayerControls();
    IMS2_DelayRegisterLegendControls();
    //IMS2_DisableForms();
}

//resize elements when browser window is changed
//a wait time is applied so that the event is only fired once as opposed to many times as the mouse is dragged
function IMS2_OnPageResize(force){
    if(!IMS2_isMSIE() || force){
        setTimeout("IMS2_MapManager.FireResizeAll();",IMS2_browserActionWaitTime);
        setTimeout("IMS2_TriggerZoombarResize();",IMS2_browserActionWaitTime);
    }
}

function IMS2_DisableForms(){
    var formElms = document.getElementsByTagName("form");
    if(formElms){
        if(formElms.length && formElms.length > 0){
            for(var i = 0;i < formElms.length;i++){
                var formElm = formElms[i];
                if(formElm){
                    formElm.onsubmit = function(){return(false);};
                }
            }
        }
    }
}

// -------------------------- HOOK

var IMS2_previousOnLoad = null;
var IMS2_previousOnResize = null;

function IMS2_HookOnLoad(){
    try{
        document.addEventListener("DOMContentLoaded", IMS2_OnLoadHookExec, false);
    }catch(e){
        IMS2_previousOnLoad = window.onload;
        window.onload = function(){
            IMS2_OnLoadHookExec();
        };
    }
}

function IMS2_OnLoadHookExec(){
    IMS2_PagePostInit();
    if(null != IMS2_previousOnLoad){
        IMS2_previousOnLoad();
    }
}

function IMS2_HookOnResize(){
    try{
        window.addEventListener("resize", IMS2_OnResizeHookExec, false);
    }catch(e){
        IMS2_previousOnResize = window.onresize;
        window.onresize = function(){
            IMS2_OnResizeHookExec();
        };
    }
}

function IMS2_OnResizeHookExec(){
    IMS2_OnPageResize(false);
    if(null != IMS2_previousOnResize){
        IMS2_previousOnResize();
    }
}

IMS2_HookOnLoad();
IMS2_HookOnResize();
IMS2_PagePreInit();