
function openPrintWindow() {
  var newurl=(document.location.search) ? document.URL+'&printable=1' : document.URL+'?printable';
  var newwin=window.open(newurl, "printWindow" + Math.floor(Math.random()*1000), 
        "status,menubar,height=500,width=600,scrollbars");
  withWindow(newwin, partial(addLoadEvent, function() {
      callLater(1, function() {
         newwin.print();
      });
  }));
  return false;
}  

function openSlideshow(name) {
  if (! name.match(/^\/slideshows\//) ) {
    name='/slideshows/' + name;
  }
  window.open(name, 'slidepopup', 'width=600,height=675,resizeable=yes,toolbar=no,scrollbars=yes');
  return false;
}

function openAnyWindow(url, name) {
  var l = openAnyWindow.arguments.length;
  var w = "";
  var h = "";
  var features = "";
  for (i=2; i<l; i++) {
    var param = openAnyWindow.arguments[i];
    if ( (parseInt(param) == 0) || (isNaN(parseInt(param))) ) {
      features += param + ',';
    }
    else {
      (w == "") ? w = "width=" + param + "," : h = "height=" + param;
    }
  }
  features += w + h;
  var code = "popupWin = window.open(url, name";
  if (l > 2) code += ", '" + features + "'";
  code += ")";
  eval(code);
}

function makeprintable() {
    var qstr=document.location.search.substring(1);
    if (qstr=='printable' || parseQueryString(qstr).printable) {
        var links=getElementsByTagAndClassName('link');
        forEach (links, function(link) {
            if (link.getAttribute('rel')=='stylesheet') {
                var media=link.getAttribute('media');
                if (media == 'screen' || media == 'print') {
                    setNodeAttribute(link, 'href', '/inc/css/print.css');
                }
            }
        });
        return true;
   }
   return false;
}

function cookie(name,value, parent){   
    this.name = name;
    this.value = value;
    this.parent=parent;
    this.attributes = new Array();
    this.expiresIn = function(days){ 
        expiration = new Date();
        expiration.setTime(expiration.getTime() + (days*86400000));
        this.attributes["expires"] = expiration.toGMTString();
    };
    this.set = function (){ 
        var cookiestr = this.name + "=" + escape(this.value);
        for(attr in this.attributes){ 
            cookiestr += "; " + attr;
            if(this.attributes[attr].length > 0) {
                cookiestr += "=" + this.attributes[attr];
            }
        }
        document.cookie=cookiestr;
    };
    this.erase = function() {
        this.expiresIn(-1);
        this.set();
        delete this.parent.cookies[this.name];
      };
}

function CookieJar() {
   this.cookies={};

   this.add=function (name,value) { 
      var c=new cookie(name,value,this);
      this.cookies[name]=c;
      return c;
   };

   this.get=function(name) {
       for(var o in this.cookies) {
           if(o == name) {
               return this.cookies[o];
           }
       }
       return null;
   };

   this.del=function(name) {
       var c=this.get(name);
       if (c) {
         c.erase();
       }
   }

   var cstr=document.cookie;
   var spaces=/\s/gi;
   cstr=cstr.replace(spaces,'');
   while(cstr.length>0) {
       cequal=cstr.indexOf("=");
       if(cequal==-1) cequal=cstr.length;
       var name=cstr.substring(0,cequal);
       cstr=cstr.substring(cequal+1,cstr.length);
       cend=cstr.indexOf(";");
       if(cend==-1) { cend=cstr.length;}
       var value=unescape(cstr.substring(0,cend));
       cstr=cstr.substring(cend+1,cstr.length);
       this.add(name,value);
   }
}

var Cookies=new CookieJar();


function showPopper(days) {
    if (isUndefinedOrNull(days)) {
      days=1;
    }
    if (! $('popper_container')) { 
       return; 
    }
    var c=Cookies.get('POPUP');
    if (!c) {
       var newcookie=new cookie('POPUP', "1");
       var midnight=new Date();
       midnight.setDate(midnight.getDate()+days);
       midnight.setHours(0);
       midnight.setMinutes(0);
       midnight.setSeconds(0);
       newcookie.attributes['expires']=midnight.toGMTString();
       newcookie.attributes['path']='/';
       newcookie.set();
       swapElementClass('popper_container', 'popper_container_hidden', 'popper_container')
       showElement('popper_container');   
   }
}

function splashResize() {
  if (/MSIE/.test(navigator.userAgent)) {
     splashResizeIE();
  } else {
     splashResizeAbsolute();
 }
}

function splashResizeIE(){
  var popper=$('popper');
  if (popper) {
     var container=$('p_container');
     if (container) {
        var h=container.clientHeight;
        if (isUndefinedOrNull(h)) {
           logDebug("querying client height did not succeed!")
           return;
        }
        logDebug("container client height: ", h);
        setStyle(popper, {'height' : (h+50)+'px'});
     }
  }
}

function get_page_dimensions() {
  var w;
  var h;
 if (window.innerHeight && window.scrollMaxY) /* Firefox */ {
   w = window.innerWidth + window.scrollMaxX;
   h = window.innerHeight + window.scrollMaxY;
 } else if (document.body.scrollHeight > document.body.offsetHeight) /* all but Explorer Mac */ {
   w = document.body.scrollWidth;
   h = document.body.scrollHeight;
 } else /* works in Explorer 6 Strict, Mozilla (not FF) and Safari */ { 
   w = document.body.offsetWidth + document.body.offsetLeft; 
   w = document.body.offsetHeight + document.body.offsetTop; 
 }
 return new Dimensions(w, h);
}

function splashResizeAbsolute() {
  var popper=$('popper');
  if (popper) {
    var bdims=get_page_dimensions();
    setStyle(popper, {'position' : 'absolute'});
    setElementPosition(popper, {'x' : -30, 'y' : 0}); 
    ("body dimensions: ", bdims);
    setElementDimensions(popper, bdims);
  }
}


function _real_refresh_listenlive() {
  logDebug("in _real_refresh_listenlive()");
  var df=loadJSONDoc('/api/schedules/listenlive');
  df.addCallback(function(data) {
    var fmanchor=$('ll_fm_link');
    fmanchor.innerHTML=data['fm939']['title'];
    fmanchor.href=data['fm939']['href'];
    $('ll_fm_blackout').innerHTML=data['fm939']['blackout'];
    var amanchor=$('ll_am_link');
    amanchor.innerHTML=data['am820']['title'];
    amanchor.href=data['am820']['href'];
    $('ll_am_blackout').innerHTML=data['am820']['blackout'];
  });
  df.addErrback(function(err) {
    logError(err, err.number, err.req.responseText);
  });
}

function repeat_time(interval) {
// how many seconds until next display?
 var d=new Date();
 var m=d.getMinutes();
 var secs=((interval-(m % interval))*60)-d.getSeconds();
 // add a little padding
 secs+=40*Math.random();
 logDebug("repeat time: ", secs);

 return secs;
}

function refresh_listenlive() {
  logDebug("in refresh_listenlive(), time is", new Date());
  _real_refresh_listenlive();
  callLater(repeat_time(15), refresh_listenlive);
}

var PLAYER_WINDOW_PARAMS = "'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,left=0,top=0,width=765,height=417'";

function openStream(streamId) {
  var flashversion=deconcept.SWFObjectUtil.getPlayerVersion();
  if (flashversion['major'] >= 9) { 
    var link = 'http://www.wnyc.org/flashplayer/player.html#/playStream/' + streamId;
    window.open(link, "mp", PLAYER_WINDOW_PARAMS);
  }
  return false;
}

function openAudioPlayer(audiolink, playlistlink, cue) {
  if (isUndefinedOrNull(cue)) { cue=false; }
   var hasRA=audiolink.match(/\.r[am]\b/i);
   var flashversion=deconcept.SWFObjectUtil.getPlayerVersion();
   if (hasRA || (flashversion['major'] < 9)) {
      return true;
   } else {
     var link = 'http://www.wnyc.org/flashplayer/player.html#/' + ((cue) ? 'cue/' : 'play/') + encodeURIComponent(playlistlink);
     window.open(link,"mp", PLAYER_WINDOW_PARAMS);
	return false;
   }
}

function openPlayerFromFlash(popid) {
    
var pageUrl = "http://www.wnyc.org/flashplayer/player.html#/play/%2Fstream%2Fxspf%2F"+popid;
var swfId = "Mp3Player"+popid;
	var winNew = window.open(pageUrl,"mp","width=765,height=417,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,left=0,top=0");
    if(!winNew) {
        getSwf(swfId).openWindowFromSwf(pageUrl);
    }
    else {
        winNew.focus();
    }
}

function getSwf(id) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[id];
    } 
    else {
        return document[id];
    }
}

