/*

Javascript file to deal with moving items between boxes.
Moving Locations etc from Drop down combo to Listbox.

*/

function addMultiOptions(selectObjectSrc, selectObjectDest) {
	for(i=0; i<selectObjectSrc.options.length; i++) {
		// For each option in the source list
		if(selectObjectSrc.options[i].selected) {
			// If the option is selected
			//alert(selectObjectSrc.options[i].value + " is selected.");
			if(!selectContainsElement(selectObjectDest, selectObjectSrc.options[i].value)) {
				// If the option is not already in the destination
				var optionRank = selectObjectDest.options.length
				selectObjectDest.options[optionRank]=new Option(selectObjectSrc.options[i].value);
			}
		}
	}
}

function addOption(selectObject,optionText) {
    var optionObject = new Option(optionText)
    var optionRank = selectObject.options.length
    selectObject.options[optionRank]=optionObject
}

function deleteOption(selectObject,optionRank) {
    if (selectObject.options.length!=0) { selectObject.options[optionRank]=null }
}

function addLocation(src, dest)
{
	if(src.value!="")
	{
		addOption(dest, src.value)
	}
	else
	{
		alert("Fill form and click Add")
	}
}

function removeLocation(src)
{
if (src.selectedIndex!=-1) {
        deleteOption(src,src.selectedIndex)
    } else {
        alert("Select an option and click Delete")
    }
}

function addItem() {
    var formObject = document.addProfile
    if (formObject.optionText.value!="") {
        addOption(formObject.listSkills,formObject.optionText.value,formObject.optionText.value)
		formObject.optionText.value = ""
    } else {
        alert("Fill form and click Add")
    }
}

function deleteItem() {
    var formObject = document.addProfile
    if (formObject.listSkills.selectedIndex!=-1) {
        deleteOption(formObject.listSkills,formObject.listSkills.selectedIndex)
    } else {
        alert("Select an option and click Delete")
    }
}

function addJobLocations(formObject) {
	addMultiOptions(formObject.optionText, formObject.listJobLocations)
}

function deleteSelectedElementsFromSelect(selectElement) {
	var arrayToDelete = [];
	for(i=0;i<selectElement.options.length;i++) {
		if(selectElement.options[i].selected) {
			arrayToDelete.push(i);
		}
	}
	
	for(j=arrayToDelete.length-1;j>=0;j--) {
		deleteOption(selectElement, arrayToDelete[j]);
	}
}

function addCompanyLocations() {
	addMultiOptions($('locationList'), $('locations'));
}

function removeCompanyLocations() {
	deleteSelectedElementsFromSelect($('locations'));
}

function deleteJobLocations(formObject) {
	deleteSelectedElementsFromSelect(formObject.listJobLocations)
}

function addSectors(formObject)
{
	addMultiOptions(formObject.optionSector, formObject.listSectors)
}

function selectContainsElement(selectElem, elementString) {
	for(j=0; j<selectElem.options.length;j++) {
		if(selectElem.options[j].value == elementString) {
			return true;
		}
	}
	
	return false;
}

function deleteSectors(formObject) {
    deleteSelectedElementsFromSelect(formObject.listSectors);
}

function removeElement(id)
{
	var Node = document.getElementById(id);
	Node.parentNode.removeChild(Node);
}

// Selects all items in a listbox for POSTing with an HTML FORM
function SelectAll(ListBox)
{
  for(i=0; i < ListBox.options.length; i++)
  {
    if(ListBox.options[i].selected == false)
    {
      ListBox.options[i].selected = true;
    }
  }
}

function salaryRateSelected() {
	$('pay_method').value = 'salary';
}

function hourlyRateSelected() {
	$('pay_method').value = 'hourly';
}
