/*#############################################################
Name: Niceforms
Version: 1.1
Author: Lucian Slatineanu
Modified: Diego Rin Martín

URL: http://www.badboy.ro/

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

//Misc util functions

function hasAttribute(elem, name) {

	return elem.getAttribute(name) != null;

}

function getElementPosition(elem) {

	var curleft = curtop = 0;
	if (elem.offsetParent) {
		do {
			curleft += elem.offsetLeft;
			curtop += elem.offsetTop;
		} while (elem = elem.offsetParent);

	return {x:curleft,y:curtop};

	}
}

//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 hovers = new Array();
var buttons = new Array();
var files = new Array();

var selectText = "please select";

var agt = navigator.userAgent.toLowerCase();
var isMac = new RegExp('(^|)'+'Apple'+'(|$)');
this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

//Validation stuff.

var rgNumeric = {
	defaultMessage: "This field must contain only numeric values.",
	regExp: /^[-]?\d+(\.\d+)?$/
};

var rgEmail = {
	defaultMessage: "This field must contain a valid e-mail address.",
	regExp: /^([a-zA-Z0-9_\.\-])+(\+[a-zA-Z0-9]+)*\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
};

var rgAlpha = {
	defaultMessage: "This field must contain only letters.",
	regExp: /^[a-zA-z\s]+$/
};

var rgAlphanum = {
	defaultMessage: "This field must contain onlye letters and numbers.",
	regExp: /^[a-zA-Z0-9]+$/
}

var errorContainerOffsetX = 10;
var errorContainerOffsetY = 3;

function createErrorContainer(elem) {

	var position = getElementPosition(elem);
	var w = elem.size * 10;

	errorContainer = document.createElement("div");
	errorContainer.style.position = "absolute";
	errorContainer.style.left = eval(position.x + w + errorContainerOffsetX) + "px";
	errorContainer.style.top = position.y + errorContainerOffsetY;
	errorContainer.style.visibility = "hidden";
	errorContainer.className = "errorcontainer";

	return errorContainer;

}

function hover(elem) {


}

function unhover(elem) {


}


function checkRequired(elem) {

		if(hasAttribute(elem,"required")) {

			if(elem.value == "" || elem.value == null) {
				elem.errorContainer.innerHTML = "This field is required.";
				elem.errorContainer.style.visibility = "visible";
				return false;
			} else {
				elem.errorContainer.style.visibility = "hidden";
				return true;
			}
		} else {
			return true;
		}

}

function validate(elem) {

		if(hasAttribute(elem,"validation")) {

			vt = elem.getAttribute("validation");
			if(eval(vt).regExp.test(elem.value)) {
				return true;
			} else {
				elem.errorContainer.innerHTML = eval(vt).defaultMessage;
				elem.errorContainer.style.visibility = "visible";
				return false;
			}

		} else {

			return true;

		}

}

//Theme Variables - edit these to match your theme
var selectRightSideWidth = 21;
var selectLeftSideWidth = 8;
var selectAreaHeight = 21;
var selectAreaOptionsOverlap = 2;

var fileInputHeight = 23;

var imagesPath = "images/niceforms/";

//Initialization function - if you have any other 'onload' functions, add them here

function init() {

	if(!document.getElementById) {
		return false;
	}

	preloadImages();
	getElements();
	separateElements();
	replaceRadios();
	replaceCheckboxes();
	replaceSelects();
	replaceFiles();

	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 re = new RegExp('(^| )'+'niceform'+'( |$)');

	for (var nf = 0; nf < document.getElementsByTagName('form').length; nf++) {
		if(re.test(niceforms[nf].className)) {
			for(var nfi = 0; nfi < document.forms[nf].getElementsByTagName('input').length; nfi++) {inputs.push(document.forms[nf].getElementsByTagName('input')[nfi]);}
			for(var nfl = 0; nfl < document.forms[nf].getElementsByTagName('label').length; nfl++) {labels.push(document.forms[nf].getElementsByTagName('label')[nfl]);}
			for(var nft = 0; nft < document.forms[nf].getElementsByTagName('textarea').length; nft++) {textareas.push(document.forms[nf].getElementsByTagName('textarea')[nft]);}
			for(var nfs = 0; nfs < document.forms[nf].getElementsByTagName('select').length; nfs++) {selects.push(document.forms[nf].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; var f = 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 == "file")) {
			files[f] = inputs[q];
			++f;
		}

		if((inputs[q].type == "text") || (inputs[q].type == "password")) {
			texts[t] = inputs[q];
			++t;
		}

		if((inputs[q].type == "submit") || (inputs[q].type == "button") || (inputs[q].type == "reset")) {
			buttons[b] = inputs[q];
			++b;
		}
	}

}

function replaceRadios() {

	for (var q = 0; q < radios.length; q++) {
		//move radios out of the way
		radios[q].className = "outtaHere";
		//create div
		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" + q;
		//insert div
		radios[q].parentNode.insertBefore(radioArea, radios[q]);
		//assign actions
		radioArea.onclick = new Function('rechangeRadios('+q+')');
		radioLabels[q].onclick = new Function('rechangeRadios('+q+')');
		if(!this.ie) {
			radios[q].onfocus = new Function('focusRadios('+q+')');
			radios[q].onblur = new Function('blurRadios('+q+')');
		}

		radios[q].onclick = radioEvent;

	}
	return true;

}

function focusRadios(who) {

	var what = document.getElementById('myRadio' + who);
	what.style.border = "1px dotted #333";
	what.style.margin = "0";
	return false;

}

function blurRadios(who) {

	var what = document.getElementById('myRadio' + who);
	what.style.border = "0";
	what.style.margin = "1px";
	return false;

}

function checkRadios(who) {

	var what = document.getElementById('myRadio' + who);
	others = document.getElementsByTagName('div');
	for(var q = 0; q < others.length; q++) {
		if((others[q].className == "radioAreaChecked")&&(others[q].nextSibling.name == radios[who].name)) {
			others[q].className = "radioArea";
		}
	}
	what.className = "radioAreaChecked";

}

function changeRadios(who) {

	if(radios[who].checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radios[who].name) {
				radios[q].checked = false;
				radioLabels[q].className = "";
			}
		}
		radios[who].checked = true;
		radioLabels[who].className = "chosen";
		checkRadios(who);
	}

}

function rechangeRadios(who) {

	if(!radios[who].checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radios[who].name) {
				radios[q].checked = false;
				radioLabels[q].className = "";
			}
		}
		radios[who].checked = true;
		radioLabels[who].className = "chosen";
		checkRadios(who);
	}

}

function radioEvent(e) {

	if (!e) var e = window.event;
	if(e.type == "click") {
		for (var q = 0; q < radios.length; q++) {
			if(this == radios[q]) {
				changeRadios(q);
				break;
			}
		}
	}

}

function replaceCheckboxes() {

	for (var q = 0; q < checkboxes.length; q++) {
		//move checkboxes out of the way
		checkboxes[q].className = "outtaHere";
		//create div
		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" + q;
		//insert div
		checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]);
		//asign actions
		checkboxArea.onclick = new Function('rechangeCheckboxes(' + q + ')');
		if(!isMac.test(navigator.vendor)) {
			checkboxLabels[q].onclick = new Function('changeCheckboxes(' + q + ')');
		} else {
			checkboxLabels[q].onclick = new Function('rechangeCheckboxes(' + q + ')');
		}

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

	return true;

}

function focusCheckboxes(who) {

	var what = document.getElementById('myCheckbox'+who);
	what.style.border = "1px dotted #333"; what.style.margin = "0";
	return false;

}

function blurCheckboxes(who) {

	var what = document.getElementById('myCheckbox'+who);
	what.style.border = "0"; what.style.margin = "1px";
	return false;

}

function checkCheckboxes(who, action) {

	var what = document.getElementById('myCheckbox'+who);
	if(action == true) {what.className = "checkboxAreaChecked";}
	if(action == false) {what.className = "checkboxArea";}

}

function changeCheckboxes(who) {

	if(checkboxLabels[who].className == "chosen") {
		checkboxes[who].checked = true;
		checkboxLabels[who].className = "";
		checkCheckboxes(who, false);
	}	else if(checkboxLabels[who].className == "") {
		checkboxes[who].checked = false;
		checkboxLabels[who].className = "chosen";
		checkCheckboxes(who, true);
	}

}

function rechangeCheckboxes(who) {

	var tester = false;
	if(checkboxLabels[who].className == "chosen") {
		tester = false;
		checkboxLabels[who].className = "";
	}
	else if(checkboxLabels[who].className == "") {
		tester = true;
		checkboxLabels[who].className = "chosen";
	}
	checkboxes[who].checked = tester;
	checkCheckboxes(who, 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(q);
			}
		}
	} //check if space is pressed

}

function replaceSelects() {

    for(var q = 0; q < selects.length; q++) {
		//create and build div structure
		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" + q;
		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(" + q + ")";
		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);
		//hide the select field
    selects[q].style.display='none';
		//insert select div
		selects[q].parentNode.insertBefore(selectArea, selects[q]);
		//build & place options div
		var optionsDiv = document.createElement('div');
		optionsDiv.style.width = selectWidth + 1 + 'px';
		optionsDiv.className = "optionsDivInvisible";
		optionsDiv.id = "optionsDiv" + q;
		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(" + q + "); selectMe('" + selects[q].id + "'," + w + "," + q + ");";
			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,q);
			}
		}
		//insert options div
		document.getElementsByTagName("body")[0].appendChild(optionsDiv);

/*		right.onmouseover = function() {

			right.className = "rightHovered";

		}

		right.onmouseout = function() {

			right.className = "right";

		}
*/
	}

}

