var inAction = false;
var effect;
var toggleElements = new Array();

function show(objId)
  {
   if (inAction) return;
  
   saveState(objId,1);
   
   inAction = true;
   $("#slink_"+objId).css("display","none");
   $("#hlink_"+objId).css("display","inline");   
   
   $("#toggleText_"+objId).slideDown("slow",showFinished);
  }
  
function hide(objId)
  {   
   if (inAction) return;
     
   saveState(objId,0);
  
   inAction = true;
   $("#hlink_"+objId).css("display","none");
   $("#slink_"+objId).css("display","inline");   
      
   $("#toggleText_"+objId).slideUp("fast",hideFinished);
  }
      
function showFinished()
  {
   inAction = false;
  }
  
function hideFinished()
  {
   inAction = false;
  }
  
function setInitialState()
  {
   // First, read out DOM structure to find out whether the element should be shown initially or not
   var toggleSwitches = $(".toggleswitch");
 
   for (var i = 0; i < toggleSwitches.length; i++)
     {
      var id = toggleSwitches[i].childNodes[0].getAttribute("id");
    
      if (id.substring(0,5) == "slink") setInitialStateForElement(i,"0");
      else if (id.substring(0,5) == "hlink") setInitialStateForElement(i,"1");
     }
     
   // Now, look if there are any cookies that overwrite default settings
   restoreSavedState();
  }
  
function restoreSavedState()
  {
   // If there are no cookies, don't even try
   if (!document.cookie || !navigator.cookieEnabled) return;
   if (document.cookie.indexOf("ToggleText=") == -1) return;
   
   var cookie = document.cookie;
   cookie = cookie.substring(cookie.indexOf("ToggleText="));   
   if (cookie.indexOf(";") > -1) cookie = cookie.substring(0,cookie.indexOf(";"));   
   
   toggleElements = cookie.substring(11).split(",");
   
   for (var i = 0; i < toggleElements.length; i++)
     {
      setInitialStateForElement(i,toggleElements[i]);
     }
  }
    
function setInitialStateForElement(nr,state)
  {
   if ($("#toggleText_"+nr) == null) return;
  
   if (state == "0")
     {
      $("#hlink_"+nr).css("display","none");
      $("#slink_"+nr).css("display","inline");   
      $("#toggleText_"+nr).css("display","none");
     }
   else if (state == "1")
     {
      $("#slink_"+nr).css("display","none");
      $("#hlink_"+nr).css("display","inline");   
      $("#toggleText_"+nr).css("display","block");
     }
  }
  
function saveState(objId,state)
  {
   // If there are no cookies, don't even try
   if (!navigator.cookieEnabled) return;
   
   // Add the new state to the array
   toggleElements[objId] = state;
     
   // Prepare cookie date and path
   var date = new Date();
   date.setTime(date.getTime()+30*24*3600*1000);
   
   var offset = 0;
   
   if (location.href.substring(0,7) == "http://") offset = location.href.indexOf("/",7);
   else offset = location.href.indexOf("/");
   
   var loc = location.href.substring(offset);
   
   // Now store the new cookie     
   document.cookie = "ToggleText="+toggleElements.join(",")+"; expires="+date+"; path="+loc;
  }
  
attachOnLoad(setInitialState);