function queueAudioPlayer(audiolink, playlistlink) {
  if (arguments.length==1) {
    playlistlink=arguments[0];
    audiolink='';
  }
  logDebug('audiolink: ', audiolink, 'playlistlink: ', playlistlink);
  return openAudioPlayer(audiolink, playlistlink, true);
}


function embedAudio(audiolink, playlistlink, playlink, place, embedlinkplace, id, downloadlink, playerWidth) {
  if (window.printmode) { return; }
   var hasRA=audiolink.match(/\.r[am]\b/i);
   var elem=$(place);
   var embedlinkelem=$(embedlinkplace);
   var flashversion=deconcept.SWFObjectUtil.getPlayerVersion();
   showElement(elem);
   showElement(embedlinkelem);
   if (hasRA || (flashversion['major'] < 7)) {
    var dlink = "";
	if(downloadlink) {
	dlink = '<li><a class="mp3down" href="'+ downloadlink +'">Download MP3</a></li></ul>';
    }
	elem.innerHTML = '<ul class="tools"><li><a class="listen" href="'+ audiolink +'">Listen</a></li>'+dlink+'</ul>';
   } else if (flashversion['major'] >=7) {
   /* Random number to force cache for IE6+ caching wackiness */
   var randomnum=Math.floor(Math.random()*99999);
   var popid = id;

   var swfUrl='/flashplayer/mp3player2.swf?nocache='+randomnum+'&displayheight=0&file='+playlink+'&popid='+popid+'&swfId=Mp3Player'+id+'&plugins=googlytics_1-0';
   var swfObj=new SWFObject(swfUrl, "Mp3Player"+id, playerWidth, 19, 7, "#FFFFFF");
   swfObj.addParam("allowScriptAccess", "always");
   swfObj.addParam("wmode", "transparent");
   connect(window,"allcontent", function(){swfObj.write(place);});
   var embedplace = "embedcontent" + id;
    if(downloadlink) {
       embedlinkelem.innerHTML = '<a style="color: #7a7a7a; font-size: 9px;" class="mp3downembed" href="'+downloadlink+'" onclick="return ping_listentracker(' + id +', true);">Download MP3</a> | ';
     }
    embedlinkelem.innerHTML += '<a href="#" style="color: #7a7a7a; font-size: 9px;" onclick="loadEmbedForm(\''+embedplace+'\', \''+playlistlink+'\', \''+id+'\'); return false;">Embed HTML</a>';
   }
}

