// <![CDATA[

var bottega = new function() {
	var projects = new Array(
		new Array(5, "11time/01.jpg", "11time/02.jpg", "11time/03.jpg", "11time/04.jpg", "11time/05.jpg"),
		new Array(2, "amagerhylden/01.jpg"),
		new Array(3, "ciborowski/01.jpg"),
		new Array(2, "collcoll/01.jpg"),
		
		new Array(4, "dada/01.jpg", "dada/02.jpg", "dada/03.jpg", "dada/04.jpg", "dada/05.jpg", "dada/06.jpg", "dada/07.jpg", "dada/08.jpg", "dada/09.jpg", "dada/10.jpg", "dada/11.jpg"),
		new Array(3, "doxwise/01.jpg", "doxwise/02.jpg", "doxwise/03.jpg", "doxwise/04.jpg", "doxwise/05.jpg"),
		new Array(5, "drwolf/01.jpg", "drwolf/02.jpg", "drwolf/03.jpg", "drwolf/04.jpg", "drwolf/05.jpg"),
		
		new Array(5, "fashionweek/01.jpg"),
		new Array(3, "fibonacci/01.jpg", "fibonacci/02.jpg", "fibonacci/03.jpg"),
		new Array(4, "kannik/01.jpg", "kannik/02.jpg", "kannik/03.jpg", "kannik/04.jpg", "kannik/05.jpg", "kannik/06.jpg", "kannik/07.jpg", "kannik/08.jpg"),
		
		new Array(2, "guided/01.jpg", "guided/02.jpg", "guided/03.jpg", "guided/04.jpg", "guided/05.jpg"),
		new Array(3, "knowyouricon/01.jpg", "knowyouricon/02.jpg", "knowyouricon/03.jpg", "knowyouricon/04.jpg"),
		new Array(2, "komponent/01.jpg"),
		new Array(4, "kyt/01.jpg", "kyt/02.jpg", "kyt/03.jpg", "kyt/04.jpg", "kyt/05.jpg", "kyt/06.jpg", "kyt/07.jpg", "kyt/08.jpg"),
		new Array(1, "refleks06/01.jpg"),
		
		new Array(4, "makeitclassic/01.jpg"),
		new Array(4, "mamamo1/01.jpg"),
		new Array(2, "mamamo2/01.jpg", "mamamo2/02.jpg"),
		new Array(2, "mamamo3/01.jpg"),
		
		new Array(3, "mhmbucha/01.jpg"),
		new Array(3, "mtv/01.jpg", "mtv/02.jpg"),
		new Array(4, "vegamural/01.jpg", "vegamural/02.jpg", "vegamural/03.jpg", "vegamural/04.jpg"),
		new Array(2, "polygonen/01.jpg", "polygonen/02.jpg", "polygonen/03.jpg", "polygonen/04.jpg"),
		
		new Array(3, "musikmodaids/01.jpg", "musikmodaids/02.jpg", "musikmodaids/03.jpg"),
		new Array(5, "strom/01.jpg", "strom/02.jpg", "strom/03.jpg", "strom/04.jpg"),
		new Array(2, "rumpistollive/01.jpg", "rumpistollive/02.jpg"),
		new Array(2, "texasrose/01.jpg"),
		
		new Array(3, "soulland/01.jpg", "soulland/02.jpg", "soulland/03.jpg", "soulland/04.jpg"),
		new Array(3, "soundvenuetee/01.jpg"),
		new Array(2, "thebrave/01.jpg"),
		new Array(2, "thereisnotroubleindenmark/01.jpg", "thereisnotroubleindenmark/02.jpg"),
		new Array(2, "thomastroelsen/01.jpg"),
		
		new Array(2, "tokyo/01.jpg", "tokyo/02.jpg", "tokyo/03.jpg", "tokyo/04.jpg", "tokyo/05.jpg"),
		new Array(4, "veganatklub/01.jpg", "veganatklub/02.jpg", "veganatklub/03.jpg", "veganatklub/04.jpg", "veganatklub/05.jpg", "veganatklub/06.jpg"),
		new Array(4, "visuals/01.jpg", "visuals/02.jpg", "visuals/03.jpg", "visuals/04.jpg", "visuals/05.jpg", "visuals/06.jpg", "visuals/07.jpg"),
		new Array(2, "hotelgontz/01.jpg", "hotelgontz/02.jpg", "hotelgontz/03.jpg", "hotelgontz/04.jpg", "hotelgontz/05.jpg")
	);
	
	var animation_ids = new Array();
	var animation_counters = new Array();
	var animation_timer = null;
	
	// Public functions
	return {
		
		initialize : function() {
			dragDrop.initElement("about");
			bottega.preload_all_images();
			bottega.show_default_pictures();
			bottega.start_animations();
			animation_timer = setInterval("bottega.run_animations()", 5000);			
		},
		
		preload_all_images : function() {
			var images = new Array();
			for (var i = 0; i < projects.length; i++) {
				for (var j = 1; j < projects[i].length; j++) {
					images[images.length] = new Image();
					images[images.length - 1].src = projects[i][j];
				}
			}
		},
		
		show_default_pictures : function() {
			var html = "";
			var grid_width = 12;
			var counter = 0;
			
			for (var i = 0; i < projects.length; i++) {
				counter += projects[i][0];
				
				if (counter == projects[i][0]) {
					html += '<div class="container">';
				}
				
				html += bottega.project_html(i);
				
				if (counter == grid_width || i == (projects.length - 1)) {
					html += '</div>';
					counter = 0;
				}
				
				if (projects[i].length > 2) {
					animation_ids[animation_ids.length] = i;
				}
			}
			
			$('projects').innerHTML = html;
		},
		
		start_animations : function() {
			for (var i = 0; i < animation_ids.length; i++) {
				animation_counters[i] = 1;
			}
		},
		
		run_animations : function() {
			for (var i = 0; i < animation_ids.length; i++) {
				animation_counters[i]++;
				
				if (animation_counters[i] == projects[animation_ids[i]].length) {
					animation_counters[i] = 1;
				}
				
				var project_name = "project_" + animation_ids[i];
				$(project_name).getElementsByTagName("img")[0].src = "img/projects/" + projects[animation_ids[i]][animation_counters[i]];
			}			
			//alert(animation_ids.length);
			//clearInterval(animation_timer);
		},
		
		project_html : function(project_index) {
			var html = '<div id="project_' + project_index + '" class="column span-' + projects[project_index][0] + '">';
			html += '<img src="img/projects/' + projects[project_index][1] + '" alt="" />';
			html += '</div>';
			return html;
		},
		
		show_contact_info : function() {
			if ($('about').style.left) {
				$('back_button').style.left = $('about').style.left;
				$('back_button').style.top = $('about').style.top;
			}
			$('about').style.display = "none";
			$('back_button').style.display = "block";
			bottega.show_addresses();
		},
		
		show_about_info : function() {
			bottega.hide_addresses();
			$('back_button').style.display = "none";
			$('about').style.display = "block";
		},
		
		show_addresses : function() {
			$('bottega').style.display = "block";
			$('rune').style.display = "block";
			$('zander').style.display = "block";
			$('mathias').style.display = "block";
			$('mhm').style.display = "block";
			$('gert').style.display = "block";
		},
		
		hide_addresses : function() {
			$('bottega').style.display = "none";
			$('rune').style.display = "none";
			$('zander').style.display = "none";
			$('mathias').style.display = "none";
			$('mhm').style.display = "none";
			$('gert').style.display = "none";
		}
		
	};
}

