try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

window.addEvent('domready', function() {

	function sifr_init () {
	if(typeof sIFR == "function"){
	
	// This is the preferred "named argument" syntax
		//sIFR.replaceElement(named({sSelector:"body h1", sFlashSrc:"vandenkeere.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:20, nPaddingBottom:20, sFlashVars:"textalign=center&offsetTop=6"}));
	
	// This is the older, ordered syntax
		//sIFR.replaceElement("h5#pullquote", "vandenkeere.swf", "#000000", "#000000", "#FFFFFF", "#FFFFFF", 0, 0, 0, 0);
		//sIFR.replaceElement("h2", "tradegothic.swf", "#000000", null, null, null, 0, 0, 0, 0);
		//sIFR.replaceElement("h4.subhead", "tradegothic.swf", "#660000", null, null, null, 0, 0, 0, 0);
		//sIFR.replaceElement("h3.sidebox","tradegothic.swf","#000000", "#000000", "#DCDCDC", "#DCDCDC", 0, 0, 0, 0, null);
		
		var color1, color2, color3, color4, color5, color6;
		
		if(skin=='blue-theme') {
			color1 = '#91c5e1';
			color2 = '#ffffff';
			color3 = '#5e7379';
			color4 = '#78b8ca';
			color5 = '#57523c';
			color6 = '#78b8ca';
		}
		
		if(skin=='white-theme') {
			color1 = '#000000';
			color2 = '#0f0f0f';
			color3 = '#727272';
			color4 = '#4b4b4b';
			color5 = '#d8d8d8';
			color6 = '#4b4b4b';	
		}
		
		if(skin=='black-theme') {
			color1 = '#d5d5d5';
			color2 = '#ffffff';
			color3 = '#727272';
			color4 = '#aaaaaa';
			color5 = '#535353';
			color6 = '#a9aaaa';	
		}
		
		
		
		sIFR.replaceElement(named({sSelector:"h2 em", sFlashSrc:"flash/aller.swf", sColor:color1, nPaddingTop:9, sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:"h3", sFlashSrc:"flash/aller.swf", sColor:color2, sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:".project_nav dt", sFlashSrc:"flash/aller.swf", sColor:color3,  sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:"#wrapper h4", sFlashSrc:"flash/aller.swf", sColor:color4, nPaddingBottom:6, sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:"#footer h4", sFlashSrc:"flash/aller.swf", sColor:color5, nPaddingBottom:6, sWmode:"transparent"}));
		sIFR.replaceElement(named({sSelector:".project_type dt", sFlashSrc:"flash/aller.swf", sColor:color6, sWmode:"transparent"}));
		
		
	}
	
	}


	 Fx.Scroll2 = new Class({
	  
		 'Extends': Fx.Scroll,
	  
		 'styleString': Element.getComputedStyle,
		 'styleNumber': function(element, style) {
			 return this.styleString(element, style).toInt() || 0;
		 },
		 'borderBox': function(element) {
			 return this.styleString(element, '-moz-box-sizing') == 'border-box';
		 },
		 'topBorder': function(element) {
			 return this.styleNumber(element, 'border-top-width');
		 },
		'leftBorder': function(element) {
			 return this.styleNumber(element, 'border-left-width');
		 },
		 'isBody': function(element) {
			 return (/^(?:body|html)$/i).test(element.tagName);
		 }, 
		 'toElement': function(el) {
			 var offset   = {x: 0, y: 0};
			 var element  = $(el);
			
			 if (this.isBody(element)) {
				 return offset;
			 }
			 var scroll = element.getScrolls();
				   
			 while (element && !this.isBody(element)){
				 offset.x += element.offsetLeft;
				 offset.y += element.offsetTop;
				
				 if (Browser.Engine.gecko){
					 if (!this.borderBox(element)){
						 offset.x += this.leftBorder(element);
						 offset.y += this.topBorder(element);
					 }
					 var parent = element.parentNode;
					 if (parent && this.styleString(parent, 'overflow') != 'visible'){
						 offset.x += this.leftBorder(parent);
						 offset.y += this.topBorder(parent);
					 }
				 } else if (Browser.Engine.trident || Browser.Engine.webkit){
					 offset.x += this.leftBorder(element);
					 offset.y += this.topBorder(element);
				 }
	  
				 element = element.offsetParent;
				 if (Browser.Engine.trident) {
					 while (element && !element.currentStyle.hasLayout) {
						 element = element.offsetParent;
					 }
				 }
			 }
			 if (Browser.Engine.gecko && !this.borderBox(element)){
				 offset.x -= this.leftBorder(element);
				 offset.y -= this.topBorder(element);
			 }
			
			 var relative = this.element;
			 var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};
			 var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};
			
			 return this.start(position.x - relativePosition.x, position.y - relativePosition.y);
		 }
	 });
 
 
	function navigation () {
		var main_lks = $$('#main_menu a');
		var navFx = new Fx.Scroll2(window, 
			{
				wait: true, 
				wheelStops: false,
				duration: 500,
				transition: Fx.Transitions.Quad.easeInOut
			}
		)
		var scrolltop_lks = $$('.scroll');
		for(i=0; i<main_lks.length; i++) {
			main_lks[i].onclick = function () {
				var target = this.href.substr(this.href.indexOf('#')+1);
				navFx.toElement(target);
				return false;
			}
		}
		for(i=0; i<scrolltop_lks.length; i++) {
			scrolltop_lks[i].onclick = function () {
				navFx.toTop();
				return false;
			}
		}
		
	}


	function projectList () {
		var project_list = $('project_list');
		if(!project_list) {return false}
		var projects = $$('#project_list .project');
		var project_list_inner = $('project_list_inner');
		if(!projects.length) {return false}
		var colon = 2;
		project_list_inner.style.width = Math.ceil(projects.length/colon) * 1000 + 'px';
		for(i=0; i<projects.length; i++) {
			if(i%colon==0) {
				var project_group = document.createElement('div');
				project_group.className = 'project_group';
				project_list_inner.appendChild(project_group);
				
			}
			
			project_group.appendChild(projects[i]);
			
			
		}
		
			
		
		var prev = $('prev');
		var next = $('next');
		var project_groups = $$('.project_group');
		var counter = 0;
		var allow_scroll = true;
		
		var projectsFx = new Fx.Scroll2(project_list, 
			{
				wait: true, 
				wheelStops: false,
				duration: 500,
				transition: Fx.Transitions.Quad.easeInOut,
				onStart: function () {
					allow_scroll = false;
				},
				onComplete: function () {
					allow_scroll = true;
				}
	
				
			}
		)
		projectsFx.set(0,0);
		prev.onclick = function () {
			if(allow_scroll) {
				if(counter>0) {
					counter--;
				}
			
				projectsFx.toElement(project_groups[counter]);
			}
			return false;
		}
		next.onclick = function () {
			if(allow_scroll) {
				counter++;
				if(counter>project_groups.length-1) {
					counter = 0;
				}
				projectsFx.toElement(project_groups[counter]);
			}
			return false;
		}
	
	}
	
	
	if($('contactForm')) {
		
		var form = $('contactForm');
		
		
		form.set('send', {
			method: "post",
			onSuccess: function(response) {
				switch (response){
					case "email":
						$('response').innerHTML = "<span class='negative'>Invalid mail</span>";
						$('email').focus();
					break;
			
					case "subject":
						$('response').innerHTML = "<span class='negative'>Invalid subject</span>";
						$('subject').focus();
					break;
			
					case "name":
						$('response').innerHTML = "<span class='negative'>Invalid name</span>";
						$('name').focus();
					break;
			
					case "message":
						$('response').innerHTML = "<span class='negative'>Invalid message</span>";
						$('message').focus();
					break;
			
					case "success":
						$('response').innerHTML = "<span class='positive'>Mail sent</span>";
						$('email').value = '';
						$('subject').value = '';
						$('name').value = '';
						$('message').value = '';
					break;
			
					default:
						$('response').innerHTML = "<span class='negative'>Unknown error</span>";
					break;
				}
			},
			onFailure: function () {
				$('response').innerHTML = "<span class='negative'>Unknown error</span>";
			}
		});
		
		form.addEvent('submit', function(e) {
			new Event(e).stop();
			form.send();
		});
		
	}
	

	navigation();
	projectList();
	sifr_init();

});