function embedextraAudio(audiolink, place, embedplace, download, width) {
  var elem=$(place);
  var embedlinkelem=$(embedplace);
  logDebug(embedlinkelem);
  var flashversion=deconcept.SWFObjectUtil.getPlayerVersion();
  if (isUndefinedOrNull(download)) {
    download=true;
  }
  if (isUndefinedOrNull(width)) {
    width=250;
  }
  showElement(elem);
  showElement(embedlinkelem);
  if (flashversion['major'] < 7) {
    elem.innerHTML = '<a class="listen" href="'+ audiolink +'">Listen</a>';
  } else if (flashversion['major'] >=7) {
    /* Random number to force cache for IE6+ caching wackiness */
    var randomnum=Math.floor(Math.random()*99999);	
    var swfUrl='/flashplayer/mp3player_blog.swf?nocache='+randomnum+'&displayheight=0&file='+audiolink+'&popbutton=false&plugins=googlytics_1-0';
    var swfObj=new SWFObject(swfUrl, "Extra Player", width, 19, 7, "#FFFFFF");
    swfObj.addParam("allowScriptAccess", "always");
    swfObj.addParam("wmode", "transparent");
    connect(window,"allcontent", function(){swfObj.write(place);});
    if (download) {
      embedlinkelem.innerHTML = '<a style="color: #7a7a7a; font-size: 9px;" class="mp3downembed" href="'+audiolink+'">Download MP3</a>';
    }
  }
}

