/*
 * Link Tracker v0.4 (2011-07-20)
 *
 * Based on Ajax Link Tracker v2.2 by Glenn Jones
 * Enhancments by Christian Rémillard (christian.remillard () gmail.com)
 *
 */
jQuery=(Versions)?Versions.use("jquery","latest"):jQuery;function AjaxLinkTracker(){var b;if(this.constructor==AjaxLinkTracker){b=this}else{b=arguments[arguments.length-1]}b.apiURL="http://www.bib.umontreal.ca/link-tracker/";b.apiDomain="www.bib.umontreal.ca";b.displayCount=true;b.displayPercent=true;b.displayLabel=true;b.numberDays=30;b.clickOffSet=10;b.regions=[["bandeau-UdeM",/^um-b-/],["bandeau-commun",/^bib-b-/],["menu",/^bib-m-/],["cartouche",/^bib-c-/],["pied-de-page",/^um-pied-/],["contenu",/.*/]];b.defaultPages=["default.htm","default.html","index.html","index.htm"];b.debug=false;b.normalizeString=function(c){c=c.replace(/[\t\n\r ]+/g," ");if(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.charAt(c.length-1)==" "){c=c.substring(0,c.length-1)}return c};b.getBaseURL=function(c){var c=c.toString();c=c.replace(/#.*/,"");for(i=0;i<b.defaultPages.length;i++){c=c.replace(b.defaultPages[i],"")}return c};b.isOnSecureDomain=(document.location.host==b.apiDomain)?true:false;if(!b.isOnSecureDomain){return}b.url=b.getBaseURL(document.location);b.listeners=[];b.ajaxURL="";b.loadingDialog=document.createElement("div");b.loadingDialog.id="LT-loading-dialog";b.loadingDialog.innerHTML='<div id="LT-loading"><img src="/images/modele/spinner.gif"> Chargement...</div>';b.makeUniqueId=function(d,c){c=c||1;if(document.getElementById(d+"-"+c)){c=c+1;return b.makeUniqueId(d,c)}else{return d+"-"+c}};b.addLinkTracking=function(){if(!document.getElementsByTagName){return false}if(!b.isOnSecureDomain){return false}b.clickedXHR=new XHRConnection();b.getClicksXHR=new XHRConnection();links=document.links;for(var d=0;d<links.length;d++){b.addEvent(links[d],"mousedown",b.recordClick,false);b.addEvent(links[d],"keypress",b.linkKeyPress,false);if(!links[d].getAttribute("id")){var c="link-"+createID(links[d].href,b.normalizeString(b.getInnerText(links[d])));if(document.getElementById(c)){if(b.debug){DebugConsole.write("id "+c+" already used on node "+links[d].tagName+"[href='"+links[d].href+"'], text \""+b.normalizeString(b.getInnerText(links[d]))+'". Making a new one.')}c=b.makeUniqueId(c);if(b.debug){DebugConsole.write("... new id is "+c)}}links[d].setAttribute("id",c)}}inputs=document.getElementsByTagName("input");for(var d=0;d<inputs.length;d++){type=inputs[d].getAttribute("type");if(type=="submit"||type=="button"||type=="image"||type=="reset"){b.addEvent(inputs[d],"mousedown",b.recordClick,false);b.addEvent(inputs[d],"keypress",b.linkKeyPress,false);if(!inputs[d].getAttribute("id")){inputs[d].setAttribute("id","button-"+d)}}}};b.linkKeyPress=function(c){var d=(window.event)?event.keyCode:c.keyCode;if(d==13){b.recordClick(c)}};b.recordClick=function(k){source=b.findSourceElement(k);tag=source.tagName;if(b.debug){DebugConsole.write("Recording a 'click' event from element type "+tag)}var m,f,h,g,c,d;switch(tag){case"IMG":if(source.parentNode.tagName=="A"){m=source.parentNode.getAttribute("id");h=source.parentNode.href}f=source.getAttribute("alt");if(f==null||normalizeString(f)==""){f=source.getAttribute("title")}if(f==null||normalizeString(f)==""){f="[img]"}if(b.debug){DebugConsole.write("Processed information items for element type : "+tag+"#"+m)}break;case"A":m=source.getAttribute("id");h=source.href;f=b.normalizeString(b.getInnerText(source));if(f==""){f="["+m+"]"}if(b.debug){DebugConsole.write("Processed information items for element type : "+tag+"#"+m)}break;case"INPUT":m=source.getAttribute("id");f=source.getAttribute("value")||source.getAttribute("alt")||m;if(source.getAttribute("type")=="submit"||source.getAttribute("type")=="image"){h=b.getFormTarget(source)}else{if(source.getAttribute("type")=="reset"){h="[reset]"}else{h="[script]"}}if(b.debug){DebugConsole.write("Processed information items for element type : "+tag+"#"+m)}break;case"AREA":m=source.getAttribute("id");h=source.href;f=source.getAttribute("alt");if(f==null||normalizeString(f)==""){f=source.getAttribute("title")}if(f==null||normalizeString(f)==""){f="[area]"}if(b.debug){DebugConsole.write("Processed information items for element type : "+tag+"#"+m)}break;default:if(b.debug){DebugConsole.write("ERROR: A click event has been raised on an element that could not be processed :");DebugConsole.write("  tagName : "+tag);DebugConsole.write("  id : "+source.getAttribute("id"));DebugConsole.write("  target : "+source.href);DebugConsole.write("  innerHTML : "+source.innerHTML);DebugConsole.write("Canceling 'click' event recording...")}return}g=(readCookie("session-cookie"))?readCookie("session-cookie"):"disabled";c=(readCookie("persistent-cookie"))?readCookie("persistent-cookie"):"disabled";d=b.getRegion(m);m=encodeURIComponent(m);h=encodeURIComponent(h);f=encodeURIComponent(f);g=encodeURIComponent(g);c=encodeURIComponent(c);d=encodeURIComponent(d);b.ajaxURL=b.apiURL+"addclick.php?id="+m+"&label="+f+"&target="+h+"&url="+b.url+"&session_cookie="+g+"&persistent_cookie="+c+"&page_region="+d+"&rand="+Math.random();if(b.debug){DebugConsole.write("Sending click data to : "+b.ajaxURL)}b.clickedXHR.send(b.ajaxURL,"get",b.beenClicked,null)};b.beenClicked=function(c){};b.getClickThroughInfo=function(){document.body.appendChild(b.loadingDialog);b.ajaxURL=b.apiURL+"getclicks.php?url="+b.url+"&days="+b.numberDays+"&rand="+Math.random();if(b.debug){DebugConsole.write("Loading data from : "+b.ajaxURL)}b.getClicksXHR.send(b.ajaxURL,"get",b.displayClickThroughs,null)};b.displayClickThroughs=function(h){if(!document.getElementsByTagName){return false}if(b.debug){DebugConsole.write(" ... "+h.statusText+" ("+h.status+")")}if(h.responseXML){node=h.responseXML}if(h.responseXml){node=h.responseXML}if(node.parseError&&node.parseError.errorCode!=0){if(b.debug){DebugConsole.write("Response XML parsing status : "+node.parseError.errorCode)}if(b.debug){DebugConsole.write("Error details :")}if(b.debug){DebugConsole.write(" reason : "+node.parseError.reason)}if(b.debug){DebugConsole.write(" line : "+node.parseError.line)}if(b.debug){DebugConsole.write(" position : "+node.parseError.linepos)}if(b.debug){DebugConsole.write(" source : "+node.parseError.srcText)}var m=document.getElementById("LT-loading-dialog");b.loadingDialog=document.body.removeChild(m);alert("Erreur. Les données de l'application link tracker sont illisibles.\n\nDétails de l'erreur : \n"+node.parseError.reason+"\nS.V.P. contactez le webmestre.");return true}if(node.childNodes[0].nodeType==7){rootNode=node.childNodes[1]}else{rootNode=node.childNodes[0]}var c=rootNode.getElementsByTagName("link");for(var e=0;e<c.length;e++){var d=c[e];count=d.getAttribute("count");percent=d.getAttribute("percent");id=d.getAttribute("id");label=d.childNodes[0].nodeValue;if(document.getElementById(id)){eltLink=document.getElementById(id);eltDiv=document.createElement("div");eltDiv.className="linklabel";var k="";if(b.displayCount){k+=count+" "}if(b.displayPercent){k+="("+percent+"%)"}if(b.displayLabel){eltDiv.setAttribute("title",label)}eltText=document.createTextNode(k);eltDiv.appendChild(eltText);document.body.appendChild(eltDiv);a.init(eltDiv,eltDiv);ileft=parseInt(b.getPageOffsetLeft(eltLink))+b.clickOffSet;itop=parseInt(b.getPageOffsetTop(eltLink))+b.clickOffSet;if(eltLink.tagName=="AREA"){if(eltLink.getAttribute("nohref")!=null){var g=eltLink.getAttribute("coords");var f=document.getElementsByTagName("IMG");for(j=0;j<f.length;j++){if(f.item(j).getAttribute("usemap")){if(f.item(j).getAttribute("usemap")=="#"+eltLink.parentElement.id){sourceImage=f.item(j);ileft=parseInt(b.getPageOffsetLeft(sourceImage))+b.clickOffSet;itop=parseInt(b.getPageOffsetTop(sourceImage))+b.clickOffSet;break}}}if(g!=null){g=g.split(",");ileft+=parseInt(g.shift());itop+=parseInt(g.shift())}}}eltDiv.style.left=ileft+"px";eltDiv.style.top=itop+"px"}}b.labelsCreated=true;b.labelsDisplayed=true;var m=document.getElementById("LT-loading-dialog");b.loadingDialog=document.body.removeChild(m)};b.getClickThroughListInfo=function(){document.body.appendChild(b.loadingDialog);b.ajaxURL=b.apiURL+"getclicks.php?url="+b.url+"&days="+b.numberDays+"&rand="+Math.random();if(b.debug){DebugConsole.write("Loading data from : "+b.ajaxURL)}b.getClicksXHR.send(b.ajaxURL,"get",b.displayClickThroughsList,null)};b.displayClickThroughsList=function(n){if(!document.getElementsByTagName){return false}if(b.debug){DebugConsole.write(" ... "+n.statusText+" ("+n.status+")")}if(n.responseXML){node=n.responseXML}if(n.responseXml){node=n.responseXML}if(node.parseError&&node.parseError.errorCode!=0){if(b.debug){DebugConsole.write("Response XML parsing status : "+node.parseError.errorCode)}if(b.debug){DebugConsole.write("Error details :")}if(b.debug){DebugConsole.write(" reason : "+node.parseError.reason)}if(b.debug){DebugConsole.write(" line : "+node.parseError.line)}if(b.debug){DebugConsole.write(" position : "+node.parseError.linepos)}if(b.debug){DebugConsole.write(" source : "+node.parseError.srcText)}var h=document.getElementById("LT-loading-dialog");b.loadingDialog=document.body.removeChild(h);alert("Erreur. Les données de l'application link tracker sont illisibles.\n\nDétails de l'erreur : \n"+node.parseError.reason+"\nS.V.P. contactez le webmestre.");return true}if(node.childNodes[0].nodeType==7){rootNode=node.childNodes[1]}else{rootNode=node.childNodes[0]}var s=rootNode.getElementsByTagName("link");var z="";var k=document.createElement("div");k.id="ce-master-list-panel";var r=document.createElement("div");r.id="ce-list-panel";var u=document.createElement("div");u.id="ce-list-top";u.innerHTML='<span id="ce-list-title">Clicks pour cette page depuis les '+b.numberDays+' derniers jours <span id="ce-view-xml">(<a href="'+b.ajaxURL+'" target="_blank">format XML</a>)</span></span>';r.appendChild(u);var A=document.createElement("div");A.id="ce-list-cont";var w=document.createElement("a");w.id="ce-list-close";w.innerHTML="Fermer";A.appendChild(w);var t=document.createElement("table");t.id="ce-list";t.className="sortable";t.setAttribute("border","0");var f=document.createElement("thead");var c=document.createElement("tr");th=document.createElement("th");th.id="ce-col-th-label";th.className="ce-col-label";th.innerHTML="Lien";c.appendChild(th);th=document.createElement("th");th.id="ce-col-th-region";th.className="ce-col-region";th.innerHTML="Région";c.appendChild(th);th=document.createElement("th");th.id="ce-col-th-clicks";th.className="ce-col-clicks";th.innerHTML="Clics";c.appendChild(th);th=document.createElement("th");th.id="ce-col-th-pourcent";th.className="ce-col-pourcent";th.innerHTML="Pourcent";c.appendChild(th);f.appendChild(c);t.appendChild(f);var g=document.createElement("tbody");var v=rootNode.getAttribute("total-count");var x=0;var m;if(s.length==0){var y=document.createElement("tr");m=document.createElement("td");m.className="ce-col-no-data";m.colSpan=4;m.innerHTML="<em>Aucune donnée pour cette page</em>";y.appendChild(m);g.appendChild(y)}for(var q=0;q<s.length;q++){var e=s[q];count=e.getAttribute("count");percent=e.getAttribute("percent");id=e.getAttribute("id");pageRegion=e.getAttribute("page-region");label=e.childNodes[0].nodeValue;var y=document.createElement("tr");m=document.createElement("td");m.className="ce-col-label";m.innerHTML=makeBreakable(label);m.setAttribute("title",label);y.appendChild(m);m=document.createElement("td");m.className="ce-col-region";m.innerHTML=pageRegion;y.appendChild(m);m=document.createElement("td");m.className="ce-col-clicks";m.innerHTML=count;y.appendChild(m);m=document.createElement("td");m.className="ce-col-percent";m.innerHTML=percent+"%";y.appendChild(m);g.appendChild(y);x+=parseFloat(percent)}t.appendChild(g);var p=document.createElement("tfoot");y=document.createElement("tr");th=document.createElement("th");th.className="ce-col-label";th.colSpan=2;th.innerHTML="Total";y.appendChild(th);th=document.createElement("th");th.className="ce-col-clicks";th.innerHTML=v;y.appendChild(th);th=document.createElement("th");th.className="ce-col-percent";th.innerHTML=Math.ceil(x*100)/100+"%";y.appendChild(th);p.appendChild(y);t.appendChild(p);A.appendChild(t);r.appendChild(A);var o=document.createElement("div");o.id="ce-list-bot";o.innerHTML="&nbsp;";r.appendChild(o);k.appendChild(r);if(jQuery.browser.msie&&jQuery.browser.version<7){var d=document.createElement("div");d.innerHTML='<iframe id="shim" src="javascript:false;" scrolling="no" frameborder="0" style="display: none; position: absolute; background-color: transparent; border: 0;"></iframe>';d=d.firstChild;r.shim=d;k.appendChild(d)}document.body.appendChild(k);a.init(u,r);ileft=(screen.availWidth-552)/2;itop=20;r.style.left=ileft+"px";r.style.top=itop+"px";if(r.shim){var d=r.shim;d.style.zIndex=r.currentStyle.zIndex-1;d.style.left=ileft+"px";d.style.top=itop+"px";d.style.width=r.offsetWidth;d.style.height=r.offsetHeight;d.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";d.style.display="block";r.onDrag=function(B,C){d.style.left=r.offsetLeft;d.style.top=r.offsetTop}}b.addEvent(w,"click",function(B){k.parentNode.removeChild(k)},false);sortTable(t,2,true,0);b.addEvent(document.getElementById("ce-col-th-label"),"click",function(B){sortTable(t,0)},false);b.addEvent(document.getElementById("ce-col-th-region"),"click",function(B){sortTable(t,1,false,2)},false);b.addEvent(document.getElementById("ce-col-th-clicks"),"click",function(B){sortTable(t,2,true,0)},false);var h=document.getElementById("LT-loading-dialog");b.loadingDialog=document.body.removeChild(h)};b.keyCheck=function(d){if(!b.isOnSecureDomain){return false}if(!document.getElementById){return false}var g=(window.event)?event.keyCode:d.keyCode;var f=(window.event)?event.ctrlKey:d.ctrlKey;if((g==88)&&(f==true)){eltLabels=b.getElementsByClassName("linklabel");if(eltLabels.length==0){b.getClickThroughInfo()}else{for(var c=0;c<eltLabels.length;c++){eltLabels[c].parentNode.removeChild(eltLabels[c])}}}if((g==90)&&(f==true)){eltLinkList=document.getElementById("ce-master-list-panel");if(eltLinkList){eltLinkList.parentNode.removeChild(eltLinkList)}else{b.getClickThroughListInfo()}}};b.getInnerText=function(d,e){var e=e||"";for(var c=0;c<d.childNodes.length;c++){if(d.childNodes[c].nodeType==3){e+=d.childNodes[c].nodeValue}if(d.childNodes[c].nodeType==1){if(d.childNodes[c].tagName=="IMG"&&d.childNodes[c].getAttribute("alt")){e+=d.childNodes[c].getAttribute("alt")}else{e=b.getInnerText(d.childNodes[c],e)}}}return e};b.getFormTarget=function(c){target=null;parentElt=c.parentNode;if(parentElt.nodeType==1){if(parentElt.tagName=="FORM"){target=parentElt.getAttribute("action")}else{target=b.getFormTarget(c.parentNode)}}else{target=b.getFormTarget(c.parentNode)}return target};b.addEvent=function(h,f,d,c){if(h.AddEventListener){h.AddEventListener(f,d,c);return true}else{if(h.attachEvent){var e=h.attachEvent("on"+f,d);b.listeners[b.listeners.length]=[h,f,d];return e}else{var g=h["on"+f];if(typeof h["on"+f]!="function"){h["on"+f]=d}else{h["on"+f]=function(k){g(k);d(k)}}}}};b.unload=function(){if(window.attachEvent){for(var c=0;c<b.listeners.length;c++){b.listeners[c][0].detachEvent("on"+b.listeners[c][1],b.listeners[c][2])}}};b.getElementsByClassName=function(f){var e=document.getElementsByTagName("*")||document.all;var g=new Array();for(var d=0;d<e.length;d++){var k=e[d];var h=k.className.split(" ");for(var c=0;c<h.length;c++){if(h[c]==f){g.push(k);break}}}return g};b.findSourceElement=function(f){if(typeof f=="undefined"){var f=window.event}var d;if(typeof f.currentTarget!="undefined"){d=f.currentTarget}else{if(typeof f.srcElement!="undefined"){d=f.srcElement;var c=document.addEventListener?"DOM":document.attachEvent?"IE":"legacy";if(c=="IE"&&d.tagName!="A"){if(d.parentNode.tagName=="A"){if(d.parentNode.tagName=="A"){d=d.parentNode}else{if(d.parentNode.parentNode.tagName=="A"){d=d.parentNode.parentNode}}}}}else{return true}}if(d.nodeType==3){d=d.parentNode}return d};b.getPageOffsetLeft=function(d){var c;c=d.offsetLeft;if(d.offsetParent!=null){c+=b.getPageOffsetLeft(d.offsetParent)}return c};b.getPageOffsetTop=function(c){var d;d=c.offsetTop;if(c.offsetParent!=null){d+=b.getPageOffsetTop(c.offsetParent)}return d};b.getRegion=function(d){if(b.degub){DebugConsole.write("Evaluating the page region where is the current link ("+d+")")}var c=b.regions;for(i=0;i<c.length;i++){if(b.degub){DebugConsole.write("  ... trying "+b.regions[i][0])}if(d.match(c[i][1])){if(b.degub){DebugConsole.write("  Found : "+b.regions[i][0])}return c[i][0]}}return""};b.addStyle=function(c,d){l=document.createElement("link");l.setAttribute("rel","stylesheet");l.setAttribute("href",c);l.setAttribute("type","text/css");l.setAttribute("charset",d);document.getElementsByTagName("HEAD")[0].appendChild(l);if(b.degub){DebugConsole.write("Added link to stylesheet : "+c)}};var a={obj:null,init:function(f,m,h,d,g,c,n,k,p,e){f.onmousedown=a.start;f.hmode=n?false:true;f.vmode=k?false:true;f.root=m&&m!=null?m:f;if(f.hmode&&isNaN(parseInt(f.root.style.left))){f.root.style.left="0px"}if(f.vmode&&isNaN(parseInt(f.root.style.top))){f.root.style.top="0px"}if(!f.hmode&&isNaN(parseInt(f.root.style.right))){f.root.style.right="0px"}if(!f.vmode&&isNaN(parseInt(f.root.style.bottom))){f.root.style.bottom="0px"}f.minX=typeof h!="undefined"?h:null;f.minY=typeof g!="undefined"?g:null;f.maxX=typeof d!="undefined"?d:null;f.maxY=typeof c!="undefined"?c:null;f.xMapper=p?p:null;f.yMapper=e?e:null;f.root.onDragStart=new Function();f.root.onDragEnd=new Function();f.root.onDrag=new Function()},start:function(d){var f=a.obj=this;d=a.fixE(d);var g=parseInt(f.vmode?f.root.style.top:f.root.style.bottom);var c=parseInt(f.hmode?f.root.style.left:f.root.style.right);f.root.onDragStart(c,g);f.lastMouseX=d.clientX;f.lastMouseY=d.clientY;if(f.hmode){if(f.minX!=null){f.minMouseX=d.clientX-c+f.minX}if(f.maxX!=null){f.maxMouseX=f.minMouseX+f.maxX-f.minX}}else{if(f.minX!=null){f.maxMouseX=-f.minX+d.clientX+c}if(f.maxX!=null){f.minMouseX=-f.maxX+d.clientX+c}}if(f.vmode){if(f.minY!=null){f.minMouseY=d.clientY-g+f.minY}if(f.maxY!=null){f.maxMouseY=f.minMouseY+f.maxY-f.minY}}else{if(f.minY!=null){f.maxMouseY=-f.minY+d.clientY+g}if(f.maxY!=null){f.minMouseY=-f.maxY+d.clientY+g}}document.onmousemove=a.drag;document.onmouseup=a.end;return false},drag:function(h){h=a.fixE(h);var k=a.obj;var f=h.clientY;var g=h.clientX;var n=parseInt(k.vmode?k.root.style.top:k.root.style.bottom);var d=parseInt(k.hmode?k.root.style.left:k.root.style.right);var c,m;if(k.minX!=null){g=k.hmode?Math.max(g,k.minMouseX):Math.min(g,k.maxMouseX)}if(k.maxX!=null){g=k.hmode?Math.min(g,k.maxMouseX):Math.max(g,k.minMouseX)}if(k.minY!=null){f=k.vmode?Math.max(f,k.minMouseY):Math.min(f,k.maxMouseY)}if(k.maxY!=null){f=k.vmode?Math.min(f,k.maxMouseY):Math.max(f,k.minMouseY)}c=d+((g-k.lastMouseX)*(k.hmode?1:-1));m=n+((f-k.lastMouseY)*(k.vmode?1:-1));if(k.xMapper){c=k.xMapper(n)}else{if(k.yMapper){m=k.yMapper(d)}}a.obj.root.style[k.hmode?"left":"right"]=c+"px";a.obj.root.style[k.vmode?"top":"bottom"]=m+"px";a.obj.lastMouseX=g;a.obj.lastMouseY=f;a.obj.root.onDrag(c,m);return false},end:function(){document.onmousemove=null;document.onmouseup=null;a.obj.root.onDragEnd(parseInt(a.obj.root.style[a.obj.hmode?"left":"right"]),parseInt(a.obj.root.style[a.obj.vmode?"top":"bottom"]));a.obj=null},fixE:function(c){if(typeof c=="undefined"){c=window.event}if(typeof c.layerX=="undefined"){c.layerX=c.offsetX}if(typeof c.layerY=="undefined"){c.layerY=c.offsetY}return c}};b.addEvent(window,"load",b.addLinkTracking,false);b.addEvent(document,"keydown",b.keyCheck,false);b.addEvent(window,"unload",b.unload,false)}var ajaxLinkTracker=new AjaxLinkTracker();function XHRConnection(){var a;if(this.constructor==XHRConnection){a=this}else{a=arguments[arguments.length-1]}a.Request=a.createXHR();a.handler=function(){if(a.Request.readyState==1){a.processLoadingState()}if(a.Request.readyState==4){if(a.Request.status==200){a.processResponse()}else{a.processResponseError()}}};a.send=function(b,d,c,e){a.URL=b;a.Action=d;a.fnOK=c;a.fnNotOK=(e)?fnNotOk:new Function();if(a.Request!=null){a.Request.open(a.Action,a.URL,true);a.Request.onreadystatechange=a.handler;a.Request.send(null)}else{alert("Could not load XHR object")}}}XHRConnection.prototype.createXHR=function(){try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(a){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){}try{return new XMLHttpRequest()}catch(a){}return null};XHRConnection.prototype.processResponse=function(){this.fnOK(this.Request)};XHRConnection.prototype.processResponseError=function(){this.fnNotOK(this.Request)};XHRConnection.prototype.processLoadingState=function(){};addEvent(window,"load",sortables_init);var gblReverseSort=1;var gblShowRanks=1;var gblDefaultColumn=-1;var gblMakePretty=false;var gblCaseSensitive=false;function sortables_init(){if(!document.getElementsByTagName){return}tbls=document.getElementsByTagName("table");for(ti=0;ti<tbls.length;ti++){thisTbl=tbls[ti];if(((" "+thisTbl.className+" ").indexOf("sortable")!=-1)&&(thisTbl.id)){ts_makeSortable(thisTbl)}else{if(gblMakePretty){makePretty(thisTbl.getElementsByTagName("tbody")[0],-1,gblDefaultColumn)}}}}function ts_makeSortable(e){var g=e.getElementsByTagName("tbody")[0];if(gblMakePretty){makePretty(g,-1,gblDefaultColumn)}if(e.rows&&e.rows.length>0){var f=e.rows[0]}if(!f){return}for(var d=0;d<f.cells.length;d++){var b=f.cells[d];if(b.className=="sortColumn"){var a=getTextValue(b);var c=window.location;if(b.title.length){c=c+"&amp;sortby="+b.title}else{c=c+"#"}b.innerHTML='<a href="'+c+'" class="sortheader" onclick="ts_resortTable(this);return false;">'+a+'<span class="sortarrow">&nbsp;</span></a>'}}}function ts_resortTable(h){var d;for(var b=0;b<h.childNodes.length;b++){if(h.childNodes[b].tagName&&h.childNodes[b].tagName.toLowerCase()=="span"){d=h.childNodes[b]}}var g=getTextValue(d);var f=h.parentNode;var c=f.cellIndex;var e=getParent(f,"TABLE");ARROW="";if(d.getAttribute("sortdir")=="down"){ARROW="&uarr;";d.setAttribute("sortdir","up")}else{ARROW="&darr;";d.setAttribute("sortdir","down")}var a=document.getElementsByTagName("span");for(var b=0;b<a.length;b++){if(a[b].className=="sortarrow"){if(getParent(a[b],"table")==getParent(h,"table")){a[b].innerHTML="&nbsp;"}}}d.innerHTML=ARROW;sortTable(e,c,gblReverseSort,gblDefaultColumn,gblShowRanks,gblMakePretty)}function getParent(b,a){if(b==null){return null}else{if(b.nodeType==1&&b.tagName.toLowerCase()==a.toLowerCase()){return b}else{return getParent(b.parentNode,a)}}}function addEvent(e,d,b,a){if(e.addEventListener){e.addEventListener(d,b,a);return true}else{if(e.attachEvent){var c=e.attachEvent("on"+d,b);return c}else{alert("Handler could not be removed")}}}function sortTable(s,f,m,n,q,e){var c=s.getElementsByTagName("tbody")[0];if(c.reverseSort==null){c.reverseSort=new Array();c.lastColumn=1}if(c.reverseSort[f]==null){c.reverseSort[f]=m}if(f==c.lastColumn){c.reverseSort[f]=!c.reverseSort[f]}c.lastColumn=f;var a=c.style.display;c.style.display="none";var b;var h,g;var p,k;var r;var o;for(h=0;h<c.rows.length-1;h++){k=h;p=getTextValue(c.rows[h].cells[f]);for(g=h+1;g<c.rows.length;g++){r=getTextValue(c.rows[g].cells[f]);o=compareValues(p,r);if(c.reverseSort[f]){o=-o}if(o==0&&f!=n){for(var d=0;d<c.rows[g].cells.length;d++){if(d!=f){o=compareValues(getTextValue(c.rows[k].cells[d]),getTextValue(c.rows[g].cells[d]));if(o!=0){break}}}}if(o>0){k=g;p=r}}if(k>h){b=c.removeChild(c.rows[k]);c.insertBefore(b,c.rows[h])}}if(e){makePretty(c,f,n)}if(q){setRanks(c,f,m)}c.style.display=a;return false}if(document.ELEMENT_NODE==null){document.ELEMENT_NODE=1;document.TEXT_NODE=3}function getTextValue(c){var a;var b;b="";try{for(a=0;a<c.childNodes.length;a++){if(c.childNodes[a].nodeType==document.TEXT_NODE){b+=c.childNodes[a].nodeValue}else{if(c.childNodes[a].nodeType==document.ELEMENT_NODE&&c.childNodes[a].tagName=="BR"){b+=" "}else{b+=getTextValue(c.childNodes[a])}}}}catch(d){}return normalizeString(b)}function compareValues(d,b){var g,c;var a,f;var e=-1;g=d;c=b;a=new Date(g);f=new Date(c);if(!isNaN(a)&&!isNaN(f)){g=a;c=f}if(g==d){a=parseFloat(g);f=parseFloat(c);if(!isNaN(a)&&!isNaN(f)){g=a;c=f}}if(g==d){a=parseCurrency(g);f=parseCurrency(c);if(!isNaN(a)&&!isNaN(f)){g=a;c=f}}if(g==c){e=0}if(g>c){e=1}return e}function parseCurrency(d){var a=d;if(isValid(d,"Currency")){var c="[^0-9.]";var b=new RegExp(c,"gi");a=d.toString().replace(b,"")}a=parseFloat(a);return a}var valid=new Object();valid.zipCode=/\d{5}(-\d{4})?/;valid.Currency=/\$\d{1,3}(,\d{3})*\.\d{2}/;valid.Time=/^([1-9]|1[0-2]):[0-5]\d$/;valid.emailAddress=/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;valid.phoneNumber=/^\(?\d{3}\)?\s|-\d{3}-\d{4}$/;valid.phoneNumberInternational=/^\d(\d|-){7,20}/;valid.ipAddress=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;valid.Date=/^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;valid.State=/^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i;valid.SSN=/^\d{3}\-\d{2}\-\d{4}$/;function isValid(a,b){var c=valid[b];return c.exec(a)}var whtSpEnds=new RegExp("^\\s*|\\s*$","g");var whtSpMult=new RegExp("\\s\\s+","g");function normalizeString(a){a=a.replace(whtSpMult," ");a=a.replace(whtSpEnds,"");if(!gblCaseSensitive){a=a.toLowerCase()}return a}var rowClsNm="alternateRow";var colClsNm="sortedColumn";var rowTest=new RegExp(rowClsNm,"gi");var colTest=new RegExp(colClsNm,"gi");function makePretty(a,c,h){var g,f,k;var e,d;for(g=0;g<a.rows.length;g++){e=a.rows[g];e.className=e.className.replace(rowTest,"");if(g%2!=0){e.className+=" "+rowClsNm}e.className=normalizeString(e.className);for(f=0;f<a.rows[g].cells.length;f++){d=e.cells[f];d.className=d.className.replace(colTest,"");if(f==c){d.className+=" "+colClsNm}d.className=normalizeString(d.className)}}var b=a.parentNode.tHead;if(b){e=b.rows[b.rows.length-1];for(g=0;g<e.cells.length;g++){d=e.cells[g];d.className=d.className.replace(colTest,"")}}}function setRanks(a,e,m){var k=0;var b=1;if(a.reverseSort[e]){m=!m}if(m){b=-1;k=a.rows.length-1}var n=1;var h=n;var o;var d=null;while(e>0&&k>=0&&k<a.rows.length){o=getTextValue(a.rows[k].cells[e]);if(d!=null&&compareValues(o,d)!=0){h=n}a.rows[k].rank=h;d=o;n++;k+=b}var g,c;var f=0;for(k=0;k<a.rows.length;k++){g=a.rows[k];c=g.cells[0];while(c.lastChild!=null){c.removeChild(c.lastChild)}if(e>0&&g.rank!=f){c.appendChild(document.createTextNode(g.rank));f=g.rank}}}function createID(a,b){return Crc16Str(a)+"-"+Crc16Str(b)}var Crc16Tab=new Array(0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920);function Crc16Add(a,b){return Crc16Tab[((a>>8)^b)&255]^((a<<8)&65535)}function Crc16Str(c){var d;var a=c.length;var b;b=0;for(d=0;d<a;d++){b=Crc16Add(b,c.charCodeAt(d))}return b}function makeBreakable(a){if(a.length>48){a=a.substr(0,45)+'<span class="ce-ellipsis-mark">...</span><span class="ce-ellipsis-trailing">'+a.substr(45)+"</span>"}return a};
