var theAddress;

$(document).ready(function(){
	var cell = $("tr.header .date");
	var dateColIndex = cell.parent("tr").children().index(cell);
	setCommonSortDefaultColumn(dateColIndex);
	setSecondSortColumn(dateColIndex,"Date");	
	if(typeof(sortTypeMap) != "undefined"){ 		
		sortTypeMap.setItem('date','Date');
		if(selectedMenu == 'Workshops')
			sortTypeMap.setItem('time','WorkshopTime');
		sortTypeMap.setItem('webcastTitle','Text');
		if(selectedMenu != 'Workshops')
			sortTypeMap.setItem('series','Series');
		sortTypeMap.setItem('level','Level');
		sortTypeMap.setItem('location','Text');
	}
	if(typeof(sortColMap) != "undefined"){ 
		$("tr.header td").each(function(){			
			var tdClass = $(this).attr('class');
			if(sortTypeMap.hasItem(tdClass))
				sortColMap.setItem(tdClass,$(this).parent("tr").children().index($(this)));			
		});
	}
	cell = $("tr.header .webcastTitle");
	dateColIndex = cell.parent("tr").children().index(cell);
	//setSecondSortColumn(dateColIndex,"Text");
	clearCheckBoxes();	
	enableRegisterButton();
	theAddress = new $.swim.addresses.Address();
	$("input:checkbox").css({width:"13px",height:"13px"}).wrap('<div></div>').parent().css({float:"left",background:"#dbdbdb", border:"2px #c9c9c9 solid",height:"13px",width:"13px"});

	$("table td.date a").click(function(event){
		event = event || window.event;
		commonSortTable(event, 'Date');
	});
	
	$("table.Y td.date a").click();
});

var guestfname="";
var guestlname="";
var guestemail="";
var remember = "";
var nextEventId = "";
var sapeventid = "";
var playEventId = "";
var webcastAddrId = "";
var textKey = "";
var programId="";
var expiresTime="";
function setRemember(value){	
	if(value == true){		
		remember = "on";
	}else{
		remember = "off";
	}
}
function readCookie(cookieValue){
	remember = "off";
	if(cookieValue.indexOf("remember:true") > -1) remember = "on";
	theAddress = $.swim.addresses.AddressFromCookie(cookieValue);
	return theAddress.clone();
}
function saveCookie(){
	var cookieValues = new StringBuffer();
	cookieValues.append(theAddress.toCookie());
	cookieValues.append(",remember:true");
	var exdate=null;
	if(expiresTime!=""){
		exdate=new Date();
		exdate.setDate(exdate.getDate()+ expiresTime);
	}
	SetCookie("RegFormElements",cookieValues.toString(),exdate);
}
function deleteCookie(){
	SetCookie("RegFormElements", "");
	remember = "off";
}
function submitEvent(title,errors,registrationType,eventType,config){
	if (errors == null){
		theAddress = new $.swim.addresses.Address();
	}	
	var events = getEventsHtml(registrationType,eventType,title);

//	var outHtml = "";
	var registerHtml = registerPrompt(title,events,eventType,errors);
	
	var cookieValue = GetCookie('RegFormElements');
	var configInfo = config;

	if(cookieValue != null) {
		if (cookieValue.length > 0)
			configInfo = readCookie(cookieValue);
	}
	
	$.prompt(registerHtml,{loaded: function(){
		if(eventType=='WS'){
			$("div.jqi").css({"width": 550});
			$("div#submitForm").css({"padding-left": 50}).css({"padding-right": 50});			
		}
		if (registrationType == 'Single'){
			$("div.jqicontainer").find("div.single").hide();
		}
		$(".tooltip").tooltip({
			track: true,
			delay: 0,
			showURL: false,
			opacity: 1,
			fixPNG: true,
			bodyHandler: function() {
				if($(this).find('.tip').length > 0){
					return $(this).find('.tip').html();
				}else if($(this).parent().find("span").attr("title").length > 0){						
					content=$(".tooltipMessages #"+$(this).parent().find("span").attr("title"));				
					return content.html(); 
				}else
					return null;
				
		    },
			extraClass: "tooltipBox",
			//top: -38,
			left: 10		
		});
	    },
		position: 'absolute',
		closeText: 'X Close',
		buttons: { Submit: true, Cancel: false }, 
		callback: function(v,m){
			if(v){
					var key;
					if(remember == 'on') saveCookie();
					else deleteCookie();
					if (title == 'Registration'){
						var xmlDoc = new StringBuffer();
						var fname=m.children('#guestFName');
						xmlDoc.append("<request name=\"eventRegisterRequest\" ",theAddress.toAttributes()," registrationType='",registrationType,"' eventType='",eventType, "' guestfname='",guestfname, "' guestlname='",guestlname, "' guestemail='",guestemail,"' >");
						
						if (registrationType == 'Multiple'){
							$('tr.tdawebcasts_table_rowcontents').each(function(){
								if($(this).find('input.tdawebcasts_checkbox').attr('checked')){
									xmlDoc.append("<event id='",$(this).attr('id'), "' sapeventid='",$(this).attr('sapeventid'),"' programKey='",$.trim($(this).find("td:first").find("span.programId").text()),"'/>");
						          } 
						     });							
						}else if (registrationType == 'Single'){
							xmlDoc.append("<event id='",nextEventId,"' sapeventid='",$(this).attr('sapeventid'),"' programKey='",programId,"'/>");
						}
						xmlDoc.append("</request>");
						registerEventRequest = new CATS.RequestMaker($.swim.uris.getUrl('registerEvent'),
												confirmEvent,null,xmlDoc.toString(),false,null);
						registerEventRequest.loadXMLDoc();
								
					} else if (title == 'Play Recorded Webcast'){
						var queryStr = new StringBuffer();
						if(playEventId == null || playEventId.length < 1) playEventId = nextEventId; 
						queryStr.append("<request name=\"eventRequest\" ",theAddress.toAttributes()," eventId='",playEventId,
								"' registrationType='",registrationType,"' eventType='WC' programId= '",programId,"' registrationRequired ='true' >");
						queryStr.append("</request>");
					//	alert(queryStr);
						playEventRequest = new CATS.RequestMaker($.swim.uris.getUrl('playEvent'),
												confirmPlayEvent,null,queryStr.toString(),false,null);
						playEventRequest.loadXMLDoc();
						
					}
				}else{
					
			}
		}
	}
	);
	activateForm(configInfo);
  }
