/*#############################################################
Name: Niceforms
Version: 0.9
Author: Lucian Slatineanu
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 hovers = new Array();
var selectText = "--";

//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++) {
				
		//create and build div structure
		
		if(selects[i].id!="nostylesel" && selects[i].id!="" && false){
       		for(var k = 0; k < selects[i].options.length; k++) {
              		if(k == selects[i].selectedIndex) {
              		     var text = document.createTextNode(selects[i].options[k].text);
              		     break;
              		}else{
              		     var text = document.createTextNode(selectText);
              		}
              	}
       		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');
       		center.id = "mySelectText"+i;
       		button.href="javascript:showOptions("+i+")";
       		if(selects[i].name== 'cityFilter'){
       		     selectArea.className = "cityselectArea";
       		}else{
       		     selectArea.className = "selectArea";
       		}

       		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)-3) + 'px';
       		optionsDiv.style.top = findPosY(selectArea) + 23 + '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 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 = "";
		}
	}
	
	window.location.href='/search/?q=' + document.getElementById('head_input').value + '&where=' + selectField.options[linkNo].value;
	
	//show selected option
	textVar = document.getElementById("mySelectText"+selectNo);
	var newText = document.createTextNode(selectField.options[linkNo].text);
	textVar.replaceChild(newText, textVar.childNodes[0]);
}
function showOptions(g) {
		elem = document.getElementById("optionsDiv"+g);
		if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";}
		else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";}
}
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;