

/**********************************************************************************/
function Subject( strID, strName ) {
	this.name = strName;
	this.id = strID;
}
/**********************************************************************************/
function updateSubjects() {
	if( document.frmSearch.selUnits.selectedIndex == 0 ) {

		var curCount = 1;
		var sortedSubjects = sortSubject();
		document.frmSearch.selSubjects.length = sortedSubjects.length + 1;
		document.frmSearch.selSubjects[0].text = "All Subjects";
		document.frmSearch.selSubjects[0].value = "All";
		for( i=0; i < sortedSubjects.length; i++) {
				document.frmSearch.selSubjects[i+1].text = sortedSubjects[i].name;
				document.frmSearch.selSubjects[i+1].value = sortedSubjects[i].id;

		}
		document.frmSearch.selSubjects.selected = 0;
		
	} else {
		var curIndex = document.frmSearch.selUnits.selectedIndex-1;
		document.frmSearch.selSubjects.length = selMenu[curIndex].length;
		document.frmSearch.selSubjects[0].text = "All Subjects";
		document.frmSearch.selSubjects[0].value = "All";
		for( i=1; i<selMenu[curIndex].length; i++ ) {
			document.frmSearch.selSubjects[i].text = selMenu[curIndex][i].name;
			document.frmSearch.selSubjects[i].value = selMenu[curIndex][i].id;
		}
		document.frmSearch.selSubjects.selected = 0;
		
	}

}//updateSubject
/**********************************************************************************/
function loadUnits() {
	var selObj = document.frmSearch.selUnits;
	selObj.length = selMenu.length + 1;
	selObj[0].text = "All Units";
	selObj[0].value = "All";
	for( i=1; i < selObj.length; i++ ) {
		selObj[i].text = selMenu[i-1][0].name;
		selObj[i].value = selMenu[i-1][0].id;
	}
	selObj.selected = 0; 
}
/**********************************************************************************/
function sortSubject() {
	var newArray = new Array();
	for(i=0; i < selMenu.length; i++ ) {
		for( j=1; j < selMenu[i].length; j++ ) {
			newArray[newArray.length] = selMenu[i][j];
		}//for
	}//for
	var tSubject;
	var tPos;
	for(x=0; x < newArray.length-1; x++) {
		tPos = x;
		for(y=x+1; y < newArray.length; y++ ) {
			if( newArray[tPos].name > newArray[y].name ) {
				tPos = y;
			}
		}//for		
		if( tPos > x ) {
			tSubject = newArray[x];
			newArray[x] = newArray[tPos];
			newArray[tPos] = tSubject;
		}//if
	}//for

	return newArray;		
	

}//sortSubject
/**********************************************************************************/

var searchtimerid;
var delay = 50;
var formfocused = false;
var searchpanelheight = 115;
var animateid;
var animatedelay = 20;
var holddelay = 2000;
var inSearchPanel = false;

