$(document).ready(gallery_init);

function gallery_init(){
	$("a.x-gallery").click(function(){
		var g = this.rel || false;
		gallery.show(this.href,g);
		this.blur();
		return false;
	});
}

gallery = {
	width : 0,
	height : 0,
	show : function(url, group) {
		try {
			var self = this;
		
			if (document.getElementById("x_hideselect") == null) {
				$('body').append('<iframe id="x_hideselect" class="x-hideselect"></iframe><div id="x_overlay" class="x-overlay"></div><table id="x_area" class="x-area"><tr><td class="x-area" id="x_area_"><table class="x-wrapper"><tr><td><div id="x-gallery"></div></td></tr></table></table></tr></td>');
				$('#x_area_').click(self.remove);
			}
			
			var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.txt|\.bmp/g;
			var urlType = url.toLowerCase().match(urlString);
			
			if(!(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif')) return;
			
			var g_furl = false;
			var g_navigation = '';
			var g_prev_url = '';
			var g_prev_active = '';
			var g_prev_deactive = '';
			var g_next_url = '';
			var g_next_active = '';
			var g_next_deactive = '';
			
			if(group) {
				var tmp = $("a[@rel="+group+"]").get();
				for (i = 0; ((i < tmp.length) && (g_next_active == '')); i++) {
					if (!(tmp[i].href == url)) {
						if (g_furl == true) {
							g_next_url = tmp[i].href;
							g_next_active = '<a id="x-next" class="x-next png" href="#next"></a>';
						} else {
							g_prev_url = tmp[i].href;
							g_prev_active = '<a id="x-prev" class="x-prev png" href="#previous"></a>';
						}
					} else {
						g_furl = true;
					}
				}
			}
			
			function goNext(){
				$('#x-gallery').html('');
				self.show(g_next_url, group);				
				return false;	
			}
			
					
			function goPrev(){
				$('#x-gallery').html('');
				self.show(g_prev_url, group);
				return false;	
			}
			
			/*-------------- images ------------*/
			if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){
				if(group){	
					g_prev_deactive = g_prev_active == '' ? '<span class="x-prev png"></span>' : '';
					g_next_deactive = g_next_active == '' ? '<span class="x-next png"></span>' : '';
					g_navigation = '<div id="x-navigation">' + g_prev_active + g_prev_deactive + g_next_active + g_next_deactive + '</div>';
				}

				imgPreloader = new Image();
				imgPreloader.onload = function(){
				
					imgPreloader.onload = null;
					
					var iw = imgPreloader.width;
					var ih = imgPreloader.height;
			
					gallery.width = iw + 62;
					gallery.height = ih + 62;
				
					$("#x-gallery").append("<table class='xg'><tr><td class='xg-11 png'><div></div></td><td class='xg-12 pngscale'><div></div></td><td class='xg-13 png'><div ></div></td></tr><tr><td class='xg-21 pngscale'><div></div></td><td class='xg-22'><a href='#close' id='x-closebtn' class='png'></a><div id='x-image'><img id='x-image' src='" + url + "' width='" + iw + "' height='" + ih + "' alt='' /><br /></div>" + g_navigation + "</td><td class='xg-23 pngscale'><div></div></td></tr><tr><td class='xg-31 png'><div ></div></td><td class='xg-32 pngscale'><div></div></td><td class='xg-33 png'><div></div></td></tr></table>");
					
					$('#x-closebtn').click(self.remove);
					
					if (!(g_prev_active == '')) $('#x-prev').click(goPrev);
					
					if (!(g_next_active == '')) $('#x-next').click(goNext);

					$('#x-gallery').css({display:'block'});
				}
		  
				imgPreloader.src = url;
			}
			/*------------- /images ------------*/
			$(window).resize(self.position);
			
		} catch(e) {
			alert(e);
		}
	},

	remove : function() {
		$("#x-gallery").css({ display:'none'});
		$('#x_overlay,#x_hideselect,#x_area,#x-gallery').remove();
		return false;
	}
}
