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;
var imagegallerytimeOuts= new Array();  

function imagegallery_init (imggalid, speed) {
  clearAllTimeouts();
  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;
  currentimage = 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;
    }
    
  }

  try {
  var olddiv = document.getElementById(imagegalleryid +"_switcher");
    olddiv.parentNode.removeChild(olddiv);
  } catch (ex) {}
  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) {
  
    imagegallerytimeOuts["one"] = 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) {
  clearAllTimeouts();
  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 ) {
      imagegallerytimeOuts["two"]  = 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);
  var temp = document.getElementById(imagegalleryid + "_image_"+currentimage);
  temp;
  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;
  imagegallerytimeOuts["three"]  = 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 () {

clearAllTimeouts();
  try {
    
    var olddiv = document.getElementById(imagegalleryid +"_switcher");
    olddiv.parentNode.removeChild(olddiv);
  } catch (err) {


  }
}
function imagegallery_reinit () {
imagegallery = null;            
imagegallerycount = null;
imagegalleryanimation =  null;
imagegallery_destroy ();
clearAllTimeouts();
currentimage = 0;
  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;
      };
    }
  };
}();

addEvent(window, "load", function() {
clearAllTimeouts(); // to set clearAllTimeouts.last
});

function clearAllTimeouts(){
  for(key in imagegallerytimeOuts ){
    clearTimeout(imagegallerytimeOuts[key]);
  }
}
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
var _gaq = _gaq || [];
function trackEventGoogle(link,site,gGroup, gEvent) {
  _gat._getTrackerByName(site)._trackEvent(gGroup, gEvent);
    setTimeout('document.location = "' + link.href + '"', 100);

}
