// com.nivaria.ncm.component.linklist.js, nivaria.com, 2007-05-01 cGuyomard

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._messages={contentLengthPreString:"",contentLengthPostString:"",unknownContentLength:"-",unknownContentType:"-",contentTypeUnit:"b"};LinkList.addMessage=function addMessage(key,msg){LinkList._messages[key]=msg;};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)|(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.prototype=new AbstractComponent();LinkList.prototype.constructor=LinkList;LinkList.prototype.toString=function(){return"LinkList, id: "+this._id;};LinkList.prototype.init=function init(){this.setDomElementById(this._id);if(!this.requireInit()){return;}
var qDomElement=$jq(this._domElement);links=qDomElement.find("a");if(links.length){$jq(links).each(function(){var link=this;var qlink=$jq(link);var contentTypeElm=null;var contentLengthElm=null;var contenido = "";if(qDomElement.find("tr").length){contentTypeElm=qlink.parent().siblings(".contentType")[0];contentLengthElm=qlink.parent().siblings(".contentLength")[0];contenido = contentLengthElm.innerHTML;contentLengthElm.innerHTML="";}else if(qDomElement.find("li").length){contentTypeElm=qlink.parent().find(".contentType")[0];contentLengthElm=qlink.parent().find(".contentLength")[0];contenido = contentLengthElm.innerHTML;contentLengthElm.innerHTML="";}
var contentLength="",contentType="",classValues="iconified";if(link.href&&(document.location.host==link.host||document.location.host==link.hostname)){$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){contentLength=LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH];classValues+=" unknownContent";contentType=LinkList._messages[LinkList.UNKNOWN_CONTENT_TYPE];throw new Error();}
try{var exponentedLength=xhr.getResponseHeader("Content-Length");var powerOf1000=0;if (!exponentedLength) {exponentedLength = contenido;}while(1000<exponentedLength){exponentedLength=exponentedLength/1024;powerOf1000++;}
contentLength=Math.round(exponentedLength*100)/100+""+LinkList.SI_PREFIXES[powerOf1000]+LinkList._messages[LinkList.CONTENT_LENGTH_UNIT];}catch(contentTypeException){contentLength=LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH];}
try{contentType=xhr.getResponseHeader("Content-Type");
var extension="";if(contentType && (/;.*$/.test(contentType))){contentType=contentType.replace(/;.*$/,"");}
if(contentType && (/(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(/^\./,"");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];contentLengthElm.innerHTML=contentLength;$jq(contentTypeElm).addClass(classValues);contentTypeElm.innerHTML=contentType;}});}else{var extension="none";var workCopy=null;contentLength=LinkList._messages[LinkList.CONTENT_LENGTH_PRE_STRING]
+LinkList._messages[LinkList.UNKNOWN_CONTENT_LENGTH]
+LinkList._messages[LinkList.CONTENT_LENGTH_POST_STRING]
workCopy=link.href;if(/\?.*$/.test(workCopy)){workCopy=workCopy.replace(/\?.*$/,"");}
if(/\/$/.test(workCopy)){workCopy=workCopy.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];}}
contentLengthElm.innerHTML=contentLength;$jq(contentTypeElm).addClass(classValues);contentTypeElm.innerHTML=contentType;});}
this.setInitialized(true);};application.addComponentManager(new LinkListManager(application));