function removeEvent(eventid){
	$("div.events").find("div#"+eventid).remove();
	$("table.eventstable").find("tr#"+eventid+' input.tdawebcasts_checkbox').attr('checked',false);	
	if ($('tr.header').find('input#selectAllCheckbox').attr('checked')){
		$('tr.header').find('input#selectAllCheckbox').attr('checked',false);
	}	
	if($("div.promtevent").length<=1){
		$("div.promtevent").find("a").hide();
	}
}

function activateForm(configInfo){
	if(configInfo == null) configInfo = new $.swim.addresses.Address();
	$("#countrySel199")
			 .countryList($('span#regionL199'),
					 $('select#regionS199'),
					 $('input#zipRow199'), 
					 $('td#regionR199'));
	var rememberOn = (remember != null && remember == "on");
	$("table#promptTable")
		.find("input.fname").val(configInfo.fname).end()
		.find("input.lname").val(configInfo.lname).end()
		.find("input.emailAddrC").val(configInfo.email).end()
		.find("textarea.addressC").val(configInfo.address).end()
		.find("input.cityC").val(configInfo.city).end()
		.find("input.zipC").val(configInfo.zip).end()
		.find("input.phoneC").val(configInfo.phone).end()
		.find("select.region").attr('st', configInfo.state).end()
		.find("select.countryCode").val(configInfo.country).trigger("change").end()
		.find("input.refferedby").val(configInfo.refferedby).end()
		.find("input.region").val(configInfo.state).end()
		.find("input.guestFName").val(guestfname).end()
		.find("input.guestLName").val(guestlname).end()
		.find("input.guestEmail").val(guestemail).end()
		.find("input#checker").attr('checked', rememberOn);
		if(configInfo.istdaclient=='checked'){		
			$("div.jqicontainer input.istdaclient").click();		
		}

}
function confirmEvent(){
	var xml = this.req.responseXML;
	var root = xml.documentElement;
	var config ;
	var registrationType; 
	var eventType ;
	var events = root.getElementsByTagName("eventRegisterRequest");
	if(events.length > 0){
		events = events[0];
	} else
		events = null;
	
	if (events != null){
		config = 		$.swim.addresses.AddressFromXML($(events));
		registrationType 		= events.attributes.getNamedItem('registrationType').value;
		eventType 		= events.attributes.getNamedItem('eventType').value;
		guestfname 		= events.attributes.getNamedItem('guestfname').value;
		guestlname 		= events.attributes.getNamedItem('guestlname').value;
		guestemail 		= events.attributes.getNamedItem('guestemail').value;
	}	

	var errors = root.getElementsByTagName("Error");
	var message ="";
	if (errors.length > 0){
		errors = errors[0];
	    message = errors.attributes.getNamedItem('message').value;
	}	
		var status = root.getAttribute("status");
		
		var emailAddressText;
		if (textKey == 'td' || textKey == 'TD'){
			emailAddressText = $('div#emailAddressTdaText').html();
		}else{
			emailAddressText = $('div#emailAddressInvestoolsText').html();
		}
		var confirmHtml = new StringBuffer();
		if (status != null){
			if (status == 'success'){
				var events = getEventsHtml(registrationType,eventType,'Registration', status);
				var successEvents = root.getElementsByTagName("successEvents");
				var sEventsCnt = successEvents[0].attributes.getNamedItem('count').value;
				var duplicateEvents = root.getElementsByTagName("duplicateEvents");
				var dEventsCnt = duplicateEvents[0].attributes.getNamedItem('count').value;
				if(eventType=='WS'){
					if (dEventsCnt == 0) {
						confirmHtml.append($('div#workshopconfirm').html());
					} else if (sEventsCnt == 0) {
						confirmHtml.append($('div#workshopalldupconfirm').html());
					} else {
						confirmHtml.append($('div#workshoppartialconfirm').html());
					}
				}else{
					if (dEventsCnt == 0) {
						confirmHtml.append($('div#webcastconfirm').html());
					} else if (sEventsCnt == 0) {
						confirmHtml.append($('div#webcastalldupconfirm').html());
					} else {
						confirmHtml.append($('div#webcastpartialconfirm').html());
					}
				}				
				confirmHtml.append('<div style="padding-top: 10px;">',
						'<br/>',
						'<div class="events">', events.toString() , '</div>','<br/>',
						'<div class="desc cb">',emailAddressText,'</div></div>');
				clearCheckBoxes();
				enableRegisterButton();
				$.prompt(confirmHtml.toString(),{loaded: function(){
					$(".tooltip").tooltip({
						track: true,
						delay: 0,
						showURL: false,
						opacity: 1,
						fixPNG: true,
						bodyHandler: function() {
							if($(this).find('.tip').length > 0){
								return $(this).find('.tip').html();
							}else if($(this).parent().find("span").attr("title").length > 0){						
								content=$(".tooltipMessages #"+$(this).parent().find("span").attr("title"));				
								return content.html(); 
							}else
								return null;
							
					    },
						extraClass: "tooltipBox",
						//top: -38,
						left: 10		
					});
				    },
					position: 'absolute',
					closeText: 'X Close',
					buttons: { Okay: true}});
					
					showDuplicateEventMessage(root);	
				
			}else{
				var result = message.split(",");
				if(result[0]=='emailused'){
					var errorMsgEmailUsed= new StringBuffer();	
					errorMsgEmailUsed.append('You have already registered for the event(s):<br/>');
					for (i=1;i<result.length;i++)
					{
						errorMsgEmailUsed.append(result[i] + '<br/>')
					} 
					message=errorMsgEmailUsed;
				}
				clearCheckBoxes();
				enableRegisterButton();
				confirmHtml.append('<div style="font-size:16px;font-weight:bold">',
						' Registration Problem</div>',
						'<div style="padding-top: 10px;">',
						'<div class="desc" style="position:relative;">' , message , '</div>','</div>');
				$.prompt(confirmHtml.toString(),{
					position: 'absolute',
					closeText: 'X Close',
					buttons: { Okay: true}});
			
			}
		}else{
				submitEvent("Registration",message, registrationType,eventType,config);
				return;
		}
} 
function showDuplicateEventMessage(root){
	var duplicateEvents = root.getElementsByTagName("duplicateEvents");
	var result = duplicateEvents[0].attributes.getNamedItem('events').value.split(",");
	for (i=0;i<result.length;i++){
		if (result[i] != '') {
			$("div.jqicontainer").find("div#"+result[i]+" table").before('<div class="duplicateMessage">This event is already registered.</div>');
		}
	} 

}	
function confirmPlayEvent(){
	var xml = this.req.responseXML;
	var root = xml.documentElement;
	var config ;
	var registrationType; 
	var eventType ;
	var title = 'Play Recorded Webcast';
	var events = root.getElementsByTagName("eventRequest");
	
	if(events.length > 0){
		events = events[0];
	} else
		events = null;

	if (events != null){
		config = 		$.swim.addresses.AddressFromXML($(events));
		registrationType 		= events.attributes.getNamedItem('registrationType').value;
		
		eventType 		= events.attributes.getNamedItem('eventType').value;
		
	}	
	var errors = root.getElementsByTagName("Error");
	var message ="";
	if (errors.length > 0){
		errors = errors[0];
		//alert(errors);
	    message = errors.attributes.getNamedItem('message').value;
		//alert(message);
	}	

	var status = root.getAttribute("status");
	var events = getEventsHtml(registrationType,eventType,title);
	var confirmHtml = new StringBuffer();
	if (status != null){
		//alert(status);
		if (status == 'success'){
			var redirectUrl = root.getAttribute("redirectUrl");
			$.swim.uris.addUrl('playUrl', redirectUrl);
			$.swim.uris.openTab('playUrl');
			$.swim.uris.addUrl('playUrl', '');// un set this just to be safe.
			
		}
	}else{
		submitEvent(title,message, registrationType,eventType,config);
		return;
	}
}		

