var Site = {
	start: function(){	
		if ($('kwick')){
			Site.initRollouts();
			Site.parseKwicks();
			Site.parseHoverEffects();
			Site.parseLinks();
			
			//Site.fixIEPNG($$('.rollout'));
		}
	},
	
	
	parseKwicks: function(){
		var kwicks = $$('#kwick .kwick');
		var fx = new Fx.Elements(kwicks, {wait: false, duration: 200, transition: Fx.Transitions.Quad.easeOut});

		kwicks.each(function(kwick, i){
			kwick.addEvent('mouseenter', function(e){
				var obj = {};
				obj[i] = {
					'width': [kwick.getStyle('width').toInt(), 212]
				};
				kwicks.each(function(other, j){
					if (other != kwick){
						var w = other.getStyle('width').toInt();
						if (w != 132) obj[j] = {'width': [w, 132]};
					}
				});
				fx.start(obj).chain(function(){RolloutManager.rollMenuOut(kwick, true);});
			});
		});
		
		$('kwick').addEvent('mouseleave', function(e){
			RolloutManager.rollMenuesIn();
			
			var obj = {};
			kwicks.each(function(other, j){
				obj[j] = {'width': [other.getStyle('width').toInt(), 152]};
			});
			fx.start(obj);
		});
	},
	
	initRollouts: function(){
		//RolloutManager.registerRollout($('div_kwick_gorrion'), $('div_gorrion_rollout'));
		RolloutManager.registerRollout($('div_kwick_products'), $('div_products_rollout'));
		RolloutManager.registerRollout($('div_kwick_projects'), $('div_projects_rollout'));
	},
	
	parseHoverEffects: function(){
		$$('.hover').each(function(btn){
			var	src   = btn.src;
			var hover = src.replace(/(.*)\.(.*$)/, '$1_hover.$2');
			
			btn.onmouseover = function(){btn.src = hover};
			btn.onmouseout  = function(){btn.src = src};
		});
	},
	
	parseLinks: function(){
		var links = $$('a.ajax');

		links.each(function(link, i){
			var mtch = link.href.match(/\/p\/(.*)$/);
			if (mtch != null){
				link.onclick = 	function(){
													SZAjax.loadPage(mtch[1]);
													return false;
												};
			}
		});
	}
};


var RolloutManager = {
	kwicks_height: 80,
	rollouts: new Hash(),
	openedRollouts: [],
	
	registerRollout: function(container, rolloutMenu){
		RolloutManager.rollouts.set(container.id, {'container': container, 'rolloutmenu': rolloutMenu});
	},

	
	rollMenuOut: function(id, closeOthers){
		var id_ = id;
		if (typeof id_ == 'object'){
			id = id_.id;
		}
		
		if (closeOthers){
			RolloutManager.openedRollouts.each(function(key){
				if (key != id){
					RolloutManager.rollMenuIn(key);
				}
			});
		}
		
		if (RolloutManager.rollouts.has(id) && !RolloutManager.openedRollouts.contains(id)){
			RolloutManager.openedRollouts.include(id);

			var elements 			= RolloutManager.rollouts.get(id);
			var rolloutHeight = elements['rolloutmenu'].getHeight();
			elements['rolloutmenu'].setStyles({	'height': '0px', 
																					'visibility': 'visible'});

			var fx = new Fx.Elements(	[elements['container'], elements['rolloutmenu']], 
																{wait: false, transition: Fx.Transitions.Quad.easeOut});
			fx.start({'0': {'height': RolloutManager.kwicks_height + rolloutHeight},
								'1': {'height': [0, rolloutHeight]}});
		}
	},
	
	rollMenuesIn: function(){
		RolloutManager.openedRollouts.each(function(key){
			RolloutManager.rollMenuIn(key);
		});
	},
	
	rollMenuIn: function(id){
		var id_ = id;
		if (typeof id_ == 'object'){
			id = id_.id;
		}
						
		if (RolloutManager.openedRollouts.contains(id)){
			var elements 			= RolloutManager.rollouts.get(id);
			var rolloutHeight = elements['rolloutmenu'].getHeight();

			var fx = new Fx.Elements(	[elements['container'], elements['rolloutmenu']], 
																{wait: false, transition: Fx.Transitions.Quad.easeOut});
			fx.start({'0': {'height': RolloutManager.kwicks_height},
								'1': {'height': [rolloutHeight, 0]}}).chain(function(){
				elements['rolloutmenu'].setStyles({	'visibility': 'hidden',
																						'height': 'auto'});
			});
																					
			RolloutManager.openedRollouts.erase(id);
		}
	}
};

window.addEvent('load', Site.start);


