// // iWeb - iWebBlog.js // Copyright 2007 Apple Inc. // All rights reserved. // function BlogRootURLString(inUrlString) {var urlString=inUrlString.urlStringByDeletingQueryAndFragment();var index=urlString.search(/\/\d{4}\/\d{1,2}\//);if(index!=-1) {return urlString.substr(0,index).stringByDeletingLastPathComponent();} return urlString.substr(0,urlString.lastIndexOf("/"));} function BlogRootURL(inUrlString) {return new IWURL(BlogRootURLString(inUrlString));} function BlogFixupPreviousNext() {var currentUrl=locationHRef().urlStringByDeletingQueryAndFragment();window.blogFeed=new BlogFeed(BlogRootURLString(locationHRef()),window.iWebBlogFeedType,true,function() {var prevNextLinks=$$(".iWebBlogPrev",".iWebBlogNext");prevNextLinks.each(function(anchor) {var targetItem=null;if(anchor.className.indexOf("iWebBlogPrev")!=-1) {targetItem=window.blogFeed.itemBefore(currentUrl);} else if(anchor.className.indexOf("iWebBlogNext")!=-1) {targetItem=window.blogFeed.itemAfter(currentUrl);} if(targetItem) {anchor.href=targetItem.absoluteURL.toURLString();anchor.title=targetItem.title;}});});} function BlogPreviousPage() {var currentUrlString=locationHRef().urlStringByDeletingQueryAndFragment();var targetUrlString=window.blogFeed.itemBefore(currentUrlString);location.href=targetUrlString;} function BlogNextPage() {var currentUrlString=locationHRef().urlStringByDeletingQueryAndFragment();var targetUrlString=window.blogFeed.itemAfter(currentUrlString);location.href=targetUrlString;} function BlogMainPageItem() {var blogURLString=BlogRootURLString(locationHRef());if(window.iWebBlogMainPageName===undefined) {window.iWebBlogMainPageTitle=blogURLString.lastPathComponent();window.iWebBlogMainPageName=window.iWebBlogMainPageTitle+".html";} blogURLString=blogURLString.stringByAppendingPathComponent(window.iWebBlogMainPageName);return{absoluteURL:new IWURL(blogURLString),title:window.iWebBlogMainPageTitle};} function BlogArchivePageItem() {var blogURLString=BlogRootURLString(locationHRef());if(window.iWebBlogArchivePageName===undefined) {window.iWebBlogArchivePageTitle="Archive";window.iWebBlogArchivePageName=window.iWebBlogArchivePageTitle+".html";} blogURLString=blogURLString.stringByAppendingPathComponent(window.iWebBlogArchivePageName);return{absoluteURL:new IWURL(blogURLString),title:window.iWebBlogArchivePageTitle};} function BlogFeed(inBlogUrlString,inFeedType,inIsArchive,inCallback) {this.mBlogURL=new IWURL(inBlogUrlString);this.mFeedType=inFeedType;this.mIsArchive=inIsArchive;var feedUrlString=inIsArchive?"blog-archive.xml":"blog-main.xml";if(this.mFeedType=="dynamic") {feedUrlString=inBlogUrlString+"?webdav-method=truthget&feedfmt="+(inIsArchive?"blogarchive":"blogsummary");} else {feedUrlString=inBlogUrlString.stringByAppendingPathComponent(feedUrlString);} delete this.mItems;makeXmlHttpRequest(feedUrlString,makeAjaxHandler(function(request,successful) {if(successful) {this.p_parseFeed(ajaxGetDocumentElement(request));} if(inCallback) {inCallback();}}.bind(this)));} Object.extend(BlogFeed,{iwebNS:"http://www.apple.com/iweb",getiWebElement:function(itemNode,propertyName) {return getFirstChildElementByTagNameNS(itemNode,BlogFeed.iwebNS,"iweb",propertyName);},getiWebElementText:function(itemNode,propertyName) {return getChildElementTextByTagNameNS(itemNode,BlogFeed.iwebNS,"iweb",propertyName);},fixupURL:function(url) {return url.replace("file://localhost/","file:///");},FeedItem:function(itemNode) {var child=itemNode.firstChild;while(child) {if(child.nodeType==Node.ELEMENT_NODE) {if(child.tagName=='title') {this.title=getTextFromNode(child);} else if(child.tagName=='link') {this.p_linkText=getTextFromNode(child);this.absoluteURL=new IWURL(this.p_linkText);} else if(child.tagName=='description') {this.description=getTextFromNode(child);} else if(child.tagName=='pubDate') {var dateText=getTextFromNode(child);if(dateText&&dateText.length>0) this.date=new Date(dateText);} else if(child.tagName=='iweb:image') {this.imageUrlString=child.getAttribute("href");this.imageURL=new IWURL(this.imageUrlString);} else if(child.tagName=='iweb:comment') {this.commentCount=child.getAttribute("count");this.commentingEnabled=(child.getAttribute("enabled")==1);this.commentURL=new IWURL(child.getAttribute("link"));}} child=child.nextSibling;} this.title=this.title||"";this.absoluteURL=this.absoluteURL||new IWURL();this.date=this.date||new Date();this.commentingEnabled=this.commentingEnabled||false;this.commentCount=this.commentCount||0;}});Object.extend(BlogFeed.prototype,{p_parseFeed:function(rssDoc) {this.mDateFormat="EEEE, MMMM d, yyyy";this.mBaseURL=new IWURL();this.mMaximumSummaryItems=10;this.mItems=[];var channel=rssDoc.getElementsByTagName("channel")[0];var dateFormat=BlogFeed.getiWebElementText(channel,"dateFormat");var maximumSummaryItems=BlogFeed.getiWebElementText(channel,"maximumSummaryItems");var baseURLString=BlogFeed.getiWebElementText(channel,"baseURL");if(dateFormat) this.mDateFormat=dateFormat;if(maximumSummaryItems) this.mMaximumSummaryItems=maximumSummaryItems;if(baseURLString) {this.mBaseURL=new IWURL(baseURLString);} var itemNodes=rssDoc.getElementsByTagName("item");for(var i=0;i0)&&(this.mMaximumSummaryItems