$(function(){

	$(window).resize(function() {
		var page = $('#page');
		page.show();
		var pad = page.outerHeight(true) - page.height();
		page.height($(window).height()-$('#header').outerHeight(true)-$('#footer').outerHeight(true)-pad);
		page.resize();
		$('#image img').center(page,1250/846,true);
	});
	$(window).resize();
	
	if(false){
		$('#page').append('<div id="page_border" style="background-image:url(./images/bg.png);position:absolute;width:100%;height:100%;top:0;left:0;"></div>');
		$('#page_border').scale9Grid({top:15,bottom:15,left:15,right:15});
	}

	$('#menu li').css('zIndex', 1000);
	$('#menu li').hover(
		function() {
			$(this).toggleClass('hover',true);
		},
		function() {
			$(this).toggleClass('hover',false);
		}
	);
	
});
jQuery.fn.center=function(container, aspect, bleed){
	var cw=container.width()+1;
	var ch=container.height()+1;
	var ca=cw/ch;
	var witch = ca < aspect ? bleed : !bleed;
	var offset = {top:0,left:0,position:'absolute'};
	if(witch){
		offset.width=ch*aspect
		offset.height = ch;
		offset.left = (cw - offset.width)/2;
	} else {
		offset.width = cw;
		offset.height = cw/aspect;
		offset.top = (ch - offset.height)/2;
	}
	this.css(offset).fadeIn(250);
}

$.render=function() {
	var buffer=[];
	for(var i=0; i< arguments.length;i++){
		var t = arguments[i];
		$(t[1]).each(function(j) {
			buffer.push($.tokenize(t[0],this));
		});
	}
	return buffer.join('');
}

$.tokenize=function(str, obj) {
	return str.replace(/\{([^\{\}]*)\}/gi, function(m,k) {
		var ks=k.split('.');
		var v = obj;
		$(ks).each(function(){
			if(!(v=v[this])){
				v=k;
				return false;
			}
		});
		return v;
	});
}

$.extend($.easing, {
    easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	}
});

var rmp = {
	galleryRoot:'./',
	defaultGallery:'wed_gallery',
	galleries:{},
	showGallery:function(name){
		function show(gallery){
			if(rmp.galleries.current != gallery){
				gallery.render($('#gallery'));
				rmp.galleries.current=gallery;
			}
		}
		if(!name && rmp.galleries.current){
			show(rmp.galleries.current);
		} else if(rmp.galleries[name]){
			show(rmp.galleries[name]);
		} else {
			var img_root = rmp.galleryRoot + name + '/';
			var path = img_root + 'resources/mediaGroupData/group.xml';
			var images = [];
			
			$.ajax({
                type: "GET",
                url: path,
                dataType: "xml",
                success: function(xml) {
                    var i=0;
					$(xml).find('rendition[size=large]').each(function(){
                        var el = $(this);
						images.push({
							src:img_root + el.attr('src'),
							thumb:img_root + el.attr('src').replace('large','thumb'),
							width:Number(el.attr('width')),
							height:Number(el.attr('height')),
							aspect:Number(el.attr('width'))/Number(el.attr('height'))
						});
                    }); 
					show(rmp.galleries[name] = new rmp.Gallery(name, images));
				}
             });
		}
	},
	initGallery:function() {
		var galleryName = location.hash.substring(1);
		if(!galleryName) {
			galleryName = 'wed_gallery';
		}
		rmp.showGallery(galleryName);
		$('#menu a').click(function(){
			window.setTimeout(function(){
				rmp.initGallery();
			},100);
		});
	}
}