function joinEvent(title,id,config,errors){	
	var title = $("div#"+id).find('span.webcastTitle').html();
	var eventDate = $("div#"+id).find('span.eventDate').html();
	var instructor = $('div#'+id).find('span.instructor').html();
	var webcastTitle = $("div#"+id).find('span.webcastTitle').html();
	var series=$("div#"+id).find('.presenter').html();
	var joinEventId = id;
	programId=$("div#"+id).find('span.programId').html();
	var regInfo = new StringBuffer();
   	regInfo.append('<div class="promtevent"id=',joinEventId,'><table width="100%">');
   	regInfo.append('<tr><td width="80%"><b>',webcastTitle,'</b></td><td width="20%"></td></tr>');
	regInfo.append('<tr><td>',eventDate, '&nbsp;</td><td></td></tr>');
	regInfo.append('<tr><td>Presented by:</td><td></td></tr>');
	regInfo.append('<tr><td>',series,'</td><td></td></tr>');					    	
   	regInfo.append('</table></div>');
	
	var joinHtml = registerPrompt("Join Live Webcast",regInfo,eventType,errors);
	var eventType = id;
	var cookieValue = GetCookie('RegFormElements');
	var configInfo = config;
	if(cookieValue != null) {
		if (cookieValue.length > 0)	configInfo = readCookie(cookieValue);
	}
	
	
	$.prompt(joinHtml,{ loaded: function(){
		$(".tooltip").tooltip({
			track: true,
			delay: 0,
			showURL: false,
			opacity: 1,
			fixPNG: true,
			bodyHandler: function() {
				if($(this).find('.tip').length > 0){
					return $(this).find('.tip').html();
				}else if($(this).parent().find("span").attr("title").length > 0){						
					content=$(".tooltipMessages #"+$(this).parent().find("span").attr("title"));				
					return content.html(); 
				}else
					return null;
				
		    },
			extraClass: "tooltipBox",
			//top: -38,
			left: 10		
		});
	    },
		position: 'absolute',
		closeText: 'X Close',
		buttons: { Submit: true, Cancel: false }, 
		callback: function(v,m){
			if(v){
				if(remember == 'on') saveCookie();
				else deleteCookie();
				var queryStr = new StringBuffer();
				queryStr.append("<request name=\"eventRequest\" ",theAddress.toAttributes()," eventId='",joinEventId,"' eventType='WC' programId= '",programId,"' registrationRequired ='true'>");
				
				queryStr.append("</request>");
				joinEventRequest = new CATS.RequestMaker($.swim.uris.getUrl('joinEvent'),
											confirmJoinEvent,null,queryStr.toString(),false,null);
				joinEventRequest.loadXMLDoc();
			}
		}
	}
	);
	activateForm(configInfo);
}

