function checkFieldLength(inputID,outputID,maxLength)
{
  var stringValue = document.getElementById(inputID).value;
  var R = 0;
  var G = 255;
  var B = 0;
  G -= stringValue.length;
  R += stringValue.length;
  var newValue = '<span style="color:rgb(' + R + ',' + G + ',' + B + ');">' + (maxLength - stringValue.length) + " Characters left</span>";
  document.getElementById(outputID).innerHTML=newValue;
}

function validateMaxLength(inputID, MaxLen)
{
  var Object = document.getElementById(inputID);
  return (Object.value.length <= MaxLen);
}

function validateForm()
{
  return false;
}


//*****************************************************************************//
//*****************************************************************************//
// Comment form showing and hiding
//*****************************************************************************//
function toggleCommentForm(formID)
{
  var currentDisplay = document.getElementById(formID).style.display;
  if( currentDisplay == "block" )
  {
    document.getElementById(formID).style.display = "none";
  }
  else
  {
    document.getElementById(formID).style.display = "block";
  }
//  fade(formID);
}

/*
 * Load a page into a div
 */ 
function load(URL,ID)
{
  
  if(!URL) return;
  if(!ID)  return;
  
  // code for IE7+, Firefox, Chrome, Opera, Safari
  if(window.XMLHttpRequest) 
    xmlhttp=new XMLHttpRequest();
  else
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  // otherwise IE5 or IE6


  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById(ID).innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET",URL,true);
  xmlhttp.send();
}

/*
 * Will return an array of elements
 */ 
function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    if(!classname) return;
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

/*
 * Works both for IE and the normal browsers
 */ 
function setOpacity(object,value) {
	//object.style.opacity = value/10;
	object.style.filter = 'alpha(opacity=' + value + ')';
}


var TimeToFade = 250.0;
function fade(eid)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null 
        || element.style.opacity == '' 
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }
    
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  }  
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' 
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}
