var isIE=false;
if(document.all)isIE=true;
var aslPageLoaded=false;
var grjPopup;

function grjInitialise(){
	initULs(); // Tabs
	initGallery(); // Tour image gallery
	initPopups();
	initLogos(); // Accreditation logo rollover
	aslPageLoaded=true;
}

function initPopups(){
	var links = document.getElementsByTagName("a");
	for(var i=links.length-1;i>=0;i--){
		if(links[i].target=="grjPopup"){
			if(isIE) links[i].attachEvent("onclick",openPopUp); // IE
			else links[i].addEventListener("click",openPopUp,false); // FF, Safari etc.
		}
	}
}

function openPopUp(event){
	var a=(isIE)?event.srcElement:event.target;
	if(a.tagName=="IMG") a=a.parentNode;
	grjPopup=window.open(a.href,'grjPopup','scrollbars=1,menubar=no,height=600,width=850,resizable=no,toolbar=no,location=no,status=no');
	grjPopup.focus();
	
	//prevent default action
	if (event.preventDefault) event.preventDefault();
	return false;
}
function returnToTour(elm) {
    if (window.opener != null) {
        window.opener.location = elm.href;
        window.opener.focus();
        window.close();          
    }
}
// ... VIRTUAL TOUR ...
// REQUIRES : <script type="text/javascript" src="/swf/swfobject/swfobject.js"></script>
function openVT(event){
	// Bail out if the page is still loading or the virtual tour is already open.
	if(!aslPageLoaded || (document.getElementById("VTplaceholder") != null && document.getElementById("VTplaceholder").style.display=="block")){
		if (event && event.preventDefault) event.preventDefault();
		return false;
	}

	var a=(isIE)?event.srcElement:event.target;
	if(a.tagName=="IMG") a=a.parentNode;
	var swfFile = a.href;

	// ... Virtual tour placeholder ...
	var ph;
	if(document.getElementById("VTplaceholder")){
		ph = document.getElementById("VTplaceholder");
	}else{
		ph = document.createElement("div");
		ph.setAttribute("id","VTplaceholder");
		ph.style.width = "900px";
		ph.style.height = "600px";
		ph.style.zIndex = "75";
		ph.style.position = "absolute";
		ph.style.display = "none";
		document.body.appendChild(ph);
		ph.innerHTML = "<div id=\"swfPlaceholder\"></div>"
		setOpacity("VTplaceholder",0);
	}

	// Add the flash tag...
	var att = { data:swfFile, width:"900", height:"600", 
		codebase:"https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0",
		pluginspage:"https://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" };
	var par = { menu:"false" };
	var id = "swfPlaceholder";
	swfobject.createSWF(att, par, id);

	//...CREATE THE PAGE MASK DIV...
	if(!document.getElementById("pageMaskVT")){
		var pageMask = document.createElement("div");
		pageMask.setAttribute("id","pageMaskVT");
		pageMask.style.display="none";
		pageMask.style.height=document.body.offsetHeight+"px";// Cover the whole page
		if(isIE) pageMask.attachEvent("onclick",hideVT); // IE
		else pageMask.addEventListener("click",hideVT,false); // FF, Safari etc.
		document.body.appendChild(pageMask);
		setOpacity("pageMaskVT",30);
	}

	// Mask the page...
	document.getElementById("pageMaskVT").style.display="block";
	ph.style.display="block";
	ph.style.zIndex="100";

	// Centre horizontally...
	ph.style.left = (document.body.offsetWidth/2)-(ph.offsetWidth/2) + "px";
	// Centre vertically...
	var scrollTop = (isIE)?document.documentElement.scrollTop:window.pageYOffset;
	var docHeight = (isIE)?document.documentElement.clientHeight:window.innerHeight;
	ph.style.top = (scrollTop+docHeight/2)-(ph.offsetHeight/2) + "px";

	// Quick fade in...
	var timer=0;
	for(i=10;i<=100;i+=10){
		window.setTimeout("setOpacity(\"VTplaceholder\","+ i +")",timer);
		timer+=50;
	}

	//prevent default action
	if (event && event.preventDefault) event.preventDefault();
	return false;
}


function hideVT(){
	// Quick fade away...
	var timer=0;
	for(i=90;i>=0;i-=10){
		window.setTimeout("setOpacity(\"VTplaceholder\","+ i +")",timer);
		timer+=50;
		if(i==0)window.setTimeout("document.getElementById(\"pageMaskVT\").style.display=\"none\"",timer);
	}
}//hideVT