function confirmJoinEvent(){
	var xml = this.req.responseXML;
	var root = xml.documentElement;
//	alert(this.req.responseText);
	var config ;
	var registrationType; 
	var eventType ;
	var eventId ;
	var title = 'Join Live Webcastt';
	var events = root.getElementsByTagName("eventRequest");
	
	if(events.length > 0){
		events = events[0];
	} else
		events = null;

	if (events != null){
		config = 		$.swim.addresses.AddressFromXML($(events));
		
		eventType 		= events.attributes.getNamedItem('eventType').value;
		eventId 		= events.attributes.getNamedItem('eventId').value;
	}	
	var errors = root.getElementsByTagName("Error");
	var message ="";
	if (errors.length > 0){
		errors = errors[0];
	    message = errors.attributes.getNamedItem('message').value;
		//alert(message);
	}	

		var status = root.getAttribute("status");
		if (status != null){
			if (status == 'success'){
				var redirectUrl = root.getAttribute("redirectUrl");
				//alert(redirectUrl);
				$.swim.uris.addUrl('joinUrl', redirectUrl);
				$.swim.uris.openTab('joinUrl');
				$.swim.uris.addUrl('joinUrl', ''); // just to be safe.
			}
		}else{
			joinEvent(title,eventId,config,message);
			return;
		}
}

