// // iWeb - iWebSite.js // Copyright (c) 2007 Apple Inc. All rights reserved. // // // This file includes a copy of the Prototype JavaScript framework: // // Prototype JavaScript framework, version 1.5.0 // (c) 2005-2007 Sam Stephenson // // Prototype is freely distributable under the terms of an MIT-style license. // For details, see the Prototype web site: http://prototype.conio.net/ var windowsInternetExplorer=false;var isGecko=false;var isMozilla=false;var isFirefox=false;var isCamino=false;var isSafari=false;var isNS=false;var isWebKit=false;var isOpera=false;var isiPhone=false;var isEarlyWebKitVersion=false;var browserDetected=false;var listOfIE7FloatsFix=[];function detectBrowser() {if(browserDetected===false) {windowsInternetExplorer=false;var appVersion=navigator.appVersion;if((appVersion.indexOf("MSIE")!=-1)&&(appVersion.indexOf("Macintosh")==-1)) {var temp=appVersion.split("MSIE");browserVersion=parseFloat(temp[1]);windowsInternetExplorer=true;if(typeof(Node)=="undefined") {Node={};Node.ELEMENT_NODE=1;Node.ATTRIBUTE_NODE=2;Node.TEXT_NODE=3;Node.CDATA_SECTION_NODE=4;Node.ENTITY_REFERENCE_NODE=5;Node.ENTITY_NODE=6;Node.PROCESSING_INSTRUCTION_NODE=7;Node.COMMENT_NODE=8;}} else {var ua=navigator.userAgent.toLowerCase();isGecko=(ua.indexOf('gecko')!=-1);isMozilla=(this.isGecko&&ua.indexOf("gecko/")+14==ua.length);isFirefox=(this.isGecko&&ua.indexOf("firefox")!=-1);isCamino=(this.isGecko&&ua.indexOf("camino")!=-1);isSafari=(this.isGecko&&ua.indexOf("safari")!=-1);isNS=((this.isGecko)?(ua.indexOf('netscape')!=-1):((ua.indexOf('mozilla')!=-1)&&(ua.indexOf('spoofer')==-1)&&(ua.indexOf('compatible')==-1)&&(ua.indexOf('opera')==-1)&&(ua.indexOf('webtv')==-1)&&(ua.indexOf('hotjava')==-1)));isOpera=!!window.opera;var matchResult=ua.match(/applewebkit\/(\d+)/);if(matchResult) {isiPhone=(ua.indexOf("mobile/")!=-1);isWebKit=true;webKitVersion=parseInt(matchResult[1]);isEarlyWebKitVersion=(webKitVersion<522);}} browserDetected=true;}} function shouldApplyCSSBackgroundPNGFix() {detectBrowser();return(windowsInternetExplorer&&(browserVersion<7));} function photocastHelper(url) {var feed=new IWURL(url);var iPhotoVersionMin=600;var iPhotoMimeTypePlugin="application/photo";if(navigator.mimeTypes&&navigator.mimeTypes.length>0) {var iPhoto=navigator.mimeTypes[iPhotoMimeTypePlugin];if(iPhoto) {var description=iPhoto.description;try {var components=description.split(" ");if(components&&components.length>1) {var pluginVersion=components[1];if(pluginVersion>=iPhotoVersionMin) {feed.mProtocol="photo";}}} catch(exception) {}}} window.location=feed.toURLString();} function loadCSS(file) {var cssNode=document.createElement('link');cssNode.setAttribute('rel','stylesheet');cssNode.setAttribute('type','text/css');cssNode.setAttribute('href',file);document.getElementsByTagName('head')[0].appendChild(cssNode);} function loadMozillaCSS(file) {detectBrowser();if((isMozilla)||(isFirefox)||(isCamino)) {loadCSS(file);}} function utf8sequence(c) {if(c<=0x0000007f)return[c];if(c<=0x000007ff)return[(0xc0|(c>>>6)),(0x80|(c&0x3f))];if(c<=0x0000ffff)return[(0xe0|(c>>>12)),(0x80|((c>>>6)&0x3f)),(0x80|(c&0x3f))];if(c<=0x001fffff)return[(0xf0|(c>>>18)),(0x80|((c>>>12)&0x3f)),(0x80|((c>>>6)&0x3f)),(0x80|(c&0x3f))];if(c<=0x03ffffff)return[(0xf8|(c>>>24)),(0x80|((c>>>18)&0x3f)),(0x80|((c>>>12)&0x3f)),(0x80|((c>>>6)&0x3f)),(0x80|(c&0x3f))];if(c<=0x7fffffff)return[(0xfc|(c>>>30)),(0x80|((c>>>24)&0x3f)),(0x80|((c>>>18)&0x3f)),(0x80|((c>>>12)&0x3f)),(0x80|((c>>>6)&0x3f)),(0x80|(c&0x3f))];return[];} function utf8encode(s) {var result=[];var firstSurrogate=0;for(var i=0;i=0xDC00)&&(code<=0xDFFF)) {code=(firstSurrogate-0xD800)*0x400+(code-0xDC00)+0x10000;firstSurrogate=0;}} else {if((code<0xD800)||(code>0xDFFF)) {} else if((code>=0xD800)&&(code<0xDC00)) {firstSurrogate=code;continue;} else {continue;}} result=result.concat(utf8sequence(code));} var resultString="";for(i=0;i0) {converted=parseFloat(value);} else if(value.indexOf("pt")>0) {converted=px_per_pt*parseFloat(value);} else if(value.indexOf("in")>0) {converted=72*px_per_pt*parseFloat(value);} else if(value.indexOf("pc")>0) {converted=12*px_per_pt*parseFloat(value);} else if(value.indexOf("mm")>0) {converted=2.83465*px_per_pt*parseFloat(value);} else if(value.indexOf("cm")>0) {converted=28.3465*px_per_pt*parseFloat(value);} return converted;} function toPixelsAtElement(element,value,vertical) {var converted=0;if(value.indexOf("%")>0) {var containerSize=0;if(vertical) {containerSize=$(element.parentNode).getHeight();} else {containerSize=$(element.parentNode).getWidth();} converted=containerSize*parseFloat(value)/100.0;} else if(value.indexOf("em")>0) {converted=parseFloat(value)*toPixels(Element.getStyle(element,'fontSize'));} else {converted=toPixels(value);} return converted;} function backgroundPositionDimension(oBlock,currentBGPosition,blockDimension,imageDimension) {var position=0;if(currentBGPosition==='center') {position=(blockDimension/2)-(imageDimension/2);} else if((currentBGPosition==='right')||(currentBGPosition==='bottom')) {position=blockDimension-imageDimension;} else if((currentBGPosition==='left')||(currentBGPosition==='top')) {position=0;} else if(currentBGPosition.indexOf("px")>0) {position=parseFloat(currentBGPosition);} else if(currentBGPosition.indexOf("em")>0) {position=parseFloat(currentBGPosition)*toPixels(oBlock.currentStyle.fontSize);} else if(currentBGPosition.indexOf("%")>0) {position=parseFloat(currentBGPosition)*blockDimension/100.0;} else if((currentBGPosition.indexOf("pt")>0)||(currentBGPosition.indexOf("in")>0)||(currentBGPosition.indexOf("pc")>0)||(currentBGPosition.indexOf("cm")>0)||(currentBGPosition.indexOf("mm")>0)) {position=toPixels(currentBGPosition);} return position;} function elementHasCSSBGPNG(element) {return(element.currentStyle&&element.currentStyle.backgroundImage&&(element.currentStyle.backgroundImage.indexOf('url(')!=-1)&&(element.currentStyle.backgroundImage.indexOf('.png")')!=-1));} function fixupIEPNGBG(oBlock) {if(oBlock) {if(elementHasCSSBGPNG(oBlock)) {var currentBGImage=oBlock.currentStyle.backgroundImage;var currentBGRepeat=oBlock.currentStyle.backgroundRepeat;var currentBGPositionX=oBlock.currentStyle.backgroundPositionX;var currentBGPositionY=oBlock.currentStyle.backgroundPositionY;var urlStart=currentBGImage.indexOf('url(');var urlEnd=currentBGImage.indexOf(')',urlStart);var imageURL=currentBGImage.substring(urlStart+4,urlEnd);if(imageURL.charAt(0)=='"') {imageURL=imageURL.substring(1);} if(imageURL.charAt(imageURL.length-1)=='"') {imageURL=imageURL.substring(0,imageURL.length-1);} imageURL=IEConvertURLForPNGFix(imageURL);var overrideRepeat=false;var filterStyle="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ imageURL+"', sizingMethod='crop');";if(RegExp("/C[0-9A-F]{8}.png$").exec(imageURL)!==null) {filterStyle="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ imageURL+"', sizingMethod='scale');";overrideRepeat=true;} var fixupIEPNGBG_helper=function(img) {var tileWidth=img.width;var tileHeight=img.height;var blockWidth=0;var blockHeight=0;if(oBlock.style.width) {blockWidth=parseInt(oBlock.style.width,10);} else {blockWidth=oBlock.offsetWidth;} if(oBlock.style.height) {blockHeight=parseInt(oBlock.style.height,10);} else {blockHeight=oBlock.offsetHeight;} var blockPaddingLeft=parseInt(oBlock.style.paddingLeft||0,10);if((blockWidth===0)||(blockHeight===0)) {return;} var wholeRows=1;var wholeCols=1;var extraHeight=0;var extraWidth=0;if((currentBGRepeat.indexOf("no-repeat")!=-1)||((tileWidth===0)&&(tileHeight===0))||overrideRepeat) {tileWidth=blockWidth;tileHeight=blockHeight;} else if((currentBGRepeat.indexOf("repeat-x")!=-1)||(tileHeight===0)) {wholeCols=Math.floor(blockWidth/tileWidth);extraWidth=blockWidth-(tileWidth*wholeCols);tileHeight=blockHeight;} else if(currentBGRepeat.indexOf("repeat-y")!=-1) {wholeRows=Math.floor(blockHeight/tileHeight);extraHeight=blockHeight-(tileHeight*wholeRows);tileWidth=blockWidth;} else {wholeCols=Math.floor(blockWidth/tileWidth);wholeRows=Math.floor(blockHeight/tileHeight);extraWidth=blockWidth-(tileWidth*wholeCols);extraHeight=blockHeight-(tileHeight*wholeRows);} var wrappedContent=document.createElement("div");var pngBGFixIsWrappedContentEmpty=true;wrappedContent.style.position="relative";wrappedContent.style.zIndex="1";wrappedContent.style.left="0px";wrappedContent.style.top="0px";wrappedContent.style.background="transparent";if(!isNaN(parseInt(oBlock.style.width,10))) {wrappedContent.style.width=""+blockWidth+"px";} if(!isNaN(parseInt(oBlock.style.height,10))) {wrappedContent.style.height=""+blockHeight+"px";} while(oBlock.hasChildNodes()) {if(oBlock.firstChild.nodeType==3) {if(RegExp("^ *$").exec(oBlock.firstChild.data)===null) {pngBGFixIsWrappedContentEmpty=false;}} else {pngBGFixIsWrappedContentEmpty=false;} wrappedContent.appendChild(oBlock.firstChild);} if(pngBGFixIsWrappedContentEmpty) {wrappedContent.style.lineHeight="0px";} var bgPositionX=backgroundPositionDimension(oBlock,currentBGPositionX,blockWidth,img.width);var bgPositionY=backgroundPositionDimension(oBlock,currentBGPositionY,blockHeight,img.height);bgPositionX-=blockPaddingLeft;var newMarkup="";for(var currentRow=0;currentRow ";} if(extraWidth!==0) {newMarkup+="
";}} if(extraHeight!==0) {for(currentCol=0;currentCol ";} if(extraWidth!==0) {newMarkup+="
";}} oBlock.innerHTML=newMarkup;if(!pngBGFixIsWrappedContentEmpty) {oBlock.appendChild(wrappedContent);} oBlock.style.background="";} var backgroundImage=new Image();backgroundImage.src=imageURL;if(backgroundImage.complete) {fixupIEPNGBG_helper(backgroundImage);} else {backgroundImage.onload=fixupIEPNGBG_helper.bind(null,backgroundImage);}}}} function fixupIEPNGBGsInTree(oAncestor,forceAutoFixup) {if(shouldApplyCSSBackgroundPNGFix()) {try {var allDivs=$A(oAncestor.getElementsByTagName('DIV'));if(isDiv(oAncestor)) {allDivs.push(oAncestor);} allDivs.each(function(oNode) {if(!$(oNode).hasClassName("noAutoPNGFix")||forceAutoFixup) {fixupIEPNGBG(oNode);}});} catch(e) {}}} function fixupAllIEPNGBGs() {setTimeout(fixupIEPNGBGsInTree.bind(null,document),1);} function optOutOfCSSBackgroundPNGFix(element) {if(shouldApplyCSSBackgroundPNGFix()) {var allDivs=$A(element.getElementsByTagName("DIV"));allDivs.each(function(item) {if(elementHasCSSBGPNG(item)) {$(item).addClassName("noAutoPNGFix");}});}} function fixupIECSS3Opacity(strElementID) {detectBrowser();if(windowsInternetExplorer) {var oNode=$(strElementID);if(oNode&&(oNode.getStyle('opacity')<1)) {var opacity=oNode.getStyle('opacity');oNode.style.height=''+oNode.offsetHeight+'px';var targetNode=oNode;if(oNode.tagName.toLowerCase()=='img') {targetNode=$(document.createElement('div'));targetNode.style.position=oNode.style.position;targetNode.style.top=oNode.style.top;targetNode.style.left=oNode.style.left;targetNode.style.width=oNode.style.width;targetNode.style.height=oNode.style.height;targetNode.style.opacity=oNode.style.opacity;targetNode.style.zIndex=oNode.style.zIndex;oNode.style.left='0px';oNode.style.top='0px';oNode.style.opacity='';if(oNode.parentNode.tagName.toLowerCase()=='a') {var anchor=oNode.parentNode;anchor.parentNode.insertBefore(targetNode,anchor);targetNode.appendChild(anchor);} else {oNode.parentNode.insertBefore(targetNode,oNode);targetNode.appendChild(oNode);}} else if(oNode.tagName.toLowerCase()=='div') {var bufferWidth=100;var oNodeWidth=oNode.offsetWidth;var oNodeHeight=oNode.offsetHeight;extents=new IWExtents(-bufferWidth,-bufferWidth,oNodeWidth+bufferWidth,oNodeHeight*2+bufferWidth);var positionStyleVal=oNode.getStyle("position");var floatStyleVal=oNode.getStyle("float");var positioned=((positionStyleVal=="relative")||(positionStyleVal=="absolute"));var absolutelyPositioned=(positionStyleVal=="absolute"&&(floatStyleVal=="none"));targetNode=$(document.createElement('div'));var classString=oNode.className;classString=classString.replace(/(shadow_\d+)/g,'');classString=classString.replace(/(stroke_\d+)/g,'');classString=classString.replace(/(reflection_\d+)/g,'');targetNode.className=classString;targetNode.style.position=positioned?positionStyleVal:"relative";targetNode.style.styleFloat=floatStyleVal;targetNode.style.clear=oNode.getStyle("clear");targetNode.style.width=extents.right-extents.left+"px";targetNode.style.height=extents.bottom-extents.top+"px";targetNode.style.opacity=oNode.style.opacity;targetNode.style.zIndex=oNode.style.zIndex;if(absolutelyPositioned) {targetNode.style.top=(parseFloat(oNode.getStyle("top"))||0)+extents.top+"px";targetNode.style.left=(parseFloat(oNode.getStyle("left"))||0)+extents.left+"px";} else {targetNode.style.marginTop=(parseFloat(oNode.getStyle("marginTop"))||0)+extents.top+"px";targetNode.style.marginLeft=(parseFloat(oNode.getStyle("marginLeft"))||0)+extents.left+"px";targetNode.style.marginBottom=(parseFloat(oNode.getStyle("marginBottom"))||0)- (extents.bottom-oNodeHeight)+"px";targetNode.style.marginRight=(parseFloat(oNode.getStyle("marginRight"))||0)- (extents.right-oNodeWidth)+"px";} oNode.style.position="absolute";oNode.style.styleFloat="none";oNode.style.clear="none";oNode.style.left=-extents.left+"px";oNode.style.top=-extents.top+"px";oNode.style.margin='0px';oNode.style.verticalAlign='baseline';oNode.style.display='block';oNode.style.opacity='';if(browserVersion<7) {oNode.className=oNode.className.replace(/(shadow_\d+)/g,'');} oNode.parentNode.insertBefore(targetNode,oNode);targetNode.appendChild(oNode);} $(targetNode).setFilter('progid:DXImageTransform.Microsoft.BasicImage','opacity='+opacity);}}} function IWSetDivOpacity(div,fraction,suppressFilterRemoval) {if(windowsInternetExplorer) {if(fraction<.99||(suppressFilterRemoval==true)) {$(div).setFilter('alpha','opacity='+fraction*100);} else {$(div).killFilter('alpha');}} else {div.style.opacity=fraction;}} function IMpreload(path,name,areaIndex) {var rolloverName=name+'_rollover_'+areaIndex;var rolloverPath=path+'/'+rolloverName+'.png';self[rolloverName]=new Image();self[rolloverName].src=rolloverPath;var linkName=name+'_link_'+areaIndex;var linkPath=path+'/'+linkName+'.png';self[linkName]=new Image();self[linkName].src=linkPath;return true;} function swapAlphaImageLoaderFilterSrc(img,src) {var filterName='progid:DXImageTransform.Microsoft.AlphaImageLoader';var filterParams='src="'+IEConvertURLForPNGFix(src)+'", sizingMethod="scale"';img.setFilter(filterName,filterParams);img.originalSrc=img.src;} function IMmouseover(name,areaIndex) {var rolloverName=name+'_rollover_'+areaIndex;var linkName=name+'_link_'+areaIndex;var img=document.getElementById(linkName);if(img) {detectBrowser();if(windowsInternetExplorer&&img.originalSrc) {swapAlphaImageLoaderFilterSrc(img,self[rolloverName].src);} else {img.src=self[rolloverName].src;}} return true;} function IMmouseout(name,areaIndex) {var linkName=name+'_link_'+areaIndex;var img=document.getElementById(linkName);if(img) {detectBrowser();if(windowsInternetExplorer&&img.originalSrc) {swapAlphaImageLoaderFilterSrc(img,self[linkName].src);} else {img.src=self[linkName].src;}} return true;} var quicktimeAvailable=false;var quicktimeVersion702=false;var isQuicktimeDetectionInitialized=false;var minVersionNum=0x7028000;var minVersionArray=['7','0','2'];function initializeQuicktimeDetection() {if((navigator.plugins!==null)&&(navigator.plugins.length>0)) {for(i=0;iminVersionComponent)||((qtVersionComponent==minVersionComponent)&&(j==minVersionArray.length-1))) {quicktimeVersion702=true;break;} else if(qtVersionComponent=minVersionNum) {quicktimeVersion702=true;}}} catch(e) {}} isQuictimeDetectionInitialized=true;} function fixupPodcast(mediaId,anchorId) {if(!isQuicktimeDetectionInitialized) {initializeQuicktimeDetection();} if(!quicktimeVersion702) {var oMediaElem=document.getElementById(mediaId);var oAnchorElem=document.getElementById(anchorId);if(oMediaElem&&oAnchorElem) {oAnchorElem.style.display='inline';oMediaElem.parentNode.removeChild(oMediaElem);}}} function allListBulletImagesContainedBy(node) {var result=[];for(var i=0;i0) {return true;} else {return isDescendantInsideFixedHeightDescendantOfAncestor(oDescendant.parentNode,oAncestor);}} function getShrinkableParaDescendants(oAncestor) {var oParaDescendants=[];var oPotentialParagraphs=oAncestor.getElementsByTagName('DIV');for(var iIndex=0;iIndex(specifiedHeight+HEIGHT_ERROR_MARGIN)) {var smallestFontSize=200;var aParaChildren=getShrinkableParaDescendants(oTextBoxInnerDiv);var oneLine=false;var exceptionToOneLineRule=false;for(i=0;i=specifiedHeight);exceptionToOneLineRule=oneLine&&isExceptionToOneLineRule(oParagraphDiv);} var fontSize=elementFontSize(oParagraphDiv);if(!isNaN(fontSize)) {smallestFontSize=Math.min(smallestFontSize,fontSize);} for(j=0;jminimum)&&(offsetHeight>(specifiedHeight+HEIGHT_ERROR_MARGIN))&&(count<10)) {++count;if(oneLine&&!exceptionToOneLineRule) {var oldWidth=parseInt(oTextBoxOuterDiv.style.width,10);oTextBoxInnerDiv.style.width=""+oldWidth*Math.pow(1.05,count)+"px";} else {var scale=Math.max(0.95,minimum/smallestFontSize);for(i=0;i(specifiedHeight+HEIGHT_ERROR_MARGIN)) {var adjusted=true;var count=0;while((adjusted)&&(offsetHeight>(specifiedHeight+HEIGHT_ERROR_MARGIN))&&(count<10)) {adjusted=false;++count;var aParaChildren=getShrinkableParaDescendants(oTextBoxInnerDiv);for(i=0;i=(fontSize*1.1)) {oParagraphDiv.style.lineHeight=lineHeight+UNITS;adjusted=true;} for(j=0;j=(fontSize*1.1)) {oSpan.style.lineHeight=lineHeight+UNITS;adjusted=true;}}}} offsetHeight=oTextBoxInnerDiv.offsetHeight;}} showAllListBulletImagesContainedBy(oTextBoxInnerDiv);}}} function isDiv(node) {return(node.nodeType==Node.ELEMENT_NODE)&&(node.tagName=="DIV");} function fixupAllMozInlineBlocks() {detectBrowser();if(isFirefox||isCamino) {var oInlineBlocks=getElementsByTagAndClassName(document.body,"DIV","inline-block");for(var i=0,inlineBlocksLength=oInlineBlocks.length;i0) {var floatElem=floatDescendants.shift();floatValue=floatElem.getStyle("float");if(floatValue=="left"||floatValue=="right") {var floatAncestor=getWidthDefiningAncestor(floatElem);if(floatAncestor===commonAncestor) {if(!listOfIE7FloatsFix.include(floatElem)) {listOfIE7FloatsFix.push(floatElem);}}}}}} function fixupFloatsIfIE7() {detectBrowser();if(windowsInternetExplorer&&browserVersion==7) {if(listOfIE7FloatsFix.length>0) {var floatsToRestore=[];var floatElem;var displayStyle;while(listOfIE7FloatsFix.length>0) {floatElem=listOfIE7FloatsFix.shift();displayStyle=floatElem.getStyle("display");floatElem.setStyle({"display":"none"});floatsToRestore.push({element:floatElem,displayStyle:displayStyle});} while(floatsToRestore.length>0) {var queueEntry=floatsToRestore.shift();floatElem=queueEntry.element;displayStyle=queueEntry.displayStyle;floatElem.setStyle({"display":displayStyle});}}}} function performPostEffectsFixups() {fixupAllMozInlineBlocks();fixupFloatsIfIE7();} function reduceLeftMarginIfIE6(element) {detectBrowser();if(windowsInternetExplorer&&browserVersion<7) {$(element).style.marginLeft=px(parseFloat($(element).style.marginLeft||0)-1);}} function reduceRightMarginIfIE6(element) {detectBrowser();if(windowsInternetExplorer&&browserVersion<7) {$(element).style.marginRight=px(parseFloat($(element).style.marginRight||0)-1);}} if(Object.keys===undefined) {Object.keys=function(obj) {var result=[];for(attr in obj) result.push(attr);return result;}} Object.objectType=function(obj) {var result=typeof obj;if(result=="object") {if(obj.constructor==Array) result="Array";} return result;} Array.prototype.contains=function(value) {for(var i=0;i0) {formatted+=format.substring(0,foundIndex)} var matchInfo=format.match(formatPattern);var formatCharacter=matchInfo[3];if(formatCharacter=="%") {formatted+="%";} else {if(matchInfo[2]) {argumentNumber=parseInt(matchInfo[2]);} else {argumentNumber=nextArgument++;} argument=(argumentNumberlastSeparatorIndex+1)&&lastDotIndex>0) return this.slice(0,lastDotIndex);return this;} String.prototype.stringByAppendingPathComponent=function(component) {if(this.hasSuffix("/")) {return this+component;} return this+"/"+component;};String.prototype.stringByAppendingAsQueryString=function(parameters) {var result=this;if(parameters) {var prependChar="?";Object.keys(parameters).forEach(function(key) {if(parameters.hasOwnProperty(key)) {result+=prependChar+escape(key)+"="+escape(parameters[key]);prependChar="&";}});} return result;};String.prototype.stringByUnescapingXML=function() {var str=this.replace(/</g,'<');str=str.replace(/>/g,'>');str=str.replace(/"/g,'"');str=str.replace(/'/g,"'");str=str.replace(/&/g,'&');return str;};String.prototype.stringByEscapingXML=function(escapeAdditionalCharacters) {var str=this.replace(/&/g,'&');str=str.replace(//g,'>');str=str.replace(/"/g,'"');str=str.replace(/'/g,''');} return str;};String.prototype.stringByConvertingNewlinesToBreakTags=function() {return this.replace(/\n\r|\n|\r/g,'
');};String.prototype.urlStringByDeletingQueryAndFragment=function() {var result=this;var lastIndex=result.lastIndexOf("?");if(lastIndex>0) return result.substr(0,lastIndex);lastIndex=result.lastIndexOf("#");if(lastIndex>0) result=result.substr(0,lastIndex);return result;} String.prototype.toRelativeURL=function(baseURL) {var result=this;if(baseURL&&this.indexOf(baseURL)==0) {var chop=baseURL.length;if(this.charAt(chop)=='/') ++chop;result=this.substring(chop);} return result;} String.prototype.toAbsoluteURL=function() {var result=this;if(this.indexOf(":/")==-1) {var pageURL=document.URL.urlStringByDeletingQueryAndFragment();var pathURL=pageURL.stringByDeletingLastPathComponent();result=pathURL.stringByAppendingPathComponent(this);} return result;} String.prototype.toRebasedURL=function(baseURL) {return this.toRelativeURL(baseURL).toAbsoluteURL();} String.prototype.replaceStringWithString=function(target,replacement,global) {var result=this;while(true) {var pos=result.indexOf(target);if(pos==-1) break;result=result.substr(0,pos)+replacement+result.substr(pos+target.length);pos+=replacement.length;if(pos>=result.length||!global) break;} return result;} var trace=function(){};function ajaxRequest(url,func,obj) {if(window.XMLHttpRequest) {var req=new XMLHttpRequest();} else if(window.ActiveXObject) {isIE=true;try {req=new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {req=new ActiveXObject("Microsoft.XMLHTTP");}} if(func) {req.onreadystatechange=function(){func(req,obj);}} req.open('GET',url,true);req.setRequestHeader('X-Requested-With','XMLHttpRequest');if(req.overrideMimeType) {req.overrideMimeType("text/xml");} req.send(null);return false;} function isAjaxRequestReady(req) {var result=req.readyState==4&&(req.status==null||req.status==0||req.status==200);return result;} function ajaxGetDocumentElement(req) {var elem=null;if(req.responseXML.documentElement) {elem=req.responseXML.documentElement;} else {var dom=new ActiveXObject("MSXML.DOMDocument");dom.loadXML(req.responseText);elem=dom.documentElement;} return elem;} function iWLog(str) {if(window.console) {window.console.log(str);} else if(window.dump) {window.dump(str+"\n");}} function position(abs,left,top,width,height) {var pos="";if(abs) pos="position: absolute; ";var size="";if(width&&height) size=' width: '+width+'px; height: '+height+'px;';return pos+'left: '+left+'px; top: '+top+'px;'+size;} var gIWUtilsTransparentGifURL="";function setTransparentGifURL(url) {if(gIWUtilsTransparentGifURL=="") {gIWUtilsTransparentGifURL=url;}} function transparentGifURL() {(function(){return gIWUtilsTransparentGifURL!=""}).assert("Transparent image URL not set");return gIWUtilsTransparentGifURL;} function imgMarkup(src,style,attributes,alt) {var markup="";if(src) {if(style==null) {style="";} if(attributes==null) {attributes="";} if(alt==null) {alt="";} detectBrowser();if(windowsInternetExplorer) {style+=" filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+IEConvertURLForPNGFix(src)+"', sizingMethod='scale');";src=gIWUtilsTransparentGifURL;} if(style.length>0) {style=' style="'+style+'"';} if(attributes.length>0) {attributes=' '+attributes;} if(alt.length>0) {alt=' alt="'+alt.stringByEscapingXML(true)+'"';} markup='';} return markup;} function setImgSrc(imgElement,src) {detectBrowser();if(windowsInternetExplorer&&src.slice(-4).toLowerCase()==".png") {$(imgElement).setFilter('progid:DXImageTransform.Microsoft.AlphaImageLoader','src="'+IEConvertURLForPNGFix(src)+'", sizingMethod="scale"');imgElement.src=gIWUtilsTransparentGifURL;} else {imgElement.src=src;}} function iWOpacity(opacity) {var style="";detectBrowser();if(windowsInternetExplorer) {style=" progid:DXImageTransform.Microsoft.Alpha(opacity="+opacity*100+"); ";} else {style=" opacity: "+opacity+"; ";} return style;} function getElementsByTagAndClassName(that,tagName,className) {var elementsByClassAndTag=[];var elementsByClass=$(that).getElementsByClassName(className);if(tagName=='*') {elementsByClassAndTag=elementsByClass;} else {tagName=tagName.toLowerCase();for(var i=0,len=elementsByClass.length;i0) {var argname=decodeURIComponent(pair.substring(0,pos));var value=decodeURIComponent(pair.substring(pos+1));args[argname]=value;}} return args;} function IWRange(location,length) {this.setLocation(location);this.setLength(length);} IWRange.prototype.length=function() {return this.p_length;} IWRange.prototype.setLength=function(length) {this.p_length=parseFloat(length);} IWRange.prototype.location=function() {return this.p_location;} IWRange.prototype.setLocation=function(location) {this.p_location=parseFloat(location);} IWRange.prototype.max=function() {return this.location()+this.length();} IWRange.prototype.min=function() {return this.location();} IWRange.prototype.shift=function(amount) {this.setLocation(this.location()+amount);} IWRange.prototype.containsLocation=function(location) {return((location>=this.min())&&(location0) return children[0];return null;} function getFirstChildElementByTagName(node,name) {for(var i=0;i1) {throw"MultipleResults";} if(children.length==1) {result=getTextFromNode(children[0]);}} return result;} function getChildElementTextByTagNameNS(node,ns,nsPrefix,localName) {var result="";if(node) {var children=getChildElementsByTagNameNS(node,ns,nsPrefix,localName);if(children.length>1) throw"MultipleResults";if(children.length==1) {result=getTextFromNode(children[0]);}} return result;} function getChildElements(node) {var result=[];for(var i=0;i0) {node.removeChild(node.childNodes[0]);}} function nodeIsChildOf(node,ancestor) {if(node) {if(node.parentNode==ancestor) return true;else return nodeIsChildOf(node.parentNode,ancestor)} return false;} function substituteSpans(parentNode,replacements) {Object.keys(replacements).forEach(function(key) {var spans=getElementsByTagAndClassName(parentNode,"span",key);spans.forEach(function(node) {var contentType=replacements[key][0];var newContent=replacements[key][1];if(contentType=="text") {removeAllChildNodes(node);node.appendChild(document.createTextNode(newContent));} else if(contentType=="html") {node.innerHTML=newContent;}});});} var Prototype={Version:'1.5.0',BrowserFeatures:{XPath:!!document.evaluate},ScriptFragment:'(?:)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}} var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}} var Abstract=new Object();Object.extend=function(destination,source){for(var property in source){destination[property]=source[property];} return destination;} Object.extend(Object,{inspect:function(object){try{if(object===undefined)return'undefined';if(object===null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}},keys:function(object){var keys=[];for(var property in object) keys.push(property);return keys;},values:function(object){var values=[];for(var property in object) values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);}});Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}} Function.prototype.bindAsEventListener=function(object){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat($A(arguments)));}} Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}} return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=count===undefined?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return this;},truncate:function(length,truncation){length=length||30;truncation=truncation===undefined?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:this;},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)});},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject('',function(memo,node){return memo+node.nodeValue}):div.childNodes[0].nodeValue):'';},toQueryParams:function(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var name=decodeURIComponent(pair[0]);var value=pair[1]?decodeURIComponent(pair[1]):undefined;if(hash[name]!==undefined){if(hash[name].constructor!=Array) hash[name]=[hash[name]];if(value)hash[name].push(value);} else hash[name]=value;} return hash;});},toArray:function(){return this.split('');},succ:function(){return this.slice(0,this.length-1)+ String.fromCharCode(this.charCodeAt(this.length-1)+1);},camelize:function(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i=result) result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||valueb?1:0;}).pluck('value');},toArray:function(){return this.map();},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function') iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#';}} Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray&&!(window.opera&&iterable.callee)){return iterable.toArray();}else{var results=[];for(var i=0,length=iterable.length;i1?this:this[0];},uniq:function(){return this.inject([],function(array,value){return array.include(value)?array:array.concat([value]);});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});Array.prototype.toArray=Array.prototype.clone;function $w(string){string=string.strip();return string?string.split(/\s+/):[];} if(window.opera){Array.prototype.concat=function(){var array=[];for(var i=0,length=this.length;i';}});function $H(object){if(object&&object.constructor==Hash)return object;return new Hash(object);};ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}},include:function(value){if(value-1?'&':'?')+params;try{Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous) setTimeout(function(){this.respondToReadyState(1)}.bind(this),10);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();var body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(body);if(!this.options.asynchronous&&this.transport.overrideMimeType) this.onStateChange();} catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete)) this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+ (this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005) headers['Connection']='close';} if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function') for(var i=0,length=extras.length;i=200&&this.transport.status<300);},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(state=='Complete'){try{this._complete=true;(this.options['on'+this.transport.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);} if((this.getHeader('Content-type')||'text/javascript').strip().match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)) this.evalResponse();} try{(this.options['on'+state]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+state,this,transport,json);}catch(e){this.dispatchException(e);} if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null}},evalJSON:function(){try{var json=this.getHeader('X-JSON');return json?eval('('+json+')'):null;}catch(e){return null}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))} this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,param){this.updateContent();onComplete(transport,param);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.container[this.success()?'success':'failure'];var response=this.transport.responseText;if(!this.options.evalScripts)response=response.stripScripts();if(receiver=$(receiver)){if(this.options.insertion) new this.options.insertion(receiver,response);else receiver.update(response);} if(this.success()){if(this.onComplete) setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;} this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property]) if(element.nodeType==1) elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $A($(element).getElementsByTagName('*'));},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(typeof selector=='string') selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){return Selector.findElement($(element).ancestors(),expression,index);},down:function(element,expression,index){return Selector.findElement($(element).descendants(),expression,index);},previous:function(element,expression,index){return Selector.findElement($(element).previousSiblings(),expression,index);},next:function(element,expression,index){return Selector.findElement($(element).nextSiblings(),expression,index);},getElementsBySelector:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},getElementsByClassName:function(element,className){return document.getElementsByClassName(className,element);},readAttribute:function(element,name){element=$(element);if(document.all&&!window.opera){var t=Element._attributeTranslations;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];var attribute=element.attributes[name];if(attribute)return attribute.nodeValue;} return element.getAttribute(name);},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;if(elementClassName.length==0)return false;if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)"))) return true;return false;},addClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).add(className);return element;},removeClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).remove(className);return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element)[element.hasClassName(className)?'remove':'add'](className);return element;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue)) element.removeChild(node);node=nextNode;} return element;},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);while(element=element.parentNode) if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Position.cumulativeOffset(element);window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);if(['float','cssFloat'].include(style)) style=(typeof element.style.styleFloat!='undefined'?'styleFloat':'cssFloat');style=style.camelize();var value=element.style[style];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}else if(element.currentStyle){value=element.currentStyle[style];}} if((value=='auto')&&['width','height'].include(style)&&(element.getStyle('display')!='none')) value=element['offset'+style.capitalize()]+'px';if(window.opera&&['left','top','right','bottom'].include(style)) if(Element.getStyle(element,'position')=='static')value='auto';if(style=='opacity'){if(value)return parseFloat(value);if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/)) if(value[1])return parseFloat(value[1])/100;return 1.0;} return value=='auto'?null:value;},setStyle:function(element,style){element=$(element);for(var name in style){var value=style[name];if(name=='opacity'){if(value==1){value=(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1.0;if(/MSIE/.test(navigator.userAgent)&&!window.opera) element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');}else if(value==''){if(/MSIE/.test(navigator.userAgent)&&!window.opera) element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');}else{if(value<0.00001)value=0;if(/MSIE/.test(navigator.userAgent)&&!window.opera) element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')';}}else if(['float','cssFloat'].include(name))name=(typeof element.style.styleFloat!='undefined')?'styleFloat':'cssFloat';element.style[name.camelize()]=value;} return element;},getDimensions:function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null) return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}} return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';} return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=element.style.overflow||'auto';if((Element.getStyle(element,'overflow')||'visible')!='hidden') element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf});Element._attributeTranslations={};Element._attributeTranslations.names={colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"};Element._attributeTranslations.values={_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){var node=element.getAttributeNode('title');return node.specified?node.nodeValue:null;}};Object.extend(Element._attributeTranslations.values,{href:Element._attributeTranslations.values._getAttr,src:Element._attributeTranslations.values._getAttr,disabled:Element._attributeTranslations.values._flag,checked:Element._attributeTranslations.values._flag,readonly:Element._attributeTranslations.values._flag,multiple:Element._attributeTranslations.values._flag});Element.Methods.Simulated={hasAttribute:function(element,attribute){var t=Element._attributeTranslations;attribute=t.names[attribute]||attribute;return $(element).getAttributeNode(attribute).specified;}};if(document.all&&!window.opera){Element.Methods.update=function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();var tagName=element.tagName.toUpperCase();if(['THEAD','TBODY','TR','TD'].include(tagName)){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML=''+html.stripScripts()+'
';depth=2;break;case'TR':div.innerHTML=''+html.stripScripts()+'
';depth=3;break;case'TD':div.innerHTML='
'+html.stripScripts()+'
';depth=4;} $A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=html.stripScripts();} setTimeout(function(){html.evalScripts()},10);return element;}};Object.extend(Element,Element.Methods);var _nativeExtensions=false;if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ['','Form','Input','TextArea','Select'].each(function(tag){var className='HTML'+tag+'Element';if(window[className])return;var klass=window[className]={};klass.prototype=document.createElement(tag?tag.toLowerCase():'div').__proto__;});Element.addMethods=function(methods){Object.extend(Element.Methods,methods||{});function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;var cache=Element.extend.cache;for(var property in methods){var value=methods[property];if(!onlyIfAbsent||!(property in destination)) destination[property]=cache.findOrStore(value);}} if(typeof HTMLElement!='undefined'){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);copy(Form.Methods,HTMLFormElement.prototype);[HTMLInputElement,HTMLTextAreaElement,HTMLSelectElement].each(function(klass){copy(Form.Element.Methods,klass.prototype);});_nativeExtensions=true;}} var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;} Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var tagName=this.element.tagName.toUpperCase();if(['TBODY','TR'].include(tagName)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);} setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML=''+this.content+'
';return $A(div.childNodes[0].childNodes[0].childNodes);}} var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);var Selector=Class.create();Selector.prototype={initialize:function(expression){this.params={classNames:[]};this.expression=expression.toString().strip();this.parseExpression();this.compileMatcher();},parseExpression:function(){function abort(message){throw'Parse error in selector: '+message;} if(this.expression=='')abort('empty expression');var params=this.params,expr=this.expression,match,modifier,clause,rest;while(match=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){params.attributes=params.attributes||[];params.attributes.push({name:match[2],operator:match[3],value:match[4]||match[5]||''});expr=match[1];} if(expr=='*')return this.params.wildcard=true;while(match=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)){modifier=match[1],clause=match[2],rest=match[3];switch(modifier){case'#':params.id=clause;break;case'.':params.classNames.push(clause);break;case'':case undefined:params.tagName=clause.toUpperCase();break;default:abort(expr.inspect());} expr=rest;} if(expr.length>0)abort(expr.inspect());},buildMatchExpression:function(){var params=this.params,conditions=[],clause;if(params.wildcard) conditions.push('true');if(clause=params.id) conditions.push('element.readAttribute("id") == '+clause.inspect());if(clause=params.tagName) conditions.push('element.tagName.toUpperCase() == '+clause.inspect());if((clause=params.classNames).length>0) for(var i=0,length=clause.length;i=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i=this.offset[1]&&y=this.offset[0]&&x=this.offset[1]&&this.ycomp=this.offset[0]&&this.xcomp0) {var previousComponent=components[index-1];if(previousComponent=="/") {components.splice(index,1);} else if(previousComponent!="..") {components.splice(index-1,2);index-=1;} else {index+=1;}} else {index+=1;}} else {index+=1;}} return components;}});Object.extend(IWURL.prototype,{p_initWithParts:function(inProtocol,inAuthority,inPath,inQuery,inFragment) {this.mProtocol=inProtocol;this.mAuthority=inAuthority;this.mQuery=inQuery;this.mFragment=inFragment;this.mPathComponents=null;if(inPath) {this.mPathComponents=inPath.split('/');if(this.mPathComponents[0]=="") this.mPathComponents[0]='/';for(var i=0;i0)&&(this.mProtocol==base.mProtocol)&&(this.mAuthority==base.mAuthority)) {var commonAncestorIndex=0;for(var index=0;indexcommonAncestorIndex;--up) {relativePath.push("..");} for(var down=commonAncestorIndex+1;down