<html>
  <head>
    <title>Bookmarks</title>
    <link id="Flake_v0_Css" rel="stylesheet" type="text/css" href="/users/kishore/css/flake.css?v=2"/>
    <script id="PageFlakesHelper_v0_Script" type="text/javascript" src="http://www.pageflakes.com/users/kishore/pageflake.helper.js?v=26"></script>
    <script id="BookmarksFlake_JS_v0" type="text/javascript"><![CDATA[
      function BookmarksFlake_v0(id) {

        var instance;
        var profile;

        var EMPTY = "";
        var SPACE = "&nbsp;";
        var DELIMITER = "<";
        var SYSTEM_TAG = "system:unfiled";
        var editBookmarkId;
        var action;
        var maxExceeded = false;
        var showDeliciousImportStatus = false;

        var BASE64_ENCODE_URL = "http://www.pageflakes.com/users/kishore/base64/base64.php?action=encode&data=";
        var DELICIOUS_UPDATE_URL = "http://del.icio.us/api/posts/update";
        var DELICIOUS_ALL_POSTS_URL = "http://del.icio.us/api/posts/all";
        var DELICIOUS_JSON_URL = "http://del.icio.us/feeds/json/";
        var DELICIOUS_JSON_PREFIX = "if(typeof(Delicious) == 'undefined') Delicious = {}; Delicious.posts = ";
        var DELICIOUS_BOOKMARKS_LIMIT = 200;

        var WindowEnum = {
          NEW : 'new',
          THIS : 'this'
        };

        var DisplayEnum = {
          HIDE : "none",
          SHOW : ""
        };

        var PaginationEnum = {
          NEXT : "next",
          PREVIOUS : "previous"
        };

        var ActionEnum = {
          ADD : "ADD",
          UPDATE : "UPDATE"
        };

        var ImportFromEnum = {
          DELICIOUS : "delicious"
        };

        var ProfileEnum = {
          OPEN_LINKS_IN : "OPEN_LINKS_IN",
          BOOKMARKS_PER_PAGE : "BOOKMARKS_PER_PAGE",
          TAG : "TAG",
          TAGS_VISIBILITY : "TAGS_VISIBILITY",
          CONFIRM_DELETION : "CONFIRM_DELETION",
          BOOKMARKS : {
            ID : "BOOKMARK",
            TOTAL : "BOOKMARK-TOTAL"
          },
          TAGS : {
            ID : "TAG",
            TOTAL : "TAG-TOTAL"
          }
        };

        var tagIndex = -1;
        var page = 1;

        var titleEl;
        var addBoomarkTitleSpanEl;
        //var titleErrorEl;
        var urlEl;
        var urlErrorEl;
        var descriptionEl;
        var tagsEl;
        var addBookmarkDivEl;
        var bodyDivEl;
        var openLinksInEl;
        var bookmarksPerPageEl;
        var bookmarksContentEl;
        var previousEl;
        var nextEl;
        var confirmDeletionEl;
        var deliciousImportDivEl;
        var importEl;
        var importFromSelectEl;
        var deliciousUsernameEl;
        var deliciousPublicUsernameEl;
        var deliciousPasswordEl;
        var deliciousStatusEl;
        var deliciousPublicStatusEl;
        var titleSpanEl;
        var titleTagEl;
        var navigationEl;

        var deliciousImportStatusEl;
        var deliciousImportStatusImgEl;
        var deliciousImportStatusMessageEl;


        this.load = function(flakeInstance) {

          instance = flakeInstance;
          profile = instance.Profiles;

          instance.setTitle("Bookmarks");

          this.setProfileDefault(ProfileEnum.BOOKMARKS.TOTAL, 0);
          this.setProfileDefault(ProfileEnum.TAGS.TOTAL, 1);
          this.setProfileDefault(ProfileEnum.TAGS.ID + "0", SYSTEM_TAG);
          this.setProfileDefault(ProfileEnum.BOOKMARKS_PER_PAGE, "5");
          this.setProfileDefault(ProfileEnum.OPEN_LINKS_IN, WindowEnum.NEW);
          this.setProfileDefault(ProfileEnum.TAG, "-1");
          this.setProfileDefault(ProfileEnum.TAGS_VISIBILITY, DisplayEnum.HIDE);
          this.setProfileDefault(ProfileEnum.CONFIRM_DELETION, "true");

          addBoomarkTitleSpanEl = $(id + "add_bookmark_title_span");
          titleEl            = $(id + "add_bookmark_title");
          //titleErrorEl     = $(id + "add_bookmark_title_error");
          urlEl              = $(id + "add_bookmark_url");
          urlErrorEl         = $(id + "add_bookmark_url_error");
          descriptionEl      = $(id + "add_bookmark_description");
          tagsEl             = $(id + "add_bookmark_tags");
          addBookmarkDivEl   = $(id + "add_bookmark");
          bookmarksContentEl = $(id + "bookmarks_content");
          bodyDivEl          = $(id + "body");
          openLinksInEl      = $(id + "open_links_in");
          bookmarksPerPageEl = $(id + "bookmarks_per_page");
          previousEl         = $(id + "previous");
          nextEl             = $(id + "next");
          confirmDeletionEl  = $(id + "confirm_deletion");
          deliciousImportDivEl = $(id + "delicious_import");
          importEl           = $(id + "import");
          importFromSelectEl = $(id + "import_from_select");
          deliciousUsernameEl = $(id + "delicious_username");
          deliciousPublicUsernameEl = $(id + "delicious_pusername");
          deliciousPasswordEl = $(id + "delicious_password");
          deliciousStatusEl = $(id + "delicious_status");
          deliciousPublicStatusEl = $(id + "delicious_pstatus");
          titleSpanEl = $(id + "bookmarks_title_span");
          titleTagEl  = $(id + "bookmarks_tag");
          navigationEl = $(id + "navigation");

          deliciousImportStatusEl = $(id + "delicious_import_status");
          deliciousImportStatusImgEl = $(id + "delicious_import_status_img");
          deliciousImportStatusMessageEl = $(id + "delicious_import_status_message");

          if(ie) {
            confirmDeletionEl.style.marginLeft = "-4px";
          }

	      this.loadProfile();

	      // Overriding toggleEdit here
	      if(!instance._toggleEdit) {
	        instance._toggleEdit = instance.toggleEdit;
	        instance.toggleEdit = $PageFlakesHelper.bind(function() {
	          this.loadProfile();
	          instance._toggleEdit();
	        }, this);
	      }
	      this.showBookmarksAndTags();
	    }

	    this.setProfileDefault = function(key, value) {
	      if(profile[key] == null) {
	        profile[key] = value;
	      }
	    }

	    this.loadProfile = function() {
	      bookmarksPerPageEl.value = profile[ProfileEnum.BOOKMARKS_PER_PAGE];
	      openLinksInEl.value = profile[ProfileEnum.OPEN_LINKS_IN];
	      tagIndex = profile[ProfileEnum.TAG];
	      confirmDeletionEl.checked = (profile[ProfileEnum.CONFIRM_DELETION] == "true");
	    }

	    this.saveProfile = function() {
	      profile[ProfileEnum.BOOKMARKS_PER_PAGE] = bookmarksPerPageEl.value
	      profile[ProfileEnum.OPEN_LINKS_IN] = openLinksInEl.value;
	      profile[ProfileEnum.CONFIRM_DELETION] = ("") + (confirmDeletionEl.checked);
	      this.resetPage();
	      instance._toggleEdit();
	      this.showBookmarksAndTags();
	      this.saveInstance();
	    }

	    this.show = function(el) {
	      for(var i=0; i < arguments.length ; i++) {
	        arguments[i].style.display = DisplayEnum.SHOW;
	      }
	    }

	    this.hide = function(el) {
	      for(var i=0; i < arguments.length ; i++) {
	        arguments[i].style.display = DisplayEnum.HIDE;
	      }
	    }

	    this.showAddBookmark = function(actionValue) {
	      if(ActionEnum.UPDATE == actionValue) {
	        action = ActionEnum.UPDATE;
	        addBoomarkTitleSpanEl.innerHTML = "Edit Bookmark";
	      } else {
	        action = ActionEnum.ADD;
	        addBoomarkTitleSpanEl.innerHTML = "Add Bookmark";
	      }
	      this.hide(bodyDivEl);
	      this.show(addBookmarkDivEl);
	    }

	    this.hideAddBookmark = function() {
	      this.hide(urlErrorEl);
	      this.hide(addBookmarkDivEl);
	      this.show(bodyDivEl);
	      this.resetAddBookmarkFields();
	    }

	    this.resetAddBookmarkFields = function() {
	      titleEl.value = urlEl.value = descriptionEl.value = tagsEl.value = EMPTY;
	    }

	    var BookmarksManager = {

	      getBookmarksTotal : function() {
	        return parseInt(profile[ProfileEnum.BOOKMARKS.TOTAL]);
	      },

	      getBookmarksTotalForTagIndex : function(tagIndexParam) {
	        var tagProfileValue = profile[ProfileEnum.TAGS.ID + tagIndexParam];
	        var count = 0;
	        if(tagProfileValue != null) {
	          var indexOfDelimiter = tagProfileValue.indexOf(DELIMITER);
	          while(indexOfDelimiter != -1) {
	           count ++;
	            indexOfDelimiter = tagProfileValue.indexOf(DELIMITER, (indexOfDelimiter + 1));
	          }
	        }

	        return count;
	      },

	      getTagsTotal : function() {
	        return parseInt(profile[ProfileEnum.TAGS.TOTAL]);
	      },

	      getTagID : function(tag) {
	        var total = BookmarksManager.getTagsTotal();
	        for(var i=0; i < total; i++) {
	          var value = profile[ProfileEnum.TAGS.ID + i];
	          if(value != null) {
	            var indexOfDelimiter = value.indexOf(DELIMITER);
	            if(indexOfDelimiter != -1) {
	              value = value.substring(0, indexOfDelimiter);
	            }

	            if(tag == value) {
	              return i;
	            }
	          }
	        }
	        return -1;
	      },

	      setBookmarksTotal : function(total) {
	        profile[ProfileEnum.BOOKMARKS.TOTAL] = total;
	      },

	      setTagsTotal : function(total) {
	        profile[ProfileEnum.TAGS.TOTAL] = total;
	      },

	      getTagName : function(tagId) {
	        var tagName = EMPTY, tagValue = profile[ProfileEnum.TAGS.ID + tagId];
	        if(tagValue != null) {
	          var indexOfDelimiter = tagValue.indexOf(DELIMITER);
	          if(indexOfDelimiter == -1) {
	            tagName = tagValue;
	          } else {
	            tagName = tagValue.substring(0, indexOfDelimiter);
	          }
	        }
	        return tagName;
	      },

	      deleteString : function(str, delimiter, removeString) {
		    var index = str.indexOf(delimiter);
		    if(index == -1) {
		      if(str == removeString) {
		        return "";
		      } else {
		        return str;
		      }
		    } else {
		      var c = 0;
		      var s = "";
		      while(index != -1) {
		        var id = str.substring(c, index);
		        if(id != removeString) {
		          s += id;
		          s += delimiter;
		        }
		        c = index + delimiter.length;
		        index = str.indexOf(delimiter, c);
		        if(index == -1) {
		          id = str.substring(c, str.length);
		          if(id != removeString) {
		            s += id;
		          }
		        }
		      }

		      var lastIndexOfdelimiter = s.lastIndexOf(delimiter);
		      if(lastIndexOfdelimiter != -1) {
		        if(lastIndexOfdelimiter + delimiter.length == s.length) {
		          s = s.substring(0, lastIndexOfdelimiter);
		        }
		      }

		      return s;
		    }

		  },

		  replaceString : function(str, delimiter, removeString) {
		    var index = str.indexOf(delimiter);
		    if(index == -1) {
		      if(str == removeString) {
		        return "";
		      } else {
		        return str;
		      }
		    } else {
		      var c = 0;
		      var s = "";
		      var seen = false;
		      while(index != -1) {
		        var id = str.substring(c, index);
		        if(id != removeString) {
		          s += seen ? (id - 1) : id;
		          s += delimiter;
		        } else {
		          seen = true;
		        }
		        c = index + delimiter.length;
		        index = str.indexOf(delimiter, c);
		        if(index == -1) {
		          id = str.substring(c, str.length);
		          if(id != removeString) {
		            s += seen ? (id - 1) : id;
		          }
		        }
		      }

		      var lastIndexOfdelimiter = s.lastIndexOf(delimiter);
		      if(lastIndexOfdelimiter != -1) {
		        if(lastIndexOfdelimiter + delimiter.length == s.length) {
		          s = s.substring(0, lastIndexOfdelimiter);
		        }
		      }

		      return s;
		    }
		  },

	      addBookmark : function(bookmark) {
	        var bt = BookmarksManager.getBookmarksTotal();

	        profile[ProfileEnum.BOOKMARKS.ID + bt] = bookmark.TITLE + DELIMITER + bookmark.URL + DELIMITER + bookmark.DESCRIPTION;
	        var tags = bookmark.TAGS;
	        $PageFlakesHelper.foreach(tags, function(tag) {
	          if(tag != EMPTY) {
	            var tt = BookmarksManager.getTagsTotal();
	            var id = BookmarksManager.getTagID(tag);
	            var tagId;
	            if(id != -1) {
	              var pt = profile[ProfileEnum.TAGS.ID + id];
	              profile[ProfileEnum.TAGS.ID + id] = pt + DELIMITER + bt;
	              tagId = id;
	            } else {
	              profile[ProfileEnum.TAGS.ID + tt] = tag + DELIMITER + bt;
	              BookmarksManager.setTagsTotal(tt + 1);
	              tagId = tt;
	            }
	            var bookmarkTags = profile[ProfileEnum.BOOKMARKS.ID + bt + "TAGS"];
	            if(bookmarkTags != null) {
	              profile[ProfileEnum.BOOKMARKS.ID + bt + "TAGS"] = bookmarkTags + DELIMITER + tagId;
	            } else {
	              profile[ProfileEnum.BOOKMARKS.ID + bt + "TAGS"] = tagId;
	            }
	          }
	        });
	        BookmarksManager.setBookmarksTotal(bt + 1);
	      },

	      deleteBookmark : function(bookmarkId) {
	        var tagsValue = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	        var tags = (tagsValue != null) ? ("" + tagsValue).split(DELIMITER) : [];
	        profile[ProfileEnum.BOOKMARKS.ID + bookmarkId] = null;
	        $PageFlakesHelper.foreach(tags, function(tag) {
	          if(tag != 0) {
	            var bookmarksForTag = profile[ProfileEnum.TAGS.ID + tag];
	            bookmarksForTag = BookmarksManager.deleteString(("" + bookmarksForTag), DELIMITER, bookmarkId);
	            if(bookmarksForTag.indexOf(DELIMITER) == -1) {
	              profile[ProfileEnum.TAGS.ID + tag] = null;
	            } else {
	              profile[ProfileEnum.TAGS.ID + tag] = bookmarksForTag;
	            }
	          }
	        });

	        var total = BookmarksManager.getBookmarksTotal();
	        for(var i=(parseInt(bookmarkId)+1); i <= total; i++) {
	          var bookmark = profile[ProfileEnum.BOOKMARKS.ID + i];
	          var tagsValue = profile[ProfileEnum.BOOKMARKS.ID + i + "TAGS"];
	          var j = (i - 1);
	          profile[ProfileEnum.BOOKMARKS.ID + j] = bookmark;
	          profile[ProfileEnum.BOOKMARKS.ID + j + "TAGS"] = tagsValue;

	          var tags = (tagsValue != null) ? ("" + tagsValue).split(DELIMITER) : [];
	          $PageFlakesHelper.foreach(tags, function(tag) {
	            var bookmarksForTag = profile[ProfileEnum.TAGS.ID + tag];
	            bookmarksForTag = BookmarksManager.replaceString(("" + bookmarksForTag), DELIMITER, bookmarkId);
	            if(bookmarksForTag.indexOf(DELIMITER) == -1) {
	              profile[ProfileEnum.TAGS.ID + tag] = null;
	            } else {
	              profile[ProfileEnum.TAGS.ID + tag] = bookmarksForTag;
	            }
	          });
	        }
	        BookmarksManager.setBookmarksTotal(total - 1);
	      },

	      updateBookmark : function(bookmarkId, bookmark) {
	        var previousTagsValue = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	        var previousTags = (previousTagsValue != null) ? ("" + previousTagsValue).split(DELIMITER) : [];
	        profile[ProfileEnum.BOOKMARKS.ID + bookmarkId] = bookmark.TITLE + DELIMITER + bookmark.URL + DELIMITER + bookmark.DESCRIPTION;
	        var currentTags = bookmark.TAGS;

	        var deletedTags = [];
	        var addedTags = [];

	        $PageFlakesHelper.foreach(previousTags, function(previousTag) {
	          var tagName = BookmarksManager.getTagName(previousTag);
	          var tagDeleted = ($PageFlakesHelper.find(currentTags, function(ct1) {
	            return ct1 == tagName;
	          }) == null);
	          if(tagDeleted) {
	            if(previousTag == tagIndex) {
	              tagIndex = "-1";
	            }
	            deletedTags.push({ID : previousTag});
	          }
	        });

	        $PageFlakesHelper.foreach(currentTags, function(currentTag) {
	          var tagAdded = ($PageFlakesHelper.find(previousTags, function(pt1) {
	            var tagName = BookmarksManager.getTagName(pt1);
	            return tagName == currentTag;
	          }) == null);
	          if(tagAdded) {
	            addedTags.push({NAME : currentTag});
	          }
	        });

	        $PageFlakesHelper.foreach(addedTags, function(addedTag) {
	          if(addedTag.NAME != EMPTY) {

	            var tt = BookmarksManager.getTagsTotal();
	            var id = BookmarksManager.getTagID(addedTag.NAME);

	            if(id == -1) {
	              profile[ProfileEnum.TAGS.ID + tt] = addedTag.NAME + DELIMITER + bookmarkId;
	              BookmarksManager.setTagsTotal(tt + 1);
	              id = tt;
	            } else {
	              profile[ProfileEnum.TAGS.ID + id] = profile[ProfileEnum.TAGS.ID + id] + DELIMITER + bookmarkId;
	            }

	            var bookmarkTags = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	            if(bookmarkTags != null) {
	              if(bookmarkTags != 0) {
	                profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"] = bookmarkTags + DELIMITER + id;
	              } else {
	                profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"] = id;
	              }
	            } else {
	              profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"] = id;
	            }
	          }
	        });


	        $PageFlakesHelper.foreach(deletedTags, function(deletedTag) {
	          var bookmarksForTag = profile[ProfileEnum.TAGS.ID + deletedTag.ID];
	          bookmarksForTag = BookmarksManager.deleteString(("" + bookmarksForTag), DELIMITER, bookmarkId);
	          if((bookmarksForTag.indexOf(DELIMITER) == -1) && (deletedTag.ID != 0)) {
	            profile[ProfileEnum.TAGS.ID + deletedTag.ID] = null;
	            //var tt = BookmarksManager.getTagsTotal();
	            //BookmarksManager.setTagsTotal(tt - 1);
	          } else {
	            profile[ProfileEnum.TAGS.ID + deletedTag.ID] = bookmarksForTag;
	          }

	          var tagsForBookmark = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	          tagsForBookmark = BookmarksManager.deleteString(("" + tagsForBookmark), DELIMITER, deletedTag.ID);
	          if(tagsForBookmark == EMPTY) {
	            tagsForBookmark = "0";
	          }
	          profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"] = tagsForBookmark;
	        });
	      }
	    };

	    this.showImport = function(from) {
	      this.hide(bodyDivEl);
	      this.show(importEl);
	      if(ImportFromEnum.DELICIOUS == from) {
	        deliciousPublicUsernameEl.value = deliciousUsernameEl.value = deliciousPasswordEl.value = EMPTY;
	        this.hide(deliciousStatusEl);
	        this.hide(deliciousPublicStatusEl);
	        this.show(deliciousImportDivEl);
	      }
	    }

	    this.cancelImport = function() {
	      this.hide(importEl);
	      this.show(bodyDivEl);
	      this.showBookmarksAndTags();
	    }

	    this.setDeliciousStatus = function(message, color) {
	      if(!color) {
	        color = "#008000"
	      }
	      deliciousStatusEl.innerHTML = "<span style=\"font-size:0.9em;line-height:1.2em;color:" + color + "\">" + message + "</span>";
	    }

	    this.setPublicDeliciousStatus = function(message, color) {
	      if(!color) {
	        color = "#008000"
	      }
	      deliciousPublicStatusEl.innerHTML = "<span style=\"font-size:0.9em;line-height:1.2em;color:" + color + "\">" + message + "</span>";
	    }

	    this.importFromDelicious = function() {

	      var username = $PageFlakesHelper.trim(deliciousUsernameEl.value);
	      var password = $PageFlakesHelper.trim(deliciousPasswordEl.value);
	      this.show(deliciousStatusEl);

	      if(username == EMPTY) {
	        this.setDeliciousStatus("Please enter a username.", "#ff0000");
	      } else if(password == EMPTY) {
	        this.setDeliciousStatus("Please enter a password.", "#ff0000");
	      } else {
	        this.setDeliciousStatus("Logging in to del.icio.us. Please wait ...");
  	        App.ContentProxy.GetUrl(BASE64_ENCODE_URL + (username + ":" + password), $PageFlakesHelper.bind(function(base64) {
	          var headers = [["Authorization", "Basic " + base64]];
	          App.ContentProxy.GetUrl2(DELICIOUS_UPDATE_URL, headers, $PageFlakesHelper.bind(function(details) {
	            var xmlDoc = $PageFlakesHelper.getXmlDoc(details);
	            var errorNode = $PageFlakesHelper.getFirstNode(xmlDoc, "error");
	            var loginFailed = (errorNode != null);
	            if(loginFailed) {
	              this.setDeliciousStatus("Login failed. Invalid username/password. Please try again.", "#ff0000");
	            } else {
	              this.setDeliciousStatus("Login successful. <wbr/>Please have some patience. <wbr/>If you have many bookmarks, <wbr/>this can take some minutes.<span style=\"padding-left:4px;\"><img align=\"absmiddle\" src=\"indicator.gif\" alt=\"Loading. Please wait ...\"/></span>");
	              App.ContentProxy.GetUrl2(DELICIOUS_ALL_POSTS_URL, headers, $PageFlakesHelper.bind(function(details) {
	                var xmlDoc = $PageFlakesHelper.getXmlDoc(details);
	                var errorNode = $PageFlakesHelper.getFirstNode(xmlDoc, "error");
	                if(errorNode == null) {
	                  var posts = $PageFlakesHelper.getNodes(xmlDoc, "post");
	                  if(posts.length != 0) {
	                    var count = 0;
	                    maxExceeded = false;
	                    $PageFlakesHelper.foreach(posts, $PageFlakesHelper.bind(function(post) {
	                      if((count ++) < DELICIOUS_BOOKMARKS_LIMIT) {
	                        var extended = post.getAttribute("extended");
	                        BookmarksManager.addBookmark({
	                          TITLE : this.escapeString(post.getAttribute("description")),
	                          URL : this.escapeString(post.getAttribute("href")),
	                          DESCRIPTION : extended ? this.escapeString(extended) : EMPTY,
	                          TAGS : ((post.getAttribute("tag") != null) ? this.escapeString(post.getAttribute("tag")).split(" ") : [])
	                        });
	                      } else {
	                        maxExceeded = true;
	                      }
	                    }, this));
	                    this.hide(importEl);
	                    this.show(bodyDivEl);
	                    showDeliciousImportStatus = true;
	                    this.showBookmarksAndTags();
	                    this.saveInstance();
	                  } else {
	                    this.setDeliciousStatus("<span style=\"font-weight:bold\">" + username + "</span> does not have any bookmarks to import.", "#ff0000");
	                  }
	                }
	              }, this));
	            }
	          }, this));
	        }, this));
	      }
	    }

	    this.publicBookmarksFunction = function(username) {
	      App.ContentProxy.GetUrl(DELICIOUS_JSON_URL + username + "?count=100", $PageFlakesHelper.bind(function(details) {
  	        var details = details.substring(DELICIOUS_JSON_PREFIX.length);
	        eval("var posts = " + details);
	        if(posts.length != 0) {
	          $PageFlakesHelper.foreach(posts, $PageFlakesHelper.bind(function (post) {
	            var tags = [];
	            if(post.t) {
	              var tagsArray = post.t;
	              for(var i=0; i < tagsArray.length; i++) {
	                tags.push(this.escapeString(tagsArray[i]));
	              }
	            }

	            BookmarksManager.addBookmark({
	              TITLE : (post.d ? this.escapeString(post.d) : EMPTY),
	              URL : (post.u ? this.escapeString(post.u) : EMPTY),
	              DESCRIPTION : (post.n ? this.escapeString(post.n) : EMPTY),
	              TAGS : tags
	            });
	          }, this));
	          this.hide(importEl);
	          this.show(bodyDivEl);
	          showDeliciousImportStatus = true;
	          this.showBookmarksAndTags();
	          this.saveInstance();
	        } else {
	          this.setPublicDeliciousStatus("Either <span style=\"font-weight:bold\">" + username + "</span> is an invalid user or does not have any bookmarks to import.", "#ff0000");
	        }
	      }, this));
	    };

	    this.importPublicBookmarksFromDelicious = function() {
	      var username = $PageFlakesHelper.trim(deliciousPublicUsernameEl.value);
	      this.show(deliciousPublicStatusEl);
	      if(username == EMPTY) {
	        this.setPublicDeliciousStatus("Please enter a username.", "#ff0000");
	      } else {
	        this.setPublicDeliciousStatus("Please have some patience. <wbr/>If you have many bookmarks, <wbr/>this can take some minutes.<span style=\"padding-left:4px;\"><img align=\"absmiddle\" src=\"indicator.gif\" alt=\"Loading. Please wait ...\"/></span>");
	        window.setTimeout(id + ".publicBookmarksFunction('" + this.escapeString(username).replace(/\\/g, "\\\\") + "')" , 0);
	      }
	    }

	    this.resetPage = function() {
	      page = 1;
	    }

	    this.paginate = function(direction) {
	      if(PaginationEnum.NEXT == direction) {
	        page ++;
	      } else {
	        page --;
	      }
	      this.showBookmarks();
	    }

	    this.addBookmark = function() {
	      this.hide(urlErrorEl);
	      var url = urlEl.value;
	      if($PageFlakesHelper.trim(url) == EMPTY) {
	        this.show(urlErrorEl);
	      } else {
	        var title = $PageFlakesHelper.trim(titleEl.value);
	        var description = $PageFlakesHelper.trim(descriptionEl.value);
	        var tagElValue = $PageFlakesHelper.trim(tagsEl.value);
	        tagElValue = (tagElValue == EMPTY) ? SYSTEM_TAG : tagElValue;
	        var tags = this.escapeString(tagElValue).split(",");

	        var params = {
	          TITLE : ((title != EMPTY) ? this.escapeString(title) : EMPTY),
	          URL : this.escapeString(url),
	          DESCRIPTION : ((description != EMPTY) ? this.escapeString(description) : EMPTY),
	          TAGS : tags
	        };

	        if(ActionEnum.UPDATE != action) {
	          BookmarksManager.addBookmark(params);
	        } else {
	          BookmarksManager.updateBookmark(editBookmarkId, params);
	        }

	        this.resetAddBookmarkFields();
	        this.hideAddBookmark();

	        this.showBookmarksAndTags();

	        date = new Date();
	        this.saveInstance();
	        //this.dumpProfile();
	      }
	    }

	    this.saveInstance = function() {
	      showDeliciousImportStatus = false;
	      instance.save();
	    }

	    this.deleteBookmark = function(bookmarkId) {
	      if((profile[ProfileEnum.CONFIRM_DELETION] == "false") || confirm("Are you sure you want to delete this Bookmark?")) {
	        BookmarksManager.deleteBookmark(bookmarkId);
	        this.showBookmarksAndTags(true);
	        this.saveInstance();
	      }
	    }

	    this.editBookmark = function(bookmarkId) {
	      var bookmark = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId];
	      if(bookmark != null) {
	        var fields = bookmark.split(DELIMITER);
	        titleEl.value = this.unescapeString(fields[0]);
	        urlEl.value = this.unescapeString(fields[1]);
	        descriptionEl.value = this.unescapeString(fields[2]);
	        var tagProfileValue = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	        var tagsElValue = EMPTY;
	        if((tagProfileValue != null) && (tagProfileValue != 0)) {

	          var tagsArray = ("" + tagProfileValue).split(DELIMITER);

	          for(var i=0; i < tagsArray.length; i++) {
	            var name = this.getTagName(tagsArray[i]);
	            if(name != SYSTEM_TAG) {
	              tagsElValue += name;
	              if(i != (tagsArray.length - 1)) {
	                tagsElValue += ",";
	              }
	            }
	          }
	        }
	        tagsEl.value = this.unescapeString(tagsElValue);
	        editBookmarkId = bookmarkId;
	        this.showAddBookmark(ActionEnum.UPDATE);
	      }
	    }

	    this.dumpProfile = function() {
	      for(var key in profile) {
	        debug.dump(key + " == " + profile[key]);
	      }
	    }

	    this.getTagName = function(tagId) {
	      return BookmarksManager.getTagName(tagId);
	    }

	    this.showToolTip = function(event, el, i) {
	      var toolTipEl = $(id + i + "tooltip");
	      var p;
	      var node = el.parentNode;
	      p = PageflakesUtility.getPosition(node);

          this.show(toolTipEl);
          toolTipEl.style.top = (this.getY() + event.clientY - p[1] + node.offsetTop + 18) + "px";
          toolTipEl.style.left = (this.getX() + event.clientX - p[0] + 7) + "px";
	    }

	    this.hideToolTip = function(event, el, i) {
	      this.hide($(id + i + "tooltip"));
	    }

        this.getX = function() {
          return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
        }

        this.getY = function() {
          return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
        }

	    this.showBookmarks = function(recalculatePageIndex) {

	      if(showDeliciousImportStatus) {
	        deliciousImportStatusImgEl.innerHTML = "<img align=\"absmiddle\" src=\"/users/kishore/bookmarks/images/success.gif\">";
	        deliciousImportStatusMessageEl.innerHTML = (maxExceeded ? "<div>" + DELICIOUS_BOOKMARKS_LIMIT + " bookmarks have been imported.</div><div>Import is currently limited to " + DELICIOUS_BOOKMARKS_LIMIT + " bookmarks.</div>" : "<div>Your bookmarks have been imported.</div>");
	        this.show(deliciousImportStatusEl);
	      } else {
	        this.hide(deliciousImportStatusEl);
	      }

	      var showAllTags = (tagIndex == -1);

	      var total = showAllTags ? BookmarksManager.getBookmarksTotal() : BookmarksManager.getBookmarksTotalForTagIndex(tagIndex);
	      var showPagination = false;
	      var bpp = profile[ProfileEnum.BOOKMARKS_PER_PAGE];
	      if(recalculatePageIndex) {
	        if(((page-1) * bpp >= total) && (page > 1)) {
	          page --;
	        }
	      }
	      var tagName;


	      if(tagIndex == -1) {
	        tagName = "All";
	      } else if(tagIndex == 0) {
	        tagName = SYSTEM_TAG;
	      } else {
	        tagName = this.getTagName(tagIndex);
	      }

	      if(tagName != EMPTY) {
	        instance.setTitle("Bookmarks for tag: " + tagName);
	      } else {
	        instance.setTitle("Bookmarks");
	      }

	      if(page == 1) {
	        this.hide(previousEl);
	      } else {
	        this.show(previousEl);
	        showPagination = true;
	      }

	      if(page * bpp >= total) {
	        this.hide(nextEl);
	      } else {
	        this.show(nextEl);
	        showPagination = true;
	      }

	      if(showPagination) {
	        this.show(navigationEl);
	      } else {
	        this.hide(navigationEl);
	      }

	      bookmarksContentEl.innerHTML = EMPTY;

	      if(total > 0) {
	        var index = (page - 1) * bpp;
	        var upperBound = page * bpp;
	        upperBound = (upperBound > total) ? total : upperBound;
	        var dummyDiv = $PageFlakesHelper.newNode("div");
	        titleSpanEl.innerHTML = "Viewing " + (index + 1) + "-" + upperBound + " of " + total;
	        var _total = total-1;
	        for(var i=index; i < upperBound; i++) {
	          var html = "<div style=\"" + (((i < (upperBound - 1)) || (!showPagination)) ? "border-bottom:1px solid #f1eded;" : "") + "padding:5px 0px 5px 0px;\">";
	          var bookmarkId = (showAllTags) ? (_total-i) : this.getBookmarkId(tagIndex, (_total-i));
	          if(bookmarkId != null) {
	            var bookmark = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId].split(DELIMITER);
	            var title = bookmark[0];
	            var url = bookmark[1];
	            var description = $PageFlakesHelper.trim(bookmark[2]);

	            title = (title == EMPTY) ? url : title;
	            html += "<div>";
	            html += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed;\">";
	            html += "<tr><td style=\"width:90%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;\">";
	            var hasDescription = (description != EMPTY);
	            if(hasDescription) {
	              html += "<div style=\"position:relative;cursor:hand;cursor:pointer;\">";
	              html += "<span style=\"cursor:hand;cursor:pointer;\" class=\"NavigateActive\" onmousemove=\"" + id + ".showToolTip(event, this, " + i + ")\" onmouseout=\"$PageFlakesHelper.setClassName(this, 'NavigateActive');" + id + ".hideToolTip(event, this, " + i + ")\" onmouseover=\"$PageFlakesHelper.setClassName(this, 'NavigateHover');\" onclick=\"" + id + ".navigate('" + url + "')\">";
	            } else {
	              html += "<span style=\"cursor:hand;cursor:pointer;\" class=\"NavigateActive\" onmouseout=\"$PageFlakesHelper.setClassName(this, 'NavigateActive');\" onmouseover=\"$PageFlakesHelper.setClassName(this, 'NavigateHover');\" onclick=\"" + id + ".navigate('" + url + "')\">";
	            }
	            html += title;
	            html += "</span>";
	            if(hasDescription) {
	              html += "</div>";
	              html += "<div id=\"" + id + i + "tooltip\" style=\"text-overflow:ellipsis;overflow:hidden;width:200px;border:1px solid #999999;padding:2px 2px 2px 2px;display:none;position:absolute;background-color:#ffffee;z-Index:999999\">";
	              html += description;
	              html += "</div>";
	            }
	            html += "</td><td style=\"width:10%;white-space:nowrap;\">";
	            html += "<span style=\"padding:0px 4px 0px 4px;cursor:hand;cursor:pointer\" onclick=\"" + id + ".editBookmark(" + bookmarkId + ")\" title=\"Edit this bookmark\"><img src=\"/users/kishore/bookmarks/images/rename.gif\"/></span>";
	            html += "<span style=\"padding-right:4px;cursor:hand;cursor:pointer\" onclick=\"" + id + ".deleteBookmark(" + bookmarkId + ")\" title=\"Delete this bookmark\"><img src=\"/users/kishore/bookmarks/images/delete.gif\"/></span>";
	            html += "</td></tr></table>";
	            html += "</div>";

	            var tagProfileValue = profile[ProfileEnum.BOOKMARKS.ID + bookmarkId + "TAGS"];
	            if((tagProfileValue != null)) {
	              //&& (tagProfileValue != 0)) {
	              var tagsArray = ("" + tagProfileValue).split(DELIMITER);
	              var str = "";
	              for(var j=0; j < tagsArray.length; j++) {
	                str += "<span style=\"cursor:hand;cursor:pointer;\" class=\"NavigateActive\" onmouseout=\"$PageFlakesHelper.setClassName(this, 'NavigateActive');\" onmouseover=\"$PageFlakesHelper.setClassName(this, 'NavigateHover');\" onclick=\"_PAGEFLAKES_.showBookmarksForTagOnClick(" + tagsArray[j] + ")\">";
	                str += this.getTagName(tagsArray[j]);
	                str += "</span>";
	                if(j != tagsArray.length - 1) {
	                  str += "<span style=\"color:#000080;padding-right:4px\">,</span>";
	                }
	              }
	              html += "<div style=\"width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\">";
	              html += str;
	              html += "</div>";
	            }

	            html += "<div>";

	            dummyDiv.innerHTML = html;
	            bookmarksContentEl.appendChild(dummyDiv.firstChild);
	          }
	        }
	      } else {
	        var message;
	        var html = "<div>";
	        if(showAllTags || (tagName == EMPTY)) {
	          message = "No bookmarks found.";
	        } else {
	          message = "No bookmarks found for tag: " + tagName + ".";
	        }
	        html += "<span style=\"color:#000080\">" + message + "</span>";
	        html += "</div>";
	        bookmarksContentEl.innerHTML = html;
	        titleSpanEl.innerHTML = "Viewing 0 of 0";
	      }
	    }

	    this.getBookmarkId = function(tag, index) {
	      var value = profile[ProfileEnum.TAGS.ID + tag];
	      if(value == null) {
	        return null;
	      }
	      var indexOfDelimiter = value.indexOf(DELIMITER);
	      var count = 0;
	      if(indexOfDelimiter == -1) {
	        return value;
	      }
	      var bookmarkId = null;
	      while(indexOfDelimiter != -1) {
	        count ++;
	        var nextIndex = value.indexOf(DELIMITER, indexOfDelimiter + 1);
	        if((count > index) || nextIndex == -1) {
	          bookmarkId = (nextIndex != -1) ? value.substring(indexOfDelimiter + 1, nextIndex) : value.substring(indexOfDelimiter + 1) ;
	          break;
	        }
	        indexOfDelimiter = nextIndex;
	      }
	      return bookmarkId;
	    }

	    this.showTags = function() {
	      var date = new Date();
	      var total = BookmarksManager.getTagsTotal();
	      var dummyDiv = $PageFlakesHelper.newNode("div");
	      var tagsArray = [];

	      for(var i=0; i < total; i++) {
	        var tag = profile[ProfileEnum.TAGS.ID + i];
	        if((tag != null) && (tag != EMPTY)) {
	          tagsArray.push({ID : i, NAME: tag});
	        }
	      }

	      tagsArray.sort(function(a, b) {
	        return (a.NAME < b.NAME) ? -1 : ((a.NAME > b.NAME) ? 1 : 0);
	      });
	      total = tagsArray.length;

	      var options = titleTagEl.options;
	      options.length = 0;
	      options[options.length] = new Option("all (" + BookmarksManager.getBookmarksTotal() + ")", "-1");


	      for(var i=0; i < total; i++) {
	        var tagHash = tagsArray[i];
	        var tag = tagHash.NAME;
	        var indexOfDelimiter = tag.indexOf(DELIMITER);
	        tag = (indexOfDelimiter == -1) ? tag : tag.substring(0, indexOfDelimiter);

	        options[options.length] = new Option(this.unescapeString(tag) + " (" + BookmarksManager.getBookmarksTotalForTagIndex(tagHash.ID) + ")", tagHash.ID);
	      }
	      titleTagEl.value = tagIndex;
	    }

	    this.showBookmarksAndTags = function(recalculatePageIndex) {
	      this.showBookmarks(recalculatePageIndex);
	      this.showTags();
	    }

	    this.showBookmarksForTag = function(i) {
	      showDeliciousImportStatus = false;
	      tagIndex = i;
	      this.resetPage();
	      this.showBookmarks();
	    }

	    this.showBookmarksForTagOnClick = function(i) {
	      this.showBookmarksForTag(i);
	      titleTagEl.value = i;
	    }

	    this.closeDeliciousImportStatusMessage = function() {
	      showDeliciousImportStatus = false;
	      this.hide(deliciousImportStatusEl);
	    }

	    this.navigate = function(url) {
	      this._navigate(url, profile[ProfileEnum.OPEN_LINKS_IN]);
	    }

	    this._navigate = function(url, openLinksIn) {
	      if(url.indexOf("://") == -1) {
	        url = "http://" + url;
	      }
	      if(WindowEnum.NEW == openLinksIn) {
	        window.open(url);
	      } else {
	        window.document.location.href = url;
	      }
	    }


	    this.escapeString = function(value) {
	      var rValue = "";
	      for(var i=0; i < value.length; i++) {
	        var ch = value.charAt(i);
	        switch(ch) {
	          case "'"  : rValue += "&#039;";
	                      break;
	          case "\"" : rValue += "&#034;"
	                      break;
	          case "&"  : rValue += "&amp;";
	                      break;
	          case DELIMITER  : rValue += "&lt;";
	                      break;
	          case ">"  : rValue += "&gt;";
	                      break;
	          default   : rValue += ch;
	        }
	      }
	      return rValue;
	    }

	    this.unescapeString = function(value) {
	      if((value == null) || ($PageFlakesHelper.trim(value) == EMPTY)) {
	        return value;
	      }
	      var dummyDiv = $PageFlakesHelper.newNode("div");
	      dummyDiv.innerHTML = value;
	      return dummyDiv.childNodes[0].nodeValue;
	    }

        this.handleEnter = function(e, func) {
          var key;
          if(e.which) {
            key = e.which;
          } else if(e.keyCode) {
            key = e.keyCode;
          }
          if(key == 13 && (typeof(func) == "function")) {
            ($PageFlakesHelper.bind(func, this))();
          }
        }
      }
    ]]></script>
    <script id="_PAGEFLAKES_Instance" type="text/javascript"><![CDATA[
      var _PAGEFLAKES_ = new BookmarksFlake_v0('_PAGEFLAKES_');
    ]]></script>
  </head>
  <body>
    <div id="_PAGEFLAKES_edit">
      <table width="100%">
        <tr>
          <td width="1%" nowrap="nowrap">
            <span style="font-weight:bold">Ask before deletion:</span>
          </td>
          <td>
            <input type="checkbox" id="_PAGEFLAKES_confirm_deletion"/>
          </td>
        </tr>
        <tr>
          <td width="1%" nowrap="nowrap">
            <span style="font-weight:bold">Bookmarks per page:</span>
          </td>
          <td>
            <select id="_PAGEFLAKES_bookmarks_per_page">
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6">6</option>
              <option value="7">7</option>
              <option value="8">8</option>
              <option value="9">9</option>
              <option value="10">10</option>
              <option value="11">11</option>
              <option value="12">12</option>
              <option value="13">13</option>
              <option value="14">14</option>
              <option value="15">15</option>
            </select>
          </td>
        </tr>
        <tr>
          <td width="1%" nowrap="nowrap">
            <span style="font-weight:bold">Open links in:</span>
          </td>

          <td>
            <select id="_PAGEFLAKES_open_links_in">
              <option value="new">new browser window</option>
              <option value="this">this browser window</option>
            </select>
          </td>
        </tr>
        <tr>

          <td colspan="2" align="center">
            <div style="padding-top:2px;border-top:1px solid #cccccc;text-align:middle">
              <input type="button" value="Save" onclick="_PAGEFLAKES_.saveProfile();">
            </div>
          </td>
        </tr>
      </table>
    </div>
    <div id="_PAGEFLAKES_add_bookmark" style="display:none;background-color:#e4ecf4;padding:4px 4px 4px 4px">
      <div><span style="padding-bottom:4px;font-weight:bold" id="_PAGEFLAKES_add_bookmark_title_span"></span></div>
      <table width="100%" cellpadding="2" cellspacing="0" style="table-layout:fixed">
        <tr>
          <td width="20%" valign="top">
            <span>Title</span>
          </td>
          <td width="80%" valign="top">
            <input type="text" style="margin-top:4px;width:95%;border:1px solid #7f9db9;" id="_PAGEFLAKES_add_bookmark_title" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.addBookmark)"/>
            <div id="_PAGEFLAKES_add_bookmark_title_error" style="display:none;line-height:1.2em;font-size:10px;color:#ff0000">Please enter a title.</div>
          </td>
        </tr>
        <tr>
          <td width="20%" valign="top">
            <span>URL</span>
          </td>
          <td width="80%" valign="top">
            <input type="text" style="margin-top:4px;width:95%;border:1px solid #7f9db9;" id="_PAGEFLAKES_add_bookmark_url" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.addBookmark)"/>
            <div id="_PAGEFLAKES_add_bookmark_url_error" style="display:none;line-height:1.2em;font-size:10px;color:#ff0000">Please enter an url.</div>
          </td>
        </tr>
        <tr>
          <td width="20%" valign="top">
            <div>Description</div><div style="line-height:1.2em">(optional)</div>
          </td>
          <td width="80%" valign="top">
            <textarea style="margin-top:4px;width:95%;font-size:1.1em;border:1px solid #7f9db9" rows="2" id="_PAGEFLAKES_add_bookmark_description"></textarea>
          </td>
        </tr>
        <tr>
          <td width="20%" valign="top">
            <div>Tags</div><div style="line-height:1.2em">(optional)</div>
          </td>
          <td width="80%" valign="top">
            <input type="text" style="margin-top:4px;width:95%;border:1px solid #7f9db9" id="_PAGEFLAKES_add_bookmark_tags" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.addBookmark)"/>
            <div style="line-height:1.2em;font-size:10px">Separate by commas.</div>
          </td>
        </tr>
        <tr>
          <td>
            <span>&nbsp;</span>
          </td>
          <td valign="top">
            <span style="padding-right:4px;"><input type="button" value="Save" onclick="_PAGEFLAKES_.addBookmark()"/></span>
            <span><input type="button" value="Cancel" onclick="_PAGEFLAKES_.hideAddBookmark()"/></span>
          </td>
        </tr>
      </table>
    </div>
    <div id="_PAGEFLAKES_import" style="display:none;">
      <div style="background-color:#cbdceb;padding:8px 8px 8px 8px">
        <span style="font-weight:bold;padding-right:4px;">Import from:</span>
        <span>
          <select id="_PAGEFLAKES_import_from_select" onchange="_PAGEFLAKES_.showImport(this.options[this.selectedIndex.value])">
            <option value="delicious">Del.icio.us</option>
          </select>
        </span>
      </div>
      <div id="_PAGEFLAKES_delicious_import" style="display:none;background-color:#e4ecf4;padding:4px 8px 4px 8px">
        <div><span style="font-weight:bold">My Del.icio.us bookmarks</span></div>
        <div>
          <table width="100%" cellpadding="2" cellspacing="0">
            <tr>
              <td width="1%" nowrap="nowrap">User name:</td>
              <td><input type="text" id="_PAGEFLAKES_delicious_username" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.importFromDelicious)"/></td>
            </tr>
            <tr>
              <td width="1%" nowrap="nowrap">Password:</td>
              <td><input type="password" id="_PAGEFLAKES_delicious_password" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.importFromDelicious)"/></td>
            </tr>
            <tr>
              <td width="1%" nowrap="nowrap">&nbsp;</td>
              <td><input type="button" onclick="_PAGEFLAKES_.importFromDelicious()" value="Import"/></td>
            </tr>
          </table>
        </div>
        <div id="_PAGEFLAKES_delicious_status">
        </div>
      </div>
      <div style="background-color:#e4ecf4;padding:4px 8px 4px 8px">
        <div><span style="font-weight:bold">Public bookmarks of any user:</span></div>
        <div>
          <table width="100%" cellpadding="2" cellspacing="0">
            <tr>
              <td width="1%" nowrap="nowrap">User name:</td>
              <td><input type="text" id="_PAGEFLAKES_delicious_pusername" onkeydown="_PAGEFLAKES_.handleEnter(event, _PAGEFLAKES_.importPublicBookmarksFromDelicious)"/></td>
            </tr>
            <tr>
              <td width="1%" nowrap="nowrap">&nbsp;</td>
              <td><input type="button" onclick="_PAGEFLAKES_.importPublicBookmarksFromDelicious()" value="Import"/></td>
            </tr>
          </table>
        </div>
        <div id="_PAGEFLAKES_delicious_pstatus">
        </div>
      </div>
      <div style="background-color:#e4ecf4">
        <div style="padding:4px 8px 0px 8px;">
          <div style="border-top:1px solid #cddceb;padding:4px 0px 4px 0px"></div>
          <div style="padding-bottom:4px"><input type="button" value="Cancel" onclick="_PAGEFLAKES_.cancelImport()"/></div>
        </div>
      </div>
      <div style="padding-bottom:4px;"></div>
    </div>
    <div id="_PAGEFLAKES_body">
      <div id="_PAGEFLAKES_bookmarks">
        <div id="_PAGEFLAKES_delicious_import_status" style="display:none;padding-bottom:8px;">
         <div style="background-color:#ffffdd">
           <table style="width:100%table-layout:fixed" cellpadding="2" cellspacing="0">
             <tr>
               <td width="5%" valign="top">
                 <span id="_PAGEFLAKES_delicious_import_status_img" style="padding:0px 4px 0px 4px"></span>
               </td>
               <td width="90%" valign="top">
                 <div id="_PAGEFLAKES_delicious_import_status_message"></div>
               </td>
               <td width="5%" valign="top" align="right">
                 <span style="cursor:hand;cursor:pointer;" onclick="_PAGEFLAKES_.closeDeliciousImportStatusMessage()"><img align="top" src="/users/kishore/bookmarks/images/close.gif"/></span>
               </td>
             </tr>
           </table>
         </div>
        </div>
        <div id="_PAGEFLAKES_bookmarks_title" style="padding:4px 6px 4px 6px;background-color:#f1eded;">
          <table width="100%" cellpadding="0" cellspacing="0" style="table-layout:fixed">
            <tr>
              <td style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:60%">
                <span id="_PAGEFLAKES_bookmarks_title_span" style="width:100%"></span>
              </td>
              <td style="overflow:hidden;width:40%">
                <select id="_PAGEFLAKES_bookmarks_tag" onchange="_PAGEFLAKES_.showBookmarksForTag(this.options[this.selectedIndex].value)" style="width:100%;">
                </select>
              </td>
            </tr>
          </table>
        </div>
        <div id="_PAGEFLAKES_bookmarks_content" style="padding-left:4px;">
        </div>
        <div id="_PAGEFLAKES_navigation" style="display:none;padding:2px 3px 2px 3px;background-color:#f1eded;">
          <div style="padding:0px 1px 0px 1px">
            <table width="100%" cellpadding="0" cellspacing="0">
              <tr>
                <td width="50%">
                  <div id="_PAGEFLAKES_previous" style="display:none"><span class="NavigateActive" onmouseout="$PageFlakesHelper.setClassName(this, 'NavigateActive');" onmouseover="$PageFlakesHelper.setClassName(this, 'NavigateHover');" onclick="_PAGEFLAKES_.paginate('previous')">previous</span></div>
                </td>
                <td align="right">
                  <div id="_PAGEFLAKES_next" style="display:none"><span class="NavigateActive" onmouseout="$PageFlakesHelper.setClassName(this, 'NavigateActive');" onmouseover="$PageFlakesHelper.setClassName(this, 'NavigateHover');" onclick="_PAGEFLAKES_.paginate('next')">next</span></div>
                </td>
              </tr>
            </table>
          </div>
        </div>
      </div>
      <div id="_PAGEFLAKES_actions" style="font-size:10px;padding-top:8px;">
        <span style="font-size:9px;padding-right:4px" class="NavigateActive" onmouseout="$PageFlakesHelper.setClassName(this, 'NavigateActive');" onmouseover="$PageFlakesHelper.setClassName(this, 'NavigateHover');" onclick="_PAGEFLAKES_.showAddBookmark()"><span style="padding-right:4px"><img align="absmiddle" src="/users/kishore/bookmarks/images/add.bookmark1.gif"/></span>Add Bookmark</span>
        <span style="font-size:9px;" class="NavigateActive" onmouseout="$PageFlakesHelper.setClassName(this, 'NavigateActive');" onmouseover="$PageFlakesHelper.setClassName(this, 'NavigateHover');" onclick="_PAGEFLAKES_.showImport('delicious')"><span style="padding-right:4px"><img align="absmiddle" src="/users/kishore/bookmarks/images/import.bookmarks.gif"/></span>Import Bookmarks</span>
      </div>
    </div>
  </body>
</html>