/*#############################################################
Name: Niceforms
Version: 1.0
Author: Lucian Slatineanu
URL: http://www.badboy.ro/

Feel free to use and modify but please provide credits.
#############################################################*/

//Global Variables
var niceforms = document.getElementsByTagName('form'); 

var inputs = new Array(); 
var labels = new Array(); 
var radios = new Array(); 
var radioLabels = new Array(); 
var checkboxes = new Array(); 
var checkboxLabels = new Array(); 
var texts = new Array(); 
var textareas = new Array(); 
var selects = new Array(); 
var selectText = "please select"; 
var agt = navigator.userAgent.toLowerCase(); 
this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var hovers = new Array(); 
var buttons = new Array(); 

var isMac = new RegExp('(^|)'+'Apple'+'(|$)');
//PSyTI - UNGS
var elementos = new Array(); 
//Theme Variables - edit these to match your theme
var selectRightSideWidth = 21;
var selectLeftSideWidth = 8;
var selectAreaHeight = 21;
var selectAreaOptionsOverlap = 2;
//var imagesPath = "../themes/flat/images"; 
var imagesPath = "images/niceforms/";
var maxHeigth = 300;
var minHeigth = 18;

var inputs_r = new Array();
//Initialization function - if you have any other 'onload' functions, add them here
function init() {
	
	var img = document.getElementsByTagName('img');
	for(i=0; i < img.length; i++){		
		if(img[i].proceso == "form"){
			if(img[i].tipo == "right"){
				var padre = img[i].parentNode;
				for(r=0; r < padre.childNodes.length; r++){
					if(padre.childNodes(r).tipo == "right"){
						rightPos = r;	
						leftPos = r - 2;
					}							
				}
				padre.removeChild(padre.childNodes(rightPos));
				padre.removeChild(padre.childNodes(leftPos));
			}
		}
	}
	var divs = document.getElementsByTagName('div');
	le = divs.length;
	for(i=0; i < le; i++){
		if(divs[i].proceso == "form" && divs[i].tipo == "fdiv"){			
			var padre = divs[i].parentNode;
				plen = padre.childNodes.length;
				for(r=0; r < plen; r++){
				}
		}
	}	
	initArray(); 
	if(!document.getElementById) {return false;}
	preloadImages();
	getElements();
	separateElements();
	replaceRadios();
	replaceCheckboxes();
	replaceSelects();
	if(!isMac.test(navigator.vendor)) {
		replaceTexts();
		replaceTextareas();
		buttonHovers();
	}
}


