/* =========================================================
// jquery.thickbox.js 1.2
// Chris McKee <pcdevils@gmail.com> 2009-10
// chrismckee.co.uk // http://bit.ly/chrisisagit
// re-coded & optimized for size + functionality
// Built from Thickbox 3 (Codelindley) (base code Copyright (c) 2007 cody lindley) licenced under MIT
// Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
// ========================================================= */
//for buttons its worth using javascript:void($.thickbox.tb_remove()) in the href to close the window
$(function() {
		$().thickbox();
});


(function($){
	var tb_pathToImage = "../images/loader.gif", m = null;
  
	$.fn.thickbox = function(){
		$.thickbox('a.thickbox, area.thickbox, input.thickbox');
		imgLoader = new Image();
		imgLoader.src = tb_pathToImage;
	};
	
	
	//PRIVATE METHODS
	
	$.thickbox = function(b)
	{
		$(b).click(function()
		{
			var t = this.title || this.name || null,
          a = this.href || this.alt,
          g = this.rel || false;
			$.thickbox.show(t, a, g);
			this.blur();
			return false;
		});
	};
	
	$.thickbox.show = function(d, f, g)
	{
		try
		{
			if (typeof document.body.style.maxHeight === "undefined")
			{
				$("body", "html").css({
					height: "100%",
					width: "100%"
				});
				$("html").css("overflow", "hidden");
				if (document.getElementById("tb_hideselect") === null)
				{
					$("body").append("<iframe id='tb_hideselect'><\/iframe><div id='tb_overlay'><\/div><div id='tb_window'><\/div>");
					$("#tb_overlay").click($.thickbox.tb_remove);
				}
			}
			else
			{
				if (document.getElementById("tb_overlay") === null)
				{
					$("body").append("<div id='tb_overlay'><\/div><div id='tb_window'><\/div>");
					$("#tb_overlay").click($.thickbox.tb_remove);
				}
			}
			
			$("#tb_overlay").addClass("tb_overlaybg");
				
			if (d === null)
			{
				d = "";
			}
			$("body").append("<div id='tb_load'><img src='" + imgLoader.src + "' /><\/div>");
			$('#tb_load').show();
			var h;
			if (f.indexOf("?") !== -1)
			{
				h = f.substr(0, f.indexOf("?"));
			}
			else
			{
				h = f;
			}
			var i = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/,
          j = h.toLowerCase().match(i);
			if (j == '.jpg' || j == '.jpeg' || j == '.png' || j == '.gif' || j == '.bmp')
			{
				tb_PrevCaption = "";
				tb_PrevURL = "";
				tb_PrevHTML = "";
				tb_NextCaption = "";
				tb_NextURL = "";
				tb_NextHTML = "";
				tb_imageCount = "";
				tb_FoundURL = false;
				if (g)
				{
					tb_TempArray = $("a[rel=" + g + "]").get();
					for (tb_Counter = 0;
                ((tb_Counter < tb_TempArray.length) && (tb_NextHTML === ""));
                  tb_Counter++)
					{
						var k = tb_TempArray[tb_Counter].href.toLowerCase().match(i);
						if (tb_TempArray[tb_Counter].href != f)
						{
							if (tb_FoundURL)
							{
								tb_NextCaption = tb_TempArray[tb_Counter].title;
								tb_NextURL = tb_TempArray[tb_Counter].href;
								tb_NextHTML = "<span id='tb_next'>&nbsp;&nbsp;<a href='#'>Next ><\/a><\/span>";
							}
							else
							{
								tb_PrevCaption = tb_TempArray[tb_Counter].title;
								tb_PrevURL = tb_TempArray[tb_Counter].href;
								tb_PrevHTML = "<span id='tb_prev'>&nbsp;&nbsp;<a href='#'>< Prev<\/a><\/span>";
							}
						}
						else
						{
							tb_FoundURL = true;
							tb_imageCount = "Image " + (tb_Counter + 1) + " of " + (tb_TempArray.length);
						}
					}
				}
				imgPreloader = new Image();
				imgPreloader.onload = function()
				{
					imgPreloader.onload = null;
					var a = $.thickbox.tb_getPageSize(),
              x = a[0] - 150,
              y = a[1] - 150,
              b = imgPreloader.width,
              c = imgPreloader.height;
              
					if (b > x)
					{
						c = c * (x / b);
						b = x;
						if (c > y)
						{
							b = b * (y / c);
							c = y;
						}
					}
					else if (c > y)
					{
						b = b * (y / c);
						c = y;
						if (b > x)
						{
							c = c * (x / b);
							b = x;
						}
					}
					tb_WIDTH = b + 30;
					tb_HEIGHT = c + 60;
					
					$("#tb_window").append("<a href='' id='tb_imageoff' title='Close'><img id='tb_image' src='" + f + "' width='" + b + "' height='" + c + "' alt='" + d + "'/><\/a>" + "<div id='tb_caption'>" + d + "<div id='tb_secondline'>" + tb_imageCount + tb_PrevHTML + tb_NextHTML + "<\/div><\/div><div id='tb_closewindow'><a href='#' id='tb_closewindowbutton' title='Close'>close<\/a> or Esc Key<\/div>");
					$("#tb_closewindowbutton").click($.thickbox.tb_remove);
					$(".tb_closewindow").click($.thickbox.tb_remove);
					
					if (tb_PrevHTML !== "")
					{
						var goPrev = function()
						{
							if ($(document).unbind("click", goPrev))
							{
								$(document).unbind("click", goPrev);
							}
							$("#tb_window").remove();
							$("body").append("<div id='tb_window'><\/div>");
							$.thickbox.show(tb_PrevCaption, tb_PrevURL, g);
							return false;
						};
						$("#tb_prev").click(goPrev);
					}
					if (tb_NextHTML !== "")
					{
						var goNext = function()
						{
							$("#tb_window").remove();
							$("body").append("<div id='tb_window'><\/div>");
							$.thickbox.show(tb_NextCaption, tb_NextURL, g);
							return false;
						};
						$("#tb_next").click(goNext);
					}
					document.onkeydown = function(e)
					{
						if (e === null)
						{
							keycode = event.keyCode;
						}
						else
						{
							keycode = e.which;
						}
						if (keycode == 27)
						{
							$.thickbox.tb_remove();
						}
						else if (keycode == 190)
						{
							if (tb_NextHTML != "")
							{
								document.onkeydown = "";
								goNext();
							}
						}
						else if (keycode == 188)
						{
							if (tb_PrevHTML != "")
							{
								document.onkeydown = "";
								goPrev();
							}
						}
					};
					$.thickbox.tb_position();
					$("#tb_load").remove();
					$("#tb_imageoff").click($.thickbox.tb_remove);
					$("#tb_window").css({
						display: "block"
					});
				};
				imgPreloader.src = f;
			}
			else
			{
				var l = f.replace(/^[^\?]+\??/, '');
            m = $.thickbox.tb_parseQuery(l);
				//tb_WIDTH = (m['width'] * 1) + 30 || 630;
				//tb_HEIGHT = (m['height'] * 1) + 40 || 440;
        tb_WIDTH = (m.width * 1) + 30 || 630;
				tb_HEIGHT = (m.height * 1) + 40 || 440;
				ajaxContentW = tb_WIDTH - 30;
				ajaxContentH = tb_HEIGHT - 45;
				if (f.indexOf('tb_iframe') != -1)
				{
					urlNoQuery = f.split('tb_');
					$("#tb_iframecontent").remove();
					if (m.modal != "true")
					{
            var tmp = "<div id='tb_title'><div id='tb_ajaxwindowtitle'>" + d + "<\/div>";
                tmp += "<div id='tb_closeajaxwindow'><a href='#' id='tb_closewindowbutton' title='Close'>close<\/a> or Esc Key<\/div>";
                tmp += "<\/div><iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='tb_iframecontent' name='tb_iframecontent";
                tmp += Math.round(Math.random() * 1000) + "' onload='$.thickbox.showiframe()' style='width:" + (ajaxContentW + 29) + "px;";
                tmp += "height:" + (ajaxContentH + 17) + "px;' ><\/iframe>";
						
						$("#tb_window").append(tmp);
					}
					else
					{
						$("#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='$.thickbox.showiframe()' style='width:" + (ajaxContentW + 29) + "px; height:" + (ajaxContentH + 17) + "px;'><\/iframe>");
					}
				}
				else
				{
					if ($("#tb_window").css("display") != "block")
					{
						if (m.modal != "true")
						{
							$("#tb_window").append("<div id='tb_title'><div id='tb_ajaxwindowtitle'>" + d + "<\/div><div id='tb_closeajaxwindow'><a href='#' id='tb_closewindowbutton'>close<\/a> or Esc Key<\/div><\/div><div id='tb_ajaxcontent' style='width:" + ajaxContentW + "px; height:" + ajaxContentH + "px'><\/div>");
						}
						else
						{
							$("#tb_overlay").unbind();
							$("#tb_window").append("<div id='tb_ajaxcontent' class='tb_modal' style='width:" + ajaxContentW + "px; height:" + ajaxContentH + "px;'><\/div>");
						}
					}
					else
					{
						$("#tb_ajaxcontent")[0].style.width = ajaxContentW + "px";
						$("#tb_ajaxcontent")[0].style.height = ajaxContentH + "px";
						$("#tb_ajaxcontent")[0].scrollTop = 0;
						$("#tb_ajaxwindowtitle").html(d);
					}
				}
				
				$("#tb_closewindowbutton").click($.thickbox.tb_remove);
				$(".tb_closewindow").click($.thickbox.tb_remove);
				
				if (f.indexOf('tb_inline') != -1)
				{
					$("#tb_ajaxcontent").append($('#' + m.inlineId).children());
					$("#tb_window").unload(function(){
						$('#' + m.inlineId).append($("#tb_ajaxcontent").children());
					});
					$.thickbox.tb_position();
					$("#tb_load").remove();
					$("#tb_window").css({
						display: "block"
					});
				}
				else if (f.indexOf('tb_iframe') != -1)
				{
					$.thickbox.tb_position();
					if ($.browser.safari)
					{
						$("#tb_load").remove();
						$("#tb_window").css({
							display: "block"
						});
					}
				}
				else
				{
					$("#tb_ajaxcontent").load(f += "&random=" + (new Date().getTime()),
					function()
					{
						$.thickbox.tb_position();
						$("#tb_load").remove();
						$.thickbox("#tb_ajaxcontent a.thickbox");
						$("#tb_window").css(
						{
							display: "block"
						});
					});
				}
			}
      if(m === null){
            var u = f.replace(/^[^\?]+\??/, '');
            m = $.thickbox.tb_parseQuery(u);
      }
			if (!m.modal)
			{
				document.onkeyup = function(e)
				{
					if (e === null)
					{
						keycode = event.keyCode;
					}
					else
					{
						keycode = e.which;
					}
					if (keycode == 27)
					{
						$.thickbox.tb_remove();
					}
				};
			}
		}
		catch(e)
		{
			console.log(e);
		}
	};
	
	$.thickbox_open = function(t, a, g){ $.thickbox.show(t, a, g); }; /* Expose Manual Thickbox Open Function */
	
	$.thickbox.showiframe = function()
	{
		$("#tb_load").remove();
		$("#tb_window").css({
			display: "block"
		});
	};

	$.thickbox.tb_remove = function()
	{
		$("#tb_imageOff").unbind("click");
		$("#tb_closewindowbutton").unbind("click");
		$(".tb_closewindow").unbind("click");
		$("#tb_window").fadeOut("fast",
                              function()
                              {
                                $('#tb_window,#tb_overlay,#tb_hideselect').trigger("unload").unbind().remove();
                              }
                            );
		$("#tb_load").remove();
		if (typeof document.body.style.maxHeight == "undefined")
		{
			$("body", "html").css({
				height: "auto",
				width: "auto"
			});
			$("html").css("overflow", "");
		}
		document.onkeydown = "";
		document.onkeyup = "";
		return false;
	};
	
	$.thickbox_remove = function(s){$.thickbox.tb_remove(s);}; /* Expose Thickbox Remove Function */
	
	
	$.thickbox.tb_position = function()
	{
		$("#tb_window").css({
			marginLeft: '-' + parseInt((tb_WIDTH / 2), 10) + 'px',
			width: tb_WIDTH + 'px'
		});
		if (!(jQuery.browser.msie && jQuery.browser.version < 7))
		{
			$("#tb_window").css({
				marginTop: '-' + parseInt((tb_HEIGHT / 2), 10) + 'px'
			});
		}
	};
	
	$.thickbox_resize = function(w, h){ /* Expose Thickbox Resize & Relocate Function */
		parent.document.getElementById('tb_window').style.width = w +'px';
		parent.document.getElementById('tb_window').style.height = h +'px';
		parent.document.getElementById('tb_iframecontent').style.width = w +'px';
		parent.document.getElementById('tb_iframecontent').style.height = h +'px';
		$.thickbox.tb_position();
	};
	
	$.thickbox.tb_parseQuery = function(a)
	{
		var b = {};
		if (!a){return b;}
		var c = a.split(/[;&]/);
		for (var i = 0; i < c.length; i++)
		{
			var d = c[i].split('=');
			if (!d || d.length != 2){continue;}
			var e = unescape(d[0]),
          f = unescape(d[1]);
			f = f.replace(/\+/g, ' ');
			b[e] = f;
		}
		return b;
	};
  
	$.thickbox.tb_getPageSize = function()
	{
		var a = document.documentElement,
        w = window.innerWidth || self.innerWidth || (a && a.clientWidth) || document.body.clientWidth,
        h = window.innerHeight || self.innerHeight || (a && a.clientHeight) || document.body.clientHeight;
      arrayPageSize = [w, h];
		return arrayPageSize;
	};
})(jQuery);
