
function lvlTxtClr(aClr) {
		var hcr=parseInt(aClr.substr(0,2),16);
		var hcg=parseInt(aClr.substr(2,2),16);
		var hcb=parseInt(aClr.substr(4,2),16);
		var st="black";
		//alert(hcr+hcg+hcb);
		if(hcr+hcg+hcb<(384)) {  //3*128
			st="white";
		}
		return (st);
}

function doLevelsTabs() {
	//dynamically build level tabs
	var levelsTbs=document.getElementById("divSiLevels");
	var lvHTML="<div align='left' class='eventTxt'>Select:<br /></span></div><a href='#' id='lnOverview' onclick='restoreDivSiSched();' class='lvlTab' style='background-color:#f5f5f5;' ><span class='eventTxt'>&nbsp;Overview </span></a>&nbsp;";
	for(var i=0;i<aryLevels.length;i++) {
		if((aryLevels[i]!=null)&&(aryLevels[i].level!="")) {
			var aLevelsID=aryLevels[i].id;
			var lv=aryLevels[i].level;
			var hexClr=aryLevels[i].hexColor;
			
			lvHTML+="&nbsp;<a href='#' class='lvlTab' onclick='doAJAXupdate(makeURLsched("+aLevelsID+"));' style='background-color:#"+hexClr+";color:"+lvlTxtClr(hexClr)+"; '><span class='eventTxt' style='color:"+lvlTxtClr(hexClr)+";'> "+lv+" </span></a>&nbsp;";
		}
	}
	return lvHTML;
}

function doTblTuit() {
	//dynamically build tuition table
	var tbl;
	try {
		tbl=document.getElementById("tblTuit");
	} catch (e) {
		tbl=window.document.getElementById("tblTuit");
		}
	var theRows=tbl.rows;
	var lastDiv="";
	var dd="";

	for(var i=0;i<aryLevels.length;i++) {
		newRow=tbl.insertRow(theRows.length);
		aryLevels[i].div==lastDiv?dd="":dd=aryLevels[i].div
		var lvHTML="<span class='eventTxt'>"+dd+"</span>";
		newCell=newRow.insertCell(newRow.cells.length);
		newCell.innerHTML=lvHTML;
		newCell.align="left";
		
		lvHTML="&nbsp;<a href='#' class='lvlTab' onclick='doAJAXupdate(makeURLsched("+aryLevels[i].id+"));' ><span class='eventTxt'> "+aryLevels[i].level+" </span></a>&nbsp;";
		newCell=newRow.insertCell(newRow.cells.length);
		newCell.innerHTML=lvHTML;
		newRow.cells[newRow.cells.length-1].align="center";
		newRow.cells[newRow.cells.length-1].setAttribute('class',"tuitCell");
		//hxc=aryLevels[i].hexColor;
		//newRow.cells[newRow.cells.length-1].style.color=lvlTxtClr(hxc); // block text on light, white on dark
		//newRow.cells[newRow.cells.length-1].style.backgroundColor='#'+hxc;

		lvHTML="<span class='eventTxt'>"+aryLevels[i].numDays+"</span>";
		newCell=newRow.insertCell(newRow.cells.length);
		newCell.innerHTML=lvHTML;
		newCell.align="center";

		lvHTML="<span class='eventTxt'>$"+aryLevels[i].fee+"</span>";
		newCell=newRow.insertCell(newRow.cells.length);
		newCell.innerHTML=lvHTML;
		newCell.align="right";
		lastDiv=aryLevels[i].div;
	}
	
	try {
		schedOrig=document.getElementById('divSiSched').innerHTML;
	} catch (e) {
		schedOrig=window.document.getElementById('divSiSched').innerHTML;
		}
}

var schedOrig="";

function restoreDivSiSched() {
	document.getElementById("divSiSched").innerHTML=schedOrig;
}

function addTableCell(aTbl,aRow,aVal,aWt,cSpan) {
	var newCell=aRow.insertCell(aRow.cells.length);
	newCell.style.fontWeight=aWt;
	newCell.colSpan=cSpan;
	var textNode = document.createTextNode(aVal);
  	newCell.appendChild(textNode);
	return(newCell);
}


<!--
    /////////////////////////////////////////
   /////////////////////////////////////////
  //   AJAX                              //
 /////////////////////////////////////////
