function swapClass(me,myClass) {
 me.className=myClass; 
}

function swapImage(me,myImg) {
 me.setAttribute('src', 'images/'+myImg)
}

function swapImageById(myID,myImg) {
 var myID = document.getElementById(myID);
 myID.setAttribute('src', 'images/'+myImg)
}

function swapColour(me,myHex) {
 me.style.color=myHex;
}

function swapBGColour(me,myHex) {
 me.bgcolor=myHex;
}

function swapBGColourID(myID,myHex) {
 var myID = document.getElementById(myID);
 myID.style.backgroundColor=myHex;
}

function setOpacity(myID,value) {
 myObj=document.getElementById(myID);
 myObj.style.opacity = value/100;
 myObj.style.filter = 'alpha(opacity=' + value + ')';
}
function getOpacity(myID) {
 myObj=document.getElementById(myID);
 var myval = myObj.style.opacity;
 return parseInt(myval * 100);
}


function readCookie(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameEQ) == 0) {
   return unescape(c.substring(nameEQ.length,c.length)).replace(/\+/g, ' ');
  }
 }
 return "";
}

function writeCookie(name,value) {
 var date = new Date();
 date.setTime(date.getTime()+(365*24*60*60*1000));
 var expires = "; expires="+date.toGMTString();
 document.cookie = name+"="+value+expires+"; path=/";
}


function displayDiv(divId,showhide) {
 var myDiv = document.getElementById(divId)
 if (showhide=='show') {
  myDiv.style.display="block";
 } else if (showhide=='hide') {
  myDiv.style.display="none";
 }
}

function getAbsoluteTop(element) {
 var top = 0;
 var parent = element.offsetParent;
 while (parent) {
  top += element.offsetTop - element.scrollTop;
  element = parent;
  parent = element.offsetParent;
 }
 top += element.offsetTop; 
 return top;
}

function getAbsoluteLeft(element) {
 var left = 0;
 var parent = element.offsetParent;
 while (parent) {
  left += element.offsetLeft;
  element = parent;
  parent = element.offsetParent;
 }
 left += element.offsetLeft; 
 return left;
}

function fitBackground(element) {
 var target=document.getElementById(element);
 var testtop=getAbsoluteTop(target);
 var viewportheight;
 if (typeof window.innerHeight != 'undefined') {
  viewportheight = window.innerHeight;
 } else {
  viewportheight = document.documentElement.clientHeight;
 }

 var targetH=viewportheight-testtop;
 if (targetH>0) {
  target.style.height=targetH + 'px';
  target.setAttribute('height',targetH+'px');
 } else {
  target.style.height='10px';
  target.setAttribute('height','10px');
 }
}

// Required variables for divFader
// var eachDiv;
// var faderID      = 0;
// var intervalID   = 0;
// var fadeGap      = 20;
// var fadeInterval = 1000;
// var divOut       = 0;
// var divIn        = 1;
// var fadeOut      = 100;
// var fadeIn       = 0;

function divFader(divList,startDelaySecs,fadeIntervalSecs,fadeTimeSecs) {
 if (typeof divList == 'undefined' ) {
  alert('No divList provided - separate div IDs by \"|\"');
  return false;
 }
 if (typeof startDelaySecs   == 'undefined' ) startDelaySecs = 3;
 if (typeof fadeIntervalSecs == 'undefined' ) fadeIntervalSecs = 3;
 if (typeof fadeTimeSecs     == 'undefined' ) fadeTimeSecs   = 2;
 startDelay=startDelaySecs*1000;
 fadeInterval=fadeIntervalSecs*1000;
 fadeGap=fadeTimeSecs*50;

 eachDiv=divList.split('|');
 for ($i=0;$i<eachDiv.length;$i++) {
  if ($i==0) {
   setOpacity(eachDiv[$i],100);
  } else {
   setOpacity(eachDiv[$i],0);
  }
 }
 faderID=setTimeout("fadeInOut()",startDelay);
}

function fadeInOut() {
 intervalID = setInterval("fadeStep()",fadeGap);
}

function fadeStep() {
 if (fadeIn==100) {
  clearInterval(intervalID);
  clearTimeout(faderID);
  fadeOut = 100;
  fadeIn  = 0;
  divOut  = divIn;
  divIn++;
  if (divIn>=eachDiv.length) {
   divIn=0;
  }
  faderID=setTimeout("fadeInOut()",fadeInterval);
 } else {
  fadeIn=fadeIn+5;
  fadeOut=fadeOut-5;
  setOpacity(eachDiv[divOut],fadeOut);
  setOpacity(eachDiv[divIn],fadeIn);
 }
}

// Required variables for classRotate
// var eachClassSequence = new Array();
// var currentClass = 0;
// var rotateID = 0;

function classRotate(intervalSecs) {
 if (typeof intervalSecs == 'undefined' ) intervalSecs = 10;
 var rotateInterval=intervalSecs*1000;
 for (i=1;i<arguments.length;i++) {
  alert(arguments[i]);
  eachClassSequence.push(arguments[i]);
 }
 rotateID = setInterval("classRotateStep()",rotateInterval);
}

function classRotateStep() {
 for (i=0;i<eachClassSequence.length;i++) {
  myStr = eachClassSequence[i].split('=');
  var myElem=myStr[0];
  var myClass=myStr[1].split('|');
  document.getElementById(myElem).className=myClass[currentClass];
 }
 currentClass++;
 if (currentClass>=myClass.length) {
  currentClass=0;
 }
}

function compareTimeOfDay(time1,time2) {
 var num1,num2;
 mySeg1=time1.split(':');
 mySeg2=time2.split(':');
 for (i=0;i<mySeg1.length;i++) {
  num1=mySeg1[i];
  num2=mySeg2[i];
  if (num1>num2) {
   return 1;
  } else if (num2>num1) {
   return -1;
  }
 }
 return 0;
}

function classByTime(timeSlot,elementID,classes) {
 if (typeof timeSlot == 'undefined' ) {
  alert('No timeSlot provided - enter starttime|endtime in 24 hour format');
  return false;
 }
 if (typeof elementID == 'undefined' ) {
  alert('No elementID provided');
  return false;
 }
 if (typeof classes == 'undefined' ) {
  alert('No classes provided - enter classOn|classOff');
  return false;
 }
 var timeNow=checkTime();
 myTimes=timeSlot.split('|');
 myClass=classes.split('|');
 var myType=compareTimeOfDay(myTimes[0],myTimes[1]);
 var className;
 switch (myType) {
  case -1:
   if (compareTimeOfDay(myTimes[0],timeNow) < 1 && compareTimeOfDay(myTimes[1],timeNow) > -1) {
    className=myClass[0];
   } else {
    className=myClass[1];
   }
   break;
  case 1:
   if (compareTimeOfDay(myTimes[1],timeNow) < 1 && compareTimeOfDay(myTimes[0],timeNow) > -1) {
    className=myClass[1];
   } else {
    className=myClass[0];
   }
   break;
 }
 var myElem=document.getElementById(elementID);
 if (myElem.className==className) {
  return true;
 }
 myElem.className=className;
}