function initGallery(){
	var pageMask = document.createElement("div");
	pageMask.setAttribute("id","pageMask");
	pageMask.style.display="none";
	pageMask.style.height=document.body.offsetHeight+"px";// Cover the whole page
	if(isIE) pageMask.attachEvent("onclick",hideImage); // IE
	else pageMask.addEventListener("click",hideImage,false); // FF, Safari etc.
	document.body.appendChild(pageMask);
	setOpacity("pageMask",30);
	
	var ph = document.createElement("div");
	ph.setAttribute("id","imagePlaceholder");
	ph.style.display="none";
	if(isIE) ph.attachEvent("onclick",hideImage); // IE
	else ph.addEventListener("click",hideImage,false); // FF, Safari etc.
	document.body.appendChild(ph);
	setOpacity("imagePlaceholder",0);
	var g = document.getElementById("image-gallery");
	if(g!=null){
		var links = g.getElementsByTagName("a");
		for(var i=links.length-1;i>=0;i--){
			// Attach the display toggle event to the anchor
			if(isIE) links[i].attachEvent("onclick",showImage); // IE
			else links[i].addEventListener("click",showImage,false); // FF, Safari etc.
		}
		
		
	}
	g = document.getElementById("deck-plans");
	if(g!=null){
		var links = g.getElementsByTagName("a");
		for(var i=links.length-1;i>=0;i--){
			// Attach the display toggle event to the anchor
			if(isIE) links[i].attachEvent("onclick",showImageDeck); // IE
			else links[i].addEventListener("click",showImageDeck,false); // FF, Safari etc.
		}
	}
}//initGallery
function showImageDeck(event){
	var a=(isIE)?event.srcElement:event.target;
	
	var mask=document.getElementById("pageMask");
	mask.style.display="block";
	
	var imgDiv=document.getElementById("imagePlaceholder");
	
	imgDiv.innerHTML = '<img width="800" src="'+ a.href +'" alt="'+ a.title + '" /><br /><span class="close">close [x]</span>' + a.title +'';
	imgDiv.style.zIndex="55";
	imgDiv.style.display="block";
	imgDiv.style.width = "800px";
	// Centre horizontally...
	imgDiv.style.left = (document.body.offsetWidth/2)-(imgDiv.offsetWidth/2) + "px";
	// Centre vertically...
	var scrollTop = (isIE)?document.documentElement.scrollTop:window.pageYOffset;
	var docHeight = (isIE)?document.documentElement.clientHeight:window.innerHeight;
	imgDiv.style.top = (scrollTop+docHeight/2)-(imgDiv.offsetHeight/2) + "px";

	// Quick fade in...
	var timer=0;
	for(i=10;i<=100;i+=10){
		window.setTimeout("setOpacity('imagePlaceholder',"+ i +")",timer);
		timer+=50;
	}

	//prevent default action
	if (event.preventDefault) event.preventDefault();
	return false;
}//showImage
function showImage(event){
	var a=(isIE)?event.srcElement.parentNode:event.target.parentNode;
	
	var mask=document.getElementById("pageMask");
	mask.style.display="block";
	imgDiv.style.width = "400px";
	var imgDiv=document.getElementById("imagePlaceholder");
	
	imgDiv.innerHTML = '<img width="400" height="300" src="'+ a.href +'" alt="'+ a.title + '" /><br /><span class="close">close [x]</span>' + a.title +'';
	imgDiv.style.zIndex="55";
	imgDiv.style.display="block";
	// Centre horizontally...
	imgDiv.style.left = (document.body.offsetWidth/2)-(imgDiv.offsetWidth/2) + "px";
	// Centre vertically...
	var scrollTop = (isIE)?document.documentElement.scrollTop:window.pageYOffset;
	var docHeight = (isIE)?document.documentElement.clientHeight:window.innerHeight;
	imgDiv.style.top = (scrollTop+docHeight/2)-(imgDiv.offsetHeight/2) + "px";

	// Quick fade in...
	var timer=0;
	for(i=10;i<=100;i+=10){
		window.setTimeout("setOpacity('imagePlaceholder',"+ i +")",timer);
		timer+=50;
	}

	//prevent default action
	if (event.preventDefault) event.preventDefault();
	return false;
}//showImage

function hideImage(event){
	// Quick fade away...
	var timer=0;
	for(i=90;i>=0;i-=10){
		window.setTimeout("setOpacity('imagePlaceholder',"+ i +")",timer);
		timer+=50;
		if(i==0)window.setTimeout("document.getElementById(\"pageMask\").style.display=\"none\"",timer);
	}
}//hideImage


