var scrollPaneConfig = {
                            dragMinHeight : 70,
                            dragMaxHeight : 70
                        };

var homeSlideshowCallback = null;

//$('#jqHomeSlideShowContainer img').imgpreload();


/**
 *  Document Ready.
 **/
$(document).ready(generalDocumentReady);

/**
 *  Document ready
 **/
function generalDocumentReady()
{
    homeSlideshowCallback = setInterval(homePageImageSlideShow, 6000);
    //$("div").live("click", function(){$(this).blur();});
    /**
     *  Left navigation
     **/
    //$("#jqLeftNavigation a").click(leftNavigation);
    $("#jqLeftNavigation a").live("click", leftNavigation);

    /**
     *  Custom scroll pane.
     **/
    $('#jqAboutPane').jScrollPane(scrollPaneConfig);

    /**
     *  Show Previous Slider Image
     **/
    $("#jqShowPreviousSliderImage").live("click", showPreviousSliderImage);

    /**
     *  Show Next Slider Image
     **/
    $("#jqShowNextSliderImage").live("click", showNextSliderImage);

    /**
     *  Show new image window.
     **/
    $(".jqShowImageWindow").live("click", showImageWindow);

    /**
     *  Show new image overlay.
     **/
    $(".jqShowImageOverlay").live("click", showImageOverlay);

    /**
     *  Close overlay.
     **/
    $(".jqCloseOverlay").click(closeOverlay);
}

/**
 * Left Navigation
 **/
function leftNavigation()
{
    var current     = $(this);
    var subMenu     = current.siblings("ul:first");
    var closestUL   = current.closest("ul");

    closeOverlay();
    clearInterval(homeSlideshowCallback);

    if(closestUL.is("#jqLeftNavigation"))
    {
        $(".active").removeClass("active");
    }
    else
    {
        closestUL.find(".active").removeClass("active");
    }
    
    current.addClass("active");

    //$(".active").removeClass("active");
    //current.addClass("active");
    if(subMenu.length > 0)
    {
        if(subMenu.is(":visible"))
        {
            //subMenu.slideUp("normal");
        }
        else
        {
            $("#jqLeftNavigation ul:visible").slideUp("normal");
            subMenu.slideDown("normal");
        }
    }
    else if(closestUL.is("#jqLeftNavigation"))
    {
        $("#jqLeftNavigation ul:visible").slideUp("normal");
    }

    //  Show page
    var pageSection     = $.trim(current.attr("href"));
    if(pageSection != "" && pageSection != "#")
    {
        var pageSectionParts   = pageSection.split("#", 2);

        if(pageSectionParts.length == 2)
        {
            var pageParts   = pageSectionParts[1].split("|", 2);

            var pageUrl     = "";

            if(pageParts.length == 1)
            {
                pageUrl     = baseUrl + "index/show/page/" + pageParts[0];
            }
            else
            {
                pageUrl     = baseUrl + "index/show/page/" + pageParts[0] + "/sub/" + pageParts[1];
            }

            $.ajax({
                url:        pageUrl,
                dataType:   "html",
                beforeSend: showPageLoader,
                complete:   hidePageLoader,
                success:    function(data)
                            {
                                var content = $(data);

                                $("#jqRightContent").html(content);
                                var sliderContainer = $("#jqSliderContainer");

                                if(sliderContainer.length > 0)
                                {
                                    var sliderContent       = $("#jqSliderContent");
                                    var sliderContentWidth  = 0;
                                    var sliderImages        = $(".jqSliderFrame");

                                    sliderImages.each(  function()
                                                        {
                                                            sliderContentWidth += $(this).outerWidth();
                                                        });
                                    if(sliderContentWidth > 0)
                                    {
                                        sliderContent.width(sliderContentWidth);
                                    }
                                }
                                else
                                {
                                    $('#jqAboutPane').jScrollPane(scrollPaneConfig);
                                }
                            }
            });
        }
    }
    return false;
}

function showPageLoader()
{
    var leftContent         = $("#jqLeftContent");
    var rightContent        = $("#jqRightContent");
    var loader              = $("#jqLoader");
    var rightContentOffset  = rightContent.offset();

    loader.css({
                    position:   "absolute",
                    left:       rightContentOffset.left,
                    top:        rightContentOffset.top,
                    width:      Math.max(rightContent.outerWidth(), leftContent.outerWidth()),
                    height:     Math.max(rightContent.outerHeight(), leftContent.outerHeight())
    }).fadeIn("fast");

}