function loadEmbedForm(place, url, itemid) {
    if ($(place) && 
        $(place).innerHTML &&
        !($(place).innerHTML.match(/^\s*$/))) {
       $(place).innerHTML='';
       return;
    }
    var urlstart=document.location.protocol + '//' + document.location.host;
    var txt="<fieldset class=\"embedthis\" id=\"embedthis_wrapper"+itemid+"\">"
     + "<legend>Embed This Audio</legend>"
     + "<p>Copy and paste the HTML below to embed this audio onto your web page. "
     + "Find out more <a href=\"/audiohelp/embed_player.html\">here</a>.</p>"
     + "<label for=\"embedcode\">WNYC audio player code:</label><br>"
     + "<textarea onclick=\"this.select();\" name=\"embedcode\" cols=\"44\" rows=\"6\">"
     + "<object width=\"350\" height=\"36\">"
     + "<param name=\"movie\" value=\""
     + urlstart 
     + "/flashplayer/mp3player.swf?config="
     + urlstart
     + "/flashplayer/config_share.xml&amp;file="
     + urlstart
     + url
     + "\"></param>"
     + "<param name=\"wmode\" value=\"transparent\"></param>"
     + "<embed type=\"application/x-shockwave-flash\" src=\"" 
     + urlstart 
     + "/flashplayer/mp3player.swf?config=" 
     + urlstart 
     + "/flashplayer/config_share.xml&amp;file="
     + urlstart 
     + url
     + "\" id=\"WNYC_Mp3_Player_"
     + itemid
     + "\" name=\"WNYC_Mp3_Player_"
     + itemid
     + "\" bgcolor=\"#FFFFFF\" "
     + "wmode=\"transparent\" height=\"36\" width=\"350\"></embed>"
     +"</object>"
     + "</textarea>"
     + "</fieldset>";
    $(place).innerHTML=txt;
}

function embedVideo(video, elem, width, height, type, streamer) {
	var s1 = new SWFObject("/flashplayer/flvplayer.swf","single", width, height, "8");
	var url_vid = parseUri(video);
	var url_png = url_vid.protocol+"://"+url_vid.authority+url_vid.directory+(url_vid.file.split("."))[0]+".png";	
	s1.addParam("allowfullscreen","true");
	s1.addVariable("file",video);
	s1.addVariable('callback','urchin');
	s1.addVariable("width",width);
	s1.addVariable("height",height);
	s1.addVariable("plugins","googlytics_1-0");
	
	if(type != undefined){
        s1.addVariable("type",type);
	}
    if(streamer != undefined){
        s1.addVariable("streamer",streamer);
	    url_png = "http://video.wnyc.org/thegreenespace/livewebcast.png";
	  }
	
	s1.addVariable("image",url_png);
	
	s1.write(elem);
}


function marshal_datetime(dt) {
  if (dt) {
    var ts=dt['__datetime__'];
    if (ts) {
      try {
        return new Date(ts[0], ts[1]-1, ts[2], ts[3], ts[4]);
      } catch (e) {
        logError("error in marshal_datetime: ", e);
      }
    }
  }
  return null;
}

var wnyc2data=null;

