//cms functions

function toggleRecurs(yn)
{
	if (yn == "y")
	{
		document.getElementById("recurspanel").style.display="block";
	}
	else
	{
		
		document.getElementById("dp-normal-2").value=document.getElementById("dp-normal-1").value;
		document.getElementById("recurspanel").style.display="none";
	}
}


//rss functions

//declare global
var num = 0;
var items = new Array;
var todayDate = new Date();
function clearContent(divID) {
	$('#'+divID).empty();
}
function get_cal_feed(doSomething, divID, date2Get, calID) {
		calID = typeof(calID) != 'undefined' ? calID : '';
  		date2Get = typeof(date2Get) != 'undefined' || date2Get == '' ? date2Get: (todayDate.getMonth() +1) + "/1/"+ todayDate.getFullYear();
         //clearContent();
         
         //If statement to check to see if something other than "Select" has been
         // selected.
         
		 //get calendar feed.
		 var nocache = Math.random
		 $.get("calendar.asp?cal="+calID+"&date="+date2Get+"&feed=true&go=2", function(d){  
		 
		// loop thru feed and build items[][] array
         $(d).find('item').each(function(){
  			
             var $item = $(this); 
			   
             var title = $item.find('title').text();
             var link = $item.find('link').text();
             var description = $item.find('description').text(); 
             var pubDate = $item.find('pubDate').text();
               
			items[num] = new Array(4);
			items[num][0]  = title;
			items[num][1] = pubDate;
			items[num][2] = description;
			items[num][3] = link;
			num +=1;
         });  
		 //establish an other row to items array to stor temp values
		items[num]= new Array(4);
		var i = 0;
		
		//sort the values of the dates in the items[][] array
		for (i=0; i<num; i++)
		{
			d1 = new Date(items[i][1]);
			d2 = new Date(items[i+1][1]);
			if (d2 < d1)
			{
				for(ii=0; ii<=4; ii++)
				{
					items[num][ii] = items[i][ii];
					items[i][ii] = items[i+1][ii];
					items[i+1][ii] = items[num][ii];
				}
			}
		}
		if (doSomething != '')
			show_cal_feed(doSomething, divID, date2Get);
     });   
}
function isArray(testObject) {   
    return testObject && !(testObject.propertyIsEnumerable('length')) && typeof testObject === 'object' && typeof testObject.length === 'number';
}
function things2Events(things, topBound)
{
	
	for (x=0; x<topBound; x++)
	{ 
		things[x] = { EventID: x, "Date": new Date(things[x][1]), "Title": things[x][0], URL: things[x][3] };
	}
	return things;
}