// Initialise the tabs
var HomeDefaultTab = "";
var tabContent = new Array();
var galleryContent = new Array();
function initULs(){
	var uls = document.getElementsByTagName("ul");
	
	for(var i=uls.length-1;i>=0;i--){
		if(uls[i].className.indexOf("tabTop")>=0){
			var tabSelected = false;
			var lis = uls[i].getElementsByTagName("li");
			
			for(var x=lis.length-1;x>=0;x--){
				var a = lis[x].getElementsByTagName("a");
				if(a.length==0)continue;

				var content = document.getElementById(a[0].href.substr(a[0].href.indexOf("#")+1));
				if(content==null)continue;
				
				// Default select the specified tab
				if(HomeDefaultTab!=""){
					lis[x].className = lis[x].className.replace(" selected","");
					if(content.id==HomeDefaultTab) lis[x].className += " selected";
				}

				// Hide/show the content div (One div will always be displayed)
				if((lis[x].className.indexOf("selected")>=0)||(x==0 && !tabSelected)){
					content.style.display = "block";
					tabSelected = true;
				}
				else content.style.display = "none";

				// Add the content to an array for toggling later
				tabContent[tabContent.length] = content;

				// Attach the display toggle event to the anchor
				if(isIE) a[0].attachEvent("onclick",toggleTab); // IE
				else a[0].addEventListener("click",toggleTab,false); // FF, Safari etc.
			}
		}else if(uls[i].className.indexOf("gallery")>=0){
			var gallerySelected = false;
			var lis = uls[i].getElementsByTagName("li");
			
			for(var x=lis.length-1;x>=0;x--){
				var a = lis[x].getElementsByTagName("a");
				if(a.length==0)continue;

				var content = document.getElementById(a[0].href.substr(a[0].href.indexOf("#")+1));
				if(content==null)continue;

				// Hide/show the content div (One div will always be displayed)
				if((lis[x].className.indexOf("selected")>=0)||(x==0 && !gallerySelected)){
					content.style.display = "block";
					tabSelected = true;
				}
				else content.style.display = "none";

				// Add the content to an array for toggling later
				galleryContent[galleryContent.length] = content;

				// Attach the display toggle event to the anchor
				if(isIE) a[0].attachEvent("onclick",toggleGallery); // IE
				else a[0].addEventListener("click",toggleGallery,false); // FF, Safari etc.
			}
		}
	}
}//initTabs

function toggleTab(event){
	var a = (isIE) ? event.srcElement.parentNode : event.target.parentNode;
	var id = a.href.substr(a.href.indexOf("#")+1);
	var lis = a.parentNode.parentNode.getElementsByTagName("li");
	
	// Select the tab
	for(i=lis.length-1;i>=0;i--){
		if(lis[i]==a.parentNode) lis[i].className = lis[i].className + " selected";
		else lis[i].className = lis[i].className.replace(" selected","");
	}		
	
	// Display the tab content
	for(i=tabContent.length-1;i>=0;i--){
		if(tabContent[i].id==id) tabContent[i].style.display = "block";
		else tabContent[i].style.display = "none";
	}
	
	//prevent default action
	if (event.preventDefault) event.preventDefault();
	
	return false;
}//toggleTab


function toggleGallery(event){
	var a = (isIE) ? event.srcElement : event.target;
	var id = a.href.substr(a.href.indexOf("#")+1);
	var lis = a.parentNode.parentNode.getElementsByTagName("li");
	
	var divFadeOut;
	var divFadeIn;
	
	for(i=galleryContent.length-1;i>=0;i--){
		if(galleryContent[i].id==id) 
			divFadeIn = galleryContent[i];
		if(galleryContent[i].style.display=="block") 
			divFadeOut = galleryContent[i];
	}
	
	if(divFadeOut != divFadeIn){
		divFadeOut.style.zIndex="100";
		//setOpacity(divFadeIn.id,100);
		divFadeIn.style.zIndex="10";
		divFadeIn.style.display="block";
		
		// Quick fade away...
		var timer=0;
		for(i=90;i>=0;i-=10){
			//window.setTimeout("setOpacity('"+ divFadeOut.id +"',"+ i +")",timer);
			timer+=50;
		}
		divFadeOut.style.display = "none";
	}
	
	//prevent default action
	if (event.preventDefault) event.preventDefault();
	
	return false;
}//toggleGallery


