var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};
//BrowserDetect.init();


/*#############################################################
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 hovers = new Array(); 
var buttons = new Array(); 

var selectText = "please select"; 
var agt = navigator.userAgent.toLowerCase(); 
this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); 
var isMac = new RegExp('(^|)'+'Apple'+'(|$)');

//Theme Variables - edit these to match your theme
var selectRightSideWidth = 21;
var selectLeftSideWidth = 8;
var selectAreaHeight = 100;
var selectAreaOptionsOverlap = 2;
var imagesPath = "images/";

//Initialization function - if you have any other 'onload' functions, add them here

function resetVariables(){
	/** Remove all select areas, to avoid 'cache'-ing *********************/
	var optionsV = $$('.optionsDivInvisible');
	for (i = 0; i < optionsV.length; i++)
		optionsV[i].remove();
		
	var optionsI = $$('.optionsDivVisible');
	for (i = 0; i < optionsI.length; i++)
		optionsI[i].remove();
	
	var optionsS = $$('.selectArea');
	for (i = 0; i < optionsS.length; i++)
		optionsS[i].remove();
		
	var tas = $$('.txtarea');
	for (i = 0; i < tas.length; i++){
		tas[i].remove();
	}
	
	var ics = $$('.inputCorner');
	for (i = 0; i < ics.length; i++){
		ics[i].remove();
	}
	
	var btns = $$('.buttonImg');
	for (i = 0; i < btns.length; i++){
		btns[i].remove();
	}
	
	/**********************************************************************/
	
	inputs = null; 
	labels = null; 
	radios = null; 
	radioLabels = null; 
	checkboxes = null; 
	checkboxLabels = null; 
	texts = null; 
	textareas = null; 
	selects = null; 
	hovers = null; 
	buttons = null; 
	
	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(); 
}

function initNiceForms() {
	if(!document.getElementById) {return false;}
	resetVariables();

	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 re = new RegExp('(^| )'+'niceform'+'( |$)');
	for (var nf = 0; nf < document.forms.length; nf++) {
		if (Element.hasClassName(document.forms[nf], 'inline-form')) continue;
		if (Element.hasClassName(document.forms[nf], 'group-form-for-select')) continue;
		
		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;
	for (var q = 0; q < inputs.length; q++) {
		if (inputs[q].type == 'hidden') continue;
		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")) {
			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) {
		if (radios[who].id == 'importtype_1') $('csv-element').show();
		else if (radios[who].id == 'importtype_2' || radios[who].id == 'importtype_3') $('csv-element').hide();
		
		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+')');
		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++) {
		if (selects[q].id == 'recipients') continue;
		if (selects[q].id == 'contacts') continue;
		if (selects[q].id == 'local_timezone') continue;
		
		//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, ""));
		// IE bug fix on mouse over
		var selectWidth;
		(selects[q].className != '') ? selectWidth = parseInt(selects[q].className.replace(/width_/g, "")) : selectWidth = 150;

		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 - 79) + 'px';
		//get select's options and add to options div
		for(var w = 0; w < selects[q].options.length; w++) {
			var optionValue = selects[q].options[w].value;
			var optionHolder = document.createElement('p');
			var optionLink = document.createElement('a');
			var optionTxt = document.createTextNode(selects[q].options[w].text);
			if(selects[q].id == 'predefinedsms'){
				if(w != 0){
					optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");  populateMessage(this, '" + selects[q].options[w].text + "'); smsMsgChange();";/*convertLetters();*/
				}
				else {
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");  unpopulateMessage(this); smsMsgChange();";	/*convertLetters();*/
				}
			}
			else if (selects[q].id == 'predefinedsmsselecttext'){
				if(w != 0){
					optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");  populateMessageText(this, '" + selects[q].options[w].text + "'); ShowEditDelete(); checkCharsLeft($('predefinedsmstext'));";/*convertLetters();*/
				}
				else {
					optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");  unpopulateMessageText(this); HideEditDelete(); checkCharsLeft($('predefinedsmstext'));";	/*convertLetters();*/
				}				
			}
			else if (selects[q].id == 'contactGroups'){
					optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+"); reloadContactsOnGroupChange('" + optionValue + "');";
			}
			else if(selects[q].id == 'groupId'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");"
			}	
			else if (selects[q].id == 'local_timezone_country'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+"); popListMenu(document.formDialCode.local_timezone, arrTimeZone, document.formDialCode.local_timezone_country[" + w + "].value, '');";
			}
			else if (selects[q].id == 'groups'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");";
			}
			else if (selects[q].id == 'purchaseSubscription'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");";
			}
			else if (selects[q].id == 'purchaseCredits'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+");";
			}
			else if (selects[q].id == 'whenToSend'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+"); enableRecurring('" + selects[q].options[w].value + "');";
			}
			else if (selects[q].id == 'recurring'){
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+q+"); checkRecurringValue('" + selects[q].options[w].value + "');";
			}
			else {
				optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+"); hideMyContainer("+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);
	}
}
var iFrame = null;
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;
	*/
	elem = document.getElementById("optionsDiv-"+g); //Added
	
	//var visibleOptions = document.getElementsByClassName('optionsDivVisible');
	
	if(elem.className=="optionsDivInvisible") {
		hideOptionsOnEverything();
		elem.className = "optionsDivVisible";
		
		if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6'){	
			if (g == 6 && BrowserDetect.activeTab == "sms"){
				if (document.getElementById('contactsDiv').style.display == 'block')
					document.getElementById('contactsDiv').style.display = 'none';
			}
			if (g == 1 && BrowserDetect.activeTab == "profile"){
				if (document.getElementById('zones').style.display == 'block')
					document.getElementById('zones').style.display = 'none';
			}

		}	}
	else if(elem.className=="optionsDivVisible") {
		elem.className = "optionsDivInvisible";
	}
	
	//if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";}
	//else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";}
	
	thething = document.getElementById("sarea"+g); //Added
	elem.style.left = findPosX(thething) + 'px'; //Added
	elem.style.top = (findPosY(thething) + selectAreaHeight - selectAreaOptionsOverlap - 79) + 'px'; //Added
	elem.onmouseout = hideOptions;	
}

function hideOptionsOnEverything() { //hiding the options on mouseout
	elems = document.getElementsByClassName("optionsDivVisible");
	for (i = 0; i < elems.length; i++){
		elems[i].className = "optionsDivInvisible";
	}
	
	//if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6'){	
		if (document.getElementById('contactsDiv') && document.getElementById('contactsDiv').style.display == 'none'){
			document.getElementById('contactsDiv').style.display = 'block';
		}
		
		if (document.getElementById('zones') && document.getElementById('zones').style.display == 'none'){
			document.getElementById('zones').style.display = 'block';
		}
	//}
}

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);
	//value = selectField.value;
	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);
	if (textVar)
		textVar.replaceChild(newText, textVar.childNodes[0]);
	
	//alert('optionsDiv-' + selectNo);
	//if (value != selectField.value) 
	//	eval(selectField.getAttribute("onchange").replace(/this.value/g, selectField.value));
}
function hideMyContainer(selectNo){
	$('optionsDiv-' + selectNo).className = "optionsDivInvisible";
}
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++) {
		if (texts[q].id == 'charsUsed') continue;
		if (texts[q].id == 'numberOfSms') continue;
		if (texts[q].id == 'preNumberOfSms') continue;
		if (texts[q].id == 'preCharsUsed') continue;
		
		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++) {
		if (textareas[q].id == 'smsMsg') continue;
		
		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';
		textareas[q].style.zindex = '2';
		//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);
		
		textareas[q].onfocus = function() {
			$(this.id).focus();
			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++) {
		if (buttons[i].id == 'sendsms'){
			buttons[i].className = "bigButtonSubmit";
			var buttonLeft = document.createElement('img');
			buttonLeft.src = imagesPath + "big-button_left.gif";
			buttonLeft.className = "bigButtonImg";
			buttons[i].parentNode.insertBefore(buttonLeft, buttons[i]);
			var buttonRight = document.createElement('img');
			buttonRight.src = imagesPath + "big-button_right.gif";
			buttonRight.className = "bigButtonImg";
			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 + "big-button_left_xon.gif";
				this.nextSibling.src = imagesPath + "big-button_right_xon.gif";
			}
			buttons[i].onmouseout = function() {
				this.className = this.className.replace(/Hovered/g, "");
				this.previousSibling.src = imagesPath + "big-button_left.gif";
				this.nextSibling.src = imagesPath + "big-button_right.gif";
			}
		}
		else{		
			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;
}

function isAnyOptionVisible()
{
	var g=0;
	
	while(elem = document.getElementById("optionsDiv"+g))
	{
		if(elem.className=="optionsDivVisible")
			return g;
		g++;
	}
	
	return -1;
}

window.onresize = function(){
	var visibleOptions = document.getElementsByClassName('optionsDivVisible');
	for (var i = 0; i < visibleOptions.length; i++){
		var g = visibleOptions[i].id.split('-')[1];
		
		elem = document.getElementById("optionsDiv-"+g); //Added
		thething = document.getElementById("sarea"+g); //Added
		elem.style.left = findPosX(thething) + 'px'; //Added
		elem.style.top = (findPosY(thething) + selectAreaHeight - selectAreaOptionsOverlap - 79) + 'px'; //Added
	}
}

document.onclick = hideOptionsOnEverything;
//window.onload = init;
