
function removeSingleLineBreaks(d)
{
	var t = document.getElementById(d).value;
	var r = t;
	r = r.replace(/\n\n/,"<<dblBR>>");
	r = r.replace(/\r\r/,"<<dblBR>>");
	r = r.replace(/\r\n\r\n/,"<<dblBR>>");
	r = r.replace(/\r\n/g," ");
	r = r.replace(/\n/g," ");
	r = r.replace(/\r/g," ");
	r = r.replace("<<dblBR>>","\r\n\r\n","g");
	document.getElementById(d).value = r;
}

function formatTextSnippet(d, f, source)
{
	var t = document.getElementById(d);
	var r = t.value;
	var st = getSelectedText(d);
	var snippet = st['value'];
	var start = st['start'];
	var end = st['end'];
	var firsthalf = r.substr(0,start);
	var secondhalf = r.substr(end);

	if (f=="a")
	{
		var l = document.getElementById(source).value;
		if (l.substr(0,7).toLowerCase()!="http://")
		{
			l = "http://" + l;	
		}
		r = "<a href='"+l+"'>"+snippet+"</a>";
	}
	if (f=="u")
	{
		r = "<span style='text-decoration:underline;'>"+snippet+"</span>";
	}
	if (f=="i")
	{
		r = "<span style='font-style:italic;'>"+snippet+"</span>";
	}
	if (f=="b")
	{
		r = "<span style='font-weight:bold;'>"+snippet+"</span>";
	}

	t.value = firsthalf + r + secondhalf;
	

}

function getSelectedText(d)
{
	var r = new Array();
	var tField = document.getElementById(d);
	var sStart = 0;
	var sEnd = 0;

	if (navigator.appName=="Microsoft Internet Explorer")
	{
		var selectedText = document.selection.createRange().text;
		sStart = tField.value.indexOf(selectedText);
		sEnd = tField.value.indexOf(selectedText) + selectedText.length;
	}
	else
	{
		sStart = tField.selectionStart;
		sEnd = tField.selectionEnd;
	}
	
	r['start'] = sStart;
	r['end'] = sEnd;
	r['value'] = "";
	if (sStart < sEnd)
	{
		var t = tField.value;
		var s = t.substr(sStart,(sEnd-sStart));
		r['value'] = s;
	}
	return r;
}


document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};




function setChecked(cname,checkedval)
{
	cboxes = document.getElementsByClassName(cname);
	if (cboxes.length > 0)
	{
		for (i=0;i<cboxes.length;i++)
		{
			cboxes[i].checked = checkedval;
		}
	}
}


function toggleChecked(cname,masterbox)
{
	cboxes = document.getElementsByClassName(cname);
	if (cboxes.length > 0)
	{
		alert(masterbox.checked);
		for (i=0;i<cboxes.length;i++)
		{
			cboxes[i].checked = masterbox.checked;
		}
	}
	
}



function setPrintable(b)
{
	if (b)
	{
		setCookie("NSSEprintableView",true);
	}
	else
	{
		eraseCookie("NSSEprintableView");
	}
	window.location.reload();
//	alert(getCookie("NSSEprintableView"));
}



function setCookie(name,value) {
	var v = ""+value;
	document.cookie = name+"="+escape(v);
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return false;
}

function eraseCookie(name) {
	setCookie(name,"",-1);
}






function toggleVisibility(d,p,v)	// div/object; position anchor object; vertical offset
{
	
	
	if (document.getElementById(d))
	{
		if ((p)&&(v))
		{
			var posLeft = document.getElementById(p).offsetLeft;
			var posTop = document.getElementById(p).offsetTop + v;
			document.getElementById(d).style.left = posLeft.toString(10) + "px";
			document.getElementById(d).style.top = posTop.toString(10) + "px";
		}
		var dv = document.getElementById(d).style.display;
		if (dv=="none")
		{
			document.getElementById(d).style.display = "block";
		}
		else
		{
			document.getElementById(d).style.display = "none";
		}
	}
}








function toggleDisplay(d,p,v)	// div/object; position anchor object; vertical offset
{
	
	
	var toggleItems = document.getElementsByClassName(document.getElementById(d).className);
	if (document.getElementById(d).className!="")
	{
		for (i=0;i<toggleItems.length;i++)
		{
			if (toggleItems[i].id!=d)
			{
				document.getElementById(toggleItems[i].id).style.display = "none";
			}
		}
	}
	
	if (document.getElementById(d))
	{
		if ((p)&&(v))
		{
			var posLeft = document.getElementById(p).offsetLeft;
			var posTop = document.getElementById(p).offsetTop + v;
			document.getElementById(d).style.left = posLeft.toString(10) + "px";
			document.getElementById(d).style.top = posTop.toString(10) + "px";
		}
		var dv = document.getElementById(d).style.display;
		if (dv=="none")
		{
			document.getElementById(d).style.display = "block";
		}
		else
		{
			document.getElementById(d).style.display = "none";
		}
	}
}




function checkAll(checkname, exby) {
  for (i = 0; i < checkname.length; i++)
  checkname[i].checked = exby.checked? true:false
}

