/*
 * Thickbox 2.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2006 cody lindley
 * Licensed under the MIT License/GNU License:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * Thickbox is built on top of the very light weight jQuery library.
 */

var loading_content = "<img src='/img/thickbox/loadingAnimation.gif' border='0'>"
var close_content	= "<img src='/img/thickbox/close.gif' border='0' alt='Cerrar' width='80' height='24'>";
var prev_content	= "<span id='TB_prev'>&nbsp;&nbsp;<a href='javascript: void(0)' id='TB_prev_link' title='Imagen Anterior (Use la tecla <)'>&lt; Anterior</a></span>";
var next_content	= "<span id='TB_next'>&nbsp;&nbsp;<a href='javascript: void(0)' id='TB_next_link' title='Imagen Siguiente (Use la tecla >)'>Siguiente &gt;</a></span>";

$(document).ready(function(){
	TB_init()
});

// Add thickbox to href elements that have a class of .thickbox
function TB_init(){
	$("a.thickbox").click(function(){
		var t = this.title || this.name || null;
		var g = this.rel || false;
		TB_show(t,this.href,g);
		this.blur();
		return false;
	});
}

// Function called when the user clicks on a thickbox link
function TB_show( caption, url, imageGroup )
{
	try
	{
		if (document.getElementById("TB_HideSelect") == null)
		{
			$("body").append("<iframe src='//:' id='TB_HideSelect'></iframe>");
			$("body").append("<div id='TB_overlay'></div>");
			$("body").append("<div id='TB_window'></div>");

			$("#TB_overlay").click(TB_remove);
		}

		caption = ( caption == null) ? '' : caption;

		$(window).scroll( TB_position );

		TB_overlaySize();

		$("body").append("<div id='TB_load'>"+ loading_content +"</div>");

		TB_load_position();

		var urlString	= /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;
		var urlType		= url.toLowerCase().match(urlString);

		// Code to show images
		if( urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp' )
		{
			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++)
				{
					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_NextHTML		= next_content;
						}
						else
						{
							TB_PrevCaption	= TB_TempArray[TB_Counter].title;
							TB_PrevURL		= TB_TempArray[TB_Counter].href;
							TB_PrevHTML		= prev_content;
						}
					}
					else
					{
						TB_FoundURL		= true;
						TB_imageCount	= "Imagen " + ( TB_Counter + 1 ) +" de "+ ( TB_TempArray.length );
					}
				}
			}

			imgPreloader		= new Image();
			imgPreloader.onload = function()
			{
				imgPreloader.onload = null;

				// Resizing large images - orginal by Christian Montoya edited by me.
				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;

				$("#TB_window").append("<div id='TB_image_container'>");
					if ( !( TB_NextHTML == '' ) ) $("#TB_window").append("<a href='javascript: void(0)' id='nextLink'></a>");
					if ( !( TB_PrevHTML == '' ) ) $("#TB_window").append("<a href='javascript: void(0)' id='prevLink'></a>");
					$("#TB_window").append("<a id='TB_imageOff'><img id='TB_Image' src='"+ url +"' width='"+ imageWidth +"' height='"+ imageHeight +"' alt='"+ caption +"'></a>");
				$("#TB_window").append("</div>");

				$("#TB_window").append("<div id='TB_caption'>"+ caption +"<div id='TB_secondLine'>"+ TB_imageCount + TB_PrevHTML + TB_NextHTML +"</div></div>");
				$("#TB_window").append("<div id='TB_closeWindow'><a href='javascript: void(0)' id='TB_closeWindowButton' title='Close'>"+ close_content +"</a></div>");

				$("#TB_closeWindowButton").click(TB_remove);

				$(document).unkeyup();
				
				$(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });

				if ( !( TB_PrevHTML == '' ) )
				{
					function goPrev()
					{
						$("#TB_window").remove();
						$("body").append("<div id='TB_window'></div>");
						TB_show(TB_PrevCaption, TB_PrevURL, imageGroup);
						return false;  
					}
					$("#TB_prev").click(goPrev);
					$(document).keyup( function(e){ var key = e.keyCode; if(key == 188){goPrev()} });
				}

				if ( !( TB_NextHTML == '' ) )
				{
					function goNext(){
						$("#TB_window").remove();
						$("body").append("<div id='TB_window'></div>");
						TB_show(TB_NextCaption, TB_NextURL, imageGroup);
						return false;
					}
					$("#TB_next").click(goNext);
					$(document).keyup( function(e){ var key = e.keyCode; if(key == 190){goNext()} });
				}

				TB_position();

				$("#TB_load").remove();
				
				$("#TB_imageOff").click(function(){
					TB_remove()
				});

				$("#nextLink").click(function(){
					if( !( TB_NextHTML == '' ) )
						goNext();
				});

				$("#prevLink").click(function(){
					if( !( TB_PrevHTML == '' ) )
						goPrev();
				});
								
				$("#TB_window").css({display:"block"}); //for safari using css instead of show
			}

			imgPreloader.src = url;
		}
		else
		{
			// Code to show html, iframe, or inline content pages

			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = TB_parseQuery( queryString );

			TB_WIDTH	= (params['width'] * 1) + 30;
			TB_HEIGHT	= (params['height'] * 1) + 40;

			ajaxContentW = TB_WIDTH - 30;
			ajaxContentH = TB_HEIGHT - 45;

			if(url.indexOf('TB_iframe') != -1)
			{
				urlNoQuery = url.split('TB_')  
				$("#TB_window").append("<div id='TB_title'>");
					$("#TB_window").append("<div id='TB_ajaxWindowTitle'>"+ caption +"</div>");
					$("#TB_window").append("<div id='TB_closeAjaxWindow'><a href='javascript: void(0)' id='TB_closeWindowButton' title='Close'>"+ close_content +"</a></div>");
				$("#TB_window").append("</div>");
				$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+ urlNoQuery[0] +"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+( ajaxContentW + 29 )+"px;height:"+( ajaxContentH + 17 )+"px;' onload='TB_showIframe()'></iframe>");
			}
			else
			{
				$("#TB_window").append("<div id='TB_title'>");
					$("#TB_window").append("<div id='TB_ajaxWindowTitle'>"+ caption +"</div>");
					$("#TB_window").append("<div id='TB_closeAjaxWindow'><a href='javascript: void(0)' id='TB_closeWindowButton' title='Close'>"+ close_content +"</a></div>");
				$("#TB_window").append("</div>");
				$("#TB_window").append("<div id='TB_ajaxContent' style='width:"+ ajaxContentW +"px;height:"+ ajaxContentH +"px;'></div>");
			}

			$("#TB_closeWindowButton").click(TB_remove);

			if(url.indexOf('TB_inline') != -1)
			{
				$("#TB_ajaxContent").html($('#' + params['inlineId']).html());
				TB_position();
				$("#TB_load").remove();
				$("#TB_window").css({display:"block"});
				$(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });
			}else if( url.indexOf('TB_iframe') != -1 )
			{
				TB_position();

				// Be nice to safari
				if( frames['TB_iframeContent'] == undefined )
				{
					$("#TB_load").remove();
					$("#TB_window").css({display:"block"});
					$(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });
				}          
			}
			else
			{
				$("#TB_ajaxContent").load(url, function(){
					TB_position();
					$("#TB_load").remove();
					$("#TB_window").css({display:"block"});
					$(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });
				});
			}
		}

		$(window).resize(TB_position);

	}
	catch(e)
	{
		alert( e );
	}
}