function refresh_wnyc2data() {
  logDebug('in refresh_wnyc2data');
  if (isUndefinedOrNull(wnyc2data) || (wnyc2data.ends_at <= new Date())) {
     // actually retrieve new data
     logDebug("retrieving new data");
     var df=loadJSONDoc('/api/nexgen/whats_on');
     df.addCallback(function(data) {
       // register the hit
       if (window.urchinTracker) {
         window.urchinTracker('/api/nexgen/whats_on');
       } else {
        logDebug("urchin not available");
       }
       if (data) {
         // process dates
         data['ends_at']=marshal_datetime(data['ends_at']);
         data['played_at']=marshal_datetime(data['played_at']);
       }
       wnyc2data=data;
       return wnyc2data;
     });
     return df;
  } else { 
     logDebug("already have valid data");
     // wrap in a Deferred
     return succeed(wnyc2data);
  }
}


var show_wnyc2=function(evt) {
  logDebug('in show_wnyc2');
  var srcpos=getElementPosition(evt.src());
  var srcdim=getElementDimensions(evt.src());
  var yoffset=$j('#wnyc2button').position().top - 10; 
  var newpos=new Coordinates(srcpos.x+srcdim.w-125, yoffset); 
  setElementPosition('wnyc2view', newpos);
  var df=refresh_wnyc2data();
  df.addCallback(function(data) {
     if (data) {
       var buff=['<h2>', data.title, '</h2>'];
       if (data.composer) {
         extend(buff, ['<h2 class="what">', 
                       data.composer, 
                       '</h2>']);
       }
       extend(buff, ['<h2 class="when">', 
                     strftime(data.played_at, "%I:%M %p"), 
		     ' - ',
		     strftime(data.ends_at, "%I:%M %p"),
                     '</h2><p>']);
       if (data.soloists) {
          buff.push(data.soloists.join(', '));
          buff.push('<br />');
       }
       if (data.ensemble) {
         extend(buff, [data.ensemble, '<br />']);
       }
       if (data.conductor) {
         extend(buff, [data.conductor, '<br />']);
       }
       if (data.label) {
         buff.push(data.label);
         if (data.label_catalog_no) {
           buff.push(data.label_catalog_no);
         }
       }
       buff.push('</p>');
       $('wnyc2viewinner').innerHTML=buff.join(' ');     
       appear('wnyc2view', {'duration' : 1});
    } else {
      logDebug("no data for wnyc2view");
      $('wnyc2viewinner').innerHTML='<p><em>No information available.</em></p>';
      appear('wnyc2view', {'duration': 1});
      callLater(2, function() {
        fade('wnyc2view', {'duration' : 1});
      });
   }
  });
  df.addErrback(function(err) {
    logDebug(err);
  });
  evt.stop();
}

connect(window, 'allcontent', function() {
   if (! getElement('wnyc2button')) {
      return;
   }
   connect('wnyc2button', 'onclick', show_wnyc2);  

   connect('wnyc2view', 'onclick', function() {
     fade('wnyc2view', {duration: 1});
   });
   logDebug("connection made in allcontent");
});


function clearSignUp(thefield) {
	if (thefield.defaultValue==thefield.value)
	thefield.value = ""
}

$j(document).ready(function() {
  $j("input.clearonfocus").bind("focus", function() {
    if (this.defaultValue==this.value) this.value='';
  });
  $j('input.resetonblur').bind('blur', function() {
    if (this.value=='') this.value=this.defaultValue;
  });
})

function ajaxbanner(elem, str) {
  /* if (str && elem == "p_banner_leaderboard") {
    showElement("leaderboard");
  } */
  if (str && elem == "p_banner_tower") {
    addElementClass("p_body", "bodytower");
  }
  if (str.match(/\<object /i)) {
    str=str.replace(/(\<object [^>]+>)/, '$1 <param name="wmode" value="transparent">');
    str=str.replace(/(\<embed )/, '$1wmode="transparent" ');
  }
  $(elem).innerHTML=str;
}

