var EventTypeTools = function() {
	return {
		'getlistingdetailrows_td' : function( tbody,e ) {

				if ( !e.list_tech_id ) {
					return tbody;
				}

				var l = FlexCalListings.get( e.list_tech_id );
				if (!l) return tbody;
				
				var str = "<b>" + l[ 'list_nbr' ] + "</b><br>";
				if ( l['addr'] )
					str += l['addr'] + "<br>";
		
				var tr = document.createElement('tr');
				tr.className = "event_bubble_row";
				var td = document.createElement('td');
				td.className = "event_bubble_label";
				td.innerHTML = "&nbsp;";
				tr.appendChild( td );
				td = document.createElement('td');
				td.className = "event_bubble_info";				
				td.innerHTML = str;
				tr.appendChild(td);
				tbody.appendChild(tr);
			
				var fields = ['listing_agent','co_list_agent'];
				var labels = ['Agent:','Co-Agent:'];
				for (var x = 0; x < fields.length; x++) {
					if (!l[ fields[x] ] ) continue;
					var tr = document.createElement('tr');
					tr.className = "event_bubble_row";
					var td = document.createElement('td');
					td.className = "event_bubble_label";
					td.innerHTML =  labels[x];
					tr.appendChild( td );
					td = document.createElement('td');
					td.className = "event_bubble_info";
					td.innerHTML = l[ fields[x] ];
					tr.appendChild(td);
					tbody.appendChild(tr);
				}
				return tbody;
		},
		'getlistingdetailrows' : function( div,e, from ) {
				var agenda_indent = 75;
				if ( !e.list_tech_id ) {
					return div;
				}

				var l = FlexCalListings.get( e.list_tech_id );
				if (!l) return tbody;
				
				var outer_div = document.createElement('div');
				outer_div.className = "event_detail_section_div";
				
				var span = document.createElement("span");
				span.appendChild( document.createTextNode(l['list_nbr']));
				span.className = "event_detail_span_bold";
				if (from == 'agenda') span.style.marginLeft = agenda_indent;
				outer_div.appendChild( span );
				
				if (l['addr1line']) {
					span = document.createElement("span");
					span.appendChild(document.createTextNode(l['addr1line']));
					span.className = "event_detail_span";
					outer_div.appendChild( span );
				}
				div.appendChild(outer_div);
				
				outer_div = document.createElement('div');
				outer_div.className = "event_detail_section_div";				
				
				span = document.createElement("span");
				span.appendChild( document.createTextNode(l['listing_agent']) );
				if (from == 'agenda') span.style.marginLeft = agenda_indent;
				span.className = "event_detail_span";
				
				if ( l['co_list_agent'] ) {
					span.appendChild( document.createTextNode(" & " + l['co_list_agent']) );
				}
				outer_div.appendChild( span );

				div.appendChild( outer_div );

				return div;
		},
		'getwhodetailrows' : function( tbody, e, owner ) {
			if ( e.handler_obj.scheduled_by && e.handler_obj.scheduled_for &&  
			     e.handler_obj.scheduled_by.tech_id != e.handler_obj.scheduled_for.tech_id ) {			
				if ( owner == e.handler_obj.scheduled_for.tech_id  ) {
					var tr = document.createElement('tr');
					tr.className = "event_bubble_row";
					var td = document.createElement('td');
					td.className = "event_bubble_label";
					td.innerHTML =  "Creator:";
					tr.appendChild( td );
					td = document.createElement('td');
					td.className = "event_bubble_info";				
					td.innerHTML = e.handler_obj.scheduled_by.name;
					tr.appendChild(td);
					tbody.appendChild(tr);				
				}
				else {
					var tr = document.createElement('tr');
					tr.className = "event_bubble_row";
					var td = document.createElement('td');
					td.className = "event_bubble_label";
					td.innerHTML =  "For:";
					tr.appendChild( td );
					td = document.createElement('td');
					td.className = "event_bubble_info";				
					td.innerHTML = e.handler_obj.scheduled_for.name;
					tr.appendChild(td);
					tbody.appendChild(tr);
				}
			}
			return tbody;			
		},
		'getdateobj' : function( date, resetTime ) {
			var today = new Date();

			if ( typeof date == 'string' ) {
				var d_arr = date.split("/");
				date = {date:parseInt(d_arr[1],10), month:parseInt(d_arr[0],10), year:parseInt(d_arr[2],10)};
			}

			if ( date && date.date ) {
				today.setDate(date.date);
				today.setMonth(date.month);
				today.setYear(date.year);
			}
			if (resetTime) {
				today.setHours(1);
				today.setMinutes(0);
				today.setSeconds(0);
			}
			return today;
		}
	}
}();

