function WW() 
{
    return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}
function WH() 
{
    return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}
function WT() 
{
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}
function WL() 
{
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

var DIALOG = "#dialogContainer";
var DIALOG2 = "#dialogContainer2";
var MARGIN_TOP = 5;
var MARGIN_LEFT = 4;


function showHint(message, el, paddingTop, paddingLeft ) {
    if(message == null || message == '') { return; }
    if(!paddingTop) {
        paddingTop = 0;
    }
    if(!paddingLeft) {
        paddingLeft = 0;
    }
    var hint = $("span#hint-frame");
    if(hint.size()==0) {
        $("body").append("<span id=\"hint-frame\" class=\"hint\"></span>");
        hint = $("span#hint-frame");
    }
    hint.css("visibility", "visible");
    hint.css("display", "block");
        
    var dialogLeft = el.absolutePosition().left + el.width() + paddingLeft + MARGIN_LEFT;
    var dialogTop = el.absolutePosition().top  + paddingTop - MARGIN_TOP;
    
    hint.css("top", dialogTop + "px");
    hint.css("left", dialogLeft + "px");
    hint.html(message);
    hint.append("<span class=\"hint-pointer\"></span>");
}
function closeHint() {
    var hint = $("span#hint-frame");
    hint.css("visibility", "hidden");
    hint.css("display", "none");
}

var tmpObjects;
function openDialog(title, message, labelOk, labelCancel, okHandler, okHref) {
    var frame;
    var windowShadow;
    if(!okHref) {
        okHref = "#";
    }
    if($(DIALOG).size()==0) {
        frame = $("<div id=\"dialogContainer\">" + 
                  "<div style=\"width: 400px;\">" +
                  "<div style=\"border: 1px solid #ccc\">" +
                  "<div style=\"border: 1px solid #999\">" +
                  "<div id=\"dlgcontainer\">" +
                  "<div id=\"dlgheader\"><span id=\"dlgtitle\" style=\"float: left\"></span><span id=\"dlgclose\"></span></div>" +
                  "<div id=\"dlgmessage\"></div>" +
                  "<div id=\"dlgcontrols\">" +
                  "<div class=\"wrapper\">" + 
                  "<a id=\"noBtn\" href=\"#\" class=\"link warn backward lwb\" style=\"float: right; margin: 0 15px 0 5px\"><span>no</span></a>" +
                  "<a id=\"yesBtn\" href=\"#\" class=\"link positive backward lpb\" style=\"float: right; margin: 0 15px 0 5px\"><span>yes</span></a>" +
                  "</div></div></div></div></div></div></div>");
        windowShadow = $("<div id=\"windowShadow\"></div>");
        $("body").append(frame);
        $("body").append(windowShadow);
        $("#dialogContainer #dlgclose").click( function() { closeDialog(); } );
        $("#dialogContainer #noBtn").click( function() { closeDialog(); } );
        $("#dialogContainer #yesBtn").click( function() { okHandler(), closeDialog(); });
        $("#dialogContainer #yesBtn").attr("href", okHref);
    } else {
        frame = $(DIALOG);
        windowShadow = $("#windowShadow");
    }
    $("#dialogContainer #dlgtitle").html(title);
    $("#dialogContainer #dlgmessage").html(message);
    $("#dialogContainer #noBtn span").html(labelCancel);
    $("#dialogContainer #yesBtn span").html(labelOk);
    
    tmpObjects = $("object");
    tmpObjects.css("visibility", "hidden");

    var dialogTop = WT() + (WH() / 2.5) - (frame.height() / 2);
    var dialogLeft = WL() + (WW() / 2) - (frame.width() / 2);

    frame.css("top", dialogTop + "px");
    frame.css("left", dialogLeft + "px");
    frame.css("visibility", "visible");
    frame.css("display", "block");
    windowShadow.css("visibility", "visible");
    windowShadow.css("display", "block");
}

function closeDialog()
{
    var frame = $(DIALOG);
    var windowShadow = $("#windowShadow");
    frame.css("visibility", "hidden");
    frame.css("display", "none");
    windowShadow.css("visibility", "hidden");
    windowShadow.css("display", "none");
    tmpObjects.css("visibility", "visible");
}

////////////////////////////////////////////////////////////////////////////////////////////////

var tmpObjects2;
function openDialog2(title, message, labelOk, labelCancel, okHandler, okHref, cancelHref) {
    var frame;
    var windowShadow;
    if(!okHref) {
        okHref = "#";
    }
    if($(DIALOG2).size()==0) {
        frame = $("<div id=\"dialogContainer2\">" + 
                  "<div style=\"width: 400px;\">" +
                  "<div style=\"border: 1px solid #ccc\">" +
                  "<div style=\"border: 1px solid #999\">" +
                  "<div id=\"dlgcontainer\">" +
                  "<div id=\"dlgheader\"><span id=\"dlgtitle\" style=\"float: left\"></span><span id=\"dlgclose\"></span></div>" +
                  "<div id=\"dlgmessageleft\"></div>" +
                  "<div id=\"dlgcontrols\">" +
                  "<div class=\"wrapper\">" + 
                  "<a id=\"noBtn\" href=\"#\" class=\"link warn backward lwb\" style=\"float: right; margin: 0 15px 0 5px\"><span>no</span></a>" +
                  "<a id=\"yesBtn\" href=\"#\" class=\"link positive backward lpb\" style=\"float: right; margin: 0 15px 0 5px\"><span>yes</span></a>" +
                  "</div></div></div></div></div></div></div>");
        windowShadow = $("<div id=\"windowShadow\"></div>");
        $("body").append(frame);
        $("body").append(windowShadow);
        $("#dialogContainer2 #dlgclose").click( function() { closeDialog2(); } );
        $("#dialogContainer2 #noBtn").click( function() { closeDialog2(); } );
        $("#dialogContainer2 #noBtn").attr("href", cancelHref);
        $("#dialogContainer2 #yesBtn").click( function() {  okHandler(), closeDialog2(); });
        $("#dialogContainer2 #yesBtn").attr("href", okHref);
    } else {
        frame = $(DIALOG2);
        windowShadow = $("#windowShadow");
    }
    $("#dialogContainer2 #dlgtitle").html(title);
    $("#dialogContainer2 #dlgmessageleft").html(message);
    $("#dialogContainer2 #noBtn span").html(labelCancel);
    $("#dialogContainer2 #yesBtn span").html(labelOk);
    
    tmpObjects2 = $("object");
    tmpObjects2.css("visibility", "hidden");

    var dialogTop = WT() + (WH() / 2.5) - (frame.height() / 2);
    var dialogLeft = WL() + (WW() / 2) - (frame.width() / 2);

    frame.css("top", dialogTop + "px");
    frame.css("left", dialogLeft + "px");
    frame.css("visibility", "visible");
    frame.css("display", "block");
    windowShadow.css("visibility", "visible");
    windowShadow.css("display", "block");
}

function closeDialog2()
{
    var frame = $(DIALOG2);
    var windowShadow = $("#windowShadow");
    frame.css("visibility", "hidden");
    frame.css("display", "none");
    windowShadow.css("visibility", "hidden");
    windowShadow.css("display", "none");
    tmpObjects2.css("visibility", "visible");
}