function getEventsHtml(registrationType,eventType,title, status){
	var displayName ;
	var webcastTitle;
	var webcastDate;
	var webcastTime;
	var instructor ;
	var eventid;
	var location;
	var events = new StringBuffer();
	// The event type is used to distinguish if multiple events are selected from upcomingEvents or a single event is selected in nextevent.jsp or eventDetail.jsp
	if (registrationType == 'Multiple'){
		if (title == 'Registration'){
			var eventIds = getSelectedEvents();
			if (eventIds.length > 0){
					$('tr.tdawebcasts_table_rowcontents').each(function(){  
				        if($(this).find('input.tdawebcasts_checkbox').attr('checked')){		 
				        	displayName = $(this).attr('categoryName');
					       	webcastTitle=$(this).find('span.webcastTitle').html();
					       	webcastDate=$(this).find('td.date').html();
					       	webcastTime=$(this).find('td.time').html();
					       	series=$(this).find('td.presenter').html();
					       	location=$(this).find('td.location').html();
					       	eventid=$(this).attr('id');
					       	textKey = series;
					       	var regInfo = new StringBuffer();
					       	regInfo.append('<div class="promtevent"id=',eventid,'><table width="100%">');
					        if(eventType=="WS"){
					       		regInfo.append('<tr><td width="60%"><b>',webcastTitle,'</b></td><td width="40%" align="right"><b>Location:&nbsp;</b>',location,'</td></tr>');
					       	}else{
					       		regInfo.append('<tr><td><b>',webcastTitle,'</b></td><td width="70px;" align="right"></td></tr>');
					       	}
					    	regInfo.append('<tr><td>',webcastDate, '&nbsp;' , webcastTime ,'</td><td></td></tr>');
					    	regInfo.append('<tr><td>Presented by:</td><td></td></tr>');
					    	if(eventIds.length>1){
					    		if(status != 'success')
					    			regInfo.append('<tr><td>',series,'</td><td align="right"><a onclick="removeEvent(',eventid,');" href="javascript: void(0)"><img src="/common/images/remove_btn_green.png" /></a></td></tr>');
					    		else
					    			regInfo.append('<tr><td>',series,'</td><td></td></tr>');
					    	}else{
					    		regInfo.append('<tr><td>',series,'</td><td></td></tr>');
					    	}
					       	regInfo.append('</table></div>');
				        	events.append(regInfo.toString());
				        } 
				   });
				}
		}else if (title == 'Play Recorded Webcast'){			
			webcastTitle =$('tr#'+eventType).find('span.webcastTitle').html();
			programId =$('tr#'+eventType).find('span.programId').html();
			webcastDate = $('tr#'+eventType).find('.date').html();
			webcastTime =$('tr#'+eventType).find('.time').html();
			playEventId = $('tr#'+eventType).attr('id');
	       	series = $('tr#'+eventType).find('.presenter').html();
	       	nextEventId=$("div.eventdetail").attr('id');	       
	       	location=$("div.eventdetail").find('.location').html();
	       	var regInfo = new StringBuffer();
	       	regInfo.append('<div class="promtevent"id=',nextEventId,'><table width="100%">');	      
	       	if(eventType=="WS"){
	       		regInfo.append('<tr><td width="60%"><b>',webcastTitle,'</b></td><td width="40%" align="right"><b>Location:&nbsp;</b>',location,'</td></tr>');
	       	}else{
	       		regInfo.append('<tr><td><b>',webcastTitle,'</b></td><td width="70px;" align="right"></td></tr>');
	       	}
	    	regInfo.append('<tr><td>',webcastDate, '&nbsp;' , webcastTime ,'</td><td></td></tr>');
	    	regInfo.append('<tr><td>Presented by:</td><td></td></tr>');
	    	regInfo.append('<tr><td>',series,'</td><td></td></tr>');					    	
	       	regInfo.append('</table></div>');
	        events.append(regInfo.toString());
		}
	}else if (registrationType == 'Single'){			
	       	webcastTitle=$("div.eventdetail").find('span.webcastTitle').html();
	       	programId =$("div.eventdetail").find('span.programId').html();
	       	webcastDate=$("table.eventDetails").find('span.eventDate').html();
	       	webcastTime=$("table.eventDetails").find('td.time').html();
	       	series=$("div.eventdetail").find('td.presenter').html();
	       	nextEventId=$("div.eventdetail").attr('id');
	       	sapeventid=$("div.eventdetail").find('span.sapeventid').html();
	       	location=$("div.eventdetail").find('span.location').html();
	       	textKey = series;
	       	var regInfo = new StringBuffer();
	       	regInfo.append('<div class="promtevent"id=',nextEventId,'><table width="100%">');
	       	if(eventType=="WS"){
	       		regInfo.append('<tr><td width="60%"><b>',webcastTitle,'</b></td><td width="40%" align="right"><b>Location:&nbsp;</b>',location,'</td></tr>');
	       	}else{
	       		regInfo.append('<tr><td ><b>',webcastTitle,'</b></td><td width="70px;" align="right"></td></tr>');
	       	}
	    	regInfo.append('<tr><td>',webcastDate, '&nbsp;' , webcastTime ,'</td><td></td></tr>');
	    	regInfo.append('<tr><td>Presented by:</td><td></td></tr>');
	    	regInfo.append('<tr><td>',series,'</td><td></td></tr>');					    	
	       	regInfo.append('</table></div>');
	    	events.append(regInfo.toString());
	}
	return events;
}