/////////////////////////////////////////

// globals shared by AJAX functions
var http; // request object
var httpLev; // request object
var msg=""; // displayed message
var respType=""; // handleResponse action to take
var aryLevels=new Array();

function makeURLsched(anId) {
	//alert("makeURLsched: "+anId);
	respType="sched";
	var rnd = Math.random();
	var rec=new Array();
	// build URL for AJAX call
		aURL="summer/si_schedHTML.php?levelId="+anId+"&tblOnly=true&nocache="+rnd;
		if(anId==-1)aURL="summer/si_schedHTML.php?tblOnly=true&nocache="+rnd;
		msg="getting...";
	//alert(aURL);
	////showMsg("<pre>\n\n"+aURL+"</pre>");
	return aURL;
}

function doAJAXupdate(aURL) {	
	if(aURL=="") {
		//showMsg(msg);
		return;
	}
	// do AJAX call
	http = createRequestObject();
	try {
		//showMsg("Calling Database...");
		http.open("GET", aURL, true);
		http.setRequestHeader('Content-Type',  "text/html");
		http.onreadystatechange = handleResponse;
		http.send(null);
	} catch(e) {
			// caught an error
			alert('Request send failed.'+ e);
			//showMsg("Request send failed: "+e);
	} finally {}
}

function handleResponse() {
	var waitMsg="Submitted. Waiting for response";
	try{
		if((http.readyState == 4)&&(http.status == 200)){
			var response = http.responseText;
					// update schedule div
					document.getElementById('divSiSched').innerHTML="<div align=\"center\">"+response+"<\div>";
					//alert(response);
		} else {
			waitMsg=waitMsg+".";
			//showMsg(waitMsg); 
		}
	} catch(e) {
		// caught an error
		alert('Response failed. State:'+http.readyState+'  error:'+e);
		//showMsg('Response failed. State:'+http.readyState+'  error:'+e);
	} finally {
		//showMsg(msg);
	}
}

function doAJAXlevels() {	
	var rnd = Math.random();
	// do AJAX call
	var aURL="summer/si_levelsXML.php?nocache="+rnd;
	httpLev = createRequestObject();
	try {
		//alert(aURL);
		//showMsg("Calling Database...");
		httpLev.open("GET", aURL, true);
		httpLev.setRequestHeader('Content-Type', "text/xml");
		httpLev.onreadystatechange = handleResponseLevels;
		httpLev.send(null);
	} catch(e) {
			// caught an error
			alert('Request do level send failed.'+ e);
			//showMsg("Request send failed: "+e);
	} finally {}
}


function handleResponseLevels() {
	var waitMsg="Submitted. Waiting for response";
	try{
		if((httpLev.readyState == 4)&&(httpLev.status == 200)){
					//alert("got something by AJAX");
					var c=httpLev.responseXML.getElementsByTagName('lvl');	
					//alert("made array from tags. Length:" + c.length);
					if(c.length>1) {
						aryLevels=new Array();
						for(var x=0;x<c.length;x++) {
							aryLevels[x]=new Array();
							for(var n=0;n<c[x].attributes.length;n++) {
									aryLevels[x][c[x].attributes[n].name]=c[x].attributes[n].value;
								}
						}
					}
					//alert("doing tablTuit");
					doTblTuit();
					// update levels div
					document.getElementById('divSiLevels').innerHTML="<div align=\"center\">"+doLevelsTabs()+"<\div>";
					lnOverview.focus();
					//alert(response);
		} else {
			waitMsg=waitMsg+".";
			//showMsg(waitMsg); 
		}
	} catch(e) {
		// caught an error
		alert('Response levels failed. State:'+httpLev.readyState+'  error:'+e);
		//showMsg('Response failed. State:'+httpLev.readyState+'  error:'+e);
	} finally {
		//showMsg(msg);
	}
}

function createRequestObject() {
	// find the correct xmlHTTP, works with IE, FF and Opera
	var xmlhttp;
	try {
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			xmlhttp=null;
		}
	}
	if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
		xmlhttp=new XMLHttpRequest();
	}
	return  xmlhttp;
}


/*



*/


/*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 \\
  \\ end AJAX
   \\
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
*/





//-->
