/*
 * Thickbox 3 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/

if ((window.$j142 || window.$) && !window.$thickbox) {
    
$thickbox = window.$j142 || window.$;
                  
var tb_pathToImage = "/img/thickbox-loading.gif";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
$thickbox(document).ready(function(){   
        imgLoader = new Image();// preload image
        imgLoader.src = tb_pathToImage;
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk, iframeit){
        $thickbox(domChunk).click(function(){
        var t = this.title || this.name || null;
        var a = this.href + (iframeit ? (this.href.indexOf('?') != -1 ? '&' : '?') + 'TB_iframe=1' : '') || this.alt;
        var g = this.rel || false;
        tb_show(t,a,g);
        this.blur();
        return false;
        });
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

        try {
                if ($thickbox.browser.msie) {//if IE 6
                        $thickbox("body","html").css({height: "100%", width: "100%"});
                        $thickbox("html").css("overflow","hidden");
                        if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
                                $thickbox("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
                                $thickbox("#TB_overlay").click(tb_remove);
                        }
                }else{//all others
                        if(document.getElementById("TB_overlay") === null){
                                $thickbox("body").append("<div id='TB_overlay'></div><div id='TB_window'>");
                                $thickbox("#TB_overlay").click(tb_remove);
                        }
                }
                $thickbox("#TB_overlay").css({display:"block",opacity:0}).fadeTo(200, 0.75);
                
                if(caption===null){caption="";}
                $thickbox("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
                $thickbox('#TB_load').show();//show loader
                
                        var queryString = url.replace(/^[^\?]+\??/,'');
                        var params = tb_parseQuery( queryString );

                        TB_WIDTH = (params['width']*1) || 500; //defaults to 630 if no paramaters were added to URL
                        TB_HEIGHT = (params['height']*1) || 400; //defaults to 440 if no paramaters were added to URL
                        ajaxContentW = TB_WIDTH;
                        ajaxContentH = TB_HEIGHT;
                        
                        if(url.indexOf('TB_iframe') != -1){                             
                                        urlNoQuery = url.split('TB_');          
                                        $thickbox("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+((url.indexOf('?') != -1 ? '&' : '?') + 'iframed=true')+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW)+"px;height:"+(ajaxContentH)+"px;' onload='tb_showIframe()'> </iframe>");
                                }else{
                                        if($thickbox("#TB_window").css("display") != "block"){
                                                if(params['modal'] != "true"){
                                                $thickbox("#TB_window").append("<div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
                                                }else{
                                                $thickbox("#TB_overlay").unbind();
                                                $thickbox("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>"); 
                                                }
                                        }else{
                                                $thickbox("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
                                                $thickbox("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
                                                $thickbox("#TB_ajaxContent")[0].scrollTop = 0;
                                                $thickbox("#TB_ajaxWindowTitle").html(caption);
                                        }
                        }
                                        
                        
                                if(url.indexOf('TB_iframe') != -1){
                                        tb_position();
                                        if(frames['TB_iframeContent'] === undefined){//be nice to safari
                                                $thickbox("#TB_load").remove();
                                                $thickbox("#TB_window").css({display:"block"});
                                                $thickbox(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}});
                                        }
                                }else{
                                        $thickbox("#TB_ajaxContent").load(url += "?ajax=" + (new Date().getTime()),function(){//to do a post change this load method
                                                tb_position();
                                                $thickbox("#TB_load").fadeTo(200, 0, function () {
                                                    $thickbox("#TB_load").remove();
                                                    tb_init("#TB_ajaxContent a.thickbox");
                                                    $thickbox("#TB_window").css({display:"block",opacity:0}).fadeTo(300, 1);
                                                });
                                        });
                                }
                        

                if(!params['modal']){
                        document.onkeyup = function(e){         
                                if (e == null) { // ie
                                        keycode = event.keyCode;
                                } else { // mozilla
                                        keycode = e.which;
                                }
                                if(keycode == 27){ // close
                                        tb_remove();
                                }       
                        };
                }
                
        } catch(e) {
                //nothing here
        }
}

//helper functions below
function tb_showIframe(){
        $thickbox("#TB_load").remove();
        $thickbox("#TB_window").css({display:"block"});
}

function tb_remove() {
        $thickbox("#TB_overlay").unbind("click");
        $thickbox("#TB_window").fadeTo("fast",0,function(){
            $thickbox('#TB_window').remove();
            $thickbox('#TB_overlay').fadeTo("fast",0, function () {
                $thickbox('#TB_window,#TB_overlay,#TB_HideSelect').remove();
            });
        });
        $thickbox("#TB_load").remove();
        if ($thickbox.browser.msie) {//if IE 6
                $thickbox("body","html").css({height: "auto", width: "auto"});
                $thickbox("html").css("overflow","");
        }
        document.onkeydown = "";
        return false;
}

function tb_position() {
$thickbox("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
        if ( !($thickbox.browser.msie &&  navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1 && navigator.userAgent.toLowerCase().indexOf("msie 7.") == -1)) { // take away IE6
                $thickbox("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
        }
}

function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

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