var currentRequest = "";
var lastRequest = "";
var lastActivityCode = "";
var dest = 'content';
var rqArray = new Array();
var userOnlinePreference = 0;

function getResultArray() {
	getResults(rqArray.pop());
}

function loadHash() {
	var hash = window.location.hash;
	if (hash.indexOf('content') != -1) {return true;}
	if(hash.length > 0) {
	
		if ((hash.length == 7) && (hash.substring(1,2).toLowerCase() == 'a')) {
			getResults(true,true,1,hash.substring(2,7));
			return;
		}
	
		var hashVal = hash.substring(1,hash.length);
		if(hash.length >= 2) {
			rqArray.push(hashVal.substring(0,2));
			if(hash.length >= 7) {
				rqArray.push(hashVal.substring(0,7));
				if(hash.length >= 12) {
					rqArray.push(hashVal.substring(0,12));
					if(hash.length >= 17) {
						rqArray.push(hashVal.substring(0,17));
					}
				}
			}
		}
	}
	rqArray.reverse()
	getResultArray();
}



function checkInventory(activityCode) {
	lastActivityCode = activityCode;
	var dataUrl = 'act_checkInventory.cfm?q='+activityCode;
	//try to create the xmlHttpRequest object with non-IE code first, else fallback on IE
	ajaxCall(dataUrl,displayInventory,1);
	return false;
}


//function called once a result is returned from our lookup page
function displayInventory(http) {
	//If remote page returns session timeout, get them to log in again
	if (http.responseText == "Session timed out") {
		alert('whoops');
		//alert(strDisplayInventorySessionTimedOut);
		return false;
	} else if (http.responseText == "Bad request") {
		return false;
	} else {
		var inventory = http.responseText;
		var slotElement = document.getElementById('slots'+lastActivityCode);
		var regElement = document.getElementById('reg'+lastActivityCode);
		if (inventory > 0) {
			if (slotElement && regElement) {
				slotElement.innerHTML = inventory ;
				regElement.style.borderColor = "#690";
			}
			openIt('form'+lastActivityCode);
		} else {	
			closeIt('form'+lastActivityCode);
			if (slotElement && regElement) {
				slotElement.innerHTML = 0 + '<br/>Check with the park for additional availability';
				regElement.style.borderColor = "#c00";
			}
		}
	}
}

function getResults(filter,onlineOnly,page,activityCode) {
	//setScroll(0,300);
	if (filter == undefined) {return false;};
	if (page == undefined) {var page = 1;}
	lastRequest = currentRequest;
	currentRequest = filter;
	var thisFilter = document.getElementById(filter);
	if (thisFilter) {
		document.title = strTitlePreamble+thisFilter.innerHTML;
	}
	var dataUrl = null;
	if (activityCode != undefined) {
		dataUrl = 'act_getData.cfm?activity_code=' + activityCode;
	} else {
		dataUrl = 'act_getData.cfm?q='+filter+'&page='+page;
	}
	if (document.cookie == "") {
		dataUrl = dataUrl + '&' + nocookies;
	}
	switch (currentRequest.length) {
		case 2:
			switch(filter) {
				case '01': document.getElementById('hdr2').innerHTML = 'Parks';break;
				case '02': document.getElementById('hdr2').innerHTML = 'Program Types';break;
				case '04': document.getElementById('hdr2').innerHTML = 'Age Groups';break;
				case '05': document.getElementById('hdr2').innerHTML = 'Zip Codes';break;
			}
			document.getElementById('loadingresults').className = 'popHide';
			document.getElementById('p2').innerHTML = strP2Loading;
			document.getElementById('browse_start').className = 'popHide';
			document.getElementById('p3').innerHTML = '';
			document.getElementById('p4').innerHTML = ''; break;
		case 5:
			break;
		case 7: 
			dest = ''+filter+'00000';
			document.getElementById('loadingresults').className = 'popHide';
			document.getElementById('hdr3').innerHTML = 'Program Groups';
			document.getElementById('p3').innerHTML = strP3Loading;
			document.getElementById('p4').innerHTML = ''; break;
		case 12: 
			dest = ''+filter+'00000';
			document.getElementById('loadingresults').className = 'popHide';
			document.getElementById('hdr4').innerHTML = 'Program Names';
			document.getElementById('p4').innerHTML = strP3Loading; break;
		default:
			dest = '';
			document.getElementById('loadingresults').className = 'popShow';
			if (onlineOnly != null) {
				dataUrl = dataUrl +'&o='+onlineOnly;
				userOnlinePreference = onlineOnly;
			} else {
				dataUrl = dataUrl +'&o='+userOnlinePreference;
			};
			var cnt = document.getElementById('content');
			setScroll(0,findPosY(cnt));
			//update here to allow consistent online offline
			//document.getElementById('prog_clear').className = 'popShow'; break;
			
	} 
	ajaxCall(dataUrl,displayResults,0,0,currentRequest);
	var tc = document.getElementById('mainContent');
	//setScroll(0,100);
	return false;
}

