// This will stop image flickering in IE6 when elements with images are moved
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(e) {};

var scrollOff;
var winSize;
var imageSize;
var docSize;
var padding = 0;
var textAreaH = 40;
var curFade = 0;
var intervalId;
var fileType;
var fileExt;
var liteImg = new Image();
var hideObj = false;

function init(s, e){

	var b = navigator.appName;
	
	if(b == "Microsoft Internet Explorer" || b == "Opera") hideObj = true;


	if(window.addEventListener){
		window.addEventListener("scroll", adjustForScroll, false);
		window.addEventListener("resize", adjustForResize, false);
	}else if(window.attachEvent){
		window.attachEvent("onscroll", adjustForScroll);
		window.attachEvent("onresize", adjustForResize);
	}else{
		alert("error: add/attach event");
	}
	
	var visWidth = 0, visHeight = 0;
	winSize = getWindowSize();
	scrollOff = getScrollOffset();
	docSize = getDocumentSize();
	
	document.getElementById("lite_overlay").style.display = "block";
	document.getElementById("lite_overlay").style.width = docSize.w+'px';
	document.getElementById("lite_overlay").style.height = docSize.h+'px';
	
	//Check type of file i.e. jpg, gif, png, swf
	
	fileExt = s.substr(s.lastIndexOf(".")+1);
	
	switch (fileExt) 
	{ 
   		case "jpg" : 
		fileType = "image";
      	break;
		case "gif" :
		fileType = "image";
      	break;
		case "png" :
		fileType = "image";
      	break;
		case "swf" :
		fileType = "flash";
		break;
   		default : 
      	alert("File type error"); 
	}
	
	if(e){
		if(e.title){
			document.getElementById("lite_text").innerHTML = e.title;
		}
	}
	
	if(fileType == "image")
	{
		liteImg.onload = function() {
			
			if(hideObj) hideElements();
			
			imageSize = {w : liteImg.width, h : liteImg.height};
			document.getElementById("lite_media").appendChild(liteImg);
		
			positionContent();
			
			intervalId = setInterval("fadeLiteWindow(10)", 10);
			
		}
		
		liteImg.onresize = function() {
			imageSize = {w : liteImg.width, h : liteImg.height};
			positionContent();
		}
		
		liteImg.src = s;
		
	}
	
	if(fileType == "flash"){
		
		document.getElementById("lite_media").innerHTML = '<div id="lite_flash"></div>';
		
		var lite_v = false;
		var lite_p = false;
		var lite_a = {
  			id: "lite_flash",
  			name: "lite_flash"
		};
		
		swfobject.embedSWF(s, "lite_flash", String(e.w), String(e.h), "8.0.0", "", lite_v, lite_p, lite_a);
		imageSize = {w : e.w, h : e.h};
		
		positionContent();
		
		if(hideObj) hideElements();
		
		intervalId = setInterval("fadeLiteWindow(10)", 10);
				
	}
		
}

function positionContent(){
	document.getElementById("lite_content").style.width = (imageSize.w+(padding*2))+"px";
	document.getElementById("lite_content").style.height = (imageSize.h+(padding*2)+textAreaH)+"px";
	document.getElementById("lite_content").style.top = ((winSize.h-(padding*2)-textAreaH-imageSize.h)/2)+scrollOff.y+"px";
	document.getElementById("lite_content").style.left = ((winSize.w-(padding*2)-imageSize.w)/2)+scrollOff.x+"px";
	document.getElementById("lite_content").style.display = "block";
}

function hideElements(){
	//Hide form elements
	var arrHolder = new Array();
		
	var arrSelect = document.getElementsByTagName("select");
	var arrObject = document.getElementsByTagName("object");
		
	arrHolder.push(arrSelect);
	arrHolder.push(arrObject);
		
	for (var i = 0; i < arrHolder.length; i++){
  		for(var j = 0; j < arrHolder[i].length; j++){
			if(arrHolder[i][j].name != 'lite_flash') arrHolder[i][j].style.visibility = 'hidden';
		}
	}	
}

function getWindowSize(){
	var myWidth = 0, myHeight = 0;
	var results;
	
	if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//Non-IE
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	
	results = {w : myWidth, h : myHeight}
	return results;
}

