/*
 * http://gr0w.com/
 * Copyright (c) 2006-2007 Jon Tan, Jon Gibbins and Paul Whitrow
 * Some functions based on those by:
 * Jeremy Keith http://adactio.com/
 * Simon Willison http://simon.incutio.com/
 */

/* 
 * Generic onload event function
 */

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') window.onload = func;
	else {
		window.onload = function() {
			if (oldonload) oldonload();
			func();
		}
	}
}

/* 
 * Clear form fields default values
 */

function initFields(f){
	var i;

	var ip=f.getElementsByTagName("input");
	var num=ip.length;
	for(i=0;i<num;i++){
		if(ip[i].type&&(ip[i].type=="text")) setEvents(ip[i]);
	}

	ip=f.getElementsByTagName("textarea");
	num=ip.length;
	for(i=0;i<num;i++){
		setEvents(ip[i]);
	}
}

function selectField(obj){;
	if(obj.value==obj.defaultValue) obj.select();
}

function setEvents(obj){
	enableInputSelectEvents(obj);

	obj.onblur=function(e){
		if(!e) var e=window.event
		enableInputSelectEvents(e.target);
	}
	if(obj.captureEvents) obj.captureEvents(Event.BLUR);
}

function enableInputSelectEvents(obj){
	obj.onclick=function(e){
		if(!e) var e=window.event
		disableInputSelectEvents(e.target);
		selectField(e.target);
	}
	if(obj.captureEvents) obj.captureEvents(Event.CLICK);

	obj.onfocus=function(e){
		if(!e) var e=window.event
		disableInputSelectEvents(e.target);
		selectField(e.target);
	}
	if(obj.captureEvents) obj.captureEvents(Event.FOCUS);
}

function disableInputSelectEvents(obj){
	obj.onclick=function(){};
	if(obj.captureEvents) obj.captureEvents(Event.CLICK);

	obj.onfocus=function(){};
	if(obj.captureEvents) obj.captureEvents(Event.FOCUS);
}

function prepareForms(){
	if(!document.getElementsByTagName) return;
	var num=document.forms.length;
	var i;
	for(i=0;i<num;i++){
		initFields(document.forms[i]);
	}
}

addLoadEvent(prepareForms);