//function called once a result is returned from our lookup page
function displayResults(http,returnRequest) {
	//only process the update visually if the returnRequest variable matches
	if (returnRequest == currentRequest) {
		//If remote page returns session timeout, get them to log in again
		if (http.responseText == "Session timed out") {
			alert(strDisplayResultsSessionTimeout);
		} else if (http.responseText == "Bad request") {
			return false;
		} else {
			switch (currentRequest.length) {
				case 2:
					if (lastRequest.length >= 2) {
						var selectedItem = lastRequest.substring(0,2);
						document.getElementById(selectedItem).className ="nothere"; 
					}
					if (currentRequest.length == 2) {
						document.getElementById(currentRequest).className ="here"; 
					}
					
					document.getElementById('p2').innerHTML = http.responseText;
					document.getElementById('p3').innerHTML = '';
					document.getElementById('p4').innerHTML = '';  break;
				case 7: 
					if (lastRequest.length >= 7) {
						var selectedItem = lastRequest.substring(0,7);
						document.getElementById(selectedItem).className ="nothere"; 
					}
					if (currentRequest.length == 7) {
						document.getElementById(currentRequest).className ="here"; 
						if (rqArray.length > 0) {
							var currElem=document.getElementById(currentRequest);
							currElem.parentNode.parentNode.parentNode.scrollTop = currElem.offsetTop;
						}
					}
					document.getElementById('p3').innerHTML = http.responseText;
					document.getElementById('p4').innerHTML = '';break;
				case 12: 
					if (lastRequest.length >= 12) {
						var selectedItem = lastRequest.substring(0,12);
						document.getElementById(selectedItem).className ="nothere"; 
					}
					if (currentRequest.length == 12) {
						document.getElementById(currentRequest).className ="here"; 
						if (rqArray.length > 0) {
							var currElem=document.getElementById(currentRequest);
							currElem.parentNode.parentNode.parentNode.scrollTop = currElem.offsetTop;
						}
					}
					document.getElementById('p4').innerHTML = http.responseText;break;
				default:
					var panelTitle = document.getElementById('resultsTitle');
					panelTitle.innerHTML = 'Program Search Results';
					//Fat.fade_element('resultsTitle');
					
					if (lastRequest.length >= 17) {
						var selectedItem = lastRequest.substring(0,17);
						document.getElementById(selectedItem).className ="nothere"; 
					} 
					if (currentRequest.length == 17) {
						document.getElementById(currentRequest).className ="here"; 
						var contentDiv = document.getElementById('content');
						if (rqArray.length > 0) {
							var currElem=document.getElementById(currentRequest);
							currElem.parentNode.parentNode.parentNode.scrollTop = currElem.offsetTop;
						}
					}
					document.getElementById('search_results').innerHTML = http.responseText;
					document.getElementById('loadingresults').className = 'popHide';
					break;
					
			}
			var tc = document.getElementById('theContent');
			var te = document.getElementById('theContent');
			if (rqArray.length > 0) {getResultArray();};
		}
	} else {
		//request has been surpassed
	}
}

