function Reference(ref){
	return document.getElementById(ref);
}


function Show(ref){
	if(obj = Reference(ref)){
		obj.style.visibility = "visible";
	}
}

function Hide(ref){
	if(obj = Reference(ref)){
		obj.style.visibility = "hidden";
	}
}



function Start(){
	Hide("chooser_drop");
}

function shutBox() {
	stopScrolling();
	Reference("inside_box").style.top = "0px";
	document.body.style.overflow = "auto";
	Show("main");
	Show("numbers");
	Show("text");
	Show("address");
	Show("marker");
	Hide("chooser_drop");
}

function heights(){
	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return {"x":x, "y":y};
}
var topOne;
var bottomOne;
var totalBoxHeight;
var message;
var targetHeight;
function openBox() {
	
	if(scrollTop!=""){
		inside = Reference("inside_box");
		inside.style.top = (scrollTop*-1)+"px";
	}

//	document.body.style.overflow = "hidden";
	dims = heights();
	chooser = Reference("chooser_drop");
	targetHeight = dims.y - 100 - (dims.y%18)+18;
	addLinkEvents();
	bottomOne = dims.y-18-1;
	totalBoxHeight = chooser.getElementsByTagName("a").length*18;
	topLimit = totalBoxHeight-targetHeight;
	topOne= 18+31+1;
	chooser.style.height = targetHeight+"px";
	Show("chooser_drop");
	Hide("marker");
	/*Hide("main");
	Hide("address");
	Hide("numbers");
	Hide("text");*/
}

function setLinkClass(str){
	var links = Reference("chooser_drop").getElementsByTagName("a");
	  for (var i=0; i < links.length; i++) {
			if(links[i].originalStyle==undefined){
				links[i].originalStyle = links[i].className;
			}
	      links[i].className = links[i].originalStyle+" "+str;
	  }
	}

function addLinkEvents(){
	var links = Reference("chooser_drop").getElementsByTagName("a");
	  for (var i=0; i < links.length; i++) {
/*	      links[i].onmouseover = function(e){
				MousePosition(e,this);
			}
*/
			if(i==0){
				links[i].id= "first";
			}
			if(i==links.length-1){
				links[i].id= "last";
			}
	  }
}

var storeTop = 0;
function do_scroll(){
	inside = Reference("inside_box");
	topPosition = parseInt(inside.style.top);
//	Reference("messages").innerHTML = "Top"+topPosition+"; totalBoxHeight"+-topLimit+"; direction"+direction;
	if((direction==-1&&topPosition>=-topLimit-18)||(direction==1&&topPosition<0)){
		inside.style.top = topPosition+(18*direction);
		storeTop = parseInt(inside.style.top);
		return true;
	}else{
		stopScrolling();
	}
	return false;
	
}

var innerPosition;
var isScrolling=false;
var scroller;
var direction;
var stoppedLastTime;
function startScrolling(dir){
	inside = Reference("inside_box");
	if(inside.style.top==undefined||inside.style.top==false){
		inside.style.top = "0px";
	 	topint= 0;//ie thinks 0px is a non-implemented radix
	}else{
		topint = parseInt(inside.style.top);
	}
	direction = dir;
	isScrolling = true;
	
	if(do_scroll()){
		setLinkClass('noHover');
		scroller = setInterval("do_scroll()", 100);
	}
}

function stopScrolling(){
	clearInterval(scroller);
	stoppedLastTime = true;
	isScrolling = false;
}



function MousePosition(e,obj) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	
	if(stoppedLastTime==true){
		/*
		safari doesn't move the focus from the last rolled over link
		so when you turn the hover back on, a link that's moved away goes grey
		this makes the script wait until another mouse move before the hover goes back on
		*/
		stoppedLastTime = false;
		setLinkClass('');
	}

	if(isScrolling==false){
		if(posy<topOne){
			startScrolling(1);
		}else if(posy>bottomOne){
			startScrolling(-1);
		}
	}else{
		//check if it's moved outside the scrolling area
		if((posy>topOne&&direction==1)||(posy<bottomOne&&direction==-1)){
			stopScrolling();
		}else{
		}
		//stopScrolling();
	}
	if(obj.id=="first"){
		//alert("Do something for first");
	}else if(obj.id=="last"){
		//alert("Do something for last");
	}
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
}

function getOuterHTML(obj){
 	temp=obj.cloneNode(true)
	layer = document.createElement("div");
	//document.body.appendChild(layer);
 	layer.appendChild(temp);
 	outer=layer.innerHTML;
 	//layer.innerHTML="";
 	return outer;
}

function storeScroll(obj){
	if(storeTop!=0){
		obj.href+="/1/"+(storeTop*-1);
	}
	/*hide everything as well so it looks like we're moving*/
	Hide("main");
	Hide("address");
	Hide("numbers");
	Hide("text");
	Reference("marker").innerHTML = getOuterHTML(obj);
	//alert(getOuterHTML(obj));
	Reference('main').style.left = '-1000px';
}

