function sortlist(list) 
{
var lb = document.getElementById(list);
arrTexts = new Array();
var pipeposition;
var textlength;


for(i=0; i<lb.length; i++)  
    {
      arrTexts[i] = lb.options[i].value + '|' + lb.options[i].text;
    }

arrTexts.sort();

for(i=0; i<lb.length; i++)  
    {
      //alert(arrTexts[i].indexOf('|'));
      pipeposition = arrTexts[i].indexOf('|');
      textlength = arrTexts[i].length;
      lb.options[i].text = arrTexts[i].substr(pipeposition+1, textlength-pipeposition);
      lb.options[i].value = arrTexts[i].substr(0,pipeposition-1);
    }
}


function changeLists(available, selected, AddButtonID, RemoveButtonID, AddAllButtonID, RemoveAllButtonID)
{
var selectedList;
var availableList;

availableList = document.getElementById(available);
selectedList = document.getElementById(selected);

var selIndex = selectedList.selectedIndex;
    if(selIndex < 0)
    {
        changeImageSRC(AddButtonID, '/Portals/12/ArcheImages/AddtoListBlue.gif');
        changeclass(AddAllButtonID, 'DegreeSearchButtonBlue');
    }
    else
    {
        changeImageSRC(AddButtonID, '/Portals/12/ArcheImages/AddtoListGray.gif');
        changeclass(AddAllButtonID, 'DegreeSearchButtonGray');
    }
    
var avaIndex = availableList.selectedIndex;
    if(avaIndex < 0)
    {
        changeImageSRC(RemoveButtonID, '/Portals/12/ArcheImages/RemoveFromListBlue.gif');
        changeclass(RemoveAllButtonID, 'DegreeSearchButtonBlue');
    }
    else
    {
        changeImageSRC(RemoveButtonID, '/Portals/12/ArcheImages/RemoveFromListGray.gif');
        changeclass(RemoveAllButtonID, 'DegreeSearchButtonGray');
    }
}

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  
  theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}

function moveOptions(theSelFrom, theSelTo, AddButtonID, RemoveButtonID, AddAllButtonID, RemoveAllButtonID)
{
  
    var selectedFromList;
    var selectedToList;

    selectedFromList = document.getElementById(theSelFrom);
    selectedToList = document.getElementById(theSelTo);
  
  var selLength = selectedFromList.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--)
  {
    if(selectedFromList.options[i].selected)
    {
      selectedText[selectedCount] = selectedFromList.options[i].text;
      selectedValues[selectedCount] = selectedFromList.options[i].value;
      deleteOption(selectedFromList, i);
      selectedCount++;
    }
  }
  
  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(selectedToList, selectedText[i], selectedValues[i]);
  }
    //Deselect All and Set Buttons back to Gray and sort both lists
    selectNone(selectedFromList,selectedToList);
    changeImageSRC(AddButtonID, '/Portals/12/ArcheImages/AddtoListGray.gif');
    changeclass(AddAllButtonID, 'DegreeSearchButtonGray');
    changeImageSRC(RemoveButtonID, '/Portals/12/ArcheImages/RemoveFromListGray.gif');
    changeclass(RemoveAllButtonID, 'DegreeSearchButtonGray');
    sortlist(theSelFrom);
    sortlist(theSelTo);


}

function delAll(available, selected, AddButtonID, RemoveButtonID, AddAllButtonID, RemoveAllButtonID)
{
var selectedList;
var availableList;

availableList = document.getElementById(available);
selectedList = document.getElementById(selected);

var selLength = selectedList.length;

for (var i=0; i<selLength; i++) 
{
	selectedList.options[i].selected = true;
}

moveOptions(selected,available,AddButtonID,RemoveButtonID, AddAllButtonID, RemoveAllButtonID);




}
function addAll(available, selected, AddButtonID, RemoveButtonID, AddAllButtonID, RemoveAllButtonID)
{
var selectedList;
var availableList;

availableList = document.getElementById(available);
selectedList = document.getElementById(selected);

var avalLength = availableList.length;

for (var i=0; i<avalLength; i++) 
{
	availableList.options[i].selected = true;
}

moveOptions(available,selected,AddButtonID,RemoveButtonID, AddAllButtonID, RemoveAllButtonID);
    
}
function selectNone(list1,list2)
{
    list1.selectedIndex = -1;
    list2.selectedIndex = -1;
    addIndex = -1;
    selIndex = -1;

}

function changeclass(id, classname)
{
    changeClass(id, classname);
}
    
function changeClass(Elem, myClass)
{
	var elem;
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	elem.className = myClass;
}

function changeImageSRC(Elem, ImageSRC)
{
	var elem;
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	elem.src = ImageSRC;
}

function showSelected(selected1, selected2, selected3)
{
    var optionList1 = document.getElementById(selected1).options;
    var data1 = '';
    var len1 = optionList1.length;
    for(i=0; i<len1; i++){
        if(i>0)
            data1 += '|';
        data1 += optionList1.item(i).text;
    }


    
    var optionList2 = document.getElementById(selected2).options;
    var data2 = '';
    var len2 = optionList2.length;
    for(i=0; i<len2; i++){
        if(i>0)
            data2 += '|';
        data2 += optionList2.item(i).text;
    }

    
    var optionList3 = document.getElementById(selected3).options;
    var data3 = '';
    var len3 = optionList3.length;
    for(i=0; i<len3; i++){
        if(i>0)
            data3 += '|';
        data3 += optionList3.item(i).text;
    }

    var errormsg = '';
    if (data1 == '')
    {
        errormsg = '  Please select at least one institution.';
    }
    
    if (data2 == '')
    {
        errormsg = errormsg + '  Please select at least one program level.';
    }
    
    if (data3 == '')
    {
        errormsg = errormsg + '  Please select at least one program area.';
    }
    
    if (errormsg == '')
    {
    
    document.getElementById('Form').institutions.value = data1;
    document.getElementById('Form').degreelevels.value = data2;
    document.getElementById('Form').cipfamilies.value = data3;
    

    
    document.getElementById('Form').action='DegreeProgramSearch/DegreeSearchResultsComplex/tabid/462/Default.aspx';
    document.getElementById('Form').submit();
    }
    else
    {
        alert(errormsg);
    }
}


function keywordsearch()
{
    var text=document.getElementById('KeywordSearch').value;
    
    if (text != '')
    {
        document.getElementById('Form').action='DegreeProgramSearch/DegreeSearchResultsComplex/tabid/463/Default.aspx';
        document.getElementById('Form').submit();
    }
    else
    {
        alert('Please enter search terms.');
    }
}