/*
 PiyoFeedsCommon.js
 version 1.0 (2004/10/2)

 Copyright (C) 2004 kuki, All rights reserved.
*/

/*
 * objects
 */
// rss object
function PF_RSS(channel, items) {
   this.channel = channel;
   this.items = items;
}

// channel object
function PF_Channel(title, url) {
   this.title = title;
   this.url = url;
}

// item object
function PF_Item(title, link, description) {
   this.title = title;
   this.link = link;
   this.description = description;
}

/*
 * functions
 */
// get entry link list
function getPfEntryLinkList(rss, baseUrl) {
   var i;
   var result = new Array();
   var itemLinkList = getPfItemLinkList(rss.items);
   var entryUUID;
   var entryLink;

   for (i = 0; i < itemLinkList.length - 1; i++) {
      entryUUID = getPfEntryUUIDFromHaloScanUrl(itemLinkList[i]);
      result.push(getEntryLink(baseUrl, entryUUID));
   }

   return result;
}

// get item title list
function getPfItemTitleList(items) {
   var i;
   var result = new Array();
   var items = items;
   var item;
   var itemTitle;

   for (i = 0; i < items.length - 1; i++) {
      item = items[i];
      itemTitle = item.title;
      result.push(itemTitle);
   }

   return result;
}

// get item link list
function getPfItemLinkList(items) {
   var i;
   var result = new Array();
   var items = items;
   var item;
   var itemLink;

   for (i = 0; i < items.length - 1; i++) {
      item = items[i];
      itemLink = item.link;
      result.push(itemLink);
   }

   return result;
}

// get item description list
function getPfItemDescriptionList(items) {
   var i;
   var result = new Array();
   var items = items;
   var item;
   var itemDescription;

   for (i = 0; i < items.length - 1; i++) {
      item = items[i];
      itemDescription = item.description;
      result.push(itemDescription);
   }

   return result;
}

// get entryUUID from haloscan url
function getPfEntryUUIDFromHaloScanUrl(url) {
   if (!String(url).match(/^http:\/\/www\.haloscan\.com\/comments\/[a-zA-Z_]+\/(E\d+)\/$/)) {
      return null;
   }
   return RegExp.$1;
}

// get entry link
function getPfEntryLink(baseUrl, entryUUID) {
   var entryLink = baseUrl + "/" + getCategoryUUIDForEntry(entryUUID);
   entryLink = entryLink + "/" + entryUUID + "/index.html";
   return entryLink; 
}