function show_cal_feed(doSomething, divID, date2Get)
{
	if (isArray(items))
	{
		var LIcon = document.getElementById("loading_"+divID);
		if (LIcon)
			LIcon.style.display='none';
			
		var html;
		html = "<div>Event information is not available. Please check the <a href=\"calendar.asp\">calendar</a></div>";
		var events= new Array;
							  
			switch(doSomething)
			{
				case "load_calendar":
						
					/*for (i=0; i<num; i++)
					{ 
						events[i] = { EventID: i, "Date": new Date(items[i][1]), "Title": items[i][0], URL: items[i][3] };
					}*/
					events = things2Events(items, num);
					var options = {
						
						containerID: "#"+divID,
					onMonthChanged: function(dateIn) {
						//this could be an Ajax call to the backend to get this months events
						
						
						
						//events = jQuery.extend(events, options);
						
						D = new Date(dateIn);
						d2g = (D.getMonth()+1) + "/1/" + D.getFullYear();
						window.location = "calendar.asp?date="+d2g;
					return true;
						//this could be an Ajax call to the backend to get this months events
					}
				};
					options.dateIn = date2Get;
					//alert(options.dateIn);
					var newevents = events;
					$.jMonthCalendar.Initialize(options, newevents);
				break;
				case "feed":
					html = "<ul>"
					for (i=0; i<num; i++)
					{ 
						 html += '<li id="tp'+num+'"><b class="categories">' + i + ': ' + items[i][0] + '</b><ul>'; 
							html += '<li class="eventdate"> ' + items[i][1] + '</li>';
						 html += '<li class="eventdesc"> ' + items[i][2] + '</li></ul></li>' ;  
						 //html += '<a href="' + link + '" target="_blank">Read More</a>'; 
					}
					html += "</ul>"
				break;
				case "getnext":
					var numT = num
					for (i=0; i<numT; i++)
					{
						var checkD = new Date(items[i][1])
						if (checkD>todayDate)
						{
						var tempDate = checkD;
						var dispDate = getDayOfWeek(tempDate.getDay()) + " " + getMonthName(tempDate.getMonth()) + " " + tempDate.getDate() + " " + getTimeString(tempDate) + " " ;
						html = '<p><a href="calendar.asp"><b class="headers">On the Calendar:</b></a><b>' + dispDate + '</b><br/>';
					 	html += '' + removeHTMLTags(items[i][0]) + ':' + truncateStr(removeHTMLTags(items[i][2]), 3000) + '&nbsp;&nbsp;<a href="' + items[i][3] + '">More Info...</a></p>';  
					 	//html += '<a href="' + link + '" target="_blank">Read More</a>'; 
						 numT = 0;
						$('#'+divID).html($(html));
						}	
					}
				break;
				case "EventRange":
					numWeeks=parseInt(document.getElementById("EventRangeWelcomeHeader").value)
					var uBoundSec = todayDate.getTime() +  numWeeks*7*24*60*60*1000 ;
					
					var numT = num;
					var rArg = new Array();
					var rArgKey = 0
					for (i=0; i<numT; i++)
					{
						var checkD = new Date(items[i][1])
						var checkSec = checkD.getTime();
						if (checkD>todayDate)
						{

						var tempDate = checkD;
						var dispDate = getDayOfWeek(tempDate.getDay()) + " " + getMonthName(tempDate.getMonth()) + " " + tempDate.getDate() + " " + getTimeString(tempDate) + " " ;
						//var dispDate = items[i][1];
						rArg[rArgKey] = '<p><a href="calendar.asp"><b class="headers">On the Calendar:</b></a><b>' + dispDate + '</b><br/>';
					 	rArg[rArgKey] += '' + removeHTMLTags(items[i][0]+"") + ':' + truncateStr(removeHTMLTags(items[i][2]+""), 3000) + '&nbsp;&nbsp;<a href="' + items[i][3] + '">More Info...</a></p>';  
						rArgKey++
					 	//html += '<a href="' + link + '" target="_blank">Read More</a>'; 

						if (checkSec>uBoundSec)
							i=numT;
						}
					}
					html = "<div>" + rArg[Math.floor(Math.random()*rArg.length )] + "</div>";
					$('#'+divID).html($(html));
					break;
		}
		//$('#'+divID).append($(html));
	}
}
function removeHTMLTags(testString){
 	 	testString = testString.replace(/&(lt|gt);/g, function (strMatch, p1){
 		 	return (p1 == "lt")? "<" : ">";
 		});
 		return(testString.replace(/<\/?[^>]+(>|$)/g, ""));	
}

function truncateStr(testString, ti)
{
	ti = parseInt(ti);
	if (isNaN(ti))
		ti = 10;
	var words = testString.split(" ");
	var returnString = testString;
	//alert(words.length);
	if (words.length >= ti)
	{
			returnString = ""
			for (var wordCount = 0; wordCount <= ti; wordCount++)
			{
				returnString += " " + words[wordCount];
			}
	}
	if (returnString != testString)
		returnString += '...';
	return(returnString);
}

function getDayOfWeek(n)
{
	var nameArg = Array("Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat");
	if (n <= 6)
		return(nameArg[n]);
	else
		return(undefined);
}


function getMonthName(n)
{
	var nameArg = Array("Jan", "Feb", "Mar", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec");
	if (n <= 11)
		return(nameArg[n]);
	else
		return(undefined);
}

function getTimeString(d)
{
	var h = d.getHours();
	var m = d.getMinutes();
	//document.writeln(h)
	if (h=0){
		alert(h);
		return ("");
	}
	else{
		var ampm = "AM";
		if (h > 11)
			ampm = "PM";
		if (h > 12)
			h += -12;
		return (h + ":" + m + " " + ampm);
	}
}

function getTimeString(d)
{
	var h = d.getHours();
	var m = d.getMinutes();
	var ampm = "AM";
	if (h > 11)
		ampm = "PM";
	if (h > 12)
		h += -12;
	if (m < 10)
		m =  "0"+m;
	return (h + ":" + m + " " + ampm);
}