function getScrollOffset(){
	var x,y;
	var results;
	
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	
	results = {x : x, y : y};
	return results;
}

function getDocumentSize(){
	var docWidth = 0, docHeight = 0;
	var results;
	
	docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
	docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
	
	results = {w : docWidth, h : docHeight};
	return results;
}

function close_lite_window(){

	intervalId = setInterval("fadeLiteWindow(-10)", 10);
	
	if(window.removeEventListener){
		window.removeEventListener("resize", adjustForResize);
		window.removeEventListener("scroll", adjustForScroll);
	}else if(window.detachEvent){
		window.detachEvent("onresize", adjustForResize);
		window.detachEvent("onscroll", adjustForScroll);
	}
}

function adjustPos(){
	alert('test');
}

function adjustForScroll(){
	scrollOff = getScrollOffset();
	document.getElementById("lite_content").style.top = ((winSize.h-(padding*2)-textAreaH-imageSize.h)/2)+scrollOff.y+"px";
	document.getElementById("lite_content").style.left = ((winSize.w-(padding*2)-imageSize.w)/2)+scrollOff.x+"px";
};

function adjustForResize(){
	winSize = getWindowSize();
	scrollOff = getScrollOffset();
	docSize = getDocumentSize();
	document.getElementById("lite_overlay").style.width = docSize.w+'px';
	document.getElementById("lite_overlay").style.height = docSize.h+'px';
	document.getElementById("lite_content").style.width = (imageSize.w+(padding*2))+"px";
	document.getElementById("lite_content").style.height = (imageSize.h+(padding*2)+textAreaH)+"px";
	document.getElementById("lite_content").style.top = ((winSize.h-(padding*2)-textAreaH-imageSize.h)/2)+scrollOff.y+"px";
	document.getElementById("lite_content").style.left = ((winSize.w-(padding*2)-imageSize.w)/2)+scrollOff.x+"px";
}

function fadeLiteWindow(val){
	
	curFade += val;
	
	if(imageSize.w == 0 || imageSize.h == 0){
		imageSize = {w : document.getElementById("lite_image").width, h : document.getElementById("lite_image").height};
		adjustForResize();
	}
	
	var clearLoop = 0;
	
	if(curFade <= 0){
		curFade = 0;
		clearLoop = 1;
		document.getElementById("lite_overlay").style.display = "none";
		document.getElementById("lite_content").style.display = "none";
		
		liteImg = new Image();
		document.getElementById("lite_media").innerHTML = "";
		
		document.getElementById("lite_text").innerHTML = "";
		
		if(hideObj) showElements();
		
	}else if(curFade >= 100){
		curFade = 100;
		clearLoop = 1;
	}
	
	document.getElementById("lite_overlay").style.opacity = ((curFade/100)/10)*8;
	document.getElementById("lite_overlay").style.filter = 'alpha(opacity=' + ((curFade/10)*8) + ')';
	
	document.getElementById("lite_content").style.opacity = curFade/100;
	document.getElementById("lite_content").style.filter = 'alpha(opacity=' + curFade + ')';

	if(clearLoop == 1){
		clearInterval(intervalId);
		clearLoop = 0;
	}

}

function showElements(){
	var arrHolder = new Array();
	
	var arrSelect = document.getElementsByTagName("select");
	var arrObject = document.getElementsByTagName("object");
	
	arrHolder.push(arrSelect);
	arrHolder.push(arrObject);
	
	for (var i = 0; i < arrHolder.length; i++){
		for(var j = 0; j < arrHolder[i].length; j++){
			if(arrHolder[i][j].name != 'lite_flash') arrHolder[i][j].style.visibility = 'visible';
		}
	}
}

function buildElements(){
	var buildStr = '';
	buildStr += '<div id="lite_overlay">';
	buildStr += '</div>';
	buildStr += '<div id="lite_content">';
	buildStr += '<div id="lite_media"></div>';
  	buildStr += '<div id="lite_close"><a href="javascript:;" onclick="close_lite_window();"><img src="images/lightbox/close.gif" /></a></div>';
	buildStr += '<div id="lite_text"></div>';
	buildStr += '</div>';
	
	document.body.innerHTML += buildStr;
}

window.onload = buildElements;