// Modify from CHM, then for Coastal Architecture and now Grinners Function Rooms

var delayRotate = 0
var rotCounta = 0
var rotCountb = 0
var rotCountc = 0
var rotCountd = 0
var rotCounte = 0
var pageCtlString = ""

function fadein(divId)
{
    // A simple fade in effect
    var div = document.getElementById(divId)
    fadeToDiv(div)
}

function SelectSlidePos()
{
    var slidePos = document.getElementById("slide_pos")
    var links = slidePos.getElementsByTagName("a")
    
    for (var i=0; i < links.length; i++)
    {
        var link = links[i]
        if(link.nodeType == 1)
        {
            if(i == rotCounte - 2)
                link.className = "clMe selected"
            else
                link.className = "clMe"
        }
    }
}

function NextSlide()
{   
    var rotateElement = "e"
    var elementIndex = rotCounte
    var divToRotate = document.getElementById(pageCtlString + "rotateimg_" + rotateElement);

    var divs = divToRotate.getElementsByTagName("div");
    var validDivs = 0;
    for (var i=0; i < divs.length; i++ ) 
    {
        var div = divs[i];
        if ( (div.id != "") && (div.nodeType == 1) ) 
	        validDivs++;
    }
   
    if (elementIndex > validDivs) 
        elementIndex = 1;
    
    rotatethis(elementIndex,rotateElement,divToRotate)
    SelectSlidePos()
    delayRotate = 2
}

function PrevSlide()
{
    var rotateElement = "e"
    var elementIndex = rotCounte - 2
    var divToRotate = document.getElementById(pageCtlString + "rotateimg_" + rotateElement);

    var divs = divToRotate.getElementsByTagName("div");
    var validDivs = 0;
    for (var i=0; i < divs.length; i++ ) 
    {
        var div = divs[i];
        if ( (div.id != "") && (div.nodeType == 1) ) 
	        validDivs++;
    }
   
    if (elementIndex == 0) 
        elementIndex = validDivs;
    
    rotatethis(elementIndex,rotateElement,divToRotate)
    SelectSlidePos()
    delayRotate = 2
}

function JumpToSlide(elementIndex)
{
    RotateImg(elementIndex,"e")
    SelectSlidePos()
    delayRotate = 2
}

function RotateSlides()
{
    rotateme("e",null,9,"RotateSlides")
    SelectSlidePos()
}

function RotateImgGroup(elementIndex,rotateElement1,rotateElement2)
{
    // Rotate a group of Elements
    RotateImg(elementIndex,rotateElement1)
    RotateImg(elementIndex,rotateElement2)
    delayRotate = 2
}

function RotateDiv(elementIndex,rotateElement)
{
    var divToRotate = document.getElementById("rotate_" + rotateElement)
    rotatethis(elementIndex,rotateElement,divToRotate)
}

function RotateImg(elementIndex,rotateElement)
{        
    var divToRotate = document.getElementById(pageCtlString + "rotateimg_" + rotateElement);
    rotatethis(elementIndex,rotateElement,divToRotate)
    delayRotate = 2
}

function rotatethis(elementIndex,rotateElement,divToRotate)
{
    // Jump to this div element inside the rotation element and set the RotateCount appropriately
    var divIdToMoveTo = elementIndex
    var divs = divToRotate.getElementsByTagName("div");
    var validDivs = 0;
    for (var i=0; i < divs.length; i++ ) 
    {
        var div = divs[i];
        if ( (div.id != "") && (div.nodeType == 1) ) 
        {
            div.style.display = "none";
	        validDivs++;

		    var oldLi = document.getElementById("li"+(i+1)+"_"+rotateElement)
		    if(oldLi != null)
    		    oldLi.className = ""
        }
    }
   
    if (elementIndex > validDivs) 
    {
        divIdToMoveTo = 1;
    }
    
    // MODIFIED FOR GRINNERS
    
    var firstDivToRevealObj = document.getElementById("ri"+divIdToMoveTo+"_"+rotateElement);
    firstDivToRevealObj.style.display = "block";
    
    var newLi = document.getElementById("li"+divIdToMoveTo+"_"+rotateElement)
    newLi.className = "selected"

    var rotationCount = elementIndex+1

    if(rotateElement == "a")
        rotCounta = rotationCount;
    else if(rotateElement == "b")
        rotCountb = rotationCount;
    else if(rotateElement == "c")
        rotCountc = rotationCount;
    else if(rotateElement == "d")
        rotCountd = rotationCount;
    else if(rotateElement == "e")
        rotCounte = rotationCount;
}

