try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
window.addEvent('domready', function() {
	 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 = 5;
		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;
		}
	
	}
	

	navigation();
	projectList();
	sifr_init();

});