//-----------------------------------------------------------------------------
// Helper functions below

function TB_showIframe()
{
  $("#TB_load").remove();
  $("#TB_window").css({display:"block"});
  $(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });
}

function TB_remove()
{
  $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();});
  $("#TB_load").remove();
  
  $(document).unkeyup();
  
  return false;
}

function TB_position()
{
  var pagesize = TB_getPageSize();  
  var arrayPageScroll = TB_getPageScrollTop();  

  $("#TB_window").css({width:TB_WIDTH+"px",left: (arrayPageScroll[0] + (pagesize[0] - TB_WIDTH)/2)+"px", top: (arrayPageScroll[1] + (pagesize[1]-TB_HEIGHT)/2)+"px" });

  $("#TB_window #nextLink, #TB_window #prevLink").css ( {height: (TB_HEIGHT-44)+"px" } );
  
  TB_overlaySize();
}

function TB_overlaySize()
{
	if( window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX )
	{  
		yScroll = window.innerHeight + window.scrollMaxY;
		xScroll = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
		xScroll = document.body.scrollWidth;
	} else {
		// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
		xScroll = document.body.offsetWidth;
	}

	$("#TB_overlay").css({"height":yScroll +"px", "width":xScroll +"px"});
	$("#TB_HideSelect").css({"height":yScroll +"px","width":xScroll +"px"});
}

function TB_load_position()
{
	var pagesize		= TB_getPageSize();
	var arrayPageScroll = TB_getPageScrollTop();

	$("#TB_load").css({left: (arrayPageScroll[0] + (pagesize[0] - 100)/2)+"px", top: (arrayPageScroll[1] + ((pagesize[1]-100)/2))+"px" }).css({display:"block"});
}

function TB_parseQuery( query )
{
	var Params = new Object ();

	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_getPageScrollTop()
{
	var yScrolltop;
	var xScrollleft;

	if (self.pageYOffset || self.pageXOffset) {
		yScrolltop	= self.pageYOffset;
		xScrollleft = self.pageXOffset;
	}
	// Explorer 6 Strict
	else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft )
	{
		yScrolltop	= document.documentElement.scrollTop;
		xScrollleft = document.documentElement.scrollLeft;
	// All other Explorers
	}
	else if (document.body)
	{
		yScrolltop	= document.body.scrollTop;
		xScrollleft = document.body.scrollLeft;
	}

	arrayPageScroll = new Array( xScrollleft, yScrolltop ) 

	return arrayPageScroll;
}

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 = new Array( w, h );
	
	return arrayPageSize;
}