//==============================================================
// Navigator ------------------------------------------------
Navigator = function() { }
Navigator.BackGroundSlider = false;



//Navigator.NavMapImage = new Image;



//==============================================================
//Navigator.create ------------------------------------
Navigator.create = function(MapID) {
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Moptions = Map.MapObj[MapID];
    //----------------------------------
    Navigator.remove(MapID);
    document.getElementById(Mcode + "^Navigator^Container").innerHTML += Navigator.getInnerHTML(MapID);

    
    
    Moptions.Navigator.visible = true;
    var Ocode;
    var Hoptions;
    var w = 0;

    //----------------------------------
    Ocode = "ScalebarH"
    //Moptions.ToolsHolderList += "<" + Ocode + ">";
    Moptions.ToolsHolderList += ";" + Ocode;
    Moptions.ToolsHolderArray = Moptions.ToolsHolderList.split(";");
    Hoptions = Holder.getOptions(MapID, Ocode);
    Hoptions.visible = true;
    var ToolsHolderName = "ToolsHolder";
    var ToolsAlign = "Vertical";
    var StartToolsPosition = { x: 0, y: 4 };
    var ToolsPadding = 0
    w = Tools.create(MapID, Ocode, ToolsHolderName, Hoptions.ToolsList, ToolsAlign, StartToolsPosition, ToolsPadding);

    //----------------------------------
    Ocode = "NavUpTools"
    Moptions.ToolsHolderList += ";" + Ocode;
    Moptions.ToolsHolderArray = Moptions.ToolsHolderList.split(";");

    Hoptions = Holder.getOptions(MapID, Ocode);
    Hoptions.visible = true;
    Hoptions.ToolsList = "ScaleCounter";
    //Hoptions.ToolsList = "Vector;HillShadow;Satelite;Space(7,0);ScaleCounter";

    Hoptions.ToolsArray = Hoptions.ToolsList.split(";");
    //----------------------------------
    var ToolsHolderName = "ToolsHolder";
    var ToolsAlign = "Horizontal";
    var ToolsList = Hoptions.ToolsList;
    var StartToolsPosition = { x: 75, y: 7 };
    var ToolsPadding = 0
    w = Tools.create(MapID, Ocode, ToolsHolderName, ToolsList, ToolsAlign, StartToolsPosition, ToolsPadding);
    //----------------------------------

    //----------------------------------
    Ocode = "NavDowTools"
    Moptions.ToolsHolderList += ";" + Ocode;
    Moptions.ToolsHolderArray = Moptions.ToolsHolderList.split(";");
    Hoptions = Holder.getOptions(MapID, Ocode);
    Hoptions.visible = true;
    Hoptions.ToolsList = "ZoomIn;ZoomOut;ReCenter;PreView;Seperator;Pan;Magnifying;Seperator;OverView;NormalView;CloseView"
    Hoptions.ToolsArray = Hoptions.ToolsList.split(";");
    //----------------------------------
    var ToolsHolderName = "ToolsHolder";
    var ToolsAlign = "Horizontal";
    var ToolsList = Hoptions.ToolsList;
    var StartToolsPosition = { x: 0, y: 2 };
    var ToolsPadding = 0
    w = Tools.create(MapID, Ocode, ToolsHolderName, ToolsList, ToolsAlign, StartToolsPosition, ToolsPadding);
    //----------------------------------

    Ocode = "Navigator"
    Ecode = "ColMM"
    var StartToolsPosition = { x: 0, y: 0 };
    NavMap.create(MapID, Ocode, Ecode, StartToolsPosition)
    Tools.Magnifying.NavigatorElemCreate(MapID, Ocode, Ecode, StartToolsPosition)
    Tools.BackGround.NavigatorElemCreate(MapID, Ocode, Ecode, StartToolsPosition)
}
//--------------------------------------------------------------
//Navigator.remove --------------------------------------------
Navigator.remove = function(MapID) {
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Ocode = "Navigator";
    var Celem = document.getElementById(Mcode + "^Navigator^" + "Container")
    var elem = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder")
    if (elem) {
        Celem.removeChild(elem);
        return true;
    } else {
        return false;
    }
}
//--------------------------------------------------------------
//Navigator.getInnerHTML ----------------------------------
Navigator.getInnerHTML = function(MapID) {
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Ocode = "Navigator";
    var innerHTML = "";
    innerHTML += "<table id='" + Mcode + "^" + Ocode + "^" + "Holder' class='NavigatorHolder'";
    innerHTML += "border='0' cellpadding='0' cellspacing='0' >";
    innerHTML += "<tr>"
    innerHTML += "<td id='" + Mcode + "^" + Ocode + "^" + "ColL' valign='top' ";
    innerHTML += " style='width: 11px; height: 193px; ";
    innerHTML += " background-image: url(Images_NavigatorNew/NavigatorBg_L.png);background-repeat: no-repeat;'>"
    innerHTML += "</td>"
    innerHTML += "<td id='" + Mcode + "^" + Ocode + "^" + "ColM' valign='top' ";
    innerHTML += " style='width: 11px; height: 193px; '>";
    innerHTML += "<div id='" + Mcode + "^" + "NavUpTools" + "^" + "ToolsHolder'";
    innerHTML += " style='position: relative; display: block; width: 207px; height: 31px; ";
    innerHTML += " background-image: url(Images_NavigatorNew/NavigatorBg_MU.png);background-repeat: repeat-x;'>"
    innerHTML += "</div>";
    innerHTML += "<div id='" + Mcode + "^" + Ocode + "^" + "ColMM'";
    innerHTML += " style='position: relative; display: block; width: 207px; height: 130px;top: 0px; overflow: hidden;'>";
    //----------------------------------

    //----------------------------------
    innerHTML += "</div>";
    innerHTML += "<div id='" + Mcode + "^" + "NavDowTools" + "^" + "ToolsHolder'";
    innerHTML += " style='position: relative; display: block; width: 207px; height: 32px; ";
    innerHTML += " background-image: url(Images_NavigatorNew/NavigatorBg_MB.png);background-repeat: repeat-x;'>"
    innerHTML += "</div>";
    innerHTML += "</td>"
    innerHTML += "<td id='" + Mcode + "^" + "ScalebarH" + "^" + "ToolsHolder' valign='top' ";
    innerHTML += " style='position: relative; display: block;width: 44px; height: 193px; ";
    innerHTML += " background-image: url(Images_NavigatorNew/NavigatorBg_R.png);background-repeat: no-repeat;'>";
    innerHTML += "</td>"
    innerHTML += "</tr>";
    innerHTML += "</table>";
    return innerHTML;
}
//--------------------------------------------------------------
//Navigator.SetDisplayMode ------------------------------------
Navigator.SetDisplayMode = function(MapID, mode) {
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Moptions = Map.MapObj[MapID];
    var Ocode = "Navigator";
    //----------------------------------
    if (mode == "NavMap") {
        NavMap.SetDisplay(MapID, Ocode, "block")
        Tools.BackGround.NavigatorElemSetDisplay(MapID, Ocode, "none")
        Tools.Magnifying.NavigatorElemSetDisplay(MapID, Ocode, "none")
    } else if (mode == "BackGround") {
        NavMap.SetDisplay(MapID, Ocode, "none")
        Tools.BackGround.NavigatorElemSetDisplay(MapID, Ocode, "block")
        Tools.Magnifying.NavigatorElemSetDisplay(MapID, Ocode, "none")
    } else if (mode == "Magnifying") {
        NavMap.SetDisplay(MapID, Ocode, "none")
        Tools.BackGround.NavigatorElemSetDisplay(MapID, Ocode, "none")
        Tools.Magnifying.NavigatorElemSetDisplay(MapID, Ocode, "block")
    }
}
//--------------------------------------------------------------
//==============================================================






function CTO_Nav_Bg_SlideTo(Mcode,Ecode) {
    // Use clearInterval before setting the new timer in order for the old one to stop.
    if (Slide_Interval != -1) { clearInterval(Slide_Interval); }
    var x = 0;
    if (Ecode == 'Vector') {x = 0;}
    if (Ecode == 'HillShadow') {x = -207;}
    if (Ecode == 'Satelite') {x = -414;}

    Slide_Interval = setInterval('CTO_Nav_Bg_slide("' +Mcode +'",'+ x + ')', 5);
    return;
}

function CTO_Nav_Bg_slide(Mcode,NewSlideVal) {
    var speed = (NewSlideVal - CurSlideVal) * 0.16;
    if (NewSlideVal < CurSlideVal) {
        if (CurSlideVal + speed - 1 < NewSlideVal) { clearInterval(Slide_Interval); return; }
    } else {
        if (CurSlideVal + speed + 1 > NewSlideVal) { clearInterval(Slide_Interval); return; }
    }
    CurSlideVal += speed;
    document.getElementById( Mcode + "^Navigator^BackGround_Slider").style.left = CurSlideVal + 'px';
}