// javascript document

function writeEmail(tla,dom,nam) {
document.write("<a href='mailto:"+nam+"@"+dom+"."+tla+"'>"+nam+"@"+dom+"."+tla+"</a>");
}

function writeMKEmail(nam) {
document.write("<a href='mailto:"+nam+"@minusk.com'>"+nam+"@minusk.com</a>");
}

function switchVal(e,o) {
// e is the element  - o is the orginal value
if (document.getElementById(e.name).value==o) document.getElementById(e.name).value="";
}
function checkVal(e,o) {
// e is the element  - o is the orginal value
if (document.getElementById(e.name).value=="") document.getElementById(e.name).value=o;
}

function checkPform(f) {
	if (f.name.value=="") {
		alert("Please input your name.");
		f.name.focus();
		return false
	}
	if (f.email.value=="") {
		alert("We need your email to respond.");
		f.email.focus();
		return false
	}
	
	if (!isValidEmail(f.email.value)) {
		alert("Please check your email address... There may be a typo.");
		f.email.focus();
		return false
	}
	
	return true
}

function isValidEmail(str) {
 return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}





function sendForm(f,pdiv){
	if (f.name.value=="") {
		alert("Please input your name.");
		f.name.focus();
		return
	}
	if (f.email.value=="") {
		alert("We need your email to respond.");
		f.email.focus();
		return
	}
	
	var pobo='name='+f.name.value+"&email="+f.email.value+"&comments="+f.comments.value;
	new Ajax('/includes/form.php', {postBody: pobo, update: $('form_pane')}).request();
	
	
}


// ****************************************************************
// home page calendar



var RSSRequestObject = false; // XMLHttpRequest Object
//var Backend = '/includes/eventrss.php'; // Backend url
//window.setInterval("update_timer()", 1200000); // update the data every 20 mins


if (window.XMLHttpRequest) {// try to create XMLHttpRequest
	RSSRequestObject = new XMLHttpRequest();
	}

if (window.ActiveXObject){	// if ActiveXObject use the Microsoft.XMLHTTP
	RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

}



var cnt = 1;

function getCalendars(){
	// change the status to requesting data
//	HideShow('status');
	//document.getElementById("status").innerHTML = "Requesting data ...";
	
if (cnt==1) {
	// Prepare the request
	RSSRequestObject.open("GET", "/includes/eventrss1.php" , true);
	// Set the onreadystatechange function
	RSSRequestObject.onreadystatechange = parseFeed;
	// Send
	RSSRequestObject.send(null); 
	
	} else {
	// Prepare the request
	RSSRequestObject.open("GET", "/includes/eventrss2.php" , true);
	// Set the onreadystatechange function
	RSSRequestObject.onreadystatechange = parseFeed;
	// Send
	RSSRequestObject.send(null); 

}

}




function parseFeed() {
// Parsing Feeds  alert(xml);
// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing Feeds
			var node = RSSRequestObject.responseXML.documentElement; 
			// Get the calendar title
			if (location.toString().indexOf("john")!=-1) alert(node)
			var title = node.getElementsByTagName('title').item(0).firstChild.data;

			if (title.indexOf("Classes")!=-1) {
				t="classes";
				pdiv=$("cal_pane_classes")
			}
			else {
				pdiv=$("cal_pane_events")
				t="events";	
			}
			var content = '';
		
			// Browse events
			var items = node.getElementsByTagName('entry');
			if (items.length == 0) {
				content += '<div class=error>No events</div>';
			} else {
				stdiv = '<div class="listings">';
				for (var n=items.length-1; n >= 0; n--)
				{ 	
					var itemLink = items[n].getElementsByTagName('id').item(0).firstChild.data;
					if (items[n].getElementsByTagName('title')) {
						var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
						var listing = parseCaltems(t+"_"+n,itemTitle, items[n].getElementsByTagName('content').item(0).firstChild.data);
						content += listing;
					}
				}
				
				if (content=="") content="No upcoming "+t;
				enddiv = '</div>';
				
				// Display the result
			pdiv.innerHTML =stdiv+content+enddiv;

			// Tell the reader the everything is done
			//	document.getElementById("status").innerHTML = "Done.";
			} 
		
		} else {
			// Tell the reader that there was error requesting data
		//	document.getElementById("status").innerHTML = "<div class=error>Error requesting data.<div>";
		}
		cnt++;
		if (cnt<3) getCalendars()
	//	HideShow('status');
	
	

			
	}
}