function registerPrompt(title, events, eventType, errors) {	
	var registerForm = $('div#registerForm').html();
	var webcastAddrId = $('div#registerForm').attr('webcastId');
	
	registerForm = registerForm.replace('sourceTable', 'promptTable');
	
	while(registerForm.indexOf(webcastAddrId) > -1)
		registerForm = registerForm.replace(webcastAddrId, '199');
	
	var registerStr = new StringBuffer();
	var desc = "";
	if (title == 'Registration')
		desc = "Please submit contact information to register ";
	else
		desc = "Please submit contact information for access";
	registerStr.append('<div>');
	if (title == 'Registration'){
		if(eventType=='WS'){
			registerStr.append($('div#workshopregistration').html());
		}else{
			registerStr.append($('div#webcastregistration').html());					
		}
	}else{
		registerStr.append('<div style="font-size:11px;float:right;padding-right:10px;">* Required Fields</div>',
				  '<span style="font-size:16px;font-weight:bold">' , title , '</span>',
				  '<div style="padding-top: 20px;"></div>');
	}
	registerStr.append('<div style="padding-top:10px;"><div class="events">' , events.toString() , '</div><div style="border-top:3px solid #D0D0D0;"></div>');
	if(eventType=='WS'){		
		registerStr.append('<div class="desc b" style="padding-top:10px">', desc ,'</div>');
		registerStr.append('<div class="desc" style="padding-top:10px">Because one or more of the events you have selected are scheduled at a physical location all items marked with an asterisk are required.</div></div>');
	}
	else{
		registerStr.append('<div class="desc b" style="padding-top:10px">', desc ,'</div></div>');
	}
	
	if (errors == null){			
		registerStr.append('<div id="submitForm" webcastId="" style="padding-top:10px; width:430px;">', registerForm , '</div>');
	}else{
		registerStr.append('<div style="padding-top:10px; font-weight:bold;color:red">*', errors , '</div><div id="submitForm" style="padding-top:10px;width:430px;" webcastId="" >' ,  registerForm , '</div>');
		
	}
	registerStr.append('</div>');
	return registerStr.toString();			
	
}