//preloading required images
function preloadImages() {
	preloads = new Object();
	preloads[0] = new Image(); preloads[0].src = imagesPath + "button_left_xon.gif";
	preloads[1] = new Image(); preloads[1].src = imagesPath + "button_right_xon.gif";
	preloads[2] = new Image(); preloads[2].src = imagesPath + "input_left_xon.gif";
	preloads[3] = new Image(); preloads[3].src = imagesPath + "input_right_xon.gif";
	preloads[4] = new Image(); preloads[4].src = imagesPath + "txtarea_bl_xon.gif";
	preloads[5] = new Image(); preloads[5].src = imagesPath + "txtarea_br_xon.gif";
	preloads[6] = new Image(); preloads[6].src = imagesPath + "txtarea_cntr_xon.gif";
	preloads[7] = new Image(); preloads[7].src = imagesPath + "txtarea_l_xon.gif";
	preloads[8] = new Image(); preloads[8].src = imagesPath + "txtarea_tl_xon.gif";
	preloads[9] = new Image(); preloads[9].src = imagesPath + "txtarea_tr_xon.gif";

}
//getting all the required elements
function getElements() {
	var  html = document.getElementsByTagName('body');
	for(var nfi = 0; nfi < html[0].getElementsByTagName('input').length; nfi++) {
		inputs.push(html[0].getElementsByTagName('input')[nfi]);
	}
	for(var nfl = 0; nfl < html[0].getElementsByTagName('label').length; nfl++) {
		labels.push(html[0].getElementsByTagName('label')[nfl]);
	}
	for(var nft = 0; nft < html[0].getElementsByTagName('textarea').length; nft++) {
		textareas.push(html[0].getElementsByTagName('textarea')[nft]);
	}
	for(var nfs = 0; nfs < html[0].getElementsByTagName('select').length; nfs++) {
		selects.push(html[0].getElementsByTagName('select')[nfs]);
	}


}
//separating all the elements in their respective arrays
function separateElements() {
	var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0;
	
	for (var q = 0; q < inputs.length; q++) {
		if(inputs[q].type == 'radio') {
			radios[r] = inputs[q]; ++r;
			for(var w = 0; w < labels.length; w++) {
				if(labels[w].htmlFor == inputs[q].id) {
					if(inputs[q].checked) {
						labels[w].className = "chosen";
					} 
					radioLabels[rl] = labels[w]; 
					++rl;
				}
			}
		}
		if(inputs[q].type == 'checkbox') {
			checkboxes[c] = inputs[q]; ++c;
			for(var w = 0; w < labels.length; w++) {
				if(labels[w].htmlFor == inputs[q].id) {
					if(inputs[q].checked) {
						labels[w].className = "chosen";
					} 
					checkboxLabels[cl] = labels[w];
					++cl;
				}
			}
		}

		if((inputs[q].type == "text") || (inputs[q].type == "password") || (inputs[q].type == "file")) {texts[t] = inputs[q]; ++t;}
		if((inputs[q].type == "submit") || (inputs[q].type == "button")) {
      buttons[b] = inputs[q]; ++b;
      }
	}
}
function replaceRadios(){
	for (var q = 0; q < radios.length; q++) {
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Incorporado para verificar si el elemento ya se generó
    if(controlElementos(radios[q]) != false) {
		radios[q].className = "outtaHere";
		var radioArea = document.createElement('div');
		if(radios[q].checked) {radioArea.className = "radioAreaChecked";} else {radioArea.className = "radioArea";}
		radioArea.style.left = findPosX(radios[q]) + 'px';
		radioArea.style.top = findPosY(radios[q]) + 'px';
		radioArea.style.margin = "1px";
		radioArea.id = "myRadio_" + radios[q].id;
		radioArea.proceso = "form";
		radioArea.tipo = "fdiv";
		radios[q].parentNode.insertBefore(radioArea, radios[q]);
		radioArea.onclick = new Function('rechangeRadios(\''+radios[q].id+'\')');
		radioLabels[q].onclick = new Function('changeRadio(\''+radios[q].id+'\')');
		if(!this.ie) {
			radios[q].onfocus = new Function('focusRadios(\''+radios[q].id+'\')');
			radios[q].onblur = new Function('blurRadios(\''+radios[q].id+'\')');
		}
		}
		//radios[q].onkeydown = radioEvent;
	}
	return true;
}
function focusRadios(id) {
	var what = document.getElementById('myRadio_'+id);
	what.style.border = "1px dotted #333"; what.style.margin = "0";
	return false;
}
function blurRadios(id) {
	var what = document.getElementById('myRadio_'+id);
	what.style.border = "0"; what.style.margin = "1px";
	return false;
}
function checkRadios(id) {
	var radio = document.getElementById(id);
	var what = document.getElementById('myRadio_'+id);
	others = document.getElementsByTagName('div');
	for(var q = 0; q < others.length; q++) {
		if((others[q].className == "radioAreaChecked")&&(others[q].nextSibling.name == radio.name)) {
			others[q].className = "radioArea";
		}
	}
	what.className = "radioAreaChecked";
}
function rechangeRadios(id) {
	var radio = document.getElementById(id);
	if(!radio.checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radio.name) {
				radios[q].checked = false; 
				radioLabels[q].className = "";
			}
		}
		radio.click(); 
		var radioLabel = document.getElementById('Label_'+id);
		radioLabel.className = "chosen";
		checkRadios(id);
	}
}
function changeRadio(id) {
	var radio = document.getElementById(id);
	if(!radio.checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radio.name) {
				radios[q].checked = false; 
				radioLabels[q].className = "";
			}
		}
		var radioLabel = document.getElementById('Label_'+id);
		radioLabel.className = "chosen";
		checkRadios(id);
	}
}

