/*#############################################################
Name: Niceforms
Version: 0.9
Author: Lucian Slatineanu
Modifier: pindjur@gmail.com
URL: http://www.badboy.ro/

Feel free to use and modify but please provide credits.
#############################################################*/

//global variables that can be used by all the functions on this page.
var selects;
var inputs;

//this function runs when the page is loaded so put all your other onload stuff in here too.
function init() 
{
	replaceSelects();
}

function replaceSelects() 
{
	//get all the select fields on the page
    selects = document.getElementsByTagName('select');
	//cycle trough the select fields
    for(var i=0; i < selects.length; i++) 
    {
		if (selects[i].title == "G" || selects[i].title == "W")
		{
			var selectText = selects[i].options[0].text;
			//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"+i;
			button.href="javascript:showOptions("+i+");";
			if (selects[i].title == "W")
			{	
				selectArea.className = "selectArea";
			}
			if (selects[i].title == "G")
			{	
				selectArea.className = "selectAreaG";
			}
			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[i].style.display='none'; 
			
			//insert select div
			selects[i].parentNode.insertBefore(selectArea, selects[i]);
			
			//build & place options div
			var optionsDiv = document.createElement('div');
			optionsDiv.className = "optionsDivInvisible";
			optionsDiv.id = "optionsDiv"+i;
			optionsDiv.style.left = findPosX(selectArea) + 'px';
			optionsDiv.style.top = findPosY(selectArea) + 19 + 'px';
			
			//get select's options and add to options div
			for(var j=0; j < selects[i].options.length; j++) 
			{
					var optionHolder = document.createElement('p');
					var optionLink = document.createElement('a');
					var optionTxt = document.createTextNode(selects[i].options[j].text);
					optionLink.href = "javascript:showOptions("+i+"); selectMe('"+selects[i].id+"',"+j+","+i+");";
					optionLink.appendChild(optionTxt);
					optionHolder.appendChild(optionLink);
					optionsDiv.appendChild(optionHolder);
			}
			
			
			//insert options div
			document.getElementsByTagName("body")[0].appendChild(optionsDiv);
		}	
	}
}

function showOptions(g) {
		elem = document.getElementById("optionsDiv"+g);
		if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";}
		else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";}
}

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].value);
	textVar.replaceChild(newText, textVar.childNodes[0]);
}

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;
}

//this function replaces css class (fixes margin flaws) for input type checkbox in IE7+ 
function replaceCheckbox()
{
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(navigator.appVersion.split("MSIE")[1]);
	//get all the input fields on the page
    inputs = document.getElementsByTagName('input');
	//cycle trough the input fields
    for(var i=0; i < inputs.length; i++) 
    {
		if (inputs[i].type == "checkbox")
		{
			if ( browser=="Microsoft Internet Explorer" && (version>=7)) {inputs[i].className = "checkIE7";}
		}
	}
}
