// Javascript Document

var overlay = {
	
	init:function() {
		
		overlay.layout = $('dt-overlay');
		overlay.links  = Core.getElementsByClass('overlay');
		
		for(var i =0, ii = overlay.links.length; i<ii; i++) {
			overlay.links[i]._ref = i;
			Core.addEventListener(overlay.links[i], "click", overlay.openListener);
			
		}
		
		if(detectBrowser.isIE) {
			overlay.duration = 0.1;
		} else {
			overlay.duration = 0.3;
		}
		
		overlay.frameRate = 100;
		overlay.startOP = 0;
		overlay.endOP = 0.6;
		if(detectBrowser.isIE) {
			overlay.increment = 0.15;
		} else {
			overlay.increment = (overlay.endOP - overlay.startOP) / (overlay.duration * overlay.frameRate);
		}
		
		overlay.opt = overlay.startOP;
		
		Core.addEventListener(overlay.layout, "click", overlay.closeListener);
		Core.addEventListener(window, "resize", overlay.resizeListener);
	},
	
	openListener: function(event) {
		Core.show(overlay.layout);
		overlay.div = $(overlay.links[this._ref].getAttribute('rel'));
		var buttonID = $(overlay.links[this._ref].getAttribute('rel') + 'Closebtn');
		Core.addEventListener(buttonID, "click", overlay.closeListener);
		overlay.showOverlay();
		Core.preventDefault(event);
	},
	
	closeListener: function(event) {
		clearTimeout(overlay._timer);
		overlay._timer = null;
		Core.hide(overlay.div);
		overlay.hideOverlay();
		Core.preventDefault(event);
	},
	
	resizeListener: function() {
		Core.center(overlay.div);
	},
	
	showOverlay: function() {
		
		overlay.opt += overlay.increment;
		if(overlay.opt >= overlay.endOP) {
			overlay.opt = overlay.endOP
			Core.show(overlay.div);
			Core.center(overlay.div);
		} else {
			setTimeout(overlay.showOverlay, 1000/overlay.frameRate);
		}
		Core.setOpacity(overlay.layout, overlay.opt);
	},
	
	hideOverlay: function() {
		
		overlay.opt -= overlay.increment;
		if(overlay.opt <= overlay.startOP) {
			overlay.opt = overlay.startOP;
			Core.hide(overlay.layout);
		} else {
			overlay._timer = setTimeout(overlay.hideOverlay, 1000/overlay.frameRate);
		}
		Core.setOpacity(overlay.layout, overlay.opt);
	}
};

Core.start(overlay);