function getSelectedEvents(){
	var eventList = new Array();
	$('tr.tdawebcasts_table_rowcontents').each(function(){
		if($(this).find('input.tdawebcasts_checkbox').attr('checked')){ 
               eventList.push($(this).attr('id')); 
          } 
     });
    
	return eventList;
}

function enableRegisterButton(){
	var eventsChecked = getSelectedEvents();
	var rowCount = getRowCount();	
	if (eventsChecked.length < rowCount)
		$('input#selectAllCheckbox').attr('checked',false);
	
	if (eventsChecked.length > 0){
		$('div#enableButton').show();
		$('div#disableButton').hide();
	}else{
		$('input#selectAllCheckbox').attr('checked',false);
		$('div#enableButton').hide();
		$('div#disableButton').show();
	}
}



function closeW(){
	window.opener = self;
	window.close();
} 

function clearCheckBoxes(){
	$('tr.header')
	.find('input#selectAllCheckbox').attr('checked',false);
	$('tr.tdawebcasts_table_rowcontents')
		.find('input.tdawebcasts_checkbox').attr('checked',false);
}

function checkAll(){
	if (!$('input#selectAllCheckbox').attr('checked')){
		if ($('tr.tdawebcasts_table_rowcontents').find('input.tdawebcasts_checkbox').attr('checked')){
			$('tr.tdawebcasts_table_rowcontents').find('input.tdawebcasts_checkbox').attr('checked',false);
		}
	}else{
		$('tr.tdawebcasts_table_rowcontents').find('input.tdawebcasts_checkbox').attr('checked',true);
	}
	enableRegisterButton();
}
function getRowCount(){
	var rowCount = 0;
	$('tr.tdawebcasts_table_rowcontents').each(function(){
		if($(this).find('input.tdawebcasts_checkbox').length>0){
			rowCount ++;
		}
     });
	return rowCount;
}
function td_getETDate(serverTime){
	
		//offset for East coast time
	    var offset = gl_getETOffset();
	    var zone = "ET";
		
		var now = new Date();
		now.setTime(serverTime);

		//utc = current time + offset (the offset is mins so convert to millisec x60x1000)
		//add/sub the timezone to which we want to convert (convert hours to millisec x60x60x1000) 
		var newZoneTimeInMilliSec = now.getTime() + now.getTimezoneOffset() * 60000 + offset * 3600000;
		var newZoneTime = new Date(newZoneTimeInMilliSec);
		
		var dayOfWeek = newZoneTime.getDay();
		
		var dateString = gl_getMonth(newZoneTime) + ' ' + newZoneTime.getDate() +  ' ' + gl_getDayOfWeek(newZoneTime);
	    return dateString;
}

