// ---------------- framework functions ----------------
includejQuery(); //Make sure we have jQuery 

function includejQuery()
{
    if (typeof jQuery == 'undefined')
    {
        var head = document.getElementsByTagName("head")[0];
        script = document.createElement('script');
        script.id = 'jQuery';
        script.type = 'text/javascript';
        script.src = '/cms/jquery-1.4.4.min.js';
        //script.src = 'http://code.jquery.com/jquery-1.4.4.js';//
        head.appendChild(script);
    }
}

function registerGlobalVariable(strName, strValue)
{
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    //script.src = 'helper.js';
    if (strValue == null)
        script.text = "var " + strName + ";"
    else
        script.text = "var " + strName + "='" + strValue + "';"
    head.appendChild(script);
}

function PromptReply(isCancelled)
{
    RemoveAnOverlay();
    $("#PromptOverlay").css("display", "none")
    var PromptOverlay = $("#PromptOverlay");
    textfields = $(".AReply")
    if (!isCancelled)
    {
        Str = "";
        for (var i = 0; i < textfields.length; i++)
            Str += '"' + textfields[i].value + '",';
        if (Str.length > 1)
            Str = Str.substr(0, Str.length - 1);
        if (globalCB != null)
            eval('globalCB(' + Str + ')')
    }
    $("#PromptOverlay").remove();
}

function Alert(strmsg, strBody)
{
    Prompt(null, strmsg, null, null, strBody)
}

function Confirm(cb, strmsg, arrButtons)
{
    Prompt(cb, strmsg, null, arrButtons)
}

function Prompt(callBackFunction, message, arrFields, arrButtons, strBody)
{
    CreateAnOverlay();
    if (strBody == null)
        strBody = "";
    if (typeof (globalCB) === 'undefined')
        registerGlobalVariable("globalCB")

    globalCB = callBackFunction;
    var AnswerField = '<table border="0" style="width:100%">';
    for (element in arrFields)
    {
        question = arrFields[element];
        defaultVal = "";
        if (question.indexOf(";") > 0)
        {
            defaultVal = question.substr(question.indexOf(";") + 1); ;
            question = question.substr(0, question.indexOf(";"));
        }
        AnswerField += '<tr><td nowrap style="width:2%">' + question + ':</td><td><input class="AReply" id="Reply' + element + '" type="Text" onKeyUp="if((event.keyCode==10)||(event.keyCode==13)) {PromptReply(false)}; if (event.keyCode==27) {PromptReply(true)};" value="' + defaultVal + '" style="width:100%"></td></tr>'
    }
    AnswerField += '</table>'

    var submitButtons = ''
    if (arrButtons == null)
    {
        arrButtons = ["OK"]
    }
    for (button in arrButtons)
    {
        Cancelled = true;
        buttonClass = ""
        if (button == 0)
        {
            Cancelled = false;
            buttonClass = 'class="PromptButton"';
        }
        submitButtons += '<input ' + buttonClass + ' type="button" value="' + arrButtons[button] + '" onclick="PromptReply(' + Cancelled + ')" onkeyup="if (event.keyCode==27) {PromptReply(true)}">'
    }

    var d = document;
    var PromptOverlayWidth = 200;
    message = '<div style="display:inline;text-align:center;background-color: yellow; padding:0px;width:' + PromptOverlayWidth + '">' + message + '</div>'
    var PromptOverlayHTML = '<div style="text-align:left;width:' + PromptOverlayWidth + 'px; padding: 3px; border: 1px solid black; background-color: #EEE;">' + message + '<br>' + strBody + AnswerField + '<div style="text-align:right">' + submitButtons + '</div></div>';
    temp = d.getElementById('PromptOverlay')
    //Remove any old Prompt
    if (temp != null)
        temp.parentNode.removeChild(temp);
    PromptOverlay = document.createElement("div");
    PromptOverlay.id = 'PromptOverlay';
    PromptOverlay.style.position = 'absolute';
    PromptOverlay.style.textAlign = 'center';
    PromptOverlay.style.zIndex = 2000;
    PromptOverlay.style.width = PromptOverlayWidth;
    PromptOverlay.style.top = ((600 - 40) / 2) + 'px';
    d.body.insertBefore(PromptOverlay, document.body.firstChild);
    PromptOverlay.style.left = Math.floor((document.body.clientWidth - PromptOverlayWidth) / 2) + 'px';
    PromptOverlay.innerHTML = PromptOverlayHTML;
    try { d.getElementById('Reply0').select() } catch (e) { };
    $(".PromptButton").focus();
    setTimeout(function() { try { document.getElementById("Reply0").focus() } catch (e) { } }, 10);
}

function CreateAnOverlay()
{
    RemoveAnOverlay();
    var divOverlay = document.createElement("div");
    divOverlay.id = "anoverlay";

    if (document.body)
    {
        divOverlay.style.width = document.body.clientWidth;
        divOverlay.style.height = document.body.clientHeight;
    }
    else
    {
        divOverlay.style.width = self.innerWidth;
        divOverlay.style.height = self.innerHeight;
    }
    divOverlay.style.position = 'absolute';
    divOverlay.style.background = "#000000";
    divOverlay.style.top = '0px';
    divOverlay.style.left = '0px';
    divOverlay.zIndex = 999;
    document.body.appendChild(divOverlay);
    changeFavOpac(50, "anoverlay")
}

function RemoveAnOverlay()
{
    $("#anoverlay").remove();
}

function changeFavOpac(opacity, id)
{
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
