var myWin
var myWinExist = false
var windowOptions = "resizable,scrollbars,width=500,height=600"
var windowOptions2 = "resizable,width=500,height=450"

function clearPulldown(formNm, fieldNm) {

  if (this.document) {

    var tbox = this.document.forms[formNm].elements[fieldNm];
      
    for (var i = 0; i < tbox.options.length; i++) {
      
      tbox.options[i].selected = false;
			
    }

  }

}

function checkAll(field)
{
  for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

function uncheckAll(field)
{
  for (i = 0; i < field.length; i++)
    field[i].checked = false ;
}

function openChild(file,window) {

    childWindow=open(file,window,'alwaysRaised=yes,resizable=yes,scrollbars=yes,width=600,height=600');

    if (childWindow.opener == null) childWindow.opener = self;

    childWindow.focus();
    
}


function open_win (str) {
    if (!myWinExist || myWin.closed) {
	myWinExist = true
	myWin = window.open("", "infowin", windowOptions)
    }else {
	myWin.document.close()    
    }
}

function open_win2 (str) {
    if (!myWinExist || myWin.closed) {
	myWinExist = true
	myWin = window.open("", "infowin2", windowOptions2)
    }else {
	myWin.document.close()    
    }
}

function writeInfo (txt) {
    document.infoform.info.value=(txt);
}

function jump (element) {
    var listItem = element.options[element.selectedIndex].text;
    var pattern = /\#/;
    var url = document.location.href.split(pattern);
    document.location.href = url[0] + "#" + listItem;
}

function switchAddress(list ){	
    var reg = new RegExp(' -- ');
    var selection = list.options[list.selectedIndex].value;

    if(reg.test(selection))
        location.href = "";
    else     
        location.href = selection;
}

function popup(url) {

   options = "width=300,height=300,status=0,resizable=1,scrollbars=1";
   window.open(url, "infowin2", options);
}


function move(fbox, tbox) {
		
    for (var i = 0; i < fbox.options.length; i++) {
			
	if (fbox.options[i].selected && fbox.options[i].value != "") {
				
	    var no = new Option();

	    no.value = fbox.options[i].value;
			 
	    no.text = fbox.options[i].text;
				
	    // no.selected = fbox.options[i].selected;

	    tbox.options[tbox.options.length] = no;
				
	    fbox.options[i].value = "";
	    
	    fbox.options[i].text = "";
				
	}
    }
		
    bumpUp(fbox);
		
}

function moveAll(fbox,tbox) {
		
    for (var i = 0; i < fbox.options.length; i++) {
			
	var no = new Option();

	no.value = fbox.options[i].value;
	  
	no.text = fbox.options[i].text;
			
	// no.selected = fbox.options[i].selected;

	tbox.options[tbox.options.length] = no;
			
	fbox.options[i].value = "";
			
	fbox.options[i].text = "";
			
    }
    bumpUp(fbox);
		
    tbox.focus();
		
}

function bumpUp(box) {
		
    var ln;

    for (var i = 0; i < box.options.length; i++) {
		      
	if (box.options[i].value == "") {
				
	    for (var j = i; j < box.options.length-1; j++) {
					
		box.options[j].value = box.options[j+1].value;
					
		box.options[j].text = box.options[j+1].text;
					
	    }
	    ln = i;
				
	    break;
				
	}
		     
    }

    if (ln < box.options.length) {
			
	box.options.length -= 1;
			
	bumpUp(box);
			
    }
	       
}

function sortAsc(box) {
		
    return sortOptionsBy(box,
			function (a, b) {
				
			     return a.text.toLowerCase() > b.text.toLowerCase();
			 }
    );

}


function sortDesc(box) {
		
    return sortOptionsBy(box,
			function (a, b) {
				
			    return a.text.toLowerCase() < b.text.toLowerCase();
				
			}
			
    );
		
}

	
function sortLeast(box) {
		
    return sortOptionsBy(box,
			function (a, b) {
				
			    var a_freq = parseInt(a.text.substr(a.text.indexOf('(') + 1));
			    var b_freq = parseInt(b.text.substr(b.text.indexOf('(') + 1));

			    return a_freq > b_freq;
			 }
    );
		
}

function sortMost(box) {
		
    return sortOptionsBy(box,
			function (a, b) {
				
			    var a_freq = parseInt(a.text.substr(a.text.indexOf('(') + 1));
			    var b_freq = parseInt(b.text.substr(b.text.indexOf('(') + 1));

			    return a_freq < b_freq;
		        }
    );
		
}

function sortOptionsBy(box, compare) {
		
    var temp_opts = new Array();
 
    for (var i = 0; i < box.options.length; i++) {
			
	temp_opts[i] = new Option(box.options[i].text, box.options[i].value);
			
    }

    for (var x = 0; x < temp_opts.length-1; x++) {
			
	for (var y = (x+1); y < temp_opts.length; y++) {
				
	    if (compare(temp_opts[x], temp_opts[y])) {
					
		var temptext = temp_opts[x].text;
					
		var tempval = temp_opts[x].value;

		temp_opts[x].text = temp_opts[y].text;
					
		temp_opts[x].value = temp_opts[y].value;
					
		temp_opts[y].text = temptext;
					
		temp_opts[y].value = tempval;
					
	    }
				
	}
			
    }

    for (var i = 0; i < box.options.length; i++) {
			
	box.options[i].text = temp_opts[i].text;
			
	box.options[i].value = temp_opts[i].value;
		      
    }
		
}

function selectAll(box) {
		
    for (var i = 0; i < box.options.length; i++) {
			
	box.options[i].selected = true;
			
    }
		
}

function textCounter(field,cntfield,maxlimit) {

    if (field.value.length > maxlimit) // if too long...trim it!

	field.value = field.value.substring(0, maxlimit); 

    else     // otherwise, update 'characters left' counter

	cntfield.value = maxlimit - field.value.length;

}