/**********************************************************************************/
function hideSearch()
{
    var obj = document.getElementById("SearchPanelContent");
    obj.style.visibility = "hidden";
    obj.style.display = "none";
    obj.style.height = "0px";
    
    obj = document.getElementById("SearchArrow");
    obj.src = "images/layout/search_arrow_up.gif";
}//HideSearch
/**********************************************************************************/
function showSearch()
{
    var obj = document.getElementById("SearchPanelContent");
    obj.style.height = searchpanelheight + "px";
    obj.style.display = "block";
    obj.style.visibility = "visible";
    
    obj = document.getElementById("SearchArrow");
    obj.src = "images/layout/search_arrow_down.gif";
}//showSearch
/**********************************************************************************/
function animateOpen()
{
    
    var obj = document.getElementById("SearchPanelContent");
    var height = parseInt(obj.style.height.substring(0,obj.style.height.indexOf("px")));
    //alert("animateOpen: " + height);
    if( height < searchpanelheight )
    {
        obj.style.display = "block";
        height = height + Math.ceil((searchpanelheight-height)/10);
        if( height > searchpanelheight ) height = searchpanelheight;
        obj.style.height = height + "px";
        animateid = setTimeout("animateOpen()", animatedelay);
    }//if
    else
    {
        obj.style.display = "block";
        obj.style.visibility = "visible";
        clearTimeout(animateid);
    }//else

}//animateOpen
/**********************************************************************************/
function animateClose()
{
    
    var obj = document.getElementById("SearchPanelContent");
    var height = parseInt(obj.style.height.substring(0,obj.style.height.indexOf("px")));
    if( height > 0 )
    {
        obj.style.visibility = "hidden";
        height = height - Math.ceil(height/10);
        if( height < 0 ) height = 0;
        obj.style.height = height + "px";
        animateid = setTimeout("animateClose()", animatedelay );
    }//if
    else
    {
        clearTimeout(animateid);
        obj.style.visibility = "hidden";
        obj.style.display = "none";
        
    }//else
}//animateClose
/**********************************************************************************/
function startOpen() 
{ 
    dbg("startOpen", true);
    
    inSearchPanel = true;
    clearTimeout(animateid); 
    animateid = setTimeout("animateOpen()", 
    animatedelay); 
    
    obj = document.getElementById("SearchArrow");
    obj.src = "images/layout/search_arrow_down.gif";
}
/**********************************************************************************/
function startClose() 
{ 
    dbg("startClose", true);
    
    inSearchPanel = false;
    
    if( formfocused )
    {
        return;
    }
    
    
    clearTimeout(animateid); 
    animateid = setTimeout("animateClose()", animatedelay); 
    
    obj = document.getElementById("SearchArrow");
    obj.src = "images/layout/search_arrow_up.gif";
}
/**********************************************************************************/
function searchPanelMouseOver() 
{
    clearTimeout(searchtimerid);
    searchtimerid = setTimeout("showSearch()", delay);
}//searchPanelMouseOver
/**********************************************************************************/
function searchPanelMouseOut()
{
    
    if( formfocused )
    {
        return;
    }
    
    clearTimeout(searchtimerid);
    searchtimerid = setTimeout("hideSearch()", delay);
}//searchPanelMouseOut
/**********************************************************************************/
function formFocusOn() { formfocused = true; }
/**********************************************************************************/
function formFocusOff() { formfocused = false; if( !inSearchPanel ) startClose(); }
/**********************************************************************************/
function textFieldSelect(evt)
{
    evt.target.select();
}
/**********************************************************************************/
function dbg( str, append )
{
    //var obj = document.getElementById("Debug");
    //obj.innerHTML = append? obj.innerHTML + "<br />" + str: str;

}//dbg
/**********************************************************************************/
window.onload = function() {

    var obj;

    if( document.URL.indexOf("m=") < 0 )
    {
        showSearch();
        document.onkeydown = null;
    }
    else
    {
        hideSearch();
        
        obj = document.getElementById("SearchPanel");
        obj.onmouseover = startOpen;
        obj.onmouseout = startClose;
        
        //obj <--may want to delete
        
        obj = document.getElementById("selUnits");
        obj.onfocus = function(evt) { dbg("onfocus", true); formFocusOn(); };
        obj.onblur = function(evt) { dbg("onblur", true); formFocusOff(); };
        
        obj = document.getElementById("selSubjects");
        obj.onfocus = formFocusOn;
        obj.onblur = formFocusOff;

    }//else
    document.frmSearch.selUnits.onchange = updateSubjects;
    loadUnits();
    updateSubjects();
    
    obj = document.getElementById("txtKeywords");
    obj.onclick = textFieldSelect;
    
}
/**********************************************************************************/
document.onkeydown = function(e)
{
    if(!e) e = window.event;
    var charpressed = String.fromCharCode(e.keyCode);
    if( (charpressed == 'S' || charpressed == 's')  && e["altKey"] )
    {
        var obj = document.getElementById("SearchPanelContent");
        if( (obj.style.display == "none") )
        {
            startOpen();
        }
        else
        {
            startClose();
        }
    
    }//if
}
/**********************************************************************************/
/*
document.onmousemove = function (e)
{
    if(!e) e = window.event;
    if(e.pageX) dbg("pageX: " + e.pageX + " :: pageY " + e.pageY);
    if(e.clientX) dbg("clientX: " + e.clientX + " :: clientY: " + e.clientY, true);
    if(e.layerX) dbg("layerX: " + e.layerX + " :: layerY: " + e.layerY, true);
    if(e.offsetX) dbg("offsetX: " + e.offsetX + " :: offsetY: " + e.offsetY, true);
    if(e.screenX) dbg("screenX: " + e.screenX + " :: screenY: " + e.screenY, true);
    if(e.x) dbg("x: " + e.x + " :: y: " + e.y, true);
    
}
*/

document.write("<style rel='stylesheet' type='text/css'>");
document.write("#SearchPanelContent { display: none; }");
document.write("</style>");