// AJAX SETUP BEGIN
// first set up IE/Moz javascript xml object
// http://jibbering.com/2002/4/httprequest.html
var fader;
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	xmlhttp = new XMLHttpRequest();
}
// AJAX SETUP END: xmlhttp object is ready

function ajaxRequest(url, elIdToReplace) {
	document.body.style.cursor='wait';
	// get additional events
	xmlhttp.open("GET", url, true);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4) {
			document.getElementById(elIdToReplace).innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
	document.body.style.cursor='auto';
}
function toggleDisplay(elIdToToggle) {
	document.body.style.cursor='wait';
	if (document.getElementById(elIdToToggle).style.display == 'block')
		document.getElementById(elIdToToggle).style.display = 'none';
	else 
		document.getElementById(elIdToToggle).style.display = 'block';	
	document.body.style.cursor='auto';
}
function toggleArea(area_id) {
	toggleDisplay(area_id);
}

function flipSearchState(togglefield, togglecontrol, togglepanel) {
	var currentValue = document.getElementById(togglefield).value;
	var newValue = (currentValue=='1' ? '0':'1');
	document.getElementById(togglefield).value = newValue;
	document.getElementById(togglecontrol).src = (newValue=='1' ? 'layout_imgs/doc-arrow-down.gif':'layout_imgs/doc-arrow-right.gif');
	document.getElementById(togglepanel).style.display = (newValue=='1' ? 'block':'none');
}

function saveScroll() {
	document.cookie = 'scroll_position'+'='+document.body.scrollTop;
}
function recallScroll() {
	window.scroll(0,getCookie('scroll_position'));
}


function fillOutUpcomingEventsBox(for_page) {
	if (document.getElementById('right_column_body'))
		setTimeout('fillOutUpcomingEventsBox2("'+for_page+'")',50);	
}
function fillOutUpcomingEventsBox2(for_page) {
	// calculate free space
	var existingHeight = document.getElementById('right_column_body').offsetHeight;
	var availableHeight = document.getElementById('right_column').offsetHeight;
	var itemsToAdd = parseInt((availableHeight - existingHeight)/175);

	if (itemsToAdd > 0) {
		// determine events we are already showing
		var existingEvents = document.getElementById('right_column_body').getElementsByTagName('h2');
		var existingIds = new Array();
		for(var i=0; i<existingEvents.length; i++) {
			// next line is like existingIds.push(...) but works in IE5
			existingIds[existingIds.length] = existingEvents[i].id.substr(1);
		}

		// get additional events
		xmlhttp.open("GET", "upcoming_events_box.php?get_additional_events=" + itemsToAdd + "&without_using_events=" + existingIds.join(',') + "&for_page=" + for_page, true);
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4) {
				document.getElementById('right_column_body').innerHTML += xmlhttp.responseText;

				// if we got some, schedule another
				if (xmlhttp.responseText)
					setTimeout('fillOutUpcomingEventsBox2("'+for_page+'")',1000);	
			}
		}
		xmlhttp.send(null);
	}
}



function setCookie(cookieName,cookieValue) {
	var today = new Date();
	var expire = new Date();
	var nDays=365;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)
				 + ";expires="+expire.toGMTString();
}
function getCookie(name) { // use: getCookie("name");
	var index = document.cookie.indexOf(name + "=");
	if (index == -1) return null;
	index = document.cookie.indexOf("=", index) + 1;
	var endstr = document.cookie.indexOf(";", index);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(index, endstr));
}
function getElementHeight(Elem) {
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	if (op5) { 
		xPos = elem.style.pixelHeight;
	} else {
		xPos = elem.offsetHeight;
	}
	return xPos;
}

// SCRIPTS FOR meet-rfp.php
function field_format() {
	pattern = /'/g
	for (i=0;i<document.forms[0].length;i++) {
		document.forms[0].elements[i].value = document.forms[0].elements[i].value.replace(pattern, "&#39;")
	}
}
function checkrequired(which) {
	var pass=true;
	if (document.images) {
		for (i=0;i<which.length;i++) {
			var tempobj=which.elements[i];
			if (tempobj.name.substring(0,4)=="Req_") {
				if (((tempobj.type=="text" || tempobj.type=="textarea") && tempobj.value=='') || (tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					pass=false;
					break;
				}
			}
		}
	}
	if (!pass) {
		shortFieldName=tempobj.name.substring(4,30).toUpperCase();
		alert("Please make sure the '"+shortFieldName+"' field was properly completed.");
		return false;
	} else
		return true;
}


// vertical menu scripts
var menus;
var timer;
function showMenu(id) {
	keepMenu();
	document.getElementById(id).style.visibility = "visible";
	//document.getElementById('vertical_menu_parent_'+id).style.backgroundPosition = 'bottom left';
	//document.getElementById('vertical_menu_parent_'+id).style.color = "#000000";
	//document.getElementById('vertical_menu_parent_'+id).style.backgroundColor = "#FDB462";
	for (var i=0; i<menus.length; i++) 
		if (menus[i] != id) 
			clearMenu(menus[i], '');
}
function clearAll(exception) {
	for (var i=0; i<menus.length; i++) 
		clearMenu(menus[i], exception);
}
function clearMenu(id, exception) {
	document.getElementById(id).style.visibility="hidden";
	if (document.getElementById('vertical_menu_parent_'+id).className == 'current_parent') {
		//document.getElementById('vertical_menu_parent_'+id).style.color = "black";
		//document.getElementById('vertical_menu_parent_'+id).style.backgroundColor = "#CAE4D3";
	} else {
		//document.getElementById('vertical_menu_parent_'+id).style.color = "";
		//document.getElementById('vertical_menu_parent_'+id).style.backgroundColor = "";
	}
}
function keepMenu() {
	clearTimeout(timer);
}
function requestHide(exception) {
	timer = setTimeout("clearAll('"+exception+"')",150);
}
function positionMenus() {
	if (menus && document.getElementById(menus[0])) {
		for (var i=0; i<menus.length; i++) {
			document.getElementById(menus[i]).style.top = (findPosY(document.getElementById('vertical_menu_parent_'+menus[i])))+'px';
			document.getElementById(menus[i]).style.left = (findPosX(document.getElementById('vertical_menu_parent_'+menus[i])) + 113)+'px';
		}
		window.onresize = positionMenus;
	}
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

// for meet-conventions.php
function getEvent(event_id) {
	if (document.getElementById('event_'+event_id).style.display == 'block')
		document.getElementById('event_'+event_id).style.display = 'none';
	else {
		document.body.style.cursor='wait';
		xmlhttp.open("GET", "meet-conventions.php?event_id="+event_id, true);
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4) {
				document.getElementById('event_'+event_id).innerHTML = xmlhttp.responseText;
				document.getElementById('event_'+event_id).style.paddingBottom = '12px';
				document.getElementById('event_'+event_id).style.display = 'block';
				document.body.style.cursor='auto';
			}
		}
		xmlhttp.send(null);
	}
}

function queryAndReplace(query, replace_el_id) {
	document.body.style.cursor='wait';
	xmlhttp.open("GET", query, true);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4) {
			document.getElementById(replace_el_id).innerHTML = xmlhttp.responseText;
			document.body.style.cursor='auto';
		}
	}
	xmlhttp.send(null);
}