function $(obj) {
	return document.getElementById(obj);
}

/*
	A big thanks to Peter-Paul Koch for being
	an inspiration for years and releasing 
	high quality code to the public.
	
	http://www.quirksmode.org/js/dragdrop.html
*/

function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

dragDrop = {
	keyHTML: '<a href="#" class="keyLink">#</a>',
	keySpeed: 10, // pixels per keypress event
	initialMouseX: undefined,
	initialMouseY: undefined,
	startX: undefined,
	startY: undefined,
	dXKeys: undefined,
	dYKeys: undefined,
	draggedObject: undefined,
	moved : false,
	initElement: function (element) {
		if (typeof element == 'string')
			element = document.getElementById(element);
		element.onmousedown = dragDrop.startDragMouse;
		element.innerHTML += dragDrop.keyHTML;
		var links = element.getElementsByTagName('a');
		var lastLink = links[links.length-1];
		lastLink.relatedElement = element;
		lastLink.onclick = dragDrop.startDragKeys;
	},
	startDragMouse: function (e) {
		dragDrop.startDrag(this);
		var evt = e || window.event;
		dragDrop.initialMouseX = evt.clientX;
		dragDrop.initialMouseY = evt.clientY;
		addEventSimple(document,'mousemove',dragDrop.dragMouse);
		addEventSimple(document,'mouseup',dragDrop.releaseElement);
		return false;
	},
	startDragKeys: function () {
		dragDrop.startDrag(this.relatedElement);
		dragDrop.dXKeys = dragDrop.dYKeys = 0;
		addEventSimple(document,'keydown',dragDrop.dragKeys);
		addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		this.blur();
		return false;
	},
	startDrag: function (obj) {
		if (dragDrop.draggedObject)
			dragDrop.releaseElement();
		dragDrop.startX = obj.offsetLeft;
		dragDrop.startY = obj.offsetTop;
		dragDrop.draggedObject = obj;
		obj.className += ' dragged';
	},
	dragMouse: function (e) {
		var evt = e || window.event;
		var dX = evt.clientX - dragDrop.initialMouseX;
		var dY = evt.clientY - dragDrop.initialMouseY;
		dragDrop.setPosition(dX,dY);
		dragDrop.moved = true;
		return false;
	},
	dragKeys: function(e) {
		var evt = e || window.event;
		var key = evt.keyCode;
		switch (key) {
			case 37:	// left
			case 63234:
				dragDrop.dXKeys -= dragDrop.keySpeed;
				break;
			case 38:	// up
			case 63232:
				dragDrop.dYKeys -= dragDrop.keySpeed;
				break;
			case 39:	// right
			case 63235:
				dragDrop.dXKeys += dragDrop.keySpeed;
				break;
			case 40:	// down
			case 63233:
				dragDrop.dYKeys += dragDrop.keySpeed;
				break;
			case 13: 	// enter
			case 27: 	// escape
				dragDrop.releaseElement();
				return false;
			default:
				return true;
		}
		dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
		if (evt.preventDefault)
			evt.preventDefault();
		return false;
	},
	setPosition: function (dx,dy) {
		dragDrop.draggedObject.style.left = dragDrop.startX + dx + 'px';
		dragDrop.draggedObject.style.top = dragDrop.startY + dy + 'px';
	},
	switchKeyEvents: function () {
		// for Opera and Safari 1.3
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		addEventSimple(document,'keypress',dragDrop.dragKeys);
	},
	releaseElement: function() {
		removeEventSimple(document,'mousemove',dragDrop.dragMouse);
		removeEventSimple(document,'mouseup',dragDrop.releaseElement);
		removeEventSimple(document,'keypress',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		dragDrop.draggedObject.className = dragDrop.draggedObject.className.replace(/dragged/,'');
		dragDrop.draggedObject = null;
		
		if (dragDrop.moved) {
			dragDrop.moved = false;
		}
		else {
			bottega.show_contact_info();
		}
	}
}

window.onload = bottega.initialize;

// ]]>