
var tb_pathToImage = "images/loader.gif";
var tb_LinkClose = "images/close.gif";
var tb_imgPrev = "";
var tb_imgNext = "";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
$(document).ready(function()
{
    tb_init('a.thickbox, area.thickbox, input.thickbox'); //pass where to apply thickbox
    imgLoader = new Image(); // preload image
    imgLoader.src = $("#urlLevel").val() + tb_pathToImage;
    tb_LinkClose = "<img src='images/close.gif' alt='Close' />";
    tb_imgPrev = "<a href='#' id='TB_prev' title='Prev'></a>";
    tb_imgNext = "<a href='#' id='TB_next' title='Next'></a>";
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk) { $(domChunk).click(function() { var t = this.title || this.name || null; var a = this.href || this.alt; var g = this.rel || false; tb_show(t, a, g); this.blur(); return false; }); }
//open from js
function tb_special(pi_href, title) { var caption = title; var group = this.rel || false; tb_show(caption, pi_href, group); }

function tb_show(caption, url, imageGroup)
{
    try
    {
        tb_createOverlay();

        if (caption == null) { caption = ""; }
        $("body").append("<div id='TB_load'><img src='" + imgLoader.src + "' /></div>"); //add loader to the page
        $('#TB_load').show(); //show loader

        var baseURL;
        if (url.indexOf("?") !== -1)
        { //ff there is a query string involved
            baseURL = url.substr(0, url.indexOf("?"));
        } else
        {
            baseURL = url;
        }

        var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
        var urlType = baseURL.toLowerCase().match(urlString);

        if (urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp')
        {//code to show images
            var strHtml = "<a href='' id='TB_ImageOff' title='Close'>" + tb_imgPrev + tb_imgNext + "<img id='TB_Image' alt='' /></a><div id='TB_caption'><div id='TB_closeWindow'>"
                + "<a id='TB_closeWindowButton' title='Close'>" + tb_LinkClose + "</a></div><span></span><div id='TB_secondLine'></div></div>"
            $("#TB_window").append(strHtml);
            tb_showImageGroup(caption, url, imageGroup);
        }
        else
        {//code to show html
            var queryString = url.replace(/^[^\?]+\??/, '');
            var params = tb_parseQuery(queryString);

            TB_WIDTH = (params['width'] * 1) + 30 || 730; //defaults to 630 if no paramaters were added to URL
            TB_HEIGHT = (params['height'] * 1) + 40 || 540; //defaults to 440 if no paramaters were added to URL
            ajaxContentW = TB_WIDTH - 30;
            ajaxContentH = TB_HEIGHT - 45;

            if (url.indexOf('TB_iframe') != -1)
            {// either iframe or ajax window		
                urlNoQuery = url.split('TB_');
                $("#TB_iframeContent").remove();
                if (params['modal'] != "true")
                {//iframe no modal
                    $("#TB_window").append("<div id='TB_title'><img src='" + $("#urlLevel").val() + "images/bar_end.gif'  style='float:right'/><img src='" + $("#urlLevel").val() + "images/bar_start.gif' style='float:left'/><div id='TB_ajaxWindowTitle'>" + caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'><img src='" + $("#urlLevel").val() + "images/close2.gif' alt='close' /></a></div></div><iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='tb_showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;' ></iframe>");
                } else
                {//iframe modal
                    $("#TB_overlay").unbind();
                    $("#TB_window").append("<iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='tb_showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;'> </iframe>");
                }
            } else
            {// not an iframe, ajax
                if ($("#TB_window").css("display") != "block")
                {
                    if (params['modal'] != "true")
                    {//ajax no modal
                        $("#TB_window").append("<div id='TB_title'><img src='" + $("#urlLevel").val() + "images/bar_end.gif'  style='float:right'/><img src='" + $("#urlLevel").val() + "images/bar_start.gif' style='float:left'/><div id='TB_ajaxWindowTitle'>" + caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'><img src='" + $("#urlLevel").val() + "images/close2.gif' alt='close' /></a></div></div><div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px'></div>");
                    } else
                    {//ajax modal
                        $("#TB_overlay").unbind();
                        $("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px;'></div>");
                    }
                } else
                {//this means the window is already up, we are just loading new content via ajax
                    $("#TB_ajaxContent")[0].style.width = ajaxContentW + "px";
                    $("#TB_ajaxContent")[0].style.height = ajaxContentH + "px";
                    $("#TB_ajaxContent")[0].scrollTop = 0;
                    $("#TB_ajaxWindowTitle").html(caption);
                }
            }

            $("#TB_closeWindowButton").click(tb_remove);

            if (url.indexOf('TB_inline') != -1)
            {
                $("#TB_ajaxContent").append($('#' + params['inlineId']).children());
                $("#TB_window").unload(function()
                {
                    $('#' + params['inlineId']).append($("#TB_ajaxContent").children()); // move elements back when you're finished
                });
                tb_position();
                $("#TB_load").remove();
                $("#TB_window").css({ display: "block" });
            } else if (url.indexOf('TB_iframe') != -1)
            {
                tb_position();
                if ($.browser.safari)
                {//safari needs help because it will not fire iframe onload
                    $("#TB_load").remove();
                    $("#TB_window").css({ display: "block" });
                }
            } else
            {
                $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()), function()
                {//to do a post change this load method
                    tb_position();
                    $("#TB_load").remove();
                    tb_init("#TB_ajaxContent a.thickbox");
                    $("#TB_window").css({ display: "block" });
                });
            }

            if (!params['modal']) { document.onkeyup = function(e) { if (e == null) { keycode = event.keyCode; } else { keycode = e.which; } if (keycode == 27) { tb_remove(); } }; }
        }

    } catch (e)
    {
        alert(e);
        //nothing here
    }
}

function tb_createOverlay()
{
    if (typeof document.body.style.maxHeight === "undefined")
    {//if IE 6
        $("body", "html").css({ height: "100%", width: "100%" });
        $("html").css("overflow", "hidden");
        if (document.getElementById("TB_HideSelect") === null)
        {//iframe to hide select elements in ie6
            $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
            $("#TB_overlay").click(tb_remove);
        }
    } else
    {//all others
        if (document.getElementById("TB_overlay") === null)
        {
            if ($("body form:first"))
            {
                $("body form:first").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
            }
            else
            {
                $("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
            }
            $("#TB_overlay").click(tb_remove);
        }
    }

    if (tb_detectMacXFF())
    {
        $("#TB_overlay").addClass("TB_overlayMacFFBGHack"); //use png overlay so hide flash
    } else
    {
        $("#TB_overlay").addClass("TB_overlayBG"); //use background and opacity
    }
    $("#TB_overlay").fadeTo("slow", 0.7);
}


function tb_showImageGroup(caption, url, imageGroup)
{
    $("#TB_window *").unbind();

    var TB_PrevCaption = "";
    var TB_PrevURL = "";
    var TB_PrevIs = false;
    var TB_NextCaption = "";
    var TB_NextURL = "";
    var TB_NextIs = false;
    var TB_imageCount = "";
    var TB_FoundURL = false;
    var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
    if (imageGroup)
    {
        var TB_TempArray = $("a[rel=" + imageGroup + "]").get();
        for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && !TB_NextIs); TB_Counter++)
        {
            var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
            if (TB_TempArray[TB_Counter].href != url)
            {
                if (TB_FoundURL)
                {
                    TB_NextCaption = TB_TempArray[TB_Counter].title;
                    TB_NextURL = TB_TempArray[TB_Counter].href;
                    TB_NextIs = true;
                }
                else
                {
                    TB_PrevCaption = TB_TempArray[TB_Counter].title;
                    TB_PrevURL = TB_TempArray[TB_Counter].href;
                    TB_PrevIs = true;
                }
            }
            else
            {
                TB_FoundURL = true;
                TB_imageCount = "Image " + (TB_Counter + 1) + " of " + (TB_TempArray.length);
            }
        }
    }

    $("#TB_caption span").html(TB_imageCount);
    $("#TB_secondLine").html(caption);

    var imgPreloader = new Image();
    imgPreloader.onload = function()
    {
        imgPreloader.onload = null;

        // Resizing large images
        var pagesize = tb_getPageSize();
        var x = pagesize[0] - 150;
        var y = pagesize[1] - 150;
        var imageWidth = imgPreloader.width;
        var imageHeight = imgPreloader.height;
        if (imageWidth > x)
        {
            imageHeight = imageHeight * (x / imageWidth);
            imageWidth = x;
            if (imageHeight > y)
            {
                imageWidth = imageWidth * (y / imageHeight);
                imageHeight = y;
            }
        } else if (imageHeight > y)
        {
            imageWidth = imageWidth * (y / imageHeight);
            imageHeight = y;
            if (imageWidth > x)
            {
                imageHeight = imageHeight * (x / imageWidth);
                imageWidth = x;
            }
        }
        // End Resizing


        /*
        $("#TB_window").empty().append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='" + url + "' width='" + imageWidth + "' height='" + imageHeight + "' alt='" + caption + "'/></a>"
        + "<div id='TB_caption'>" + TB_NextHTML + TB_PrevHTML + "<div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>" + tb_LinkClose + "</a></div>" + caption + "<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
        */
        $("#TB_closeWindowButton").click(tb_remove);
        $("#TB_prev").hide();
        $("#TB_next").hide();
        if (TB_PrevIs)
        {
            function goPrev()
            {
                tb_showImageGroup(TB_PrevCaption, TB_PrevURL, imageGroup);
                return false;
            }
            $("#TB_prev").css('height', imageHeight).unbind("click").click(goPrev).show();
        }

        if (TB_NextIs)
        {
            function goNext()
            {
                tb_showImageGroup(TB_NextCaption, TB_NextURL, imageGroup);
                return false;
            }
            $("#TB_next").css('height', imageHeight).unbind("click").click(goNext).show();
        }

        document.onkeydown = function(e) {if (e == null){keycode = event.keyCode;} else
            { keycode = e.which; } if (keycode == 27){tb_remove();
            } else if (keycode == 39) { if (TB_NextIs) {document.onkeydown = "";goNext();}
            } else if (keycode == 37) { if (TB_PrevIs){document.onkeydown = "";goPrev();}}};
        
        TB_WIDTH = imageWidth + 30;
        TB_HEIGHT = imageHeight + 60;

        tb_position();
        $("#TB_Image").attr("src", url).attr("width", imageWidth ).attr("height", imageHeight );
        //$("#TB_Image").animate({ width: imageWidth, height: imageHeight }, 'slow');

        $("#TB_load").remove();
        $("#TB_ImageOff").click(tb_remove);
        $("#TB_window").fadeIn("slow");
        //$("#TB_window").css({ display: "block" }); //for safari using css instead of show
    };

    imgPreloader.src = url;

}



//helper functions below
function tb_showIframe() { $("#TB_load").remove(); $("#TB_window").css({ display: "block" }); }

function tb_remove()
{
    if (typeof tb_OnClosing == 'function')
    {
        tb_OnClosing();
    }
    $("#TB_imageOff").unbind("click");
    $("#TB_closeWindowButton").unbind("click");
    $("#TB_window").fadeOut("slow", function()
    {
        $('#TB_overlay').fadeOut("slow", function() { $('#TB_overlay').trigger("unload").unbind().remove() });
        $('#TB_window,#TB_HideSelect').trigger("unload").unbind().remove();
    });
    $("#TB_load").remove();
    if (typeof document.body.style.maxHeight == "undefined")
    {//if IE 6
        $("body", "html").css({ height: "auto", width: "auto" });
        $("html").css("overflow", "");
    }
    document.onkeydown = "";
    document.onkeyup = "";
    return false;
}

function tb_position()
{
    $("#TB_window").css({ marginLeft: '-' + parseInt((TB_WIDTH / 2), 10) + 'px', width: TB_WIDTH + 'px' });
    if (!(jQuery.browser.msie && jQuery.browser.version < 7))
    { // take away IE6
        $("#TB_window").css({ marginTop: '-' + parseInt((TB_HEIGHT / 2), 10) + 'px' });
    }
}

function tb_parseQuery(query) { var P1 = {}; if (!query) { return P1; }; var P2 = query.split(/[;&]/); for (var i = 0; i < P2.length; i++) { var KeyVal = P2[i].split('='); if (!KeyVal || KeyVal.length != 2) { continue; } var key = unescape(KeyVal[0]); var val = unescape(KeyVal[1]); val = val.replace(/\+/g, ' '); P1[key] = val; } return P1; }

function tb_getPageSize() { var de = document.documentElement; var w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth; var h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight; arrayPageSize = [w, h]; return arrayPageSize; }

function tb_detectMacXFF() { var u = navigator.userAgent.toLowerCase(); if (u.indexOf('mac') != -1 && u.indexOf('firefox') != -1) { return true; } }