function showGuestDetails(){
	$("div.jqicontainer div.guest").toggle("slow"); 
}
function withoutRegistration(eventid,programId,title){
	var queryStr = new StringBuffer();
	if(title =='play'){
		queryStr.append("<request name=\"eventRequest\" eventId='",eventid,"' programId= '",programId,"' registrationRequired ='false' >");
		queryStr.append("</request>");
	//	alert(queryStr);
		playEventRequest = new CATS.RequestMaker($.swim.uris.getUrl('playEvent'),
				confirmwithoutRegistrationEvent,null,queryStr.toString(),false,null);
		playEventRequest.loadXMLDoc();
		
	}else{	
		queryStr.append("<request name=\"eventRequest\" eventId='",eventid,"' programId= '",programId,"' registrationRequired ='false'>");		
		queryStr.append("</request>");
		joinEventRequest = new CATS.RequestMaker($.swim.uris.getUrl('joinEvent'),
				confirmwithoutRegistrationEvent,null,queryStr.toString(),false,null);
		joinEventRequest.loadXMLDoc();
	}
}

function confirmwithoutRegistrationEvent(){
	var xml = this.req.responseXML;
	var root = xml.documentElement;	
	var errors = root.getElementsByTagName("Error");
	var message ="<div style='text-align: center;'>";
	if (errors.length > 0){
		errors = errors[0];
		//alert(errors);
	    message = message+errors.attributes.getNamedItem('message').value;
		//alert(message);
	}	
	 message = message+"</div>";
	var status = root.getAttribute("status");	
	if (status != null){
		//alert(status);
		if (status == 'success'){
			var redirectUrl = root.getAttribute("redirectUrl");
			//var Archived = root.getAttribute("Archived");
			//var CustomEvent = root.getAttribute("CustomEvent");
		    	$.swim.uris.addUrl('playUrl', redirectUrl);
		      	$.swim.uris.openTab('playUrl');
		      	$.swim.uris.addUrl('playUrl', '');// un set this just to be safe.
		}
	}else{
		$.prompt(message.toString(),{
			position: 'absolute',			
			buttons: { Okay: true}});
	}
}

function compareWorkshopTime(v1, v2, fSortAsc){	
	 var r;	
	 	if(v1.indexOf("-") != -1)
	 		v1=v1.substring(0,(v1.indexOf("-")-1));
	 	if(v2.indexOf("-") != -1)
			 v2=v2.substring(0,(v2.indexOf("-")-1));
	    var s1 = new Date(Date.parse(v1));
	    var s2 = new Date(Date.parse(v2));
	    var t1 = new Date("1/1/2007 " +s1.toLocaleTimeString());
	    var t2 = new Date("1/1/2007 " +s2.toLocaleTimeString());	
	    if (t1 < t2)
	        r = (fSortAsc) ? -1 : +1;
	    else if (t1 > t2)
	        r = (fSortAsc) ? +1 : -1;
	    else
	        r = 0;
	    return r;
}
function compareTime(v1, v2, fSortAsc){	
	 var r;	
	    var s1 = new Date(Date.parse(v1));
	    var s2 = new Date(Date.parse(v2));
	    var t1 = new Date("1/1/2007 " +s1.toLocaleTimeString());
	    var t2 = new Date("1/1/2007 " +s2.toLocaleTimeString());	
	    if (t1 < t2)
	        r = (fSortAsc) ? -1 : +1;
	    else if (t1 > t2)
	        r = (fSortAsc) ? +1 : -1;
	    else
	        r = 0;
	    return r;
}

function compareLevel(v1, v2, fSortAsc){
	 return compareNumber(getLevelValue(v1), getLevelValue(v2), fSortAsc);
}

function getLevelValue(key){
	var str = $.trim(key).toLowerCase();
	var str1 = "beginner";
	var str2 = "advanced";
	var str3 = "expert";
	if(str1.indexOf(str) != -1){
	    return 1+" ";
	}else if(str2.indexOf(str) != -1){
	    return 2+" ";
	}else if(str3.indexOf(str) != -1){
	    return 3+" ";
	}
	
	return 0+" ";
	
}

function compareSeries(v1, v2, fSortAsc){	
	 return compareNumber(programMap.getItem($.trim(v1)), programMap.getItem($.trim(v2)), fSortAsc);
}