function hidePageLoader()
{
    $("#jqLoader").fadeOut("fast");
}

function pageScrollTop()
{
    return document.documentElement.scrollTop ? document.documentElement.scrollTop : (document.body.scrollTop ? document.body.scrollTop : 0);
}

/**
 *  Show next slider image.
 **/
function showNextSliderImage()
{
    var currentSliderImage  = $(".currentSliderImage").length > 0 ? $(".currentSliderImage:first") : $(".jqSliderFrame:first");
    var nextSliderImage     = currentSliderImage.next(".jqSliderFrame");

    if(nextSliderImage.length > 0)
    {
        currentSliderImage.removeClass("currentSliderImage");
        nextSliderImage.addClass("currentSliderImage");
        var currentSliderImageWidth = currentSliderImage.outerWidth();
        $("#jqSliderContent").animate({marginLeft: "-=" + currentSliderImageWidth}, "normal");

        $("#jqShowPreviousSliderImage > img").attr("src", previousArrowOn);
        if(nextSliderImage.next(".jqSliderFrame").length > 0)
        {
            $(this).children("img").attr("src", nextArrowOn);
        }
        else
        {
            $(this).children("img").attr("src", nextArrowOff);
        }

    }

    return false;
}

/**
 *  Show previous slider image.
 **/
function showPreviousSliderImage()
{
    var currentSliderImage  = $(".currentSliderImage").length > 0 ? $(".currentSliderImage:first") : $(".jqSliderFrame:first");
    var previousSliderImage = currentSliderImage.prev(".jqSliderFrame");

    if(previousSliderImage.length > 0)
    {
        currentSliderImage.removeClass("currentSliderImage");
        previousSliderImage.addClass("currentSliderImage");
        var currentSliderImageWidth = previousSliderImage.outerWidth();
        $("#jqSliderContent").animate({marginLeft: "+=" + currentSliderImageWidth}, "normal");

        $("#jqShowNextSliderImage > img").attr("src", nextArrowOn);

        if(previousSliderImage.prev(".jqSliderFrame").length > 0)
        {
            $(this).children("img").attr("src", previousArrowOn);
        }
        else
        {
            $(this).children("img").attr("src", previousArrowOff);
        }
    }

    return false;
}

/**
 *  Show image window
 **/
function showImageWindow()
{
    var current     = $(this);
    var detailsUrl  = current.siblings("input").val();

    if(detailsUrl != "")
    {
        //window.open(detailsUrl, "imageWindow", "");
        //window.open(detailsUrl,"mywindow");
        window.open(detailsUrl,"mywindow","resizable=no")
    }

    return false;
}

/**
 *  Show image overlay
 **/
function showImageOverlay()
{
    var current     = $(this);
    var detailsUrl  = current.siblings("input").val();

    if(detailsUrl != "")
    {
        $("#jqOverlayImage").unbind("load").load(overlayImageLoad).attr("src", detailsUrl);
        /*$("#jqOverlayImage").attr("src", detailsUrl);
        overlayImageLoad();*/
    }

    return false;
}

function overlayImageLoad()
{
    var overlay     = $("#jqOverlay");
    var overlayTop  = (($(window).height() - overlay.outerHeight())/2) + pageScrollTop();
    var overlayLeft = ($(window).width() - overlay.outerWidth())/2;
    
    overlay.css({
        position: "absolute",
        top: overlayTop,
        left: overlayLeft
    }).fadeIn("normal");
}

/**
 *  Close overlay
 **/
function closeOverlay()
{
    $("#jqOverlay").fadeOut("normal");

    return false;
}

/**
 *  Home page slideshow
 **/
function homePageImageSlideShow()
{
    var currentImage    = $("#jqHomeSlideShowContainer > img:visible:first");
    var nextImage       = currentImage.next("img");

    if(nextImage.length == 0)
    {
        nextImage       = $("#jqHomeSlideShowContainer > img").not(currentImage).eq(0);
    }

    if(nextImage.length > 0)
    {
        currentImage.fadeOut(3000);
        nextImage.fadeIn(3000);
    }
}