function return_from_feedback() {
		return ShowingTimeEvent.return_from_feedback();
}

function return_from_feedback_request() {
	return ShowingTimeEvent.return_from_feedback_request();
}

var ShowingTimeEvent = function() {
	return {
		'no_end_time' : true,
		'subtypelabels' : [/*'seller',*/'seller_agent','buyer_agent'],		
		'recent_feedback' : [],
		'owed_feedback' : [],
		'needed_feedback' : [],
		'process_feedback_message' : function(msg) {
			var new_msg = msg + "";
			new_msg = new_msg.replace(/\\r\\n/g,"\\n").replace(/\\n+/g,"");

			var buyer_interest = "";
			var buyer_feedback = "";
			var agent_feedback = "";


			var buyer_int_i = -1;
			if ( new_msg.indexOf( "Buyer interest:" ) >= 0 ) {
				buyer_int_i = new_msg.indexOf( "Buyer interest:" ) + "Buyer interest:".length;
				buyer_interest = new_msg.substr( buyer_int_i, new_msg.indexOf("Buyer observations and feedback:") - buyer_int_i );
				buyer_interest = buyer_interest.replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/\\n/g,"<br>");
			}
				
			var buyer_feedback_i = -1;
			if ( new_msg.indexOf( "Buyer observations and feedback:" ) >= 0 ) {
				buyer_feedback_i = new_msg.indexOf( "Buyer observations and feedback:" ) + "Buyer observations and feedback:".length;
				buyer_feedback = new_msg.substr( buyer_feedback_i, new_msg.indexOf("Member observations and comments:") - buyer_feedback_i );
				buyer_feedback = buyer_feedback.replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/\\n/g,"<br>");
			}
				
			var agent_feedback_i = -1;
			if ( new_msg.indexOf( "Member observations and comments:" ) >= 0 ) {
				agent_feedback_i = new_msg.indexOf( "Member observations and comments:" ) + "Member observations and comments:".length;
				agent_feedback = new_msg.substr( agent_feedback_i, new_msg.indexOf("----------") - agent_feedback_i );
				agent_feedback = agent_feedback.replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/\\n/g,"<br>");
			}
			
			return {
				buyer_interest: buyer_interest,
				buyer_feedback: buyer_feedback,
				agent_feedback: agent_feedback
			};
		},
		'attach_feedback_to_event' : function(which, tech_id, feedback ) {
			if (this[which]) {
				for (var x = 0; x < this[which].length; x++) {
					if ( this[which][x].tech_id == tech_id ) {
						if (!this[which][x].handler_obj.feedback) this[which][x].handler_obj.feedback = [];
						this[which][x].handler_obj.feedback.push( feedback );
						break;
					}
					
				}
			}
			return this;
		},
		'addFeedbackEvent' : function(which, day, event) {
			if ( this[which] ) {
				if (typeof day == 'string') {
					var d = day.split("/");
					day = {month:(parseInt(d[0],10)-1), date:parseInt(d[1],10), year:parseInt(d[2],10)};
				}
				event.registerDay( day );				
				for (var x = 0; x < this[which].length; x++) {
					if (this[which].tech_id == event.tech_id)
						return this;
				}
				this[which].push( event );
			}
			return this;
		},
		'removeFeedbackEvent' : function( which, event, new_count, updateCal ) {
			if (!event) {
				event = this.current_event;
				this.current_event = null;
			}
			if ( this[which] ) {
				for (var x = 0; x < this[which].length; x++) {
					if (this[which][x].tech_id == event.tech_id) {
						this[which].splice(x,1);
						break;
					}
				}
			}

			if (updateCal) {
				var cal_iface = hCalIface.get();
				var cal = cal_iface.getCalendar();

				var day = cal.findDay(event.getDay());
				event.handler_obj.feedback_count = new_count ? new_count : 0;
				event.setActionNeeded( false );
				if (typeof day.addEvent === 'function')
					day.addEvent(event);
				cal_iface.redrawCurrentCalendar();
			}

			return this;			
		},
		'return_from_feedback' : function() {
			return this.removeFeedbackEvent('owed_feedback', null, 1, true);			
		},
		'return_from_feedback_request' : function() {
			return this;
		},
		'closeaction': function( update_event, date ) {
			var elem = '';
			if (elem = document.getElementById('calendar_iframe_shim'))
				elem.parentNode.removeChild( elem );
			if (elem = document.getElementById( 'showing_approve_frame' ) )
				elem.parentNode.removeChild( elem );
				
			if (this.current_event && update_event) {
				this.current_event.resetDayEvents( [date] );
				this.current_event = null;
			}
		},
		'onaction' : function( e, id, mode) {
			var shim = "";
			if (!mode || mode == 'confirm_reject') {
				
				if (document.getElementById('calendar_iframe_shim')) {
					shim = document.getElementById('calendar_iframe_shim');
					shim.style.display = "";
				}
				else {
					shim = document.createElement('div');
					shim.id = "calendar_iframe_shim";
					document.getElementById(id).appendChild(shim);
				}
				shim.style.height = "100%";
				shim.style.width = "100%";
				var iframe;
				
				if (!(iframe = document.getElementById('showing_approve_frame'))) {
					iframe = document.createElement('iframe');
					iframe.id = "showing_approve_frame";
					iframe.scrolling = "no";
					iframe.frameBorder = 0;
					document.getElementById(id).appendChild(iframe);
				}
				
				var height = 400;
				
				if ( !isNaN( shim.clientHeight ) && shim.clientHeight > height ) {
					height = shim.clientHeight - 20;
					if (height < 350) height = 350;
					else if ( height > 700 ) height = 700;
				}
				
				iframe.style.height = height;
				iframe.style.width = 570;

				this.positionaction();
				iframe.src = "mainmenu.cgi?cmd=srv+message/showing_response/approve.html&height="+(height - 25)+"&command_line_mode=true&from=calendar&event_id=" + e.tech_id;
			}
			else if ( mode == 'request_feedback' ) {
				var showingID = e.tech_id;
				var listing_id = e.list_tech_id;
				openNewMsg( { "msgTyp": "reqShowingFdbk", 
				              "showingId": showingID, 
							  "lstgs":[ { "id":listing_id } ]/*,
							  "funcCallA": 'return_from_feedback'*/ } );
			}
			else if (mode == 'send_feedback') {
				var showingID = e.tech_id;
				var listing_id = e.list_tech_id;
				openNewMsg( { "msgTyp": "showingFdbk", 
				              "showingId": showingID, 
							  "lstgs":[ { "id":listing_id } ],
							  "funcCallA": 'return_from_feedback' } );
			}
			else if ( mode == 'dismiss_feedback' ) {
				if ( confirm("Are you sure you no longer wished to be notified of this event?") ) {
					loadJavaScriptDoc('querystring','mainmenu.cgi',"cmd=srv+flexcal/dismiss_showing.html&e="+encodeURIComponent( e.tech_id )+"&t="+e.handler_obj.type,true);
				}
			}
			this.current_event = e;
		},
		'positionaction': function( id ) {
			var iframe = document.getElementById('showing_approve_frame');
			var shim = document.getElementById('calendar_iframe_shim');			
			if (iframe && shim) {
				var cal = hCalIface.get().getAttachToId();
				var sTop = 0;
				if (cal && (cal = document.getElementById( cal ) ) ) {
					
					sTop = cal.scrollTop;
				}
				if ( isNaN(sTop) ) sTop = 0;
				iframe.style.top = (shim.clientHeight / 2) - (iframe.clientHeight / 2) + sTop;
				iframe.style.left = (shim.clientWidth / 2) - (iframe.clientWidth / 2);			
			}
		},
		'actionflag' : function( e ) {
			var today = EventTypeTools.getdateobj(null, true);
			var t_event_date = e.getDay();
			var event_date = EventTypeTools.getdateobj( t_event_date, true);
			var src = title = "";
			if ( e.handler_obj.feedback_count < 1 && event_date.getTime() < today.getTime() )  {
				src = "/images/about_16.gif";
				title = "This showing is awaiting feedback";
			}
			else if ( e.actionNeeded() == 'senderConfirm' ||  e.actionNeeded() == 'recipConfirm') {
				src = "/images/assign_16.gif";
				title = "A request to reschedule this appoint has been made";
			}
			var img = "";
			if (src) {
				img = document.createElement('img');
				img.src = src;
				img.title = title;
				img.style.marginTop = 2;
			}
			return img;
		},
		'actionelem' : function( e, id ) {
			var today = EventTypeTools.getdateobj(null, true);
			var t_event_date = e.getDay();
			var event_date = EventTypeTools.getdateobj( t_event_date, true);
			
			var a = document.createElement("a");			
			if ( e.handler_obj.feedback_count < 1 && event_date.getTime() < today.getTime() )  {
				if (e.handler_obj.type == "seller_agent") {
					a = document.createElement("span");
					var a1 = document.createElement("a");
					a1.onclick = function(){
						ShowingTimeEvent.onaction( e, id, 'request_feedback' );
					}
					a1.href = "javascript:void(0);";
					var img = document.createElement('img');
					img.src = "/images/alarm_16.png";
					img.height = 12;
					img.width = 12;
					img.border = 0;
					img.style.marginRight = 5;
					a1.appendChild(img);
					a1.appendChild(document.createTextNode("Request feedback"));
					a.appendChild(a1);
					
					a.appendChild(document.createElement("br"));
					
					a1 = document.createElement("a");
					a1.onclick = function(){
						ShowingTimeEvent.onaction(e, id, 'dismiss_feedback');
					}
					a1.href = "javascript:void(0);";
					var img = document.createElement('img');
					img.src = "/images/stop_16.png";
					img.height = 12;
					img.width = 12;
					img.border = 0;
					img.style.marginRight = 5;
					a1.appendChild(img);
					a1.appendChild(document.createTextNode("Do not notify me again"));
					a.appendChild(a1);
				}
				else if (e.handler_obj.type == "buyer_agent") {
					a = document.createElement("span");
					var a1 = document.createElement("a");
					a1.onclick = function(){
						ShowingTimeEvent.onaction( e, id, 'send_feedback' );
					}
					a1.href = "javascript:void(0);";
					var img = document.createElement('img');
					img.src = "/images/edit_16.png";
					img.height = 12;
					img.width = 12;
					img.border = 0;
					img.style.marginRight = 5;
					a1.appendChild(img);
					a1.appendChild(document.createTextNode("Send feedback"));
					a.appendChild(a1);
					
					a.appendChild(document.createElement("br"));
					
					a1 = document.createElement("a");
					a1.onclick = function(){
						ShowingTimeEvent.onaction(e, id, 'dismiss_feedback');
					}
					a1.href = "javascript:void(0);";
					var img = document.createElement('img');
					img.src = "/images/stop_16.png";
					img.height = 12;
					img.width = 12;
					img.border = 0;
					img.style.marginRight = 5;
					a1.appendChild(img);
					a1.appendChild(document.createTextNode("Do not notify me again"));
					a.appendChild(a1);
				}
			}			
			else {
				a.onclick = function(){ ShowingTimeEvent.onaction( e, id, 'confirm_reject' ); }
				a.href = "javascript:void(0);";
				var img = document.createElement('img');
				
				if ( e.actionNeeded() == 'senderConfirm' || e.actionNeeded() == 'recipConfirm' ) {
					img.src = "/images/assign_12.gif";
				}
				else
					img.src = "/images/error_12.png";
				img.border = 0;
				img.style.marginRight = 5;
				a.appendChild( img );
				a.appendChild( document.createTextNode( "Confirm, Reject, or Reschedule this Appointment" ) );
			}

			return a;
		},
		'getcolor': function( e, type ) {
			var t = null;
			if ( e && e.handler_obj && e.handler_obj.type) t = e.handler_obj.type;
			else if ( type) t = type;
			switch (t) {
				case 'seller':
				case 'seller_agent':
					return {color:"#FFEFDB",label:"Showings"};
				case 'buyer':
				case 'buyer_agent':
					return {color:"#E0FFFF",label:"Showing Requests"};
			}
			return '';
		},
		'geteventtitle': function( e, from ) {
			var span = null;
			
			var l = FlexCalListings.get( e.list_tech_id );			

			switch ( e.handler_obj.type ) {
				case 'seller':
				case 'seller_agent':
					var t_event_date = e.getDay();
					var event_date = EventTypeTools.getdateobj( t_event_date, true);
					var today = EventTypeTools.getdateobj(null,true);		
					if ( !e.actionNeeded() || ( event_date.getTime() < today.getTime() ) ) {
						var span = document.createElement('span');
						span.appendChild( document.createTextNode( ' Showing of ' ) );
						
						var s = document.createElement("span");
						s.appendChild( document.createTextNode( l.addr1line ) );
						s.className = "flexcal_span_bold_pad";
						span.appendChild( s );

						if ( from != 'month' ) {
							span.appendChild( document.createTextNode( " (MLS# " + l.list_nbr + ") " ) );
							if ( e.handler_obj.agent && e.handler_obj.agent.name  ) {
								span.appendChild( document.createTextNode( " by " ) );
								s = document.createElement("span");
								s.appendChild( document.createTextNode( e.handler_obj.agent.name ) );
								s.className = "flexcal_span_bold_pad";
								span.appendChild( s );
							}
						}
					}
					else {
						var span = document.createElement('span');
						span.appendChild( document.createTextNode( ' Request for showing of ' ) );

						var s = document.createElement("span");
						s.appendChild( document.createTextNode( l.addr1line ) );
						s.className = "flexcal_span_bold_pad";
						span.appendChild( s );

						if ( from != 'month' ) {
							span.appendChild( document.createTextNode( " (MLS# " + l.list_nbr + ") " ) );
							if ( e.handler_obj.agent.name ) {
								span.appendChild( document.createTextNode( " from " ) );
								s = document.createElement("span");
								s.appendChild( document.createTextNode( e.handler_obj.agent.name ) );
								s.className = "flexcal_span_bold_pad";
								span.appendChild( s );
							}
						}
					}
				break;
				case 'buyer':
				case 'buyer_agent':
					if ( !e.handler_obj.unconfirmed ) {
						var span = document.createElement('span');
						span.appendChild( document.createTextNode( ' Showing of ' ) );

						var s = document.createElement("span");
						s.appendChild( document.createTextNode( l.addr1line ) );
						s.className = "flexcal_span_bold_pad";
						span.appendChild( s );

						if ( from != 'month' ) {
							span.appendChild( document.createTextNode( " (MLS# " + l.list_nbr ) );

							if ( l.listing_agent ) {
								span.appendChild( document.createTextNode( " listed by " ) );								
								var str = "";
								str += l.listing_agent;
								if ( l.co_list_agent )
									str += ", " + l.co_list_agent + ". ";
								s = document.createElement("span");
								s.appendChild( document.createTextNode( str ) );
								s.className = "flexcal_span_bold_pad";
								span.appendChild( s );
							}
							span.appendChild( document.createTextNode( ")" ) );
						}
					}
					else {
						var span = document.createElement('span');
						span.appendChild( document.createTextNode( ' Request for showing of ' ) );

						var s = document.createElement("span");
						s.appendChild( document.createTextNode( l.addr1line ) );
						s.className = "flexcal_span_bold_pad";
						span.appendChild( s );

						if ( from != 'month' ) {
							span.appendChild( document.createTextNode( " (MLS# " + l.list_nbr + ") " ) );

							if ( l.listing_agent ) {
								span.appendChild( document.createTextNode( " sent to " ) );
								var str = "";
								str += l.listing_agent;
								if ( l.co_list_agent )
									str += ", " + l.co_list_agent + ". ";
								s = document.createElement("span");
								s.appendChild( document.createTextNode( str ) );
								s.className = "flexcal_span_bold_pad";
								span.appendChild( s );
							}

							span.appendChild( document.createTextNode( "." ) );
						}
					}
					/*if ( e.handler_obj.prospect && e.handler_obj.prospect.name )
						str += e.handler_obj.prospect.name;
					*/
				break;
			}
			return span;
		},
		'geteventlogo': function( e, owner, rawhtml ) {
			var img = "";
			var src = "";
			var title = "";
			if ( e.handler_obj.unconfirmed ) {
				src = "/images/yui/hlp16_1.gif";
				title = "Your request has not yet been confirmed";
			}
			else if ( !e.actionNeeded() ) {
				src = "/images/check_16.gif";
				title = "This appointment has been confirmed";
			}
			
			if (src) {
				if (!rawhtml) {
					img = document.createElement('img');
					img.src = src;
					img.title = title;
				}
				else {
					img = "<img src='" + src + "' title='" + title + "'>";
				}
			}
			
			return img;
		},		
		
		'getmoredetails_td':function(tbody,e) {
			tbody = EventTypeTools.getlistingdetailrows_td(tbody,e);
			return tbody;
		},
		
		'getmoredetails':function(div,e,owner,from) {
			var agenda_indent = 75;
			if (from != 'agenda')
				div = EventTypeTools.getlistingdetailrows(div,e);
			
			var today = new Date();
			today.setDate( today.getDate() - 7 );
			
			if (e.handler_obj.feedback && e.handler_obj.feedback.length ) {
				for (var x = 0; x < e.handler_obj.feedback.length; x++) {
					
					var feedback_div = document.createElement('div');
					feedback_div.className = "event_detail_feedback";

					
					if ( from == 'agenda' ) feedback_div.style.marginLeft = agenda_indent;

					var f = e.handler_obj.feedback[x];			

					if (!f) continue;

					var feed_date = new Date();
					try {
						feed_date.setDate( parseInt( f.date.split("/")[1], 10 ) );
						feed_date.setMonth( (parseInt(f.date.split("/")[0],10) + 1) );
						feed_date.setFullYear( parseInt(f.date.split("/")[2],10) );
					}
					catch(e){feed_date.setFullYear("1900");}

					if ( feed_date.getTime() > today.getTime() ) {
						var outer_div = document.createElement('div');
						outer_div.className = "event_detail_section_div_b";
						outer_div.style.color = "green";						
						
						var img = document.createElement('img');
						img.src = "/images/new_user.gif";
						img.height = 12;
						img.width = 12;
						img.style.marginRight = 10;
						outer_div.appendChild(img);
						
						outer_div.appendChild( document.createTextNode("New Feedback!") );
						
						feedback_div.appendChild( outer_div );
					}	

					var outer_div = document.createElement('div');
					outer_div.className = "event_feedback_section_by";

					var date_str = ", " + f.date + " at " + f.time;
				
					var today = EventTypeTools.getdateobj(null,true);		
					var event_date = EventTypeTools.getdateobj(f.date,true);

					if ( today.getTime() == event_date.getTime() )
						date_str = ", today at " + f.time;
					else if ( today.setDate( today.getDate() - 1) && today.getTime() == event_date.getTime())
						date_str = ", yesterday at " + f.time;
			

					outer_div.appendChild( document.createTextNode( "By " + f.from + date_str) );	
					feedback_div.appendChild( outer_div );

					outer_div = document.createElement("div");
					var span = document.createElement("span");
					span.className = "event_feedback_text";
					span.appendChild(document.createTextNode( f.subject ));
					outer_div.appendChild( span );
					outer_div.className = "event_detail_section_div";
					outer_div.style.textDecoration = "underline";
					outer_div.style.marginTop = 5;
					feedback_div.appendChild( outer_div );				

					var feedback = this.process_feedback_message(f.message);		
				
					if (feedback.agent_feedback) {
						outer_div = document.createElement("div");
						span = document.createElement("span");
						span.className = "event_feedback_text";
						span.innerHTML =  feedback.agent_feedback;
						outer_div.appendChild( span );
						outer_div.className = "event_detail_section_div";
						feedback_div.appendChild(outer_div);
					}

					if ( feedback.buyer_feedback ) {
						outer_div = document.createElement("div");
						
						var span = document.createElement("div");
						span.className = "event_detail_span_bold";
						span.appendChild( document.createTextNode("Buyer Comments") );
						outer_div.appendChild( span );						
									
						span = document.createElement("span");
						span.className = "event_feedback_text";
						span.innerHTML = feedback.buyer_feedback;
						outer_div.appendChild( span );
						outer_div.className = "event_detail_section_div";
						outer_div.style.marginTop = 5;
						feedback_div.appendChild( outer_div );	
					}

					if ( feedback.buyer_interest ) {
						outer_div = document.createElement("div");
						outer_div.innerHTML = "The buyer was " +  feedback.buyer_interest.toLowerCase();
						outer_div.className = "event_detail_section_div_b";
						outer_div.style.marginTop = 5;
						feedback_div.appendChild(outer_div);
					}
					div.appendChild( feedback_div );
				}
			}
			
			return div;
		}
	};
}();