/*function radioEvent(e) {
	if (!e) var e = window.event;
	if(e.keyCode == 32) {
		for (var q = 0; q < radios.length; q++) {
			if(this == radios[q]) {
				rechangeRadios(this.id); 
				break;
			}
		}
	}
}*/

function replaceCheckboxes() {
	for (var q = 0; q < checkboxes.length; q++) {
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Incorporado para verificar si el elemento ya se generó
    if(controlElementos(checkboxes[q]) != false) { 

    checkboxes[q].className = "outtaHere";
		var checkboxArea = document.createElement('div');
		if(checkboxes[q].checked) {checkboxArea.className = "checkboxAreaChecked";} else {checkboxArea.className = "checkboxArea";}
		checkboxArea.style.left = findPosX(checkboxes[q]) + 'px';
		checkboxArea.style.top = findPosY(checkboxes[q]) + 'px';
		checkboxArea.style.margin = "1px";
		checkboxArea.id = "myCheckbox_" + checkboxes[q].id;
		checkboxArea.proceso = "form";
		checkboxArea.tipo = "fdiv";
		checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]);
		checkboxArea.onclick = new Function('rechangeCheckboxes(\''+checkboxes[q].id+'\')');
		
		if(!isMac.test(navigator.vendor)) {
			checkboxLabels[q].onclick = new Function('changeCheckboxes(\''+checkboxes[q].id+'\')');
		} else {
			checkboxLabels[q].onclick = new Function('rechangeCheckboxes(\''+checkboxes[q].id+'\')');
		}

		if(!this.ie) {
			checkboxes[q].onfocus = new Function('focusCheckboxes(\''+checkboxes[q].id+'\')');
			checkboxes[q].onblur = new Function('blurCheckboxes(\''+checkboxes[q].id+'\')');
		}
		checkboxes[q].onkeydown = checkEvent;
	}
}
	return true;

}

function focusCheckboxes(id) {
	var what = document.getElementById('myCheckbox_'+id);
	what.style.border = "1px dotted #333"; what.style.margin = "0";
	return false;
}
function blurCheckboxes(id) {
	var what = document.getElementById('myCheckbox_'+id);
	what.style.border = "0"; what.style.margin = "1px";
	return false;
}
function checkCheckboxes(id, action) {
	var what = document.getElementById('myCheckbox_'+id);
	if(action == true) {what.className = "checkboxAreaChecked";}
	if(action == false) {what.className = "checkboxArea";}
}
function changeCheckboxes(id) {
	var checkboxLabel = document.getElementById('Label_'+id);
	if(checkboxLabel.className == "chosen") {
		document.getElementById(id).checked = true;
		checkboxLabel.className = "";
		checkCheckboxes(id, false);
	}
	else if(checkboxLabel.className == "") {
		document.getElementById(id).checked = false;
		checkboxLabel.className = "chosen";
		checkCheckboxes(id, true);
	}
	
}
function rechangeCheckboxes(id) {
	var tester = false;
	var checkboxLabel = document.getElementById('Label_'+id);	
	if(checkboxLabel.className == "chosen") {
		tester = false;
		checkboxLabel.className = "";
	} else if(checkboxLabel.className == "") {
		tester = true;
		checkboxLabel.className = "chosen";
	}
	var checkbox = document.getElementById(id);
	checkbox.click();
	checkCheckboxes(id, tester);	
}
function checkEvent(e) {
	if (!e) var e = window.event;
	if(e.keyCode == 32) {
		for (var q = 0; q < checkboxes.length; q++) {
			if(this == checkboxes[q]) {
				changeCheckboxes(this.id);
			}
		}
	} //check if space is pressed
}

