window.onload = startup;

// Startup function
function startup()
{
	var c_inputs = document.getElementsByClass(document.getElementById('sidebar'), 'uc');
	
	for (var x in c_inputs)
	{
		eval('uc_input'+x+' = new uc_input(c_inputs[x],"uc_input'+x+'")');
		eval('uc_input'+x+'.initialise();');
	}
	
	var i_paras = document.getElementsByClass(document.getElementById('maincontent'), 'il');
	
	for (var x in i_paras)
	{
		eval('il_list'+x+' = new il_list(i_paras[x],"il_list'+x+'")');
		eval('il_list'+x+'.initialise();');
	}
}


// Get Elements by Class function
document.getElementsByClass = function (parent_node, classname)
{
	var objs = new Array();

	objs = getRecursiveClassNodes(parent_node, objs, classname);

	return objs;
}

function getRecursiveClassNodes(parent, obj_array, class_name)
{
	if (parent.childNodes.length)
		for (var x = 0; x < parent.childNodes.length; x++)
			obj_array = getRecursiveClassNodes(parent.childNodes[x], obj_array, class_name)

	if (parent.className == class_name) obj_array.push(parent);

	return obj_array;
}


//Gallery enlarge function
function ampliarFoto(foto)
{
	var path = '/img/gallery/';
	window.open(path+foto, '', 'width=660,height=495');
}



/*----- Objects ----*/

function uc_input(dom_obj, js_obj)
{
	var a = false;
	var dobj = dom_obj;
	var jobj = js_obj;
	var val = dobj.value;
	var class_name = dobj.className;
	
	this.activate = activate;
	this.deactivate = deactivate;
	this.initialise = initialise;
	
	function initialise()
	{
		jobj = eval(jobj);
		setEvent(dobj, true, 'focus', jobj.activate, false);
		setEvent(dobj, true, 'blur', jobj.deactivate, false);
	}
	
	function activate()
	{
		if (a == false)
		{
			dobj.value = '';
			dobj.className = '';
			a = true;
		}
	}
	
	function deactivate()
	{
		if (dobj.value == '')
		{
			dobj.value = val;
			dobj.className = class_name;
			a = false;
		}
	}
}


function il_list(dom_obj, js_obj)
{
	var dobj = dom_obj;
	var jobj = js_obj;
	var state = 0;
	
	this.toggle = toggle;
	this.initialise = initialise;
	
	
	function initialise()
	{
		dom_obj.onclick = eval(js_obj).toggle;
	}
	
	function toggle()
	{

		var ps = dobj.parentNode.parentNode.getElementsByTagName('p');
		for (var y = 0; y < ps.length; y++) ps[y].style.display = (state)? '' : 'block';

		dobj.innerHTML = (state)? 'Ver' : 'Ocultar';

		state = (state)? 0 : 1;			
		
		return false;
	}
}


/*----- Generic functions ------*/

function setEvent(dom_obj, add, toe, fn, bbl)
{
	if (document.addEventListener)
	{
		if (add) dom_obj.addEventListener(toe, fn, bbl);
		else dom_obj.removeEventListener(toe, fn, bbl);
	}
	else if (document.attachEvent)
	{
		if (add) dom_obj.attachEvent('on'+toe, fn);
		else dom_obj.dettachEvent('on'+toe, fn);
	}
}
