//################## SETUP AND INITIALISATION ###################
if (window.addEventListener) { //DOM method for binding an event
	window.addEventListener("load", init, false);
	//window.addEventListener("onpaste", MCTEFormat.onPaste(), false);
} else if (window.attachEvent) {//IE exclusive method for binding an event
	window.attachEvent("onload", init);
	//window.attachEvent("onpaste", MCTEFormat.onPaste());
} else if (document.getElementById) {//support older modern browsers
	window.onload=init();
	//window.onpaste = MCTEFormat.onPaste();	
}

var showing = "gallery_expansionfront";
var interval = null;
function init() {
	el = document.getElementById("gallery_fs");
	el.style.background = "#000";
	size = getViewportSize();
	el.style.width = parseInt(size["width"])+"px";
	el.style.height = parseInt(size["height"])+"px";
	if (document.all) {
		el.style["filter"] = "alpha(opacity="+75+")";
	} else {
		el.style["opacity"] = 75/100;
	}
	el.style.display = "none";
	el.style.position = "absolute";
	el.style.left = "0px";
	el.style.top = "0px";
	el.style.zIndex = 1000;
	var closefsbtn = function () {
		closefs();
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
	}
	el.onclick = closefsbtn;
	
	el = document.getElementById("gallery_fs_image");
	el.style.position = "absolute";
	el.style.left = "0px";
	el.style.top = "0px";
	el.style.zIndex = 1001;
	el.style.background = "#000";
	el.onclick = closefsbtn;
	
	
	closefs();
}

function closefs() {
	el = document.getElementById("gallery_fs");
	el.style.display = "none";
	el = document.getElementById("gallery_fs_image");
	el.style.display = "none";
	if (document.all) {
		el.style["filter"] = "alpha(opacity="+0+")";
	} else {
		el.style["opacity"] = 0;
	}
}

function openfs(image) {
	//alert("doing it")
	el = document.getElementById("gallery_fs");
	el.style.display = "block";
	el = document.getElementById("gallery_fs_image");
	//el.style.background = "url("+image+")";
	
	imageel = document.getElementById("gallery_fs_imagefile");
	if (!imageel) {
		el.innerHTML = "<img id=\"gallery_fs_imagefile\" src=\""+image.replace(/&amp;/g, "&")+"\" style=\"display:block;\" />";
		imageel = document.getElementById("gallery_fs_imagefile");
	} else {
		imageel.src = image.replace(/&amp;/g, "&");
	}
	
	size = getViewportSize();
	//el.style.width = width+"px";
	//el.style.height = height+"px";
	//alert(el.offsetWidth);
	var imonload = function () {
		el.style.display = "block";
		el.style.left = ((size["width"]/2)-(imageel.width/2))+"px";
		el.style.top = ((size["height"]/2)-(imageel.height/2))+"px";
		
		var fadeIn = new YAHOO.util.Anim(el, 
			{ opacity: { from: 0, to: 1 }}, 0.5, YAHOO.util.Easing.easeBoth
		);
		fadeIn.animate();
	}
	imageel.onload = imonload;
}

var trackers = [];
oldthumb = null;

