
//==============================================================
// MapF_Title ------------------------------------------------
MapF_Title = function() { }
//============> MapF_Title
//------------> MapF_Title.create(MapID)
//------------> MapF_Title.remove(MapID)
//------------> MapF_Title.Initial(MapID)
//------------> MapF_Title.getInnerHTML(MapID)
//------------> MapF_Title.onmouseover (e,elem)
//------------> MapF_Title.onmouseout (e,elem)
//------------> MapF_Title.EditStart (e,elem)
//------------> MapF_Title.EditEnd (e,elem)
//------------> MapF_Title.CheckSize (elem)
//------------> MapF_Title.getSize (StrToCount)

//--------------------------------------------------------------
//MapF_Title.create --------------------------------------------
MapF_Title.create = function(MapID, Ocode) {
    var Moptions = Map.MapObj[MapID]
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Hoptions = Holder.getOptions(MapID, Ocode);
    var FrameHolderSize = { w: 0, h: 0 };
    //----------------------------------
    var elem = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM")
    elem.innerHTML += MapF_Title.getInnerHTML(MapID);
   // MapF_Title.Initial(MapID);
    //----------------------------------
    var TitleLabel = Moptions.Title;
    var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleText")
    elem0.innerHTML = TitleLabel.replace(/\n/g, "<br>");
    //----------------------------------
    if (Hoptions.DefSize.size == "auto"){    
        var TitleSize = MapF_Title.getSize(TitleLabel);
        var elem1 = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_Container")
        elem1.style.width = (TitleSize.cols + 2) + "em";
        elem1.style.height = (TitleSize.rows + 2.5) + "em"; 
        FrameHolderSize = Map.getElem.Size(elem);
     }else {
        FrameHolderSize.w = Hoptions.DefSize.w ;
        FrameHolderSize.h = Hoptions.DefSize.h ;
    }
    return FrameHolderSize;       
        
    //----------------------------------


return true;      
}
////--------------------------------------------------------------
////MapF_Title.remove ----------------------------------------
//MapF_Title.remove = function(MapID) {
//    var Mcode = Map.getMcodeFromMapID(MapID);
//    var Ocode = "Title"
//    var Celem = document.getElementById(Mcode + "^Map^" + "MapContainer")
//    var elem = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_Container")
//    if (elem) {
//        Celem.removeChild(elem);
//        return true;
//    } else {
//        return false;
//    }
//}
////--------------------------------------------------------------
////MapF_Title.Initial ---------------------------------------
//MapF_Title.Initial = function(MapID) {
//    var Mopt = Map.MapObj[MapID]
//    //var Mdata = Map.MapObj[MapID]
//    var Mcode = Map.getMcodeFromMapID(MapID);
//    var Ocode = "Title";
//    
//    var TitleLabel = Mopt.Title;
//    var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleText")
//    elem0.innerHTML = TitleLabel.replace(/\n/g, "<br>");
//    var TitleSize = MapF_Title.getSize(TitleLabel);
//    
//    var elem = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_Container")
//    elem.style.width = (TitleSize.cols + 2) + "em";
//    elem.style.height = (TitleSize.rows + 1.5) + "em";
//    elem.style.left = Mopt.FrameHolder.Title.DefSize.x + "px";
//    elem.style.top = Mopt.FrameHolder.Title.DefSize.y + "px";
//}