var CustomEvent = function( ) {
	return {
		'subtypelabels' : ['event'],		
		'closeaction': function( update_event ) {
		},
		'onaction' : function( e, id ) {
		},
		'positionaction': function( id ) {
		},
		'actionelem' : function( e, id ) {
		},
		'getcolor': function( e, type ) {
			var t = null;
			if ( e && e.handler_obj && e.handler_obj.type) t = e.handler_obj.type;
			else if ( type) t = type;
			switch (t) {
				case 'event':
					return {color:"#FFFFFF",label:"All other events"};
				break;
			}
			return '';
		},
		'geteventlogo': function( e, owner, rawhtml ) {
			var img = "";
			if ( e.handler_obj.scheduled_by && e.handler_obj.scheduled_for &&  e.handler_obj.scheduled_by.tech_id != e.handler_obj.scheduled_for.tech_id ) {
				var title = "";
				var src = "";
				if ( owner == e.handler_obj.scheduled_by.tech_id  ) {
					title = "You have scheduled this event for " + e.handler_obj.scheduled_for.name;
					src = "/images/user_16.png";					
				}
				else {
					title = "This event has been scheduled for you by " + e.handler_obj.scheduled_by.name;							
					src = "/images/admin_16.png";					
				}
				
				if (!rawhtml) {
					img = document.createElement('img');
					img.src = src;
					img.title = title;
				}
				else {
					img = "<img src='"+src+"' title='"+title+"'>";
				}
			}
			return img;
		},
		'getmoredetails':function(tbody,e,owner,from) {
			var agenda_indent = 75;
			if (e.handler_obj[ 'list_nbr' ]) {
				tbody = EventTypeTools.getlistingdetailrows(tbody,e,from);
			}

			if ( e.handler_obj.scheduled_by && e.handler_obj.scheduled_for &&  e.handler_obj.scheduled_by.tech_id != e.handler_obj.scheduled_for.tech_id ) {
				var whotxt = "";
				if ( owner == e.handler_obj.scheduled_by.tech_id  ) {
					whotxt = "You have scheduled this event for " + e.handler_obj.scheduled_for.name;
				}
 				else {
					whotxt = "This event has been scheduled for you by " + e.handler_obj.scheduled_by.name;
				}
				if ( whotxt ) {
					var outer_div = document.createElement('div');
					outer_div.className = "event_detail_section_div";
					var span = document.createElement("span");
					span.appendChild( document.createTextNode( whotxt ) );
					span.className = "event_detail_span_bold";
					if (from == 'agenda') span.style.marginLeft = agenda_indent;
					outer_div.appendChild( span );
					tbody.appendChild( outer_div );
				}
        
			}

			if (  hCalIface.get().getCalendar().getOwnerType() != 'prospect' && e.handler_obj.prospect && e.handler_obj.prospect.name ) {
					var outer_div = document.createElement('div');
					outer_div.className = "event_detail_section_div";
					var span = document.createElement("span");
					span.appendChild( document.createTextNode( "This event was created on behalf of " + e.handler_obj.prospect.name ) );
					span.className = "event_detail_span_bold";
					if (from == 'agenda') span.style.marginLeft = agenda_indent;
					outer_div.appendChild( span );
					tbody.appendChild( outer_div );
			}

			return tbody;
		},
		
		
		'getmoredetails_td':function(tbody,e,owner) {
			if ( owner )
				tbody = EventTypeTools.getwhodetailrows(tbody,e,owner);
			/*
			if ( hCalIface.get().getCalendar().getOwnerType() != 'prospect' && e.handler_obj.prospect && e.handler_obj.prospect.name ) {
					var tr = document.createElement('tr');
					var td = document.createElement('td');
					td.innerHTML = "&nbsp;";
					tr.appendChild(td);
					td = document.createElement('td');
					td.appendChild( document.createTextNode( "This event was created on behalf of " + e.handler_obj.prospect.name ) );
					td.className = "event_detail_span_bold";
					td.style.paddingBottom = "5px";
					tr.appendChild( td );
					tbody.appendChild( tr );
			}
			*/
			tbody = EventTypeTools.getlistingdetailrows_td(tbody,e);	
			return tbody;
		},		
		
		'getcreate':function( tbody ) {	
			return tbody;			
		}
	};
}();
