// JavaScript Document

function initOverLabels () {
  if (!document.getElementById) return;      

  var labels, id, field;

  // Set focus and blur handlers to hide and show 
  // labels with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {

    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute
('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      } 

      // Change the applied class to hover the label 
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') {
        hideLabel(field.getAttribute('id'), true);
      }

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to label elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
};

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i]. 
getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-4000px' :
'0px';
      return true;
    }
  }
}


// Clip animation
var changing_frames = new Array();
var clip_timer = null;
var clip_image = null;
var clip_loaded = false;

function changeFrame(index, i, num_frames, clip_url, clip_width, interval, loop)
{	
    if (changing_frames[index])
    {
		if (i+1==num_frames) loop--;
        if (i+1==num_frames && loop==0) {
			endFrameChange(index);
			return;
		}
		
		if (clip_image && clip_image.width>100 && clip_image.complete) 
		{
			if (!clip_loaded)
			{
				clip_loaded = true;
				document.getElementById(index).style.background = 'url("' + clip_url + '")';
			}
			image_id = (i + 1) % num_frames;
			x = image_id*clip_width;
			document.getElementById(index).style.backgroundPosition = "-" + x + "px 0";
			i = i % num_frames;
			i++;
			
			clip_timer = setTimeout("changeFrame('" + index + "'," + i + ", " + num_frames + ", '" + clip_url + "', '" + clip_width + "', '" + interval + "', '" + loop + "')", interval);
		}
		else
			clip_timer = setTimeout("changeFrame('" + index + "'," + i + ", " + num_frames + ", '" + clip_url + "', '" + clip_width + "', '" + interval + "', '" + loop + "')", 100);
    }
}    

function startFrameChange(index, num_frames, clip_url, clip_width, interval, loop)
{    
    if (!changing_frames[index]) 
	{
		changing_frames[index] = true;
		clip_loaded = false;
		clip_image = new Image();
		clip_image.src = clip_url;
		changeFrame(index, 0, num_frames, clip_url, clip_width, interval, loop);
	}
}


function endFrameChange(index)
{
    changing_frames[index] = false;
    document.getElementById(index).style.backgroundPosition = "0px 0px";
	clearTimeout(clip_timer);
}


window.onload = function () {
  setTimeout(initOverLabels, 50);
};