//--------------------------------------------------------------
//MapF_Title.getInnerHTML ----------------------------------
MapF_Title.getInnerHTML = function(MapID) {
    var Mcode = Map.getMcodeFromMapID(MapID);
    var Ocode = "Title";
    // var TitleLabel= Map.MapObj[MapID].Title;
    var innerHTML = "";
    innerHTML += "<table id='" + Mcode + "^" + Ocode + "^" + "TitleTable' class='TitleTable' border='0' cellspacing='0' cellpadding='0'"
    innerHTML += "onmouseover= 'MapF_Title.onmouseover(event,this)'";
    innerHTML += "onmouseout='MapF_Title.onmouseout(event,this)' ";
    innerHTML += ">"
    innerHTML += "<tr id='" + Mcode + "^" + Ocode + "^" + "EditRow' valign='top'"
    innerHTML += ">"

    innerHTML += "<td valign='top' width=auto; align:left;>"
    innerHTML += "<img id='" + Mcode + "^" + Ocode + "^" + "EditImg' class='EditImg' alt=''title='Click to Edit Map Title' src='Images/Edit.png' "
    innerHTML += "onmouseover= 'MapF_Title.onmouseover(event,this)'";
    innerHTML += "onmouseout='MapF_Title.onmouseout(event,this)' ";
    innerHTML += "onclick='MapF_Title.EditStart(event,this)'";
    innerHTML += "/>";
    innerHTML += "<img id='" + Mcode + "^" + Ocode + "^" + "OkImg' class='EditImg' alt=''title='Click to Edit Map Title' src='Images/Ok.png' "
    innerHTML += "onmouseover= 'MapF_Title.onmouseover(event,this)'";
    innerHTML += "onmouseout='MapF_Title.onmouseout(event,this)' ";
    innerHTML += "onclick='MapF_Title.EditEnd(event,this)'";
    innerHTML += "/>";
    innerHTML += "</td>"
    innerHTML += "<td valign='top' width=auto; >"
    innerHTML += "<span id='" + Mcode + "^" + Ocode + "^" + "TitleText' class='TitleText'"
    //innerHTML+="onselectstart='return false'";
    // innerHTML+="onmousedown ='return false'";
    // innerHTML+="onmousemove='return false;'"
    innerHTML += ">"
    innerHTML += "Click to edit Map Title ........."
    innerHTML += "</span>";
    innerHTML += "<textarea id='" + Mcode + "^" + Ocode + "^" + "TitleEdit' class='TitleEdit' cols='50' rows='1'  type='textfield' wrap='off'";
    //            innerHTML += "onselectstart='return true'";
    //            innerHTML += "onselect ='return true'";
    innerHTML += "onkeyup='MapF_Title.CheckSize(this)'>"
    innerHTML += "Click to edit Map Title .........";
    innerHTML += "</textarea>"
    innerHTML += "</td>"
    innerHTML += "</tr>"
    innerHTML += "</table>"
    return innerHTML;
}
//--------------------------------------------------------------
//MapF_Title.onmouseover -----------------------------------
MapF_Title.onmouseover = function(e, elem) {
   // document.title = "[MapF_Title.onmouseover]-" + elem.id

    //----------------------------------
    if (!elem) { return false; }
    if (!elem.id) { return; }
    var Mcode = elem.id.split("^")[0];
    var Ocode = elem.id.split("^")[1];
    if (Ocode != "Title") { return false; }
    var Ecode = elem.id.split("^")[2];
    if (!Ecode) { return false; }

    // e.cancelBubble = true;
    //----------------------------------
    if (Ecode == "TitleTable" && !(MapPage.DeActiveEvent == Ocode)) {
        var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "EditImg");
        elem0.style.display = "block";
    }
    if (Ecode == "EditImg") {
        elem.src = "Images/Edit_over.png";
    }
    if (Ecode == "OkImg") {
        elem.src = "Images/Ok_over.png";
    }
    return true;
};
//--------------------------------------------------------------
//MapF_Title.onmouseout ------------------------------------
MapF_Title.onmouseout = function(e, elem) {
    document.title = "[MapF_Title.onmouseout]-" + elem.id
    //----------------------------------
    if (!elem) { return false; }
    if (!elem.id) { return; }
    var Mcode = elem.id.split("^")[0];
    var Ocode = elem.id.split("^")[1];
    if (Ocode != "Title") { return false; }
    var Ecode = elem.id.split("^")[2];
    if (!Ecode) { return false; }

    //   e.cancelBubble = true;
    //----------------------------------
    if (Ecode == "TitleTable" && !(MapPage.DeActiveEvent == Ocode)) {
        var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "EditImg");
        elem0.style.display = "none";
    }
    if (Ecode == "EditImg") {
        elem.src = "Images/Edit.png";
    }
    if (Ecode == "OkImg") {
        elem.src = "Images/Ok.png";
    }
    return true;
};
//--------------------------------------------------------------  
//MapF_Title.EditStart -------------------------------------
MapF_Title.EditStart = function(e, elem) {
    //----------------------------------
    if (!elem) { return false; }
    if (!elem.id) { return; }
    var Mcode = elem.id.split("^")[0];
    var Ocode = elem.id.split("^")[1];
    if (Ocode != "Title") { return false; }
    var Ecode = elem.id.split("^")[2];
    if (!Ecode) { return false; }
    if (Ecode != "EditImg") { return false; }
    //----------------------------------
    var MapID = Map.getMapIDFromCode(Mcode);
    Holder.SetCursorActive(MapID, Ocode,  "inactive");
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UL").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UM").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UR").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_ML").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MR").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BL").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BM").style.cursor = "default";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BR").style.cursor = "default";
    //----------------------------------
    elem.style.display = "none";
    MapPage.DeActiveEvent = Ocode;
    //----------------------------------
    var elem1 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleText");
    elem1.style.display = "none";
    var TitleLabel = elem1.innerHTML;
    TitleLabel = TitleLabel.replace(/<br>/g, "\n");
    TitleLabel = TitleLabel.replace(/<BR>/g, "\n");

    var elem2 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleEdit");
    elem2.style.display = "block";
    elem2.value = TitleLabel
    MapF_Title.CheckSize(elem2)
    var elem3 = document.getElementById(Mcode + "^" + Ocode + "^" + "OkImg");
    elem3.style.display = "block";

    // e.cancelBubble = true;
    return true;
};
//--------------------------------------------------------------  
//MapF_Title.EditEnd ---------------------------------------
MapF_Title.EditEnd = function(e, elem) {
    //----------------------------------
    if (!elem) { return false; }
    if (!elem.id) { return; }
    var Mcode = elem.id.split("^")[0];
    var Ocode = elem.id.split("^")[1];
    if (Ocode != "Title") { return false; }
    var Ecode = elem.id.split("^")[2];
    if (!Ecode) { return false; }
    if (Ecode != "OkImg") { return false; }

    //----------------------------------
    var MapID = Map.getMapIDFromCode(Mcode);
   // var Fopt = Map.MapObj[MapID].FrameHolder.Title;
    Holder.SetCursorActive(MapID, Ocode,  "active");
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UL").style.cursor = "nw-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UM").style.cursor = "n-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_UR").style.cursor = "ne-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_ML").style.cursor = "w-resize";
//    if (Fopt.move) {
//        document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM").style.cursor = "move";
//    } else {
//        document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM").style.cursor = "default";
//    }
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MR").style.cursor = "e-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BL").style.cursor = "sw-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BM").style.cursor = "s-resize";
//    document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_BR").style.cursor = "se-resize";
    //----------------------------------
    elem.style.display = "none";
    MapPage.DeActiveEvent = null;
    //----------------------------------
    var elem2 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleEdit");
    elem2.style.display = "none";
    var TitleLabel = elem2.value;
    var TitleSize = MapF_Title.getSize(TitleLabel);

    var elem1 = document.getElementById(Mcode + "^" + Ocode + "^" + "TitleText");
    elem1.innerHTML = TitleLabel.replace(/\n/g, "<br>");
    elem1.style.display = "block";

    var elem4 = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_Container");
    elem4.style.width = (TitleSize.cols + 0) + "em";
    elem4.style.height = (TitleSize.rows + 1.8) + "em";

    var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM");
    elem0.style.width = "auto";
    elem0.style.height = "auto";

    // e.cancelBubble = true;
    return true;
};
//--------------------------------------------------------------  
//MapF_Title.CheckSize  ---------------------------------------
MapF_Title.CheckSize = function(elem) {
    //----------------------------------
    if (!elem) { return false; }
    if (!elem.id) { return; }
    var Mcode = elem.id.split("^")[0];
    var Ocode = elem.id.split("^")[1];
    if (Ocode != "Title") { return false; }
    var Ecode = elem.id.split("^")[2];
    if (!Ecode) { return false; }
    if (Ecode != "TitleEdit") { return false; }
    //----------------------------------
    var TextareaSize = { cols: 0, rows: 0 }
    TextareaSize = MapF_Title.getSize(elem.value)
    if (TextareaSize.cols < 2) { TextareaSize.cols = 2 }
    if (TextareaSize.rows < 1) { TextareaSize.cols = 1 }
    elem.cols = TextareaSize.cols + 4;
    elem.rows = TextareaSize.rows;
    //----------------------------------
    var elem0 = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_Container");
    var NewSize = Map.getElem.Size(elem)
    elem0.style.width = (NewSize.w + 58) + "px";
    elem0.style.height = (NewSize.h + 28) + "px";

    var Elem2 = document.getElementById(Mcode + "^" + Ocode + "^" + "Holder_MM");
    Elem2.style.width = parseInt(NewSize.w + 58 - 18) + "px";
    Elem2.style.height = parseInt(NewSize.h + 28 - 18) + "px";
    // elem0.style.width=15+TextareaSize.cols+ "em";
    //  elem0.style.height=(5 + TextareaSize.rows ) + "em";

    return true;
}
//--------------------------------------------------------------  
//MapF_Title.getSize  ---------------------------------------
MapF_Title.getSize = function(StrToCount) {
    var ExitWhile = false;
    var hard_lines = 0;
    var First = 1;
    var Last = 0;
    var w = 0;
    var MaxWidth = 0;
    var TextareaSize = { cols: 0, rows: 0 }
    while (true) {
        Last = StrToCount.indexOf("\n", First);
        if (Last == -1) { Last = StrToCount.length; ExitWhile = true; }
        w = Last - First
        First = Last + 1
        if (MaxWidth < w) { MaxWidth = w }
        hard_lines++;
        if (ExitWhile) { break; }
    }
    if (MaxWidth == 0) { MaxWidth = StrToCount.length }
    TextareaSize.cols = MaxWidth;
    TextareaSize.rows = hard_lines;
    return TextareaSize;
}