
var fileLoadingImage = "images/loading.gif";		
// -----------------------------------------------------------------------------------

//
//	Global Variables
//

var objOuterContainer = document.createElement("div");
var objDescHL = document.createElement("div");
var objDescSubHL = document.createElement("div");
var objDesc = document.createElement("div");
var projectbuild;
var actMen;
var project;
var imgElement;
var imgElement2;
var objInfoBlock = 0;
var imgcount;


// -----------------------------------------------------------------------------------

//
//	Additional methods for Element added by SU, Couloir
//	- further additions by Lokesh Dhakar (huddletogether.com)
//
Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

// -----------------------------------------------------------------------------------

//
//	Extending built-in Array object
//	- array.removeDuplicates()
//	- array.empty()
//
Array.prototype.removeDuplicates = function () {
    for(i = 0; i < this.length; i++){
        for(j = this.length-1; j>i; j--){        
            if(this[i][0] == this[j][0]){
                this.splice(j,1);
            }
        }
    }
}

// -----------------------------------------------------------------------------------

Array.prototype.empty = function () {
	for(i = 0; i <= this.length; i++){
		this.shift();
	}
}

// -----------------------------------------------------------------------------------

var Lightbox = Class.create();

Lightbox.prototype = {
	
	// initialize()
	// Constructor runs on completion of the DOM loading. Calls updateImageList and then
	// the function inserts html at the bottom of the page which is used to display the shadow 
	// overlay and the image container.
	//
	initialize: function() {	
		

		var objMain = document.getElementById("main");
		
		
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		objLightbox.style.display = 'none';
		objLightbox.style.width = '100%';
		objLightbox.style.position = 'absolute';
		objLightbox.style.top = '99px';
		objLightbox.style.left = '0';
		objLightbox.onclick = function(e) {	// close Lightbox is user clicks shadow overlay
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if ( clickObj == 'lightbox') {
				myLightbox.end();
			}
		};
		objMain.appendChild(objLightbox);
		
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay');
		objOverlay.style.display = 'none';
		objOverlay.style.backgroundColor = '#000000';
		objOverlay.style.width = '570px';
		objOverlay.style.height = '50px';
		objOverlay.style.position = 'absolute';
		objOverlay.style.top = '99px';
		objOverlay.style.left = '270px';
		objOverlay.style.zIndex = '50';
		objMain.appendChild(objOverlay);
			
		objOuterContainer.setAttribute('id','outerContainer');
		objLightbox.appendChild(objOuterContainer);
		
		var objClose = document.createElement("div");
		objClose.setAttribute('id','Close');
		objOuterContainer.appendChild(objClose);
	
		var objCloseLink = document.createElement("a");
		objCloseLink.setAttribute('id','bottomNavClose');
		objCloseLink.setAttribute('href','#');
		objCloseLink.onclick = function() { myLightbox.end(); return false; }
		objClose.appendChild(objCloseLink);
		
		var objClosebtn = document.createElement("img");
		objClosebtn.setAttribute('id','closebtn');
		objClosebtn.src = 'images/close.gif';
		objCloseLink.appendChild(objClosebtn);
		
		var objImgWrapper = document.createElement("div");
		objImgWrapper.setAttribute('id','ImgWrapper');
		objOuterContainer.appendChild(objImgWrapper);
		
		var objSlide = document.createElement("img");
		objSlide.setAttribute('id','slide');
		objImgWrapper.appendChild(objSlide);
		
		var objImgWrapper2 = document.createElement("div");
		objImgWrapper2.setAttribute('id','ImgWrapper2');
		objImgWrapper2.style.display = 'none';
		objImgWrapper2.style.width = '570px';
		objImgWrapper2.style.position = 'absolute';
		objOuterContainer.appendChild(objImgWrapper2);
		
		var objSlide2 = document.createElement("img");
		objSlide2.setAttribute('id','slide2');
		objImgWrapper2.appendChild(objSlide2);
		
		var objDescBlock = document.createElement("div");
		objDescBlock.setAttribute('id','DescBlock');
		objOuterContainer.appendChild(objDescBlock);
		
		objDescHL.setAttribute('id','DescHL');
		objDescHL.setAttribute('class','popHL');
		objDescBlock.appendChild(objDescHL);
		
		objDescSubHL.setAttribute('id','DescSubHL');
		objDescSubHL.setAttribute('class','popSubHL');
		objDescBlock.appendChild(objDescSubHL);
		
		objDesc.setAttribute('id','Desc');
		objDescBlock.appendChild(objDesc);
		
	
	},
	
	
start: function(page,project) {
	
	
		actMen = document.getElementById(project+'Men');
		imgElement = document.getElementById('slide');
		imgElement2 = document.getElementById('slide2');
		var myContainer = portfolio.getElementsByTagName(page)[0];
		
		for (var j=0; j<myContainer.getElementsByTagName('project').length; j++) {
			var allProjects = myContainer.getElementsByTagName('project')[j].getAttribute('name');
			if (allProjects == project) {
				var myProject = myContainer.getElementsByTagName('project')[j];
			}
		}
		
		var myImages = myProject.getElementsByTagName('image');
		imgcount = myProject.getElementsByTagName('image').length;
		var myImgFolder = 'images/'+page+'/'+project+'/';
		var myTitle = myProject.getElementsByTagName('title')[0].firstChild.nodeValue;
		var mySubTitle = myProject.getElementsByTagName('subtitle')[0].firstChild.nodeValue;
		var myDesc = myProject.getElementsByTagName('descr')[0].firstChild.nodeValue;
		var myinfodesc = myProject.getElementsByTagName('infodesc');
		var myinfoval = myProject.getElementsByTagName('infoval');
		var infocount = myProject.getElementsByTagName('infodesc').length;
		
		
		if (projectbuild != project) {
		projectbuild = project;
		if (objInfoBlock != 0) {
			objOuterContainer.removeChild(objInfoBlock);
			objInfoBlock = 0;
			
		}
		
		var objNav = document.createElement("div");
		objInfoBlock = document.createElement("div");
		var objInfoBlockL = document.createElement("div");
		var objInfoBlockR = document.createElement("div");
		
		objInfoBlock.setAttribute('id','InfoBlock');
		objOuterContainer.appendChild(objInfoBlock);
		
		objNav.setAttribute('id','Nav');
		objInfoBlock.appendChild(objNav);
		
		for (var i=0; i<imgcount; i++) {
			var myImgNum = (imgcount-1)-i;
			var myImgId = (imgcount-i);
			var myImgLink = myImgFolder+myImages[myImgNum].firstChild.nodeValue;
			var objImgBtnDiv = document.createElement("div");
			var objImgBtn = document.createElement("a");
			objImgBtn.innerHTML = eval(imgcount-i);
			objImgBtnDiv.setAttribute('id', myImgId);
			if (myImgId==1) {
				objImgBtnDiv.setAttribute('class', 'actImgNum');
			} else {
				objImgBtnDiv.setAttribute('class', 'imgNum');
			}
			objImgBtn.setAttribute('href','javascript: myLightbox.changeImage("'+myImgLink+'", '+myImgId+');');
			objNav.appendChild(objImgBtnDiv);
			objImgBtnDiv.appendChild(objImgBtn);
			imgElement.src = myImgFolder+myImages[0].firstChild.nodeValue;
			MM_preloadImages(myImgLink);
		}
		
		
		objDescHL.innerHTML = myTitle;
		objDescSubHL.innerHTML = mySubTitle;
		objDesc.innerHTML = myDesc;
		
		
		for (var j=0; j<infocount; j++) {
			
			var objInfoBlockR = document.createElement("div");
			objInfoBlockR.setAttribute('id','InfoBlockR');
			objInfoBlock.appendChild(objInfoBlockR);
			
			var objinfodesc = document.createElement("div");
			objinfodesc.innerHTML =   myinfodesc[j].firstChild.nodeValue;
			objinfodesc.setAttribute('class','infodesc');
			objInfoBlockR.appendChild(objinfodesc);
			
			var objinfoval = document.createElement("div");
			objinfoval.innerHTML =   myinfoval[j].firstChild.nodeValue;
			objinfoval.setAttribute('class','infoval');
			objInfoBlockR.appendChild(objinfoval);
			
		}
		
		}
		
		actMen.removeAttribute ('class','nav2r');
		actMen.setAttribute ('class','actPop');
		
		new Effect.Appear('lightbox', { duration: 0.5, from: 0.0, to: 1.0 });
		new Effect.Appear('overlay', { duration: 0.1, from: 0.0, to: 0.1 });
		
		setTimeout("myLightbox.resize()",100);
		
		
	},
	
	changeImage: function(imgLink, ImgId) {
		
		for (var j=0; j<imgcount; j++) {
			
			var navElement = document.getElementById(j+1);
			if (j+1==ImgId) {
				//alert(navElement);
				navElement.removeAttribute ('class','imgNum');
				navElement.setAttribute ('class','actImgNum');	
			} else {
				navElement.removeAttribute ('class','actImgNum');
				navElement.setAttribute ('class','imgNum');
			}
		}
		imgElement2.src = imgLink;
		new Effect.Appear('ImgWrapper2', { duration: 0.5, from: 0.0, to: 1.0 });
		setTimeout("myLightbox.imgSwitch()",500);
	},
	
	imgSwitch: function() {
		imgElement.src = imgElement2.src;
		Element.hide('ImgWrapper2');
	},
	
	resize: function() {
		var intElemOffsetHeight = document.getElementById("lightbox").offsetHeight;
		document.getElementById("overlay").style.height = intElemOffsetHeight+10+"px";
		new Effect.Appear('overlay', { duration: 0.4, from: 0.1, to: 0.6 });
	},

	
		//
	//	end()
	//
	end: function() {
		//this.disableKeyboardNav();
		Element.hide('lightbox');
		Element.hide('overlay');
		actMen.removeAttribute ('class','actPop');
		actMen.setAttribute ('class','nav2r');
		
	//	new Effect.Fade('overlay', { duration: overlayDuration});
//		showSelectBoxes();
//		showFlash();
	}
}



// -----------------------------------------------------------------------------------



function initLightbox() { 
	myLightbox = new Lightbox();
		if (location.search.substr(1) != 0) {
		page = location.search.substr(1).split("?");
		project = location.hash.substr(1).split("#");;
		setTimeout("myLightbox.start(page, project)",200);
		return false;
		}
	}
Event.observe(window, 'load', initLightbox, false);