function showexpansion(image, src, width, height, expandtarget, title, caption) {
	expansion = document.getElementById(expandtarget);
	expansionfront = document.getElementById(expandtarget+"front");
	container = document.getElementById(expandtarget+"_container");
	titleel = document.getElementById(expandtarget+"_title");
	bodyel = document.getElementById(expandtarget+"_body");
	preloader = document.getElementById(expandtarget+"_loader");
	titleel.innerHTML = title;
	bodyel.innerHTML = caption;
	//status = document.getElementById("status");
	
	if (trackers[expandtarget+"gallery_expansionfront"] != "showing" && trackers[expandtarget+"gallery_expansionfront"] != "notshowing") {
		trackers[expandtarget+"gallery_expansionfront"] = "showing";
		trackers[expandtarget+"gallery_expansion"] = "notshowing";
	}
	
	if (trackers[expandtarget+"gallery_expansionfront"] == "showing") {
		expansion.innerHTML = "<img id=\""+expandtarget+"gallery_expansion_image\" src=\""+image+"\" />"
		expansionimg = document.getElementById(expandtarget+"gallery_expansion_image");
		preloader.style.display = "block";
		expansionimg.onload = function(pre) {
			return function() {pre.style.display = "none";
			crossfade(expandtarget+"front",expandtarget,width,height,expandtarget);}
		}(preloader);
		//showing = expandtarget+"gallery_expansion";
		trackers[expandtarget+"gallery_expansionfront"] = "notshowing";
		trackers[expandtarget+"gallery_expansion"] = "showing";
	} else if (trackers[expandtarget+"gallery_expansion"] == "showing") {
		expansionfront.innerHTML = "<img id=\""+expandtarget+"gallery_expansionfront_image\" src=\""+image+"\" />"
		expansionimg = document.getElementById(expandtarget+"gallery_expansionfront_image");
		preloader.style.display = "block";
		expansionimg.onload = function(pre) {
			return function() {pre.style.display = "none";
			crossfade(expandtarget,expandtarget+"front",width,height,expandtarget);}
		}(preloader);
		//showing = expandtarget+"gallery_expansionfront";
		trackers[expandtarget+"gallery_expansionfront"] = "showing";
		trackers[expandtarget+"gallery_expansion"] = "notshowing";
	}
	
	if (src) {
		if (oldthumb) {
			oldthumb.onmouseout = function(){thumbfadeout(oldthumb)}
			thumbfadeout(oldthumb);
		}
		oldthumb = src
		oldthumb.onmouseout = null;
		thumbfadein(oldthumb);
	}
	//container.onclick=function() {openfs(image.replace("600","800"),width,height);}
}

oldaccordian = null;

function showaccordianexpansion(image, src, width, height, expandtarget) {
	expansion = document.getElementById(expandtarget);
	expansionfront = document.getElementById(expandtarget+"front");
	container = document.getElementById(expandtarget+"_container");
	preloader = document.getElementById(expandtarget+"_loader");
	if (trackers[expandtarget+"gallery_expansionfront"] != "showing" && trackers[expandtarget+"gallery_expansionfront"] != "notshowing") {
		trackers[expandtarget+"gallery_expansionfront"] = "showing";
		trackers[expandtarget+"gallery_expansion"] = "notshowing";
	}
	
	if (trackers[expandtarget+"gallery_expansionfront"] == "showing") {
		expansion.innerHTML = "<img id=\""+expandtarget+"gallery_expansion_image\" src=\""+image+"\" />"
		expansionimg = document.getElementById(expandtarget+"gallery_expansion_image");
		preloader.style.display = "block";
		expansionimg.onload = function(pre) {
			return function() {pre.style.display = "none";
			crossfade(expandtarget+"front",expandtarget,width,height,expandtarget);}
		}(preloader);
		trackers[expandtarget+"gallery_expansionfront"] = "notshowing";
		trackers[expandtarget+"gallery_expansion"] = "showing";
	} else if (trackers[expandtarget+"gallery_expansion"] == "showing") {
		expansionfront.innerHTML = "<img id=\""+expandtarget+"gallery_expansionfront_image\" src=\""+image+"\" />"
		expansionimg = document.getElementById(expandtarget+"gallery_expansionfront_image");
		preloader.style.display = "block";
		expansionimg.onload = function(pre) {
			return function() {pre.style.display = "none";
			crossfade(expandtarget,expandtarget+"front",width,height,expandtarget);}
		}(preloader);
		trackers[expandtarget+"gallery_expansionfront"] = "showing";
		trackers[expandtarget+"gallery_expansion"] = "notshowing";
	}
	
	if (src) {
		if (oldaccordian) {
			//oldthumb.onmouseout = function(){thumbfadeout(oldthumb)}
			accordianfoldup(oldaccordian);
			oldaccordian.className = "smallAccordianGalleryBox";
		}
		oldaccordian = src
		oldaccordian.className = "smallActiveAccordianGalleryBox";
		accordianfoldout(oldaccordian);
	}
}