// Cross-browser opacity setting... (0-100)
function setOpacity(elemId,opacity) {
	var elem=document.getElementById(elemId);
	elem.style.opacity=(opacity/100);
	elem.style.MozOpacity=(opacity/100);
	elem.style.KhtmlOpacity=(opacity/100);
	elem.style.filter="alpha(opacity=" + opacity + ")";
	if(opacity==0){
		elem.style.display="none";
		elem.style.zIndex="10";
	}
}

// Detects if the enter button was pressed
function enterPressed(event){ var kc=(isIE)?event.keyCode:event.which; return(kc==13); }
// Clears the textbox if the VALUE is the same as the TITLE
function aslClearText(elem){ if(elem.value==elem.title) elem.value=""; }
// Sets the textbox VALUE to the same as the TITLE as the VALUE is empty
function aslRestoreText(elem){ if(elem.value=="") elem.value=elem.title; }
// Very simple search validation...
function chkSearch(){return (trim(document.getElementById("search-input").value)=="") ? false:true;}
// Removes the whitespace around a string #webappsjs.js
function trim(str){ return str.replace(/^\s+|\s+$/g,""); }
//Control used to find a tour code
function findatour(){
	var elem=document.getElementById("tourcode");
	if (elem.value!="" && elem.value!=elem.title) window.location="/tours.aspx?tours="+elem.value.toUpperCase()+"&QB=1&soldouttours=1";
}

// From map and climate xslt.
function openClimate(tourid){window.open('/climates.aspx?tour='+tourid,'','scrollbars=1,menubar=no,height=600,width=800,resizable=no,toolbar=no,location=no,status=no');}
// Destinations
function tourlist(){url=document.getElementById("countryid").value;window.location=url;}
function riverlist(){url=document.getElementById("riverid").value;window.location=url;}
//Email Validation
function echeck(src) {
	try {
		var regex = /^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/;
		return regex.test(src);
	}
	catch (ex){ }
}

// Used by the Accreditation logos, to open on the correct tab
function setTab(aId,val){
	try {
		var a=document.getElementById(aId);
		if(a.href.indexOf("?tab=") > 0)	a.href = a.href.substring(0, a.href.indexOf("?tab="));
		a.href += "?tab=" + val;
	} catch (ex) { }
}

// Colour rollovers for the Accreditation logos
function initLogos(){
	if(document.getElementById("accreditations")){
		var imgs = document.getElementById("accreditations").getElementsByTagName("img");
		for(var i=imgs.length-1;i>=0;i--){
			if(isIE) { // IE
				imgs[i].attachEvent("onmouseover",logoOver);
				imgs[i].attachEvent("onmouseout",logoOut);
			}else{ // FF, Safari etc.
				imgs[i].addEventListener("mouseover",logoOver,false);
				imgs[i].addEventListener("mouseout",logoOut,false);
			}
		}
	}
	if(document.getElementById("aceLogo")){
			var aceLogo = document.getElementById("aceLogo");
			if(isIE) { // IE
				aceLogo.attachEvent("onmouseover",logoOver);
				aceLogo.attachEvent("onmouseout",logoOut);
			}else{ // FF, Safari etc.
				aceLogo.addEventListener("mouseover",logoOver,false);
				aceLogo.addEventListener("mouseout",logoOut,false);
			}
	}
}
function logoOver(event){
	var img = (isIE) ? event.srcElement : event.target;
	img.src = img.src.replace("bw","colour");
}
function logoOut(event){
	var img = (isIE) ? event.srcElement : event.target;
	img.src = img.src.replace("colour","bw");
}


if(isIE) window.attachEvent("onload", grjInitialise); // IE
else window.addEventListener("load", grjInitialise, false); // FF, Safari etc.
// Utility Select elements by class
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
var currentimage = 0;
var fadespeed = 1000;
var imagegallery, imagegalleryid, imagegallerycount, imagegalleryanimation;
var imagegalleryrotationspeed;

