function tableOutput(jsondata,base,row_filter){function parseISODate(iso_date){var d=new Date(iso_date.substr(0,4),iso_date.substr(5,2)- 1,iso_date.substr(8,2),iso_date.substr(11,2),iso_date.substr(14,2),iso_date.substr(17,2));return d;}
function dateAsString(d){var months=["January","February","March","April","May","June","July","August","September","October","November","December"];return months[d.getMonth()]+" "+ d.getDate()+", "+ d.getFullYear();}
function timeAsAMPM(d){var m,h=d.getHours();var ampm='PM';if(h<12){ampm='AM';}
h=((h+11)%12)+ 1;m=d.getMinutes();if(m==0){return h+" "+ ampm;}
if(m<10){return h+":0"+ m+" "+ ampm;}
return h+":"+ m+" "+ ampm;}
function wrapInLink(s,link){if(link===undefined){return s;}
return'<a href="'+ link+'">'+ s+'</a>';}
var weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var output='<table class="laffq_shows" cellspacing="0" cellpadding="10" border="0"><tr><th>Date/Time</th><th>Show/Venue</th><th>Address</th><th>Price/Tickets</th></tr>';var row_index=0;for(var i=0;i<jsondata.length;i++){var row=jsondata[i];if(!row_filter(row))continue;row.date=parseISODate(row.start_datetime);if(row_index%2){output+='<tr class="laffq_even">';}else{output+='<tr class="laffq_odd">';}
output+='<td>'+ wrapInLink('<div class="laffq_date">'+ dateAsString(row.date)+'</div><div class="laffq_time">'+ weekdays[row.date.getDay()]+" "+ timeAsAMPM(row.date)+'</div>',base+ row.show_page_uri)+'</td>';output+='<td><div class="laffq_venue">';if(row.show_name!==undefined){output+='<div class="laffq_show">'+ wrapInLink(row.show_name,base+ row.show_page_uri)+"</div>";}
if(row.venue_name!==undefined){output+='<div class="laffq_venue">'+ wrapInLink(row.venue_name,row.venue_link)+"</div>";}
output+='</td>';var address=row.address.replace("\r\n","<br>");output+='<td><div class="laffq_address">'+ wrapInLink(address,row.map_url)+'</div></td>';output+='<td>';if(row.cost!==undefined){output+='<div class="laffq_cost">'+ row.cost+"</div>";}
if(row.ticket_link!==undefined){output+='<div class="laffq_ticket">'+ wrapInLink('Tickets',row.ticket_link)+'</div>';}
if((row.ticket_link===undefined)&&(row.cost===undefined)){output+='&nbsp;';}
output+='</td>';output+='</tr>';row_index=row_index+ 1;}
output+='<tr><td colspan="100%"><a href="http://www.laffq.com/"><img alt="LaffQ" width="82" height="34" src="'+ base+'/s/img/laffq_logo_small.gif" border="0"></a></td></tr>';output+='</table>';return output;}
var LaffQ={base:function(){var scripts=document.getElementsByTagName('script');var script=scripts[scripts.length-1];return script.src.match(/^((https?:\/\/)?[^\/]*)/)[0];}(),insert_style_sheet:function(href){var cssNode=document.createElement('link');cssNode.type='text/css';cssNode.rel='stylesheet';cssNode.href=href;cssNode.media='screen';cssNode.title='dynamicLoadedSheet';document.getElementsByTagName("head")[0].appendChild(cssNode);},insert_script:function(src){var headTag=document.getElementsByTagName("head")[0];var scriptTag=document.createElement("script");scriptTag.type="text/javascript";scriptTag.src=src;headTag.insertBefore(scriptTag,headTag.firstChild);},Widget:function(info){var user=info["username"];var scripts=document.getElementsByTagName('script');var script=scripts[scripts.length-1];var element=document.createElement('div');var row_filter=info["row_filter"];if(row_filter===undefined){row_filter=function(row){return true;};}
script.parentNode.insertBefore(element,script);var base=LaffQ.base;var loading_img=document.createElement('img');loading_img.src=base+'/w/loading.gif';loading_img.border='0';element.appendChild(loading_img);var f=function(jsonData){var div_item;element.removeChild(loading_img);div_item=document.createElement('div');div_item.innerHTML=tableOutput(jsonData,base,row_filter);script.parentNode.insertBefore(element,script);element.appendChild(div_item);}
var callback="__laffq_populateTable";var scriptTag=document.createElement("script");var style_sheet=info["css"];if(style_sheet===undefined){style_sheet=(base+'/w/widget.css');}
if(style_sheet){LaffQ.insert_style_sheet(style_sheet);}
eval(callback+" = f;");var src=base+"/"+ user+"/json/?jsonp="+ callback+"&fields=map_url,show_name,cost,ticket_link,venue_name,show_page_uri,venue_link,address,start_datetime&after=-24&limit=75";LaffQ.insert_script(src);}};