function rotateme(rotateElement,delayOffset,defaultDelay,overrideFunction) 
{
  // To use the rotate function you must call your rotate element "rotateimg_x
  // The individual <div> items inside must have ids like so: "ri1_x, "ri2_x, etc.
  // You need to define a 'global' rotationCount, (rotCountx) and potentially an initial offset
  // Where "x" is a,b,c,d or e only
  // Don't forget to add the CSS styles also to the <style> element at the top of the page (or the CSS file)
    
    
  // MODIFIED FOR GRINNERS
  
    
    var delay = defaultDelay;

    if(delayOffset == null)
        delayOffset = 0  

    if(defaultDelay == null)
        delay = 14 // This is the default delay value
  
    delay = delay + delayOffset;
  
    if(delayRotate > 0)
    {
        delayRotate = delayRotate - 1
    }
    else
    {      
      var rotationCount = 0;

      if(rotateElement == "a")
        rotationCount = rotCounta;
      else if(rotateElement == "b")
        rotationCount = rotCountb;
      else if(rotateElement == "c")
        rotationCount = rotCountc;
      else if(rotateElement == "d")
        rotationCount = rotCountd;
      else if(rotateElement == "e")
        rotationCount = rotCounte;

      if (!document.getElementById) {
        return;
      }
      var divToRotate = document.getElementById(pageCtlString + "rotateimg_" + rotateElement);
      var divs = divToRotate.getElementsByTagName("div");
      var validDivs = 0;          
      for (var i=0; i < divs.length; i++ ) 
      {
        var div = divs[i];
        if ( (div.id != "") && (div.nodeType == 1) ) 
        {        
            div.style.display = "none";
		    validDivs++;
		    
		    var oldLi = document.getElementById("li"+(i+1)+"_"+rotateElement)
		    if(oldLi != null)
    		    oldLi.className = ""
        }        
      }
      if (rotationCount > validDivs) 
      {
            rotationCount = 1;
      }
      
      if (rotationCount > 0) 
      {
        var divIdToReveal  = rotationCount;
        var divToRevealObj = document.getElementById("ri"+divIdToReveal+"_"+rotateElement);
	    fadeToDiv(divToRevealObj);

	    var newLi = document.getElementById("li"+divIdToReveal+"_"+rotateElement)
        newLi.className = "selected"
        
        rotationCount++;
      }
      else
      {
        var firstDivId = 1
	    var firstDivToRevealObj = document.getElementById("ri"+firstDivId+"_"+rotateElement);
        firstDivToRevealObj.style.display = "block";
        rotationCount = firstDivId;

	    var newLi = document.getElementById("li"+firstDivId+"_"+rotateElement)
        newLi.className = "selected"

	    rotationCount++;
      }

      if(rotateElement == "a")
        rotCounta = rotationCount;
      else if(rotateElement == "b")
        rotCountb = rotationCount;
      else if(rotateElement == "c")
        rotCountc = rotationCount;
      else if(rotateElement == "d")
        rotCountd = rotationCount;
      else if(rotateElement == "e")
        rotCounte = rotationCount;
   }
   
   var theFunction = 'rotateme'
   var functionOptions = ',0'
   
   if(overrideFunction == null)
        setTimeout('rotateme(\"'+rotateElement+'\",0,' + defaultDelay + ')', delay*1000);
   else
        setTimeout(overrideFunction + '()', delay*1000);
}
function fadeToDiv(divToRevealObj) {
  setOpacity(divToRevealObj.id, 0);
  divToRevealObj.style.display = "block";
  fadeInDiv(divToRevealObj.id,0,false);
}
function fadeInDiv(divId, opacity, fadeOut) {
  if(fadeOut == true)
  {  
      if (opacity >= 0) {
	    setOpacity(divId, opacity);
	    opacity -= 5;
	    window.setTimeout("fadeInDiv('"+divId+"',"+opacity+","+fadeOut+")", 75);
      }
  }
  else
  {
      if (opacity <= 100) {
	    setOpacity(divId, opacity);
	    opacity += 5;
	    window.setTimeout("fadeInDiv('"+divId+"',"+opacity+","+fadeOut+")", 75);
      }
  }
}
function setOpacity(divId, opacity) {
  var div = document.getElementById(divId);
  opacity = (opacity == 100)?99.999:opacity;
  div.style.filter = "alpha(opacity:"+opacity+")";
  div.style.KHTMLOpacity = opacity/100;
  div.style.MozOpacity = opacity/100;
  div.style.opacity = opacity/100;
}