/* =========================================================
// jquery.thickbox.js 1.0
// 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";
	
	$.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;
			var a = this.href || this.alt;
			var 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$/;
			var 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 = tb_getPageSize();
					var x = a[0] - 150;
					var y = a[1] - 150;
					var b = imgPreloader.width;
					var 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 === ""))
					{
						function goPrev()
						{
							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 === ""))
					{
						function goNext()
						{
							$("#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(/^[^\?]+\??/, '');
				var m = $.thickbox.tb_parseQuery(l);
				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['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]);
			var f = unescape(d[1]);
			f = f.replace(/\+/g, ' ');
			b[e] = f;
		}
		return b
	}
	$.thickbox.tb_getPageSize = function()
	{
		var a = document.documentElement;
		var w = window.innerWidth || self.innerWidth || (a && a.clientWidth) || document.body.clientWidth;
		var h = window.innerHeight || self.innerHeight || (a && a.clientHeight) || document.body.clientHeight;
		arrayPageSize = [w, h];
		return arrayPageSize;
	}
})(jQuery);