function postJSON(url, data, method) {
  if (isUndefinedOrNull(method)) {
     method='POST';
  }
  var req=getXMLHttpRequest();
  req.open(method, url, true);
  req.setRequestHeader('Content-Type', 'text/json; charset=utf-8');
  var payload=serializeJSON(data);
  var df=sendXMLHttpRequest(req, payload);
  return df;
}

function trimstring(s) {
  return s.replace(/\s*(.*)\s*/, "$1");
}

function form_to_obj(data) {
 var obj={};
 forEach(izip(data[0], data[1]), function(thing) {
    var k=thing[0];
    var v=thing[1];
    if (isUndefinedOrNull(v)) {
       v="";
    }
    obj[k]=v;
 });
 return obj;
}

function localize_npr_links() {
 /* find all unlocalized npr links and localize them */
  var anchors=document.body.getElementsByTagName('a');
  for (var i=0;i<anchors.length;i++) {
    var a=anchors[i];
    var href=a.href;
    if (href && href.match(/^http\:\/\/(www\.)?npr\.org/) 
	&& (! href.match(/force_localization|\/dmg\//))) {
	var newhref='http://www.npr.org/stations/force/force_localization.php?station=WNYC_FM&url=' + href;
	a.setAttribute('href', newhref);
    }
  }
}

$j(localize_npr_links);

/* imagestrip */
$j(function() {
  var items=$j('#imagestrip .stripitem')
  items.hover(function() {
    var item=$j(this);
    var img=item.find('img');
    img.attr('src', img.attr('src').replace('bw=1', 'bw=0'));
    item.find('.stripblurb').show();
	$j(item.find('.stripblurb')).css('zIndex', 9);
   }, function() {
    var item=$j(this);
    var img=item.find('img');
    img.attr('src', img.attr('src').replace('bw=0', 'bw=1'));
    item.find('.stripblurb').hide();
   });
  $j('#imagestrip .stripitem img').each(function() {
    $j('<img>').attr('src', this.src.replace('bw=1', 'bw=0'));
  });
});
/* wnyc talk module */
function refresh_wnyctalk() {
  var wrap=$j('#wnyctalkwrapper');
  if (wrap.length) {
    var realm=wrap.attr('realm') || 'wnyc';
    wrap.load('/includes/wnyctalk/' + realm, null, function() { $j("#wnyctalk").show("fade");});
  }
}
$j('#wnyctalkwrapper').ready(refresh_wnyctalk);


function listen_hit(url, item_id) {
  $j.post('/api/lt/hit', {'url' : url, 'item_id': item_id}, 
	  function(data) { logDebug(data); }, "json");
}

function initTabs() {
  var tabs =new Array("#most_viewed", "#most_emailed", "#most_listened");

  $j(tabs[0] + "_link").click(function (e) {
    $j(tabs[0]).addClass("active");
    $j(tabs[1]).removeClass("active");
    $j(tabs[2]).removeClass("active");
    $j(tabs[0] + "_body").show();
    $j(tabs[1] + "_body").hide();
    $j(tabs[2] + "_body").hide();
    return false;});
  $j(tabs[1] + "_link").click(function (e) {
    $j(tabs[0]).removeClass("active");
    $j(tabs[1]).addClass("active");
    $j(tabs[2]).removeClass("active");
    $j(tabs[0] + "_body").hide();
    $j(tabs[1] + "_body").show();
    $j(tabs[2] + "_body").hide();
    return false;
  });
  $j(tabs[2] + "_link").click(function (e) {
    $j(tabs[0]).removeClass("active");
    $j(tabs[1]).removeClass("active");
    $j(tabs[2]).addClass("active");
    $j(tabs[0] + "_body").hide();
    $j(tabs[1] + "_body").hide();
    $j(tabs[2] + "_body").show();
    return false;
  });
}


$j(initTabs);

function ranchoice(anArray, numChoices) {
  var res=[];
  var copied=anArray.slice();
  while (copied.length > 0 && res.length < numChoices) {
    res.push(copied.pop(Math.floor(Math.random() * copied.length)));
  }
  return res;
}

function ranrange(limit, numChoices) {
  return ranchoice(list(range(limit)), numChoices);
}

$j(function() {
  if (window.section) {
    $j('#nav-main li#' + window.section + ' a').addClass('active');
  }
});

$j(function() {
  var boxes=$j('.adbox:has(img)');
  for (var i=0; i<boxes.length; i++) {
    var b=boxes.eq(i);
    var img=b.find('img').get(0);
    if (img &&  img.height > 1) {
      b.find('.admessage').css('visibility', 'visible');
    }
  }
});

function ping_listentracker(id, downloaded) {
    if (typeof downloaded == "undefined") {
        downloaded = false;
    }

    if (downloaded == true) {
        downloaded = 1;
    } else {
        downloaded = 0;
    }

    $j.post('/api/lt/id', {
        'item_id': id,
        'downloaded': downloaded
    });
}



sfHover = function() {
	var sfEls = document.getElementById("nav-main").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

function updateTweet(username, elem) {
var url = "http://search.twitter.com/search.json?from="+username+"&rpp=1&callback=?";
$j.getJSON(url,
        function(data){
          $j.each(data.results, function(i,item){
	        var mumu = item.text.split("http://");
			
			if (mumu.length < 2){
			var twittertext = "<li style=\"display:none\" id=\""+username+"\"><div><span class=\"title\">"+item.from_user+"</span><span class=\"desc\">"+mumu[0]+"</span></div></li>";
			} else {
			var twittertext = "<li style=\"display:none\" id=\""+username+"\"><div><span class=\"title\">"+item.from_user+"</span><span class=\"desc\"><a id=\"link_"+username+"\" href=\"http://"+mumu[1]+"\" target=\"_blank\">"+mumu[0]+"</a></span></div></li>";	
			}

            var scrape = $j("#link_"+username).text();

			if ( $j("#"+username).length > 0 ) {
				if (scrape != mumu[0]) {
	              	$j("#"+username).fadeOut("slow",
					function () {
							$j("#"+elem).prepend(twittertext);
							$j("#"+username).fadeIn("slow");
					      });
	            }
			 } else {
				$j("#"+elem).prepend(twittertext);
				$j("#"+username).fadeIn("slow");
			}
		    });
        });
}


twitter_linkify=function(text){
	return text.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g,function(m){
	return m.link(m);});};
	
twitter_linkuser=function(text){
	return text.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){
	var username=u.replace("@","")
    return u.link("http://twitter.com/"+username);});};

