//GLOBALS

var URL_BASE = "http://msbevent01.marshall.usc.edu";

function checkall(formname,checkname,thestate){
var el_collection=eval("document.forms."+formname+"."+checkname)
for (c=0;c<el_collection.length;c++)
el_collection[c].checked=thestate
}


/* Closes Feed Window */
function closeDiv() {
	var myDiv = document.getElementById("iCal");
	myDiv.style.display = "none";
}

/* Generates vCal feed from CalID, shows Feed Window, and  positions it
*/
function showvCalFeed(calID) {
	
	//find display div
	var myDiv = document.getElementById("iCal");
	
	//Gets x and y of <a> tag that called this script.
	var posObj = getAnchorPosition(calID);
	
	var iCal = URL_BASE + "/webevent/scripts/webevent.plx?cmd=ical&calID=" + calID;
	
	myDiv.style.display = "block";
	myDiv.style.top = posObj.y + 21 + "px";
	myDiv.style.backgroundColor = "#EEEEEE";
	//Call to checkX handles preventing the div from appearing off the right of the screen
	myDiv.style.left = checkX(posObj.x) + "px";
	
	
	//document.getElementById("instr").innerHTML = "Copy this URL and paste into your favorite vCal-compatible calendar: (<a href='#'>?</a>)";
	document.getElementById("instr").innerHTML = "Copy this URL and paste into your favorite vCal-compatible calendar: ";
	document.getElementById("iCalFeed").value = iCal;
}

function showRSSFeed(calID) {
	
	//find display div
	var myDiv = document.getElementById("iCal");
	
	var posObj = getAnchorPosition(calID);
	var RSS = URL_BASE + "/webevent/scripts/webevent.plx?token=guest.d4f1959437e5fe39d18202ceaf1f7b92;cmd=rss_export;calID=" + calID;
	
	
	myDiv.style.display = "block";
	myDiv.style.backgroundColor = "#DDDDDD";
	myDiv.style.top = posObj.y + 21 + "px";
	myDiv.style.left = checkX(posObj.x) + "px";
	
	//document.getElementById("instr").innerHTML = "Copy this URL and paste into your favorite RSS-compatible Reader: (<a href='#'>?</a>)";
	document.getElementById("instr").innerHTML = "Copy this URL and paste into your favorite RSS-compatible Reader: ";
	document.getElementById("iCalFeed").value = RSS;
}

//handles preventing the div from appearing off the right of the screen
function checkX(x) {
	var tw = x + parseInt(document.getElementById("iCal").style.width);
	
	if (tw > document.body.offsetWidth) 
	{
		x = document.body.offsetWidth - parseInt(document.getElementById("iCal").style.width) - 25;
	}
	return x;
}

// getAnchorPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the page.
function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	
	var o=document.getElementById(anchorname);
	x=AnchorPosition_getPageOffsetLeft(o);
	y=AnchorPosition_getPageOffsetTop(o);
	
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// getAnchorWindowPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}

function loadCal() {
	var objURL = new Object();
 
 
	// Use the String::replace method to iterate over each
	// name-value pair in the query string. Location.search
	// gives us the query string (if it exists).
	window.location.search.replace(
	new RegExp( "([^?=&]+)(=([^&]*))?", "g" ),
 
		// For each matched query string pair, add that
		// pair to the URL struct using the pre-equals
		// value as the key.
		function( $0, $1, $2, $3 ){
			objURL[ $1 ] = $3;
		}
	);
	
	document.getElementById("calID").value = objURL['calID'];
	document.forms[0].submit();
}