function replaceSelects() {
	for(var q = 0; q < selects.length; q++) {
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Incorporado para verificar si el elemento ya se generó
		if(controlElementos(selects[q]) != false) {
		var selectArea = document.createElement('div');
		var left = document.createElement('div');
		var right = document.createElement('div');
		var center = document.createElement('div');
		var button = document.createElement('a');
		var text = document.createTextNode(selectText);
		center.id = "mySelectText"+selects[q].id;
		var selectWidth;
		(selects[q].className != '') ? selectWidth = parseInt(selects[q].className.replace(/width_/g, '')) : selectWidth = 150;
		//var selectWidth = parseInt(selects[q].className.replace(/width_/g, ""));
		center.style.width = selectWidth - 10 + 'px';
		selectArea.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth  + 'px';
		button.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth + 'px';
		button.style.marginLeft = - selectWidth - selectLeftSideWidth + 'px';
		button.href = "javascript:showOptions('"+selects[q].id+"', 'sarea"+q+"')";
		button.title = "Desplegar opciones";
		button.onmousemove = function(){window.status=this.title;};
		button.onmouseout = function(){window.status='';};
		button.onkeydown = selectEvent;
		button.className = "selectButton"; //class used to check for mouseover
		selectArea.className = "selectArea";
		selectArea.id = "sarea"+q;
		left.className = "left";
		right.className = "right";
		center.className = "center";
		right.appendChild(button);
		center.appendChild(text);
		selectArea.appendChild(left);
		selectArea.appendChild(right);
		selectArea.appendChild(center);
        selects[q].style.display='none'; 
		selects[q].parentNode.insertBefore(selectArea, selects[q]);
		var optionsDiv = document.createElement('div');
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Modificado para ajustar el ancho del div, si sobrepasa el valor de maxHeigth se agranda 21px por la barra de desplazamiento
		if((selects[q].options.length*minHeigth) <= maxHeigth){
			optionsDiv.style.width = selectWidth + 5 + 'px';
		} else {
			optionsDiv.style.width = selectWidth + 21 + 'px';
		}
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Modificado para ajustar el alto del div, si no sobrepasa el valor de maxHeigth
		if((selects[q].options.length*minHeigth) <= maxHeigth) optionsDiv.style.height = selects[q].options.length*minHeigth + 'px';
		optionsDiv.className = "optionsDivInvisible";
		optionsDiv.id = "optionsDiv"+selects[q].id;
		optionsDiv.style.left = findPosX(selectArea) + 'px';
		optionsDiv.style.top = findPosY(selectArea) + selectAreaHeight - selectAreaOptionsOverlap + 'px';
		//get select's options and add to options div
		for(var w = 0; w < selects[q].options.length; w++) {
			var optionHolder = document.createElement('p');
			var optionLink = document.createElement('a');
			var optionTxt = document.createTextNode(selects[q].options[w].text);
			optionLink.href = "javascript:showOptions('"+selects[q].id+"'); selectMe('"+selects[q].id+"',"+w+");";
			optionLink.title = selects[q].options[w].text;
			optionLink.onmousemove = function(){window.status=this.title;};
			optionLink.onmouseout = function(){window.status='';};
			optionLink.appendChild(optionTxt);
			optionHolder.appendChild(optionLink);
			optionsDiv.appendChild(optionHolder);
			//check for pre-selected items
			if(selects[q].options[w].selected) {selectMe(selects[q].id,w);}
		}
		//insert options div
		document.getElementsByTagName("body")[0].appendChild(optionsDiv);
	}
}
}
function showOptions(g, selectarea) {
		elem = document.getElementById("optionsDiv"+g);
		var obj = document.getElementById(g);
pos = getAbsoluteElementPosition(selectarea);
elem.style.left = pos.left + 'px';
elem.style.top = pos.top + selectAreaHeight - selectAreaOptionsOverlap + 'px';
elem.style.height = '200px';
elem.style.overflow = 'auto';
//alert(selectarea);
//        elem.style.left = findPosX(obj) + 'px';
//		elem.style.top = findPosY(obj) + selectAreaHeight - selectAreaOptionsOverlap + 'px';

//alert('getAbsoluteElementPosition: ' + pos.top + ' ' + pos.left + ' findPos: ' + findPosY('sarea0') + ' ' + findPosX('sarea0'));
//alert("top="+pos.top+" left="+pos.left + ' ----- ' + findPosX('sarea0') + ' ' + findPosY('sarea0'));
		//alert(findPosX(obj) + ' ' + findPosY(obj));
		if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";}
		else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";}
		elem.onmouseout = hideOptions;
}
function hideOptions(e) { //hiding the options on mouseout
	if (!e) var e = window.event;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	if(((reltg.nodeName != 'A') && (reltg.nodeName != 'DIV')) || ((reltg.nodeName == 'A') && (reltg.className=="selectButton") && (reltg.nodeName != 'DIV'))) {this.className = "optionsDivInvisible";};
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}
function selectMe(selectFieldId,linkNo) {
	//feed selected option to the actual select field
	//alert(selectFieldId + '//' + linkNo );
	selectField = document.getElementById(selectFieldId);
	for(var k = 0; k < selectField.options.length; k++) {
		if(k==linkNo){
			selectField.options[k].selected = "selected";
		}else{
			selectField.options[k].selected = "";
		}
	}
	
	if(selectField.onchange != null ) selectField.onchange();
	
	//show selected option
	var textVar = document.getElementById("mySelectText"+selectFieldId);
	var newText = document.createTextNode(selectField.options[linkNo].text);
	textVar.title = selectField.options[linkNo].text;
	textVar.onmousemove = function(){window.status=textVar.title;};
	textVar.onmouseout = function(){window.status='';};
	textVar.replaceChild(newText, textVar.childNodes[0]);
}
// Programa SyTi - Universidad Nacional de General Sarmiento
// Incorporado para actualizar los datos de un combo modificado por ajax
function updateSelects(selectFieldId) {
	var combo = document.getElementById(selectFieldId);
	var divOptions = document.getElementById("optionsDiv"+selectFieldId);
	divOptions.innerHTML = '';
	for(var w = 0; w < combo.options.length; w++) {
			var optionHolder = document.createElement('p');
			var optionLink = document.createElement('a');
			var optionTxt = document.createTextNode(combo.options[w].text);
			optionLink.href = "javascript:showOptions('"+combo.id+"'); selectMe('"+combo.id+"',"+w+");";
			optionLink.title = combo.options[w].text;
			optionLink.onmousemove = function(){window.status=this.title;};
			optionLink.onmouseout = function(){window.status='';};
			optionLink.appendChild(optionTxt);
			optionHolder.appendChild(optionLink);
			divOptions.appendChild(optionHolder);
			if(combo.options[w].selected) {selectMe(combo.id,w);}
	}
}