function parseCaltems(id,title,str){
	var arr=str.split("<br>");
	var newarr=new Array();
	for (var i=0;i<arr.length; i++) {
		if (arr[i].indexOf(": ")!=-1) {
			var subarr=arr[i].split(": ");
			newarr[i] = subarr
		} else newarr[i] = arr[i]
		
	}
	
	r=0;
		while (r<newarr.length){
			if (newarr[r][0] && newarr[r][0].indexOf("When") != -1) {
				when = newarr[r][1];
			}
			r++
			
		}
		
	var retval="";
	var ddata = "" ;
	var pass=false ;
	var isrec=0;
	if (newarr[0]=="Recurring Event")  {
		pass= true ;
		ddata=getRecDateFormat(newarr[1][1]);
		
		isrec = 1;
	} else ddata = when; //if (newarr[0].indexOf("Recurring") !=-1) alert("rec");	
	
//alert("test: "+id+" ddate: "+ddata+" isrec: "+isrec+" is showable: "+isShowable(ddata,isrec));
	if (isShowable(ddata,isrec)) {
		var r=2;
		var desc = " " ;
		var where=" " ;
		
		//alert(newarr.length)
		while (r<newarr.length){
			if (newarr[r][0] && newarr[r][0].indexOf("Description") != -1) {
			desc = truncateDesc(newarr[r][1],id)
			description = newarr[r][1]
			}
			r++
			
		}
		r=0;
		while (r<newarr.length){
			if (newarr[r][0] && newarr[r][0].indexOf("Where") != -1) where = newarr[r][1]+"<br>";
			r++
			
		}
		//alert(desc)
		//alert(newarr[0].length+" - "+newarr[0][1]);
		var useDate="";
		var useDate2 = ""
		if (newarr[0].indexOf("Recurring")!=-1) useDate2 =  "<div class='notice2'><a href='http://www.csldavis.org/content/csl-calendar.html'>Recurring Event - see calendar for dates</a></div>";
		else useDate = getDateThing(newarr[0][1])
		//else 

		retval= "<div class='listing'>"+useDate+"<div class='title'>"+title+"</div>"+useDate2+"<div class='where'>"+where+""+getTime(newarr[0][1])+"</div>";
		if (newarr.length>4) retval +="<div class='fulldescription' id='f_"+id+"'>"+description+"<br><a href='javascript:void(0)' onclick='showShortDesc(\""+id+"\")' >Collapse</a></div><div class='description' id='"+id+"'>"+desc+"</div><div class='clear'></div>" ;
		retval +="</div>";
		
	}
	return retval ;
}

function truncateDesc(desc,id){
	if (desc.length<100) return desc
	end=desc.indexOf(" ",100);
	return desc.substr(0,end)+"... <a href='javascript:void(0)' onclick='showFullDesc(\""+id+"\")' >Read more</a>";
}

function showFullDesc(id){
//alert(id);
	$(id).style.display="none";
	$("f_"+id).style.display="block";
}

function showShortDesc(id){
//alert(id);
	$("f_"+id).style.display="none";
	$(id).style.display="block";
}

var mab=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];


function getRecDateFormat(date){
	var d2=date.split(" ");
	var d=d2[0].split("-");
	month=mab[d[1]-1]
//	alert("month: "+month);
	daynum=parseInt(d[2]);
	
	year = d[0]
	//dd= year+","+month+","+daynum;
	dd= month+" "+daynum+", "+year;
	//alert("rdateformat: "+dd+" - "+new Date(dd));
	return dd;
}

function getTime(date){
if (!date || date.indexOf(" ") ==-1) return"";
var d=date.split(" ");
var retval="";
if (d.length>5){
	retval=d[4]+" - "+d[6];
		
	}
	return retval;
}

function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

function getDateThing(date){
	var d=date.split(" ");
	var l = d[2].length ;
	dayweek=d[0];
	month=d[1]
	daynum=d[2].substr(0,l-1);
	year = d[3]
	//return "<div class='datebox'><div class='month'>"+month+"</div><div class='daynum'>"+daynum+"</div></div>";
	return "<div class='ndate'>"+dayweek+" "+month+" "+daynum+", "+year+"</div>";
	
	
}

function isShowable(date,isrec){
//alert("in: "+date+" isrec: "+isrec)
if (isrec) tdate = date
else {
	var days = 0;
	var difference = 0;
var d=date.split(" ");
	var l = d[2].length ;
	dayweek=d[0];
	month=d[1]
	if (d[2].indexOf(",") != -1) daynum=d[2].substr(0,l-1);
	else daynum=d[2]
	year = d[3]
//	alert(" year: "+year+" onht: "+month+" day: "+daynum);
	
	var tdate = year+","+month+","+daynum;
	var tdate = month+" "+daynum+", "+year;
	}
	evtdate = new Date(tdate);
//alert("evtdate: "+evtdate+" ("+tdate+")")
	today = new Date();
	difference = evtdate - today;
	//alert("isrec: "+isrec+" tday: "+today+" \nevt: "+evtdate+"\n date: "+tdate+"\ndiff: "+difference);

	days = Math.round(difference/(1000*60*60*24));
	//alert(isrec+" -- dayes: "+days)
	if (isrec){
		if (days>-60 && days<60) return true
	} else if (days>-3 && days<60) return true
	else return false

}