function imagegallery_init (imggalid, speed) {
	imagegallery = document.getElementById(imggalid);
	imagegalleryid = imggalid;
	var images = imagegallery.getElementsByTagName("img");
	imagegallerycount = images.length;
	imagegallery.className = imagegallery.className + " imggallery";
	var i=0;
	var height = 0;
	var width = 0;
	for (i=0;i<=images.length-1;i++) {
		images[i].id= imagegalleryid +"_image_" + i;
		if (i > 0) {
			images[i].style.opacity = 0;
			images[i].style.MozOpacity = 0;
			images[i].style.KhtmlOpacity = 0;
			images[i].style.filter = "alpha(opacity=0)";
			images[i].style.zIndex = "0";
			
		} else {
			images[i].style.opacity = 1;
			images[i].style.MozOpacity = 1;
			images[i].style.KhtmlOpacity = 1;
			images[i].style.filter = "alpha(opacity=100)";
			images[i].style.zIndex = "5";
		}
		if (images[i].clientWidth > width) {
			width = images[i].clientWidth;
		}
		if (images[i].clientHeight > height) {
			height = images[i].clientHeight;
		}
		
	}

	
	newDiv = document.createElement("div");
	newDiv.setAttribute("id",  imagegalleryid +"_switcher");
	var switchercontent = "";
	for (i=0;i<=images.length-1;i++) {
		if (i == 0 ) {
		switchercontent  += "<li><a id='" +imagegalleryid + "_selector_"+i+"' class='selected' href='javascript:showimage("+i+");'>"+ (i+1) +"</a></li>";
		} else {
		switchercontent  += "<li><a id='" +imagegalleryid + "_selector_"+i+"' href='javascript:showimage("+i+");'>"+ (i+1) +"</a></li>";
		
		}
	}
	newDiv.innerHTML = "<ul>" + switchercontent +"</ul>";
	newDiv.className = "switcher";
	if (images.length > 1) {
	imagegallery.appendChild(newDiv);
	}
	imagegallery.style.width = width +"px";
	imagegallery.style.height = height +"px";

	imagegalleryrotationspeed = speed;
	if (imagegalleryrotationspeed > 0 && images.length > 1) {
	
		imagegalleryanimation = setTimeout ( "imagegalleryrotate("+currentimage+")", imagegalleryrotationspeed );
	}
	var slideHolder, slides;
	slides = getElementsByClassName("slide");
	for (i  in  slides) {
		slides[i].style.height = height +"px";
	}
	
	slideHolder = document.getElementById("slideHolder");
	if (typeof slideHolder != "undefined" && slideHolder != null) {
		slideHolder.style.height = height +"px";
	} 
	}
function showimage(image) {
	if (imagegalleryrotationspeed > 0 ) {
		clearTimeout ( imagegalleryanimation );
	}
	if (currentimage != image) {
		opacity(imagegalleryid + "_image_"+currentimage, 100, 0, fadespeed);
		document.getElementById(imagegalleryid + "_image_"+currentimage).style.zIndex = "0";
		document.getElementById(imagegalleryid + "_selector_"+currentimage).className= '';
		document.getElementById(imagegalleryid + "_selector_"+image).className= 'selected';
		document.getElementById(imagegalleryid + "_image_"+image).style.zIndex = "5";
		opacity(imagegalleryid + "_image_"+image, 0, 100, fadespeed);
		currentimage = image;
		if (imagegalleryrotationspeed > 0 ) {
			imagegalleryanimation = setTimeout ( "imagegalleryrotate("+currentimage+")", (imagegalleryrotationspeed * 2));
		}
	}
}
function imagegalleryrotate(image) {
	if ((image + 1) <= (imagegallerycount -1)) {
		image = image + 1;
	} else {
		image = 0;
	}
	opacity(imagegalleryid + "_image_"+currentimage, 100, 0, fadespeed);
	document.getElementById(imagegalleryid + "_image_"+currentimage).style.zIndex = "0";
	document.getElementById(imagegalleryid + "_selector_"+currentimage).className= '';
	document.getElementById(imagegalleryid + "_selector_"+image).className= 'selected';
	document.getElementById(imagegalleryid + "_image_"+image).style.zIndex = "5";
	opacity(imagegalleryid + "_image_"+image, 0, 100, fadespeed);
	currentimage = image;
	imagegalleryanimation = setTimeout ( "imagegalleryrotate("+currentimage+")", 8000 );

}
function opacity(id, opacStart, opacEnd, millsecs) {
    var speed = Math.round(millsecs/ 100);
    var timer = 0;
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 
function imagegallery_destroy () {
	try {
		clearTimeout ( imagegalleryanimation );
		var olddiv = document.getElementById(imagegalleryid +"_switcher");
		olddiv.parentNode.removeChild(olddiv);
	} catch (err) {


	}
}
function imagegallery_reinit () {
	try {
		imagegallery_init (imagegalleryid, imagegalleryrotationspeed);
	} catch (err) {}
}	
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();