function toggleFillDivChangeClass(d,c,t)
{
 if (document.getElementById(d).innerHTML=="")
 {
  fillDivChangeClass(d,c,t);
 } 
 else
 {
  fillDivChangeClass(d,c,"");
  document.getElementById(d).className = "";
 }
}

function fillDivChangeClass(d,c,t)
{
 document.getElementById(d).innerHTML = t;
 document.getElementById(d).className = c;
}

function toggleFillDiv(d,t)
{
 if (document.getElementById(d).innerHTML=="")
 {
  fillDiv(d,t);
 } 
 else
 {
  fillDiv(d,"");
 }
}

function fillDiv(d,t)
{
 document.getElementById(d).innerHTML = t;
}






/* --- BEGIN MENU JAVASCRIPT --- */
var hoveringon = "";
function closeMenus()
{

 
 if (hoveringon=="")
 {
  
  var closeSubmenus = document.getElementsByClassName('submenu');
  for ( var i=0, len=closeSubmenus.length ; i<len ; i++ )
  {
   closeSubmenus[i].style.visibility = "hidden";
  }
  var closeSubmenus = document.getElementsByClassName('subsubmenu');
  for ( var i=0, len=closeSubmenus.length ; i<len ; i++ )
  {
   closeSubmenus[i].style.visibility = "hidden";
  }


//  document.getElementById('submenu_About_NSSE').style.visibility = "hidden";
//  document.getElementById('submenu_News').style.visibility = "hidden";
//  document.getElementById('submenu_NSSE').style.visibility = "hidden";
//  document.getElementById('submenu_FSSE').style.visibility = "hidden";
//  document.getElementById('submenu_BCSSE').style.visibility = "hidden";
//  document.getElementById('submenu_Related_Surveys').style.visibility = "hidden";
//  document.getElementById('submenu_Reports_and_Services').style.visibility = "hidden";
//  document.getElementById('submenu_NSSE_Archives').style.visibility = "hidden";
//  document.getElementById('submenu_Papers_and_Presentations').style.visibility = "hidden";
//  document.getElementById('submenu_Institution_Interface').style.visibility = "hidden";
//  document.getElementById('submenu_Order_Materials').style.visibility = "hidden";

 }

}

function openMenu(m)
{
 closeMenus();
 document.getElementById(m).style.visibility = "visible";
 enterMenu(m);
 hoveringon = m;
 openSpecificMenus();
}

function enterMenu(m)
{
 hoveringon = m;
}

function leaveMenu()
{
 hoveringon = "";
 setTimeout("closeMenus()", 1000);
}

function openSpecificMenus()
{
 if (hoveringon=="subsubmenu_BCSSE_Reports")
 {
	 document.getElementById("submenu_BCSSE").style.visibility = "visible";
	 document.getElementById("subsubmenu_BCSSE_Reports").style.visibility = "visible";
 }
 if (hoveringon=="subsubmenu_Using_FSSE_Data")
 {
	 document.getElementById("submenu_FSSE").style.visibility = "visible";
	 document.getElementById("subsubmenu_Using_FSSE_Data").style.visibility = "visible";
}
 if (hoveringon=="subsubmenu_NSSE_GeneralInfo")
 {
	 document.getElementById("submenu_NSSE").style.visibility = "visible";
	 document.getElementById("subsubmenu_NSSE_GeneralInfo").style.visibility = "visible";
 }
 if (hoveringon=="subsubmenu_NSSE_Participation")
 {
	 document.getElementById("submenu_NSSE").style.visibility = "visible";
	 document.getElementById("subsubmenu_NSSE_Participation").style.visibility = "visible";
 }
 if (hoveringon=="subsubmenu_BCSSE_Participants")
 {
	 document.getElementById("submenu_BCSSE").style.visibility = "visible";
	 document.getElementById("subsubmenu_BCSSE_Participants").style.visibility = "visible";
 }
}



/* --- END MENU JAVASCRIPT --- */







function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}






/* -------------------- BEGIN AJAX FUNCTIONS --------------------------- */
var xmlHttp
var outputField;
// mode: 'active' or not (active causes a change in an ID'd div
// callScript: the backend script called to get info
// fieldID: the ID of the field whose innerHTML should be changed


/*----- SIMPLE AJAX ------------------------*/



function ajax(mode,callScript,fieldID)
{
 callScript = encodeURI(callScript);
 xmlHttp=GetXmlHttpObject();
 outputField = fieldID;
 var url = callScript;		// <-- defines the backend script location
 xmlHttp.onreadystatechange=emptyFunction;	// <-- (See below)
 xmlHttp.open("GET",url,false);
 xmlHttp.send(null);
 ajaxReturnValue = trim(xmlHttp.responseText);
 if (mode=="active")
 {
	document.getElementById(outputField).innerHTML = ajaxReturnValue;
 }
 return ajaxReturnValue;
}


function stateChanged() 
{ 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
  document.getElementById(outputField).innerHTML=xmlHttp.responseText;
 }
} 



function emptyFunction()
{
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 

 }
}


function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}


/* -------------------- END AJAX FUNCTIONS --------------------------- */