twitter_linktag=function(text){
	return text.replace(/[#]+[A-Za-z0-9-_]+/,function(t){
	var tag=t.replace("#","%23")
    return t.link("http://search.twitter.com/search?q="+tag);});};


	function genericTweet(query, elem) {
	var url = "http://search.twitter.com/search.json?q="+query+"&callback=?";
	$j.getJSON(url,
	        function(data){
	          $j.each(data.results, function(i,item){
				var thedate=new Date(Date.parse(item.created_at));
				var thedatestr = strftime(thedate, "%B %e, %I:%M %p");
				var username = item.from_user;
				var clean_text = twitter_linkify(item.text);
				clean_text = twitter_linktag(clean_text);
				clean_text = twitter_linkuser(clean_text);

				var twittertext = "<div style=\"display:none\" id=\""+username+"\" class=\"comment tweet\"><div class=\"comment_text\">"+clean_text+"<br /> — <span class=\"comment-author\">"+username+"</span> <span class=\"comment-date\">["+thedatestr+"]</span></div></div>";

					$j("#"+elem).prepend(twittertext);
					$j("#"+username).fadeIn("slow");

			    });
	        });
	}

$j(function() {
  $j('a[href^=http://]').add('a[href=https://]').not('a[href*=wnyc.org]').click(function(evt) {
    logDebug("going to call urchinTracker");
    urchinTracker('/outgoing/' + this.getAttribute('href'));
  });
});
