/*
 * Photogallery modal box
 * 
 * Based on:
 * Thickbox 3.1 by Cody Lindley (http://www.codylindley.com)
*/
          
var tb_pathToImage = "/templates/default/Content/PhotoGallery/bin/loadingAnimation.gif";

//on page load call tb_init
$(document).ready(function(){   
    tb_init('a.gallery');//pass where to apply modal box
    imgLoader = new Image();// preload image
    imgLoader.src = tb_pathToImage;
});

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;
    });
}

function tb_show(caption, url, imageGroup) {

    try {
        if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
            $("body","html").css({height: "100%", width: "100%"});
            $("html").css("overflow","hidden");
            if (document.getElementById("photogallery_iframe_hider") === null) {//iframe to hide select elements in ie6
                $("body").append("<iframe id='photogallery_iframe_hider'></iframe><div id='photogallery_overlay'></div><div id='photogallery_modal'></div>");
                $("#photogallery_overlay").click(tb_remove);
            }
        }else{//all others
            if(document.getElementById("photogallery_overlay") === null){
                $("body").append("<div id='photogallery_overlay'></div><div id='photogallery_modal'></div>");
                $("#photogallery_overlay").click(tb_remove);
            }
        }
        
        if(tb_detectMacXFF()){
            $("#photogallery_overlay").addClass("photogallery_overlay_mac_ff_bg");//use png overlay so hide flash
        }else{
            $("#photogallery_overlay").addClass("photogallery_overlay_bg");//use background and opacity
            $("#photogallery_overlay").css('opacity', 0.75);
        }
        
        if(caption===null){caption="";}
        $("body").append("<div id='photogallery_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
        $('#photogallery_load').show();//show loader
       
        TB_PrevCaption = "";
        TB_PrevURL = "";
        TB_PrevHTML = "";
        TB_NextCaption = "";
        TB_NextURL = "";
        TB_NextHTML = "";
        TB_imageCount = "";
        TB_FoundURL = false;
        if(imageGroup){
            TB_TempArray = $("a[@rel="+imageGroup+"]").get();
            for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
                    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_NextHTML = "<span id='photogallery_modal_next' title='" + $('#photogallery_tip').attr('title') + "'>&nbsp;&nbsp;<a href='#'>" + $('#photogallery_next').attr('title') + " &gt;</a></span>";
                        } else {
                            TB_PrevCaption = TB_TempArray[TB_Counter].title;
                            TB_PrevURL = TB_TempArray[TB_Counter].href;
                            TB_PrevHTML = "<span id='photogallery_modal_prev' title='" + $('#photogallery_tip').attr('title') + "'>&nbsp;&nbsp;<a href='#'>&lt; " + $('#photogallery_previous').attr('title') + "</a></span>";
                        }
                    } else {
                        TB_FoundURL = true;
                        TB_imageCount = "" + (TB_Counter + 1) +" / "+ (TB_TempArray.length);                                            
                    }
            }
        }

        imgPreloader = new Image();
        imgPreloader.onload = function(){       
        imgPreloader.onload = null;
            
        // Resizing large images - orginal by Christian Montoya edited by Cody Lindley.
        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_WIDTH = imageWidth + 30;
        TB_HEIGHT = imageHeight + 60;
        
        close_txt = $('#photogallery_close').attr('title')
        
        $("#photogallery_modal").append("<a href='' id='photogallery_image_off' title='" + close_txt +  "'><img id='photogallery_image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='photogalery_modal_caption'>"+caption+"</div><div class='photogallery_modal_navigator'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div><div class='photogallery_modal_close'><a href='#' id='photogallery_close_window' title='" + close_txt +  "'>" + close_txt +  "</a></div><div class='photogallery_modal_clear'></div>");
        
        $("#photogallery_close_window").click(tb_remove);
        
        if (!(TB_PrevHTML === "")) {
            function goPrev(){
                if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
                $("#photogallery_modal").remove();
                $("body").append("<div id='photogallery_modal'></div>");
                tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
                return false;   
            }
            $("#photogallery_modal_prev").click(goPrev);
        }
        
        if (!(TB_NextHTML === "")) {        
            function goNext(){
                $("#photogallery_modal").remove();
                $("body").append("<div id='photogallery_modal'></div>");
                tb_show(TB_NextCaption, TB_NextURL, imageGroup);                
                return false;   
            }
            $("#photogallery_modal_next").click(goNext);
            
        }

        document.onkeydown = function(e){   
            if (e == null) { // ie
                keycode = event.keyCode;
            } else { // mozilla
                keycode = e.which;
            }
            
            if(keycode == 27){ // close
                tb_remove();
            } else if(keycode == 190 || keycode == 39){ // display previous image
                if(!(TB_NextHTML == "")){
                    document.onkeydown = "";
                    goNext();
                }
            } else if(keycode == 188 || keycode == 37){ // display next image
                if(!(TB_PrevHTML == "")){
                    document.onkeydown = "";
                    goPrev();
                }
            }   
        };
        
        tb_position();
        $("#photogallery_load").remove();
        $("#photogallery_image_off").click(tb_remove);
        $("#photogallery_modal").css({display:"block"}); //for safari using css instead of show
        };
        
        imgPreloader.src = url;
    } catch(e) {
        //nothing here
    }
}


function tb_remove() {
    $("#photogallery_image_off").unbind("click");
    $("#photogallery_close_window").unbind("click");
    $("#photogallery_modal").fadeOut("fast",function(){$('#photogallery_modal,#photogallery_overlay,#photogallery_iframe_hider').trigger("unload").unbind().remove();});
    $("#photogallery_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() {
$("#photogallery_modal").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
    //if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
    //alert("test" + jQuery.browser.msie && (jQuery.browser.version < 7 && !window.XMLHttpRequest));
    if (!(jQuery.browser.msie && (jQuery.browser.version < 7 && !window.XMLHttpRequest))) {
        $("#photogallery_modal").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
    }
}


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 userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}
