var htmlBlankScreen = "<div id=\"blank-screen\"></div>";

///////////////////////////////////////////////////////////////////////////
// Open images in window
function openImage(strTitle, strImagePath)
{
    $.preloadImages(strImagePath);
    $("body").append(htmlBlankScreen);
    document.body.style.cursor = 'wait';
    openWindow(strTitle, '<img src="' + strImagePath + '" />', "showImage", 0, true);
}

/////////////////////////////////////////////////////////////////////////
// Open Window
var arrWindows = new Array();
function openWindow(strTitle, strContent, strCode, intMaxWidth, blnCloseBtn)
{
    var winCode = "#objWindow_" + strCode;

    if(jQuery.inArray(winCode, arrWindows) == -1) {
        arrWindows.push(winCode);

        // Convert boolean to string
        (blnCloseBtn == true) ? blnCloseBtn = "1" : blnCloseBtn = 0;

        $.get("/partials/openWindow", { pstrTitle: strTitle, pstrContent: strContent, pstrCode: strCode, pblnCloseBtn: blnCloseBtn }, function(objWindow) {
           
            $("body").append(objWindow);

            var height = $(winCode).height();
            var width = $(winCode).width();

            if(width > intMaxWidth && intMaxWidth != 0) {
                width = intMaxWidth;
                $(winCode).css("max-width", width);
                $(winCode).css("width", width);
            }
                
            $(winCode).ready(function() {
                $(winCode).css("margin-left", "-" + width / 2 + "px");
                $(winCode).css("margin-top", "-" + height / 2 + "px");

                if($.browser.msie)
                {
                    $(winCode).css("width", $(winCode).width() + "px");
                }

                $(winCode).hide().fadeIn(250, function() {
                    document.body.style.cursor = "auto";
                    refreshObjects();
                });
            })
            
        });
    }
}

/////////////////////////////////////////////////////////////////////////
// Close Window
function closeWindow(strCode)
{
    var winCode = "#objWindow_" + strCode;

    $(document).ready(function() {
        $(winCode).ready(function() {

            if(jQuery.inArray(winCode, arrWindows) != -1) {
                 arrWindows = arrWindows.slice(arrWindows.indexOf(winCode), 0);
             }

            $(winCode).fadeOut(250, function() {
                $(winCode).remove();
                $("#blank-screen").remove();
            });
        });
    });
    
}

function refreshObjects()
{
    $(".draggable").each(function(){
        var objDraggable = this;
        var blnDown = false;
        var intOldX;
        var intOldY;
        var intOldWndX;
        var intOldWndY;
        var objDragEvent = $(this).children(".dragEvent");

        if($(".objWindow").css("position") != "absolute")
        {
            if($.browser.msie || $.browser.chrome || $.browser.safari)
            {
                $(objDraggable).css("top", $(objDraggable).position().top - $(document).scrollTop() + "px");

                if($.browser.msie)
                {
                    $(objDraggable).css("left", $(objDraggable).position().left - $(document).scrollLeft() + 2 + "px");
                }
                else
                {
                    $(objDraggable).css("left", $(objDraggable).position().left - $(document).scrollLeft() + 4 + "px");
                }
            }
        }
        else
        {
            $(objDraggable).css("top", $(objDraggable).position().top + $(document).scrollTop() + "px");
            $(objDraggable).css("left", $(objDraggable).position().left + $(document).scrollLeft() + 4 + "px");
        }


        // Get starting values
        objDragEvent.mousedown(function(event){
            blnDown = true;
            intOldX = event.pageX;
            intOldY = event.pageY;
            intOldWndX = parseInt($(objDraggable).css("left").replace("px", ""));
            intOldWndY = parseInt($(objDraggable).css("top").replace("px", ""));
        });

        $(document).mouseup(function(){blnDown = false;});
        $(document).mousemove(function(event) {

            if(blnDown) {
                if(intOldX < event.clientX) {
                    $(objDraggable).css("left", intOldWndX + (event.clientX - intOldX) + $(document).scrollLeft() + "px");
                }
                else if(intOldX > event.clientX) {
                    $(objDraggable).css("left", intOldWndX - (intOldX - event.clientX) + $(document).scrollLeft() + "px");
                }

                if(intOldY < event.clientY) {
                    $(objDraggable).css("top", intOldWndY + (event.clientY - intOldY) + $(document).scrollTop() + "px");
                }
                else if(intOldY > event.clientY) {
                    $(objDraggable).css("top", intOldWndY - (intOldY - event.clientY) + $(document).scrollTop() + "px");
                }
            }
        });
    });
}