function showOptions(g) {

		elem = document.getElementById("optionsDiv"+g);
		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,selectNo) {

	//feed selected option to the actual select field
	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 = "";
		}
	}
	//show selected option
	textVar = document.getElementById("mySelectText"+selectNo);
	var newText = document.createTextNode(selectField.options[linkNo].text);
	textVar.replaceChild(newText, textVar.childNodes[0]);

}
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++) {

		var position = getElementPosition(texts[q]);

		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";
		texts[q].errorContainer = createErrorContainer(texts[q]);
		txtRight.parentNode.insertBefore(texts[q].errorContainer,txtRight.nextSibling);

		//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() {

			if(checkRequired(this) && validate(this)) {
				this.className = "textinput";
				this.previousSibling.src = imagesPath + "input_left.gif";
				this.nextSibling.src = imagesPath + "input_right.gif";
			} else {


			}

		}
	}

}

function replaceFiles() {

	for(var q = 0; q < files.length; q++) {

		var parent = files[q].parentNode;

		files[q].className = "fileinput";
		files[q].style.width = files[q].size * 5.5 + 'px';
		files[q].readonly = true;

		var fakeFileContainer = document.createElement("div");
		fakeFileContainer.style.position = "relative";
		fakeFileContainer.style.top = "-" + fileInputHeight + "px";

		var fakeFileInput = document.createElement('input');
		fakeFileInput.type = "text";
		fakeFileInput.readonly = "true";
		fakeFileInput.style.width = eval(files[q].size * 5.1) + 'px';
		fakeFileInputLeft = document.createElement('img');
		fakeFileInputLeft.src = imagesPath + "input_left.gif";
		fakeFileInputLeft.className = "inputCorner";
		fakeFileInputRight = document.createElement('img');
		fakeFileInputRight.src = imagesPath + "input_right.gif";
		fakeFileInputRight.className = "inputCorner";
		fakeFileInput.className ="textinput";
		fakeFileContainer.appendChild(fakeFileInput);
		fakeFileInput.parentNode.insertBefore(fakeFileInputLeft, fakeFileInput);
		fakeFileInput.parentNode.insertBefore(fakeFileInputRight, fakeFileInput.nextSibling);

		var fakeFileButton = document.createElement("button");
		var fakeFileButtonText = document.createTextNode('Browse...');
		fakeFileButton.appendChild(fakeFileButtonText);
		fakeFileButton.className = "fileButton";
		fakeFileContainer.appendChild(fakeFileButton);
		fakeFileButtonLeft = document.createElement('img');
		fakeFileButtonLeft.src = imagesPath + "button_left.gif";
		fakeFileButtonLeft.className = "buttonImg";
		fakeFileButton.parentNode.insertBefore(fakeFileButtonLeft, fakeFileButton);
		fakeFileButtonRight = document.createElement('img');
		fakeFileButtonRight.src = imagesPath + "button_right.gif";
		fakeFileButtonRight.className = "buttonImg";

		if(fakeFileButton.nextSibling) {
			fakeFileButton.parentNode.insertBefore(fakeFileButtonRight, fakeFileButton.nextSibling);
		} else {
			fakeFileButton.parentNode.appendChild(fakeFileButtonRight);
		}

		fakeFileButton.onmouseover = function() {
			this.className += "Hovered";
			this.previousSibling.src = imagesPath + "button_left_xon.gif";
			this.nextSibling.src = imagesPath + "button_right_xon.gif";
		}

		fakeFileButton.onmouseout = function() {
			this.className = this.className.replace(/Hovered/g, "");
			this.previousSibling.src = imagesPath + "button_left.gif";
			this.nextSibling.src = imagesPath + "button_right.gif";
		}

		fakeFileButton.onclick = function() {

			return false;

		}

		files[q].relatedElement = fakeFileInput;

		files[q].onfocus = function() {

			this.relatedElement.className = "textinputHovered";
			this.relatedElement.previousSibling.src = imagesPath + "input_left_xon.gif";
			this.relatedElement.nextSibling.src = imagesPath + "input_right_xon.gif";

		}

		files[q].onblur = function() {

			this.relatedElement.className = "textinput";
			this.relatedElement.previousSibling.src = imagesPath + "input_left.gif";
			this.relatedElement.nextSibling.src = imagesPath + "input_right.gif";

		}

		files[q].onchange = files[q].onmouseout = function () {

			this.relatedElement.value = this.value;

		}

		parent.appendChild(fakeFileContainer);

	}

}

function replaceTextareas() {

	for(var q = 0; q < textareas.length; q++) {
		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 = textareas[q].cols * 10 + 20 + 'px';
		container.style.height = textareas[q].rows * 10 + 20 + 'px';
		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";
		if(!this.ie) {centerLeft.style.height = textareas[q].rows * 10 + 10 + 'px';}
		else {centerLeft.style.height = textareas[q].rows * 10 + 12 + 'px';}
		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++) {
		buttons[i].className = "buttonSubmit";
		var buttonLeft = document.createElement('img');
		buttonLeft.src = imagesPath + "button_left.gif";
		buttonLeft.className = "buttonImg";
		buttons[i].parentNode.insertBefore(buttonLeft, buttons[i]);
		var buttonRight = document.createElement('img');
		buttonRight.src = imagesPath + "button_right.gif";
		buttonRight.className = "buttonImg";

		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 findPosY(obj) {

	var posTop = 0;
	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;

}

window.onload = init;
