/*original:jquery-gsr.js*/var today=new Date(),resizeTimer=null,updateTimer=setInterval("update()",40000),data,redrawLineTimer,iepixhack=0;if($.browser.msie){iepixhack=5}function init(){var a="http://www.d.umn.edu/lib/cgi-bin/php5/gsr/gsrJSON.php?jsoncallback=?";$.getJSON(a,function(b){data=b;buildNonBookableTable();buildBookableTable();updateNonBookableTable();updateBookableTable()})}function update(){$("img[id^=loadingdate]").css("visibility","visible");clearInterval(updateTimer);var a="http://www.d.umn.edu/lib/cgi-bin/php5/gsr/gsrJSON.php?jsoncallback=?";$.getJSON(a,function(b){data=b;updateBookableTable();$("img[id^=loadingdate]").css("visibility","hidden")});updateTimer=setInterval("update()",parseInt(35000+(Math.random()*10000)))}function PadDigits(e,a){e=e.toString();var b="";if(a>e.length){for(var d=0;d<(a-e.length);d++){b+="0"}}return b+e.toString()}function styleUnavailTDs(e,a,b,d){if(e.substring(2,4)<30){e=e.substring(0,2)+"00"}else{e=e.substring(0,2)+"30"}if(parseInt(e,10)<730){e="0730"}if(a.substring(2,4)>30){a=PadDigits((parseInt(a.substring(0,2),10)+1)+"00",4)}else{if(a.substring(2,4)>0){a=a.substring(0,2)+"30"}else{if(a.substring(2,4)==0){a=PadDigits(parseInt(a.substring(0,2),10)+"00",4)}}}if(parseInt(a,10)>2330||parseInt(a,10)<600){a="2330"}var g=$("td[id^=avail"+b+"]").index($("#avail"+b+e)),f=$("td[id^=avail"+b+"]").index($("#avail"+b+a));$("td[id^=avail"+b+"]").slice(g,f).addClass(d)}function drawCurrentTimeLine(){if($("#datepicker").datepicker("getDate").format("yyyymmdd")==today.format("yyyymmdd")&&parseInt(today.format("HHMM"),10)>=730&&parseInt(today.format("HHMM"),10)<2400){clearInterval(redrawLineTimer);today=new Date();var b=$("div#bookable:first").offset(),h=new Date(today.getFullYear(),today.getMonth(),today.getDate(),7,30,0),m=(24-7.5)*60*60,l=((today.getTime()-h.getTime())/1000)/m,d=b.top+$("#firsttrbookable").height()-1+iepixhack,g=($("div#bookable").height()-$("#firsttrbookable").height())-iepixhack,j=b.left-1,i=d+(g*l),k=$("div#bookable").width(),a={color:"red",alpha:0.7,ftSz:".75em",ftFam:"verdana,helvetica,sans-serif"},e=today.format("h:MMtt"),f=new Date(today.getFullYear(),today.getMonth(),today.getDate(),today.getHours(),today.getMinutes()+1,0);$("div#canvas").remove();$("div#bookable").before('<div id="canvas"/>');$("div#canvas").drawRect(j,i,k,0,a).fillPolygon([j,j+4,j],[i-4,i,i+4],a).fillPolygon([j+k,j+k-4,j+k],[i-4,i,i+4],a).drawString(e,j-(e.length*8.5),i-10,a);redrawLineTimer=setInterval("drawCurrentTimeLine()",f-today)}}function updateBookableTable(){today=new Date();$("td[id^=avail]").removeClass("notavail").removeClass("notclaimed");$.each(data.bookable,function(a,f){var d=null,e=null;if(f.due&&$("#datepicker").datepicker("getDate").format("yyyymmdd")==today.format("yyyymmdd")){d=new Date(parseInt(f.due));e=new Date(parseInt(f.due));e.setHours(today.getHours()-1);styleUnavailTDs(e.format("HHMM"),d.format("HHMM"),f.reckey,"notavail")}for(var b in f.bookings){if(b==$("#datepicker").datepicker("getDate").format("yyyymmdd")){for(var g in f.bookings[b]){if($("#datepicker").datepicker("getDate").format("yyyymmdd")==today.format("yyyymmdd")&&parseInt(g,10)<parseInt(today.format("HHMM"),10)&&parseInt(today.format("HHMM"),10)<parseInt(f.bookings[b][g],10)&&!f.due){styleUnavailTDs(g,f.bookings[b][g],f.reckey,"notclaimed")}else{styleUnavailTDs(g,f.bookings[b][g],f.reckey,"notavail")}}}}});if($("#datepicker").datepicker("getDate").format("yyyymmdd")!=today.format("yyyymmdd")){$("div#nonbookable").animate({opacity:0},500);$("div#canvas").fadeOut().remove()}else{updateNonBookableTable();$("div#nonbookable").animate({opacity:1},1000);drawCurrentTimeLine()}}function updateNonBookableTable(){$.each(data.nonbookable,function(a,d){if($("td#dueat"+d.reckey).data("duetime")||(parseInt($("td#dueat"+d.reckey).data("duetime")/60000)!=parseInt(d.due/60000))){if(d.due){var b=new Date(parseInt(d.due));if(parseInt($("td#dueat"+d.reckey).data("duetime")/60000)!=parseInt(d.due/60000)){$("td#dueat"+d.reckey).fadeOut().html(b.format("h:MMtt")).fadeIn().data("duetime",d.due)}}else{$("td#dueat"+d.reckey).fadeOut().html("&nbsp;").fadeIn().data("duetime",d.due)}}})}function buildBookableTable(){var a='<table id="bookable"><tr id="firsttrbookable"><th>&nbsp;</th>';$.each(data.bookable,function(e,f){a+='<th id="desc'+f.reckey+'">'+f.description.replace(/,/,"<br />")+'<br/><a target="_blank" href=http://www.d.umn.edu/lib/gsr/gsr_gateway.php?reckey='+f.reckey+'><img src="images/bookit.gif" height="15" width="56"/></a></th>'});for(c=730;c<2400;c+=30){var b=new Date(9,1,1,parseInt(c/100),c%100,0),d="";if(c%200==0||c%200==30){d="tdgrey"}a+='<tr><td class="alignright '+d+'">'+b.format("h:MMtt")+"</td>";$.each(data.bookable,function(e,f){a+='<td class="'+d+'" id="avail'+f.reckey+PadDigits(c,4)+'"></td>'});a+="</tr>";if(c%100==30){c+=40}}a+="</tr></table>";$("div#bookable").html($(a))}function buildNonBookableTable(){var a='<table id="nonbookable"><tr><th>&nbsp;</th>';$.each(data.nonbookable,function(b,d){a+='<th id="desc'+d.reckey+'">'+d.description.replace(/,/,"<br />")+"</th>"});a+='<tr><td class="due highlight">Due&nbsp;at:</td>';$.each(data.nonbookable,function(b,d){a+='<td class="highlight" id="dueat'+d.reckey+'"></td>'});a+="</tr>";a+="</tr></table><br />";$("#nonbookable").html($(a))}$(function(){$("#datepicker").focus(function(){$(this).blur()});$("#datepicker").datepicker({dateFormat:"DD, MM d, yy",minDate:today,showOn:"both",buttonImage:"images/calendar.png",buttonImageOnly:true,showButtonPanel:true,buttonText:"Pick a Date",closeText:"Close"});$("#datepicker").datepicker("setDate",today);$("#datepicker").attr("size",$("#datepicker").datepicker("getDate").format("dddd, mmmm d, yyyy").length);init();$("#todaybtn").click(function(){$("#datepicker").datepicker("setDate",today);updateBookableTable()});$("#datepicker").change(function(){updateBookableTable();$("#datepicker").attr("size",$("#datepicker").datepicker("getDate").format("dddd, mmmm d, yyyy").length)});$(window).bind("resize",function(){if(resizeTimer){clearTimeout(resizeTimer)}resizeTimer=setTimeout(drawCurrentTimeLine,100)})});