
// Move options from one select list to another
function moveOption ( objSourceElement, objTargetElement ) {
	var aryTempSourceOptions = new Array();
	var x = 0;
	
	//looping through source element to find selected options
	for (var i = 0; i < objSourceElement.length; i++) {
		if (objSourceElement.options[i].selected) {
			//need to move this option to target element
			var intTargetLen = objTargetElement.length++;
			objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;
			objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;
		}
		else {
			//storing options that stay to recreate select element
			var objTempValues = new Object();
			objTempValues.text = objSourceElement.options[i].text;
			objTempValues.value = objSourceElement.options[i].value;
			aryTempSourceOptions[x] = objTempValues;
			x++;
		}
	}
	
	//resetting length of source
	objSourceElement.length = aryTempSourceOptions.length;
	//looping through temp array to recreate source select element
	for (var i = 0; i < aryTempSourceOptions.length; i++) {
		objSourceElement.options[i].text = aryTempSourceOptions[i].text;
		objSourceElement.options[i].value = aryTempSourceOptions[i].value;
		objSourceElement.options[i].selected = false;
	}
}

function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}


// Usage: addFormating("U")
// Options:
// "U" - underline
// "B" - bold
// "I" - italic
function addFormating(obj,tag) {
	var selectedText = "";
	tag = "@"+tag;
	if (obj.setSelectionRange) {
		selectedText = obj.value.substring(obj.selectionStart,obj.selectionEnd)
		obj.value = obj.value.substring(0,obj.selectionStart) + tag + selectedText + tag + obj.value.substring(obj.selectionEnd,obj.value.length)
	} else {
		selectedText = obj.selection.createRange().text; 
		if (selectedText != "") {
			var newText = tag + selectedText + tag;
			obj.selection.createRange().text = newText;
		} 
	}
}

function charCounter(txtBox,counter,texto,chars) {
  var txtBoxObj = $(txtBox);
  var counterObj = $(counter);
	if ( txtBoxObj && counterObj ) {
		var len = chars - txtBoxObj.value.length;
		if(len <= 0) {
			len=0;
			texto='<span class="disable"> '+texto+' </span>';
			txtBoxObj.value=txtBoxObj.value.substr(0,chars);
		}
		counterObj.innerHTML = texto.replace("{CHAR}",len);
	}
}

// Son of suckerfish IE6 fix
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

if (window.attachEvent) window.attachEvent("onload", sfHover);