if((typeof console == "undefined")){
	window.console = {};
	if(window.location.href.indexOf('.dev.')){
		console.log = function(content){
			// debug(content);
		};	
	}
	else{
		console.log = function(content){
			return content;
		};
	}
}
Element.implement({
	hasEvent: function(eventType,fn) {
		//get the element's events
		var myEvents = this.retrieve('events');
		//can we shoot this down?
		return myEvents && myEvents[eventType] && (fn == undefined || myEvents[eventType].keys.contains(fn));
	}
});

if (typeof KW == 'undefined'){
	KW = {} // create new object
	KW.name = 'wrapper object';
	KW.BASE = {};
	KW.BASE.name = 'base property';
	KW.PRIMARY = {};
	KW.PRIMARY.name = 'elements within primary group';
	KW.SECONDARY = {};
	KW.SECONDARY.name = 'elements within secondary group';
}
KW.BASE.initGlobals = function(){
	KW.PRIMARY.alpha		= $('primary').getElement('.alpha');	
	KW.PRIMARY.beta			= $('primary').getElement('.beta');
	KW.PRIMARY.catfilter	= $('primary').getElements('.cat-filter');
	KW.SECONDARY.alpha		= $('secondary').getElement('.alpha');	
	KW.SECONDARY.beta		= $('secondary').getElement('.beta');
}
window.addEvent('domready',KW.BASE.initGlobals);
KW.BASE.emailThanks = function(){
	KW.SECONDARY.beta.empty();
	var message = new Element('p', {
		html:'Thank You, your message has been sent.'
	})
	message.inject(KW.SECONDARY.beta);
}
KW.BASE.buttonOver = function(x){
	x.target.fade('.5');
}
KW.BASE.buttonOut = function(x){
	x.target.fade('in');

}
KW.BASE.initButtonHover = function (){
	if(!$(document.body).getElement('.button')){return;}
	var button = $(document.body).getElements('.button');
	button.each(function(el){
		el.addEvents({
			'mouseenter':KW.BASE.buttonOver.bindWithEvent(this),
			'mouseleave':KW.BASE.buttonOut.bindWithEvent(this)
		});
	});
}
window.addEvent('domready',KW.BASE.initButtonHover);

KW.BASE.initDetailPageBuild = function(args){
	KW.SECONDARY.beta.set('html',args.html);
	if(typeof sIFR == "function"){
		sIFR.replaceElement("h3", named({sFlashSrc: "http://keithewarner.com/global/sIFR-2.0.7/basic-light.swf", sColor: "#ff9933", sWmode: "transparent"}));
	};
	KW.SECONDARY.beta.fade('in');
	if($type($('project-summary')) == false) return false;
	var triggers = KW.SECONDARY.beta.getElements('.detailItem');
	var projectsummary = $('project-summary');
	var caption = KW.SECONDARY.beta.getElements('.caption');
	projectsummary.empty();
	projectsummary.set('html', caption[0].get('html'))
	if(triggers.length <= 1){return false};
	var target = $('detailContainer');
	var fx = new Fx.Scroll(target,{duration:300, transition: Fx.Transitions.Quad.easeInOut});
	var pagination = new Element('div',{id:'pagination'});
	var imgs = KW.SECONDARY.beta.getElements('img');
	imgs.each(function(el, index){
		el.addEvent('click',function(){
			var scrollWidth = 360 * index ;
			fx.start(scrollWidth, 0)
			triggers.each(function(el){
				el.getElement('img').fade(.5)
			})
			triggers[index].getElement('img').fade('in');
			projectsummary.empty();
			projectsummary.set('html', caption[index].get('html'))
		})
	})
	triggers.each(function(el, index){
		var copy = index+1;
		if(index < 10){
			copy = '0'+copy;
		}
		var page = new Element('span',{
			html:copy,
			events:({
				'click':function(){
					//fx.toElement(triggers[index]);
					var scrollWidth = 360 * index ;
					fx.start(scrollWidth, 0)
					triggers.each(function(el){
						el.getElement('img').fade(.5)
					})
					triggers[index].getElement('img').fade('in');
					projectsummary.empty();
					projectsummary.set('html', caption[index].get('html'))
				}
			})
		});
		triggers[0].getElement('img').fade('in')
		page.inject(pagination,'bottom');
	})
	pagination.inject($('project-summary'),'before') 
}
KW.BASE.detailRequestClass = function(responseHTML){
			KW.BASE.initDetailPageBuild({'html':responseHTML});
}
//KW.BASE.detailRequest = function(event){
//	event.stop();
//	KW.SECONDARY.beta.fade('out');
//	var href = event.target.href;
//	var request = new Request.HTML({
//		url:href,
//		method: 'post',
//		onComplete:function(responseTree, responseElements, responseHTML, responseJavaScript){
//			KW.SECONDARY.beta.removeClass('loading');
//			KW.BASE.initDetailPageBuild({'html':responseHTML});
//		}
//	});
//	request.send()	
//}
KW.BASE.initDetailCall = function(){
	var trigger = $(document.body).getElements('.item')
	trigger.each(function(el){
	var projekt = new Projekt({
			_trigger:el,
			_target:KW.SECONDARY.beta,
			onFire:KW.BASE.detailRequestClass
		});	
	})	
	
	
//	trigger.each(function(el){
//		el.addEvents({
//			'mouseenter':KW.BASE.buttonOver.bindWithEvent(this),
//			'mouseleave':KW.BASE.buttonOut.bindWithEvent(this),
//			'click':KW.BASE.detailRequest.bindWithEvent(this)
//		})
//	})	
}

KW.BASE.initWallPageBuild = function(args){
	var fx = new Fx.Morph($('itemThumbContainer'), {
		duration: 250, 
		transition: Fx.Transitions.Quad.easeIn,
		onComplete:function(){
			$('itemThumbContainer').empty()
			fy.start({
				'width': 240,
				'background-color': ['#ff9933', '#222']
			});
		}
	});
	var fy = new Fx.Morph($('itemThumbContainer'), {
		duration: 250, 
		transition: Fx.Transitions.Quad.easeOut,
		onComplete:function(){
			$('itemThumbContainer').set('html',args.html);
			KW.BASE.initDetailCall();
		}
	});
	fx.start({
		'width': 0
	});
}
KW.BASE.clearSecondary = function(){
	var fx = new Fx.Morph(KW.SECONDARY.beta, {
		duration: 250, 
		transition: Fx.Transitions.Quad.easeInOut,
		onComplete:function(){
			KW.SECONDARY.beta.empty();
			KW.SECONDARY.beta.fade('in');
			
		}
		
	});

	fx.start({
		'opacity': 0
	});
}
/* ------------------------------------------------------------------------------------------------------------------------ */

//KW.BASE.historyLaunch = function(){
//	KW.BASE.clearSecondary();
//	var href = '';
//	if(KW.BASE.hist._currentLocation){
//		href = 'index.php/request/project-by-category/' + KW.BASE.hist._currentLocation;
//		var target = $(KW.BASE.hist._currentLocation.split('/')[0]);
//		KW.PRIMARY.catfilter.each(function(el){el.removeClass('selected')});
//		target.addClass('selected');
//	}/*else{
//		$('C4').addClass('selected');
//		h.addState('C4/');
//		href = 'index.php/request/project-by-category/C4';
//	}*/
//	
//	var request = new Request.HTML({
//		url:href,
//		method: 'post',
//		onComplete:function(responseTree, responseElements, responseHTML, responseJavaScript){
//			KW.BASE.initWallPageBuild({'html':responseHTML});
//		}
//	});
//	request.send()
//}
//KW.BASE.hististoryController = function(event){
//	event.stop();
//	console.log(KW.BASE.hist);
//	var href = event.target.get('href').split('project-by-category/')[1];
//	KW.BASE.hist.addState(href);
//	KW.BASE.historyLaunch();
//}
/* ------------------------------------------------------------------------------------------------------------------------ */

//KW.BASE.hist = new HistoryManager();
KW.BASE.requestSuccess = function(responseHTML){
	KW.BASE.initWallPageBuild({'html':responseHTML});
}
KW.BASE.setActiveNav = function(event){
	event.stop();
	var link = $('primaryNavigation').getElements('a');
	link.each(function(x){
		x.removeClass('active')
	}) 
	event.target.addClass('active')
}
KW.BASE.initCategoryFilter = function(){
	KW.PRIMARY.catfilter.each(function(el){
		//el.addEvent('click',KW.BASE.hististoryController.bindWithEvent(this))
		var projekt = new Projekt({
				_trigger:el,
				_target:KW.SECONDARY.beta,
				onFire:KW.BASE.requestSuccess
			});
	})
	
	var addlNav = $('primary').getElements('.general');
	addlNav.each(function(el){
		var projekt = new Projekt({
			_trigger:el,
			_target:KW.SECONDARY.beta,
			onFire:KW.BASE.detailRequestClass
		});	
		el.addEvent('click', KW.BASE.setActiveNav.bindWithEvent(this))
	})
}
window.addEvent('domready',KW.BASE.initCategoryFilter);

KW.BASE.setDimensions = function(){
	var primary = $('primary');
	var secondary = $('secondary');
	var windowWidth = $('wrapper').getSize().x - 258;
	secondary.setStyle('width',windowWidth);
	var badge = $('zeronine-badge');
	if(window.getSize().y < 800 && window.getSize().x < 1180){
		badge.fade('out')
	}else{
		badge.fade('in')
	}
}	
window.addEvent('domready',KW.BASE.setDimensions);
window.addEvent('resize',KW.BASE.setDimensions);