function clicked(e){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if(targ.getAttribute("id")=="artist_link"){
		
	}else{
		shutBox();
	}
}
function readCookie(name) {//http://www.quirksmode.org/js/cookies.html
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
Array.prototype.in_array = function(search_term) {//http://andrew.hedges.name/experiments/javascript_optimization/in_array.html
  var i = this.length;
  if (i > 0) {
	 do {
		if (this[i] === search_term) {
		   return true;
		}
	 } while (i--);
  }
  return false;
}

function init(){
	grey();
	numbers();
}

var completion;


function LoadImage(src, number){
	layer = Reference("loader");
	img = document.createElement("img");
	img.src = src;
	img.name = "image"+number;
	layer.appendChild(img);
	return document.images[img.name];
}

function numbers(){
	numberlinks = Reference("numbers").getElementsByTagName("a");
	for(i=0;i<preloaders.length;i++){
		img = new Image();
		img.src = preloaders[i];
		//alert(img.src);
		//alert(img.complete);
		/*img = LoadImage(preloaders[i],i);
		if(!img.complete){
			//alert(img.src);
			img.number = i;
			//alert("First incomplete is "+img.number+img.src);
			var f = function(){checkIt(img)} 
			completion = setInterval(f, 1000);
			for(i=img.number;i<preloaders.length;i++){
				Reference("image"+(i+1)).style.display = "none";
			}
			//return;
		}*/
		//Reference("image"+(i+1)).style.display = "inline";
	}
}

function checkIt(img){
	alert(img.complete);
}
function keepLoading(imgObj){
	if(imgObj.complete){
		//alert(imgObj.src + " : "+imgObj.)
		ref = imgObj.number;
		if(ref == preloaders.length-1){
			clearInterval(completion);
		}
		Reference("image"+(ref+1)).style.display = "inline";
		//imgObj = new Image();
		imgObj.number = ref+1;
		imgObj.src = preloaders[imgObj.number];
	}
	
}

function grey(){
	
	var ca = document.cookie.split(';');
	
	var domain = 'http://'+window.location.href.split("/")[2];
	visited = new Array();
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		//alert(c);
		//if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		id = 'viewed/';
		if(c.indexOf(id)!=-1){
			visited.push(c.substring(id.length, c.indexOf("=")));
		}
	}
	if(visited.length>0){
		links = Reference('inside_box').getElementsByTagName("a");
		var none;
		for(var i=0;i<links.length;i++){
			//if(i%5==0){
				//alert(links[i].href.substring(domain.length));
			//}
			if(visited.in_array(links[i].href.substring(domain.length+1))&&links[i].href.indexOf("projects")!=-1){
				//alert(links[i])
				links[i].className+=' visited';

				
			}
		}
		//alert(none);
	}
	//for(var i=0;i<document.)
}


window.onload = init;
window.onmouseup = clicked;


if (document.images){
	blank = new Image
	bioImage = new Image
	homeImage = new Image
	pushImage = new Image
	recentlyImage = new Image
	installationImage = new Image
	performanceImage = new Image
	artistbooksImage = new Image
	webImage = new Image
	competitionsImage = new Image
	reviewsImage = new Image
	publicationsImage = new Image
	storefrontImage = new Image
	archiveImage = new Image
	
	blank.src = "images/blank.jpg"
	bioImage.src = "images/bio.gif"
	homeImage.src = "images/home.jpg"
	pushImage.src = "images/push.jpg"
	recentlyImage.src = "images/recently.jpg"
	installationImage.src = "images/installation.jpg"
	performanceImage.src = "images/performance.jpg"
	artistbooksImage.src = "images/artistbooks.jpg"
	webImage.src = "images/web.jpg"
	competitionsImage.src = "images/competitions.jpg"
	reviewsImage.src = "images/reviews.jpg"
	publicationsImage.src = "images/publications.jpg"
	storefrontImage.src = "images/storefront.jpg"
	archiveImage.src = "images/archive.jpg"
	
} else {
	blank = ""
	bioImage = ""
	homeImage = ""
	pushImage = ""
	recentlyImage = ""
	installationImage = ""
	performanceImage = ""
	artistbooksImage = ""
	webImage = ""
	competitionsImage = ""
	reviewsImage = ""
	publicationsImage = ""
	storefrontImage = ""
	archiveImage = ""
	document.arrow= ""
	
}

var imagesA=new Array();
imagesA[0]="images/home.jpg";
imagesA[1]="images/push.jpg";
imagesA[2]="images/recently.jpg";
imagesA[3]="images/installation.jpg";
imagesA[4]="images/performance.jpg";
imagesA[5]="images/artistbooks.jpg";
imagesA[6]="images/web.jpg";
imagesA[7]="images/competitions.jpg";
imagesA[8]="images/reviews.jpg";
imagesA[9]="images/publications.jpg";
imagesA[10]="images/storefront.jpg";
imagesA[11]="images/archive.jpg";
imagesA[11]="images/blank.jpg";

function randomImage() {
var i=Math.floor(Math.random()*imagesA.length);
document.getElementById("randomA").src=imagesA[i];
}

function resetImage() {
	document.getElementById("randomA").src="images/blank.jpg";
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
