google.setOnLoadCallback(function() {
    hash = location.hash.replace(/^.*#/, '');
    if (hash.length > 0)
    {
	tabload(hash);
    }
$("#webinarsListHeader .week").click(filterByWeek);
$("#webinarsListHeader .all").click(filterByMonth);
$("#webinarsListHeader .recorded").click(getRecorded);
$(".webinarDetails a.readmore").live("click",readmore);
$(".webinarDetails a.readless").live("click",readless);

});
function tabload(hash)
{
    switch(hash)
    {
	case "all":
	    filterByMonth();
	    break;
	case "week":
	    filterByWeek();
	    break;
	case "recorded":
	    getRecorded();
	    break;
	default:
	    break;
    }
}
function readless()
{
    $(this).hide();
    $($(this).parent()).find(".more").fadeOut();
	$("span.elipsis").show();
    $($(this).parent()).find(".readmore").fadeIn();
    return false;
}

function readmore()
{
    $(this).hide();
    $($(this).parent()).find(".more").fadeIn();
	$("span.elipsis").hide();
    $($(this).parent()).find(".readless").show();
    return false;
}
function filterByMonth()
{
	
	var now = new Date();
	var nextMonth = getNextMonth();
	
	setLoading();
	
	setActiveTab($("#webinarsListHeader .all"));
	var params = {	
			startDate : now.format("m/d/Y H:i:s"),
			endDate : nextMonth.format("m/d/Y H:i:s")
			};
	doGetWebinars(params);
//	return false;
}
function filterByWeek()
{
	
	var now = new Date();
	var nextWeek = getNextWeek();
	setLoading();
	
	setActiveTab($("#webinarsListHeader .week"));
	var params = {
			startDate : now.format("m/d/Y H:i:s"),
			endDate : nextWeek.format("m/d/Y H:i:s")			
	};
	doGetWebinars(params);
	//return false;
}
function getRecorded()
{
    setLoading();
    setActiveTab($("#webinarsListHeader .recorded"));
    var params = {recorded : true};
    doGetWebinars(params);
    //return false;
}
function doGetWebinars(params)
{
	$.post('/async/getwebinars', params , 
			function(data)
			{
				populateWebinarsTable(data);
			},'json');
}
function getNextMonth()
{
	var now = new Date();	
	return new Date(now.getTime() + (31*24*60*60*1000));
}
function getNextWeek()
{
	var now = new Date();
	return new Date(now.getTime() + (7*24*60*60*1000));
}
function populateWebinarsTable(data)
{
	$("#webinarsTable tbody").empty();
	$("#webinarsTable tbody").append(data[0]);
}
function populateSessionDropDown(data)
{
    sessions = [];
    $("#filterbysession").empty();
    for (var i = 0; i < data.length; i++)
    {
	if (!sessions[data[i].sessionName])
	{
	    sessions[data[i].sessionName] = 1;
	    $("#filterbysession").append('<option selected value="'+data[i].sessionName+'">'+data[i].sessionName+'</option>');
	}
    }
    $("#filterbysession").prepend('<option selected value=""  >Select Session Type</option>');
    
}
function setActiveTab(emt)
{
	$("#webinarsListHeader li").removeClass("active");
	$(emt).parent().addClass("active");
}
function setLoading()
{
	$("#webinarsTable tbody").empty();
	$("#webinarsTable tbody").html('<tr class="odd"><td><ul style="list-style-type: none;"><li class="loading"><img src="/images/ajax-loader.gif" /><h2>One moment please...</h2></li></ul></td><td></td><td></td></tr>');
}
function getRowTemplate(dto, stripeClass)
{
	var d = new Date(dto.startDate);
	
	return '<tr class="'+stripeClass+'">'+
	'<td><p class="webinarTime">'+d.format("F j, Y, g:i a")+' Eastern<br/>'+
	'<a class="register" href="'+dto.registerurl+'">register to attend</a>'+
	'</p></td><td>'+
	'<div class="webinarDetails">'+
		'<div class="sessionName">'+dto.sessionName+'</div>'+
		'<div class="description">'+dto.description+'</div>'+
	'</div></td></tr>';	
}
// simulate php date format:
Date.prototype.format=function(format){var returnStr='';var replace=Date.replaceChars;for(var i=0;i<format.length;i++){var curChar=format.charAt(i);if(replace[curChar]){returnStr+=replace[curChar].call(this);}else{returnStr+=curChar;}}return returnStr;};Date.replaceChars={shortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],longMonths:['January','February','March','April','May','June','July','August','September','October','November','December'],shortDays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],longDays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],d:function(){return(this.getDate()<10?'0':'')+this.getDate();},D:function(){return Date.replaceChars.shortDays[this.getDay()];},j:function(){return this.getDate();},l:function(){return Date.replaceChars.longDays[this.getDay()];},N:function(){return this.getDay()+1;},S:function(){return(this.getDate()%10==1&&this.getDate()!=11?'st':(this.getDate()%10==2&&this.getDate()!=12?'nd':(this.getDate()%10==3&&this.getDate()!=13?'rd':'th')));},w:function(){return this.getDay();},z:function(){return"Not Yet Supported";},W:function(){return"Not Yet Supported";},F:function(){return Date.replaceChars.longMonths[this.getMonth()];},m:function(){return(this.getMonth()<11?'0':'')+(this.getMonth()+1);},M:function(){return Date.replaceChars.shortMonths[this.getMonth()];},n:function(){return this.getMonth()+1;},t:function(){return"Not Yet Supported";},L:function(){return"Not Yet Supported";},o:function(){return"Not Supported";},Y:function(){return this.getFullYear();},y:function(){return(''+this.getFullYear()).substr(2);},a:function(){return this.getHours()<12?'am':'pm';},A:function(){return this.getHours()<12?'AM':'PM';},B:function(){return"Not Yet Supported";},g:function(){return this.getHours()%12||12;},G:function(){return this.getHours();},h:function(){return((this.getHours()%12||12)<10?'0':'')+(this.getHours()%12||12);},H:function(){return(this.getHours()<10?'0':'')+this.getHours();},i:function(){return(this.getMinutes()<10?'0':'')+this.getMinutes();},s:function(){return(this.getSeconds()<10?'0':'')+this.getSeconds();},e:function(){return"Not Yet Supported";},I:function(){return"Not Supported";},O:function(){return(this.getTimezoneOffset()<0?'-':'+')+(this.getTimezoneOffset()/60<10?'0':'')+(this.getTimezoneOffset()/60)+'00';},T:function(){return"Not Yet Supported";},Z:function(){return this.getTimezoneOffset()*60;},c:function(){return"Not Yet Supported";},r:function(){return this.toString();},U:function(){return this.getTime()/1000;}};