// Credit for the very nice form styling javascript belongs to: http://livsey.org/
document.getElementsByClassName = function (needle)
{
  var         my_array = document.getElementsByTagName("*");
  var         retvalue = new Array();
  var        i;
  var        j;

  for (i = 0, j = 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, true);
		return true;
	} 
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} 
	else 
	{
		return false;
	}
}

function getSource(e)
{
	if (typeof e == 'undefined')
	{
		var e = window.event;
	}
	var source;
	if (typeof e.target != 'undefined')
	{
		source = e.target;
	}
	else if (typeof e.srcElement != 'undefined')
	{
		source = e.srcElement;
	}
	else
	{
		return false;
	}
	return source
}

addEvent(window, 'load', function()
{
	var entries = document.getElementsByClassName('entry');
	var i;
	for (i=0; i<entries.length; i++)
	{
		entries[i].onmouseover = function()
		{
			this.className += ' hover';
		}
		entries[i].onmouseout = function()
		{
			this.className = this.className.replace(' hover', '');
		}
				
	}
});

//addEvent(window, 'load', checksize);
addEvent(window, 'load', function()
{
	var input, textarea, select;
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; (input = inputs[i]); i++)
	{
		addEvent(input, 'focus', oninputfocus);
		addEvent(input, 'blur', oninputblur);
		addEvent(input, 'mouseover', oninputhover);
		addEvent(input, 'mouseout', oninputout);
	}
	var textareas = document.getElementsByTagName('textarea');
	for (var i = 0; (textarea = textareas[i]); i++)
	{
		addEvent(textarea, 'focus', oninputfocus);
		addEvent(textarea, 'blur', oninputblur);
		addEvent(textarea, 'mouseover', oninputhover);
		addEvent(textarea, 'mouseout', oninputout);		
	}
	var selectboxes = document.getElementsByTagName('select');
	for (var i = 0; (select = selectboxes[i]); i++)
	{
		addEvent(select, 'focus', oninputfocus);
		addEvent(select, 'blur', oninputblur);
		addEvent(select, 'mouseover', oninputhover);
		addEvent(select, 'mouseout', oninputout);		
	}
});

function oninputfocus(e)
{
	var source = getSource(e);
	var tmp = source.parentNode;
	while (tmp.nodeName!='FORM')
	{
		if (tmp.nodeName=='FIELDSET')
		{
			tmp.className += ' active';
			break;
		}
		tmp = tmp.parentNode;
	}
	source.className += ' active';
}


function oninputhover(e)
{
	var source = getSource(e);
	var tmp = source.parentNode;
	while (tmp.nodeName!='FORM')
	{
		if (tmp.nodeName=='FIELDSET')
		{
			tmp.className += ' hover';
			break;
		}
		tmp = tmp.parentNode;
	}
	source.className += ' hover';
}

function oninputblur(e)
{
	var source = getSource(e);

	var tmp = source.parentNode;
	while (tmp.nodeName!='FORM')
	{
		if (tmp.nodeName=='FIELDSET')
		{
			tmp.className=tmp.className.replace("active", "");
			break;
		}
		tmp = tmp.parentNode;
	}
	source.className = source.className.replace("active", "");
}



function oninputout(e)
{
	var source = getSource(e);

	var tmp = source.parentNode;
	while (tmp.nodeName!='FORM')
	{
		if (tmp.nodeName=='FIELDSET')
		{
			tmp.className=tmp.className.replace("hover", "");
			break;
		}
		tmp = tmp.parentNode;
	}
	source.className = source.className.replace("hover", "");
};