
var LINK_LIST_CLASS="LinkList";function LinkListManager(){this.componentClass=LINK_LIST_CLASS;}
LinkListManager.prototype=new AbstractComponentManager();LinkListManager.prototype.constructor=AbstractComponentManager;LinkListManager.prototype.toString=function(){return"LinkListManager";};LinkListManager.prototype.registerComponent=function registerComponent(id,props){this._nComponents.push(new LinkList(id,props));};function LinkList(id,props){AbstractComponent.apply(this,[id,props]);}
LinkList.contentLengthUnit="b";LinkList.SI_PREFIXES=["","k","M"];LinkList.CONTENT_LENGTH_PRE_STRING="contentLengthPreString";LinkList.CONTENT_LENGTH_POST_STRING="contentLengthPostString";LinkList.UNKNOWN_CONTENT_LENGTH="unknownContentLength";LinkList.UNKNOWN_CONTENT_TYPE="unknownContentType";LinkList.CONTENT_LENGTH_UNIT="contentTypeUnit";LinkList.LINK_TARGET="linkTarget";LinkList.DYNAMIC_LINK_INFO="dynamicLinkInfo";LinkList.FACTORIZE_CONTENT_LENGTH="factorizeContentLength";LinkList._messages={contentLengthPreString:"",contentLengthPostString:"",unknownContentLength:"&nbsp;",unknownContentType:"&nbsp;",contentTypeUnit:"b",linkTarget:"",dynamicLinkInfo:false,factorizeContentLength:false};LinkList.addMessage=function addMessage(key,msg){LinkList._messages[key]=msg;};LinkList.fillContentTypeElement=false;LinkList.showExtension=true;LinkList.serverSideExtensionsRE=/(asp)|(aspx)|(cfc)|(cfm)|(cfml)|(cgi)|(jsp)|(jspf)|(php)|(php3)|(php4)$/i;LinkList.fileExtensionsRE=/(css)|(exe)|(divx)|(doc)|(gif)|(gz)|(htm)|(html)|(iso)|(jpeg)|(jpg)|(js)|(mov)|(mp3)|(mpg)|(pdf)|(png)|(ppt)|(ps)|(rar)|(rtf)|(swf)|(tar)|(tgz)|(txt)|(wav)|(xls)|(xml)|(zip)$/i;LinkList.unreserved=String("[a-zA-Z0-9-\\._\\~]");LinkList.regName=String(LinkList.unreserved);LinkList.host=String("("+LinkList.regName+")*");LinkList.port=String("[0-9]+");LinkList.authority=LinkList.host+"(:"+LinkList.port+")?";LinkList.hierPart="\\/\\/"+LinkList.authority;LinkList.scheme="\\w[a-zA-Z0-9+-.]*";LinkList.URI=LinkList.scheme+":"+LinkList.hierPart;LinkList.domainRE=new RegExp(LinkList.URI);LinkList.rewriteContentLength=function(length){if(!length||!isFinite(length)){return null;}
var powerOf1000=0;while(1000<length){length=length/1024;powerOf1000++;}
return String(Math.round(length*100)/100)+""+LinkList.SI_PREFIXES[powerOf1000]+LinkList._messages[LinkList.CONTENT_LENGTH_UNIT];};LinkList.refersLocalResource=function(linkElm){return Boolean(linkElm.href&&(document.location.host==linkElm.host||document.location.host==linkElm.hostname));};LinkList.prototype=new AbstractComponent();LinkList.prototype.constructor=LinkList;LinkList.prototype.toString=function(){return"LinkList, id: "+this._id;};LinkList.prototype.init=function init(){var logMsg=[];try{this.setDomElementById(this._id);if(!this.requireInit()){return;}
var qDomElement=$jq(this._domElement);var layoutImplem=this._domElement.getElementsByTagName('table').length?"table":"list";links=qDomElement.find("a");if(links.size()){$jq(links).each(function(){var link=this,qlink=$jq(link),contentTypeElm,contentLengthElm,qLinkParent=qlink.parent(),workVar;if("table"==layoutImplem){workVar=qLinkParent.siblings().children(".contentType:eq(0)");contentTypeElm=(workVar&&workVar[0])||null;workVar=qLinkParent.siblings(".contentLength:eq(0)");contentLengthElm=(workVar&&workVar[0])||null;}else if("list"==layoutImplem){workVar=qLinkParent.find(".contentType:eq(0)");contentTypeElm=(workVar&&workVar[0])||null;workVar=qLinkParent.find(".contentLength:eq(0)");contentLengthElm=(workVar&&workVar[0])||null;}
var contentLength="",contentType="",classValues="iconified";if(LinkList._messages[LinkList.DYNAMIC_LINK_INFO]&&LinkList.refersLocalResource(link)){$jq.ajax({type:'HEAD',url:link.href,beforeSend:function(xhr){xhr.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");},complete:function(xhr,status){var contentLength="",contentType="",classValues="iconified";try{if("error"==status){qlink.attr({title:"err."+xhr.status,alt:"err."+xhr.status}).css({backgroundColor:"red",color:"white"});contentLength=LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH];classValues+=" errorContent";contentType=LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE];throw new Error();}
if(this._messages["factorizeContentLength"]){try{contentLength=LinkList.rewriteContentLength(xhr.getResponseHeader("Content-Length")||xhr.getResponseHeader("Content-length"));}catch(contentTypeException){contentLength=LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH];}}
try{contentType=xhr.getResponseHeader("Content-Type");if(!contentType){throw new Error();}
var extension="";if(/;.*$/.test(contentType)){contentType=contentType.replace(/;.*$/,"");}
if(/(html)|(xml)|(plain)$/.test(contentType.toLowerCase())){extension=contentType.toLowerCase().match(/(html)|(xml)|(plain)$/)[0];if(extension){extension="plain"==extension?"txt":extension;classValues+=" "+extension+"Content";contentType=LinkList.showExtension?"."+extension:contentType;}else{throw new Error();}}else{var workCopy=null;workCopy=link.href;if(/\?.*$/.test(workCopy)){workCopy=workCopy.replace(/\?.*$/,"");}
if(/\/$/.test(workCopy)){workCopy=workCopy.replace(/\/$/,"");}
extension=workCopy.match(/\.\w+$/)[0].replace(/^\./,"").toLowerCase();if(extension){if(LinkList.serverSideExtensionsRE.test(extension)){workCopy=contentType.toLowerCase();if(/^.+\//.test(workCopy)){workCopy=workCopy.replace(/^.+\//,"");}
if(/\./.test(workCopy)){workCopy=workCopy.replace(/\./g,"");}
classValues+=" "+workCopy+"Content";}else if(LinkList.fileExtensionsRE.test(extension)){classValues+=" "+extension+"Content";contentType="."+extension;}
else{classValues+=" "+extension+"Content";contentType=LinkList.showExtension?"."+extension:contentType;}}else{classValues+=" "+contentType.replace(/^.*\//,"").replace(/\./,"")+"Content";}}}catch(contentTypeException){classValues+=" unknownContent";contentType=LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE];}}catch(contentException){}
contentLength=LinkList._messages[LinkList.CONTENT_LENGTH_PRE_STRING]+contentLength+LinkList._messages[LinkList.CONTENT_LENGTH_POST_STRING];if(contentLengthElm){contentLengthElm.innerHTML=contentLength;}
if(contentTypeElm){var qContentTypeElm=$jq(contentTypeElm).removeClass("iconified unknownContent").addClass(classValues);if(LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE]!=contentType){qContentTypeElm.attr({title:contentType,alt:contentType});}
contentTypeElm.innerHTML=LinkList.fillContentTypeElement?/html?/.test(contentType)?"&nbsp;":contentType:"&nbsp;";}
if(!/htm(l?).*/.test(contentType)){if(!link.target&&LinkList._messages["linkTarget"]){link.target=LinkList._messages["linkTarget"];}}}});}else{var extension="none";var workCopy=null;if(LinkList._messages["factorizeContentLength"]){try{var qContentLength=qlink.find(".contentLength:eq(0)");if(qContentLength.size()){var hcText=qContentLength.text().match(/\d+/,"");contentLength=LinkList.rewriteContentLength(hcText)||(LinkList._messages[LinkList.CONTENT_LENGTH_PRE_STRING]+
LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH]+
LinkList._messages[LinkList.CONTENT_LENGTH_POST_STRING]);}}catch(exception){contentLength=LinkList._messages[LinkList.CONTENT_LENGTH_PRE_STRING]+LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH]+LinkList._messages[LinkList.CONTENT_LENGTH_POST_STRING];}}
workCopy=link.href;workCopy=workCopy.replace(/(\?|(%23)).*$/,"").replace(/\/$/,"");if(/\.\w+$/.test(workCopy)){extension=workCopy.match(/\.\w+$/)[0].replace(/^\./,"");if(LinkList.serverSideExtensionsRE.test(extension)){classValues+=" unknownContent";contentType="."+extension;}else if(LinkList.fileExtensionsRE.test(extension)){classValues+=" "+extension+"Content";contentType="."+extension;}else if(workCopy==link.href.match(LinkList.domainRE)[0]){classValues+=" htmlContent";contentType=".html";}else{classValues+=" unknownContent";contentType=LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE];}}else{classValues+=" unknownContent";contentType=LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE];}}
if(LinkList._messages["factorizeContentLength"]&&contentLengthElm){contentLengthElm.innerHTML=contentLength;}
if(contentTypeElm){var qContentTypeElm=$jq(contentTypeElm).addClass(classValues);if(LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE]!==contentType){qContentTypeElm.attr({title:contentType,alt:contentType});}
contentTypeElm.innerHTML=LinkList.fillContentTypeElement?/html?/.test(contentType)?"&nbsp;":contentType:"&nbsp;";}
if(LinkList._messages["linkTarget"]&&!link.target&&(!LinkList.refersLocalResource(link)||!/html?/.test(contentType))){link.target=LinkList._messages["linkTarget"];}});}
this.setInitialized(true);}catch(exception){}};application.addComponentManager(new LinkListManager(application));