// Programa SyTi - Universidad Nacional de General Sarmiento
// Incorporado para realizar búsquedas en el combo
function buscarOptions(selectFieldId,text,selectNo) {
	var selectField = document.getElementById(selectFieldId);
	for(var pos = 0; pos < selectField.options.length; pos++) {
		var dato = selectField.options[pos].text;
		dato = dato.toUpperCase();
		if (dato.indexOf(text.toUpperCase())>=0){
			selectMe(selectFieldId,pos,selectNo);
			return;
		}
	}
}


function selectEvent(e) {
	if (!e) var e = window.event;
	var thecode = e.keyCode;
	switch(thecode){
		case 40: //down
			var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, "");
			var linkNo = 0;
			for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}}
			++linkNo;
			if(linkNo >= selects[fieldId].options.length) {linkNo = 0;}
			selectMe(selects[fieldId].id, linkNo, fieldId);
			break;
		case 38: //up
			var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, "");
			var linkNo = 0;
			for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}}
			--linkNo;
			if(linkNo < 0) {linkNo = selects[fieldId].options.length - 1;}
			selectMe(selects[fieldId].id, linkNo, fieldId);
			break;
		default:
			break;
	}
}
function replaceTexts() {
	for(var q = 0; q < texts.length; q++) {
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Incorporado para verificar si el elemento ya se generó
    if(controlElementos(texts[q]) != false) {
		//texts[q].style.width = texts[q].size * 10 + 'px';
    txtLeft = document.createElement('img'); txtLeft.src = imagesPath + "input_left.gif"; txtLeft.className = "inputCorner";
		txtRight = document.createElement('img'); txtRight.src = imagesPath + "input_right.gif"; txtRight.className = "inputCorner";
		texts[q].parentNode.insertBefore(txtLeft, texts[q]);
		texts[q].parentNode.insertBefore(txtRight, texts[q].nextSibling);
		texts[q].className = "textinput";
		//create hovers
		texts[q].onfocus = function() {
			this.className = "textinputHovered";
			this.previousSibling.src = imagesPath + "input_left_xon.gif";
			this.nextSibling.src = imagesPath + "input_right_xon.gif";
		}
		texts[q].onblur = function() {
			this.className = "textinput";
			this.previousSibling.src = imagesPath + "input_left.gif";
			this.nextSibling.src = imagesPath + "input_right.gif";
		}
	}
	}
}
function replaceTextareas() {
	for(var q = 0; q < textareas.length; q++) {
		// Programa SyTi - Universidad Nacional de General Sarmiento
		// Incorporado para verificar si el elemento ya se generó
    if(controlElementos(textareas[q]) != false) {
		var where = textareas[q].parentNode;
		var where2 = textareas[q].previousSibling;
		//textareas[q].style.width = textareas[q].cols * 10 + 'px';
		//textareas[q].style.height = textareas[q].rows * 10 + 'px';
		//create divs
		var container = document.createElement('div');
		container.className = "txtarea";
		container.style.width = parseInt(textareas[q].style.width) + 10 + 'px';
		container.style.height = textareas[q].style.height;
		var topRight = document.createElement('div');
		topRight.className = "tr";
		var topLeft = document.createElement('img');
		topLeft.className = "txt_corner";
		topLeft.src = imagesPath + "txtarea_tl.gif";
		var centerRight = document.createElement('div');
		centerRight.className = "cntr";
		var centerLeft = document.createElement('div');
		centerLeft.className = "cntr_l";
		//centerLeft.style.height = "100%";
		//if(!this.ie) {centerLeft.style.height = textareas[q].rows * 10 + 10 + 'px';}
		//else {centerLeft.style.height = textareas[q].rows * 10 + 12 + 'px';}
		//if(!this.ie) {centerLeft.align = 'right';}
		var bottomRight = document.createElement('div');
		bottomRight.className = "br";
		var bottomLeft = document.createElement('img');
		bottomLeft.className = "txt_corner";
		bottomLeft.src = imagesPath + "txtarea_bl.gif";
		//assemble divs
		container.appendChild(topRight);
		topRight.appendChild(topLeft);
		container.appendChild(centerRight);
		centerRight.appendChild(centerLeft);
		centerRight.appendChild(textareas[q]);
		container.appendChild(bottomRight);
		bottomRight.appendChild(bottomLeft);
		//insert structure
		where.insertBefore(container, where2);
		//create hovers
		textareas[q].onfocus = function() {
			this.previousSibling.className = "cntr_l_xon";
			this.parentNode.className = "cntr_xon";
			this.parentNode.previousSibling.className = "tr_xon";
			this.parentNode.previousSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_tl_xon.gif";
			this.parentNode.nextSibling.className = "br_xon";
			this.parentNode.nextSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_bl_xon.gif";
		}
		textareas[q].onblur = function() {
			this.previousSibling.className = "cntr_l";
			this.parentNode.className = "cntr";
			this.parentNode.previousSibling.className = "tr";
			this.parentNode.previousSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_tl.gif";
			this.parentNode.nextSibling.className = "br";
			this.parentNode.nextSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_bl.gif";
		}
	}	
	}
}
function buttonHovers() {
	for (var i = 0; i < buttons.length; i++) {
	// Programa SyTi - Universidad Nacional de General Sarmiento
	// Incorporado para verificar si el elemento ya se generó
  	if(controlElementos(buttons[i]) != false) {
  	buttons[i].className = "buttonSubmit";
		var buttonLeft = document.createElement('img');
		buttonLeft.src = imagesPath + "button_left.gif";
		buttonLeft.className = "buttonImg";
/*		buttonLeft.proceso = "form";
		buttonLeft.tipo = "left"; */
		buttons[i].parentNode.insertBefore(buttonLeft, buttons[i]);
		var buttonRight = document.createElement('img');
		buttonRight.src = imagesPath + "button_right.gif";
		buttonRight.className = "buttonImg";
/*		buttonRight.proceso = "form";
		buttonRight.tipo = "right"; */

		if(buttons[i].nextSibling) {
			buttons[i].parentNode.insertBefore(buttonRight, buttons[i].nextSibling);
			}
		else {
			buttons[i].parentNode.appendChild(buttonRight);
			}
		buttons[i].onmouseover = function() {
			this.className += "Hovered";
			this.previousSibling.src = imagesPath + "button_left_xon.gif";
			this.nextSibling.src = imagesPath + "button_right_xon.gif";
		}
		buttons[i].onmouseout = function() {
			this.className = this.className.replace(/Hovered/g, "");
			this.previousSibling.src = imagesPath + "button_left.gif";
			this.nextSibling.src = imagesPath + "button_right.gif";
			}
		}
	}
}
//Useful functions

/*function findPosX(obj){
        return obj.offsetLeft + (obj.offsetParent ? findPosX(obj.offsetParent) : obj.x ? obj.x : 0);
    }
    function findPosY(obj){
        return (obj.offsetParent ? obj.offsetTop + findPosY(obj.offsetParent) : obj.y ? obj.y : 0);
    }
*/


function getAbsoluteElementPosition(element) {
  if (typeof element == "string")
    element = document.getElementById(element)
    
  if (!element) return { top:0,left:0 };
  
  var y = 0;
  var x = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return {top:y,left:x};
}


function findPosY(obj) {
	var posTop = 0;
//	alert('Obj.Id: ' + obj.id + ' Obj.Name ' + obj.name + ' ' + obj.offsetParent + ' ' + obj.offsetTop);
    while (obj.offsetParent) {
		posTop += obj.offsetTop; obj = obj.offsetParent;
	}
	return posTop;
} 

function findPosX(obj) {
	var posLeft = 0;
	while (obj.offsetParent) {
		posLeft += obj.offsetLeft; obj = obj.offsetParent;
	}
	return posLeft;
}

/*
  function findPosY(obj)
  {
	var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
  
  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  } */
  
// Programa SyTi - Universidad Nacional de General Sarmiento
// Incorporado para regenerar los elementos de formulario
function reLoadForms(mensaje) {
	init();
}

// Programa SyTi - Universidad Nacional de General Sarmiento
// Incorporado para verificar si el elemento ya se generó 
function controlElementos(objeto) {
	if (elementos[objeto.id] != null) {  	
    if(objeto.cargado == "si") {
      return false; 
    }      
	}
  if (objeto.origen == "ajax") {
    elementos[objeto.id] = "ajax";
  }
  else {
    elementos[objeto.id] = "form";
  }
  objeto.cargado = "si"; 
	return true; 
}

Array.prototype.indexOf = function(s) {
	for (var x=0;x<this.length;x++) if(this[x] == s) return x;
	return false;
}

// Programa SyTi - Universidad Nacional de General Sarmiento
// Incorporado para inicializar las variables
function initArray(){
  inputs = new Array(); 
	labels = new Array(); 
	radios = new Array(); 
	radioLabels = new Array(); 
	checkboxes = new Array(); 
	checkboxLabels = new Array(); 
	texts = new Array(); 
	textareas = new Array(); 
	selects = new Array();
	hovers = new Array(); 
	buttons = new Array(); 
	inputs_r = new Array();	
}

window.onload = init;