var currentslide = "";
function openfsslideshow() {
	var imageel = document.getElementById("gallery_fs_imagefile");
	if (imageel) {
		imageel.src = "";
	} else {
		el = document.getElementById("gallery_fs_image");
		el.innerHTML = "<img id=\"gallery_fs_imagefile\" src=\"\" />";
		var imageel = document.getElementById("gallery_fs_imagefile");
	}
	nextslide = function () {
		var el = document.getElementById("gallery_fs_image");
		var imageel = document.getElementById("gallery_fs_imagefile");
		var fadeOut = new YAHOO.util.Anim(el, { opacity: { from: 1, to: 0 }}, 0.5, YAHOO.util.Easing.easeBoth);
		var loadnext = function() {
			var slidearray = initimageslides.split("|");
			found = false;
			if (imageel.src == "") {
				found = true
				image = slidearray[0];
			} else {
				for (x in slidearray) {
					if (currentslide == slidearray[x]) {
						if (x == (slidearray.length-1)) {
							image = slidearray[0];
							found = true
						} else {
							image = slidearray[parseInt(x)+parseInt(1)];
							found = true
						}
					}	
				}
			}
			if (!found) {
				image = slidearray[0];
			}
			currentslide = image
			openfs(image)
		}
		fadeOut.onComplete.subscribe(loadnext);
		fadeOut.animate();
	}
	nextslide();
	interval = setInterval(nextslide, 5000);	
}

function crossfade(fadeout,fadein,newwidth,newheight,expandtarget) {
	var fadeIn = new YAHOO.util.Anim(fadein, 
						{ opacity: { from: 0, to: 1 },
						  width: {to: newwidth},
						  height: {to: newheight}
						}, 0.5, YAHOO.util.Easing.easeBoth
					);
	var container = new YAHOO.util.Anim(expandtarget+"_container", 
					{ width: {to: newwidth},
					  height: {to: newheight}
					}, 0.5, YAHOO.util.Easing.easeBoth
				);
	var fadeOut = new YAHOO.util.Anim(fadeout, { opacity: { from: 1, to: 0 }}, 0.5, YAHOO.util.Easing.easeBoth);
	
	fadeIn.animate();
	fadeOut.animate();
	container.animate();
}

function movestrip(direction) {
	var movewidth = 600;
	var strip = document.getElementById("gallery_strip_inner");
	var stripwidth = parseInt(strip.offsetWidth);
	var strippos = parseInt(strip.style.left);
	if (direction == "left" && !((strippos*-1)+movewidth > stripwidth)) {
		var mover = new YAHOO.util.Anim(strip, { left: { to: (strippos-movewidth) }}, 0.5, YAHOO.util.Easing.easeBoth);
		mover.animate();
	}
	if (direction == "right" && (strippos*-1) > 0) {
		var mover = new YAHOO.util.Anim(strip, { left: { to: (strippos+movewidth) }}, 0.5, YAHOO.util.Easing.easeBoth);
		mover.animate();
	}
}

function getViewportSize() {
	var viewportwidth;
	var viewportheight;
	// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	if (typeof window.innerWidth != 'undefined') {
		viewportwidth = window.innerWidth
		viewportheight = window.innerHeight
	} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {	
		viewportwidth = document.documentElement.clientWidth
		viewportheight = document.documentElement.clientHeight
	} else {
		viewportwidth = document.getElementsByTagName('body')[0].clientWidth
		viewportheight = document.getElementsByTagName('body')[0].clientHeight
	}
	var size = new Array();
	size["width"] = viewportwidth;
	size["height"] = viewportheight;
	return size;
}

function thumbfadein(el) {
	var fade = new YAHOO.util.Anim(el, { opacity: { from: 0.5, to: 1 }}, 0.5, YAHOO.util.Easing.easeBoth);
	fade.animate();
}

function thumbfadeout(el) {
	var fade = new YAHOO.util.Anim(el, { opacity: { from: 1, to: 0.5 }}, 0.5, YAHOO.util.Easing.easeBoth);
	fade.animate();
}

function accordianfoldup(el) {
	var height = new YAHOO.util.Anim(el, { height: { from: 180, to: 40 }}, 0.5, YAHOO.util.Easing.easeBoth);
	height.animate();
}

function accordianfoldout(el) {
	var height = new YAHOO.util.Anim(el, { height: { from: 40, to: 180 }}, 0.5, YAHOO.util.Easing.easeBoth);
	height.animate();
}

function isset(varname)  {
  if(typeof( window[ varname ] ) != "undefined") return true;
  else return false;
}