﻿// Strings
var s_verifyCancel = "是否要取消对您的版式的更改？";
var s_wait = "请等到加载完版式。";
var s_checksave = "要保存您对当前页的更改，请单击“取消”，然后单击“保存”。如果要离开此页而不保存更改，请单击“确定”。";
var s_add = "添加";
var s_addnew = "创建";
var s_remove = "删除";
var s_delete = "删除";
var s_placeholder = "要将此模块添加到您的共享空间，请单击“保存”。";
var s_morethemes = "查看更多主题";
var s_featuredthemes = "功能性主题";
var s_gif = "/images/checkmark.gif";
var c_ThemeColumns = 4;
var c_ThemeRows = 4;
var c_FeaturedColumns = c_ThemeColumns;
var c_FeaturedRows = 1;
//
var m_designMode = m_dirty = m_pageLoaded = m_cancel = m_displayedtools = false;
var m_styleurl = "../blog/style.jsp?style="; // theme URL
var m_maincss = "../blog/spaces.css";
function verifyCancel(){
 if (!m_dirty)
 {
 var elList = document.getElementById("NavList");
 NavList.all.MySpace.className ="mainseltab";
 NavList.all.editLayoutButton.className = "mainsel";
 document.styleSheets.dirty.disabled = true;
 m_displayedtools = layoutManager.designMode = false;
 }
 else
 if (confirm(s_verifyCancel)) {
 layoutManager.designMode=false;
 m_cancel=true;
 disableButtons();
 document.body.style.cursor = "wait";
 window.location.replace(window.location.href.replace("&editmode=true",""));
 }
}
function dirtyPage() {
 if (!m_pageLoaded)
 alert(s_wait)
 else
 {
 displayToolbar();
 m_dirty = true;
 document.all.EditSaveButton.disabled = false;
 }
}
function doDirtyCheck() {
 if (m_dirty && !layoutManager.isSaving && !m_cancel)
 event.returnValue = s_checksave;
}
function disableButtons() {
 document.all.EditCancelButton.disabled = document.all.EditSaveButton.disabled = true;
}
function verifySave() {
 if (m_dirty) {
 layoutManager.saveLayout();
 disableButtons();
 }
 else
 verifyCancel();
}
function displayToolbar() {
 if (!m_pageLoaded)
 alert(s_wait)
 else if (!m_displayedtools) {
 var elList = document.getElementById("NavList");
 var elSettingSep = document.getElementById("SpaceSetting_sep");
 var elFirstSep = document.getElementById("Profile_sep");
 if(!elFirstSep)
 elFirstSep = document.getElementById("Blog_sep");
 if(!elFirstSep)
 elFirstSep = document.getElementById("Photos_sep");
 if(!elFirstSep)
 elFirstSep = document.getElementById("Lists_sep");
 if(!elFirstSep)
 elFirstSep = document.getElementById("Music_sep");
 if(elFirstSep){
 elFirstSep.innerHTML = "|";
 }
 elSettingSep.innerHTML = "";
 NavList.all.MySpace.className ="mainsel";
 NavList.all.editLayoutButton.className ="mainseltab";
 document.styleSheets.dirty.disabled =false;
 document.all.EditSaveButton.disabled = layoutManager.designMode = true;
 m_displayedtools=true;
 }
}
function popupTheme(el) {
 var elThemeContainer = PopupMenu.cpContext.document.getElementById("themeContainer");
 var cThemeColumns = 4;
 var cThemeRows = 4;
 var cThemesPerPage = cThemeColumns*cThemeRows;
 var cTotalPages = Math.ceil(themeList.length / cThemesPerPage);
 //find the current page: send the user back to the page with their currently selected theme.
 var cCurrentPage = 1;
 var sCurrent = document.styleSheets.theme.title;
 for(var i = 1; i < themeList.length; i++)
 {
 if(themeList[i][0] == sCurrent)
 {
 cCurrentPage = Math.floor(i / cThemesPerPage) + 1;
 break;
 }
 }
 if(elThemeContainer)
 {
 //Only replace the theme list (to get the new selected theme checkmark)
 PageThemeList(cCurrentPage, cTotalPages)();
 PopupMenu.showPopup();
 }
 else
 {
 var elContainer = PopupMenu.cpContext.document.createElement("div");
 var elTemp;
 elContainer.id = "popupContainer";
 if(featuredThemeList.length > 0)
 {
 //Add the text. Table so we can vertically center.
 var elDiv, elTitle, elFeatureList;
 var elFeatureContainer = PopupMenu.cpContext.document.createElement("table");
 elFeatureContainer.style.marginLeft = "6px";
 elTitle = PopupMenu.cpContext.document.createElement("span");
 elTitle.className = "bold";
 elTitle.innerText = s_featuredthemes;
 elTemp = elFeatureContainer.insertRow();
 elTemp.style.height = "29px";
 elTemp = elTemp.insertCell();
 elTemp.valign = "center";
 elTemp.appendChild(elTitle);
 elContainer.appendChild(elFeatureContainer);
 //don't put the images in a table: have link issues
 elFeatureList = CreateThemeList(featuredThemeList, 1, "featuredThemeContainer", c_FeaturedRows, c_FeaturedColumns, false);
 elDiv = PopupMenu.cpContext.document.createElement("div");
 elDiv.style.marginLeft = "6px";
 elDiv.appendChild(elFeatureList);
 elContainer.appendChild(elDiv);
 //4px spacing
 elTemp = PopupMenu.cpContext.document.createElement("table");
 elTemp.insertRow().insertCell();
 elTemp.style.height = "4px";
 elContainer.appendChild(elTemp);
 //horizontal line
 elDiv = PopupMenu.cpContext.document.createElement("div");
 elDiv.style.borderBottom = "1px solid #000000";
 elContainer.appendChild(elDiv);
 }
 if(cTotalPages > 1){
 elContainer.appendChild(CreatePagingLinks(cCurrentPage, cTotalPages));
 }
 //10px spacing
 elTemp = PopupMenu.cpContext.document.createElement("table");
 elTemp.insertRow().insertCell();
 elTemp.style.height = "10px";
 elContainer.appendChild(elTemp);
 //theme list
 elThemeContainer = PopupMenu.cpContext.document.createElement("div");
 elThemeContainer.style.marginLeft = "6px";
 elThemeContainer.appendChild(CreateThemeList(themeList,cCurrentPage, "themeContainer", c_ThemeRows, c_ThemeColumns, true));
 elContainer.appendChild(elThemeContainer);
 PopupMenu.CreateFromElement(elContainer,el,false);
 }
}
function popupSpaceLayout(el)
{
 var s = "";
 var sCurrent = layoutManager.className;
 for (var i=0;i<layoutList.length;i++)
 s+=AddItem(layoutList[i],sCurrent,50,58) + "<BR>";
 PopupMenu.CreateFromHTML(s,ProcessLayout,el,false);
}
function popupParts(el,role) {
 var s = "<table id='partPopup' cellspacing=0 cellpadding=0>";
 var countLists = 0
 for (var i=0;i<contentList.length;i++)
 {
 var c = contentList[i];
 if(c[0] == "blogsong"){
 if(role == "歌手"){
 s+=AddTextItem(getPartDisplayed(c),c[1],c[0],c[2],c[3],c[4]);
 }
 }
 else if(c[0] == "blogmtv"){
 if(role == "歌手"){
 s+=AddTextItem(getPartDisplayed(c),c[1],c[0],c[2],c[3],c[4]);
 }
 } 
 else if(c[0] == "blogspecial"){
 if(role == "歌手"){
 s+=AddTextItem(getPartDisplayed(c),c[1],c[0],c[2],c[3],c[4]);
 }
 } 
 else{
 s+=AddTextItem(getPartDisplayed(c),c[1],c[0],c[2],c[3],c[4]);
 }
 // count only the lists not the AdPart. Since the AdPart also appends the ID,
 // the system should not mistake it for List
 if ((c[0].indexOf(":")>0) && (c[0].substring(0,6) != "AdPart"))
 {
 countLists++;
 }
 }
 for (var o in multiList)
 {
 //if ((!counter[o]) || ((o=="Links" && counter[o]<5) || counter[o]<3))
 if (countLists<11)
 s+=AddTextItem(false,multiList[o][1],multiList[o][0],multiList[o][2],true,multiList[o][4]);
 }
 s+="</table>";
 PopupMenu.CreateFromHTML(s,ProcessPart,el,true);
}
function PopupMenu() {}
// sContents - Contents to display (HTML)
// fnCallback - Callback if selection (selected item must be parentElement with canselect="true" attribute (ugly)
// srcElement - the element to display the menu below
// bScroll - Whether to constrain the height for vertical scrollbars
function PopupMenu.CreateFromHTML(sContents,fnCallback,srcElement,bScroll)
{
 if (!bScroll)
 sContents = "<div id='popupContainer' style='padding:3px;'>" + sContents + "</div>";
 this.size = GetSize(sContents,bScroll);
 if (bScroll)
 sContents = "<div id='popupContainer' style='height:" + this.size.height + "px;overflow-y:auto'>" + sContents + "</div>";
 this.srcElement = srcElement;
 this.cpContext.document.body.innerHTML = sContents + "<STYLE id='popupStyle'>" + this.includeStyle + "</STYLE>";
 this.cpContext.document.body.onclick = ValidateClick(fnCallback);
 this.showPopup();
}
function PopupMenu.CreateFromElement(elContents, srcElement, bScroll)
{
 var popupContainer = this.cpContext.document.getElementById("popupContainer");
 if(!bScroll){
 elContents.style.paddingTop = "3px";
 }
 this.size = GetSize(elContents.innerHTML, bScroll);
 if(bScroll){
 elContents.style.height = this.size.height + "px";
 elContents.style.overflowY = "auto";
 }
 elContents.style.width = this.size.width + "px";
 popupContainer.replaceNode(elContents);
 this.cpContext.document.body.onclick = "";
 this.srcElement = srcElement;
 this.showPopup();
}
PopupMenu.cpContext = createPopup();
//note that includeStyle is duplicated in code in InitPage
PopupMenu.includeStyle = ".selected {z-index:1;background:url(" + s_gif + ") no-repeat top left;} img {position: relative;z-index:-1} " +
 "a {text-decoration:none;} a:hover{text-decoration:none;} .disabledPaging {cursor:default;color:#FFFFFF;background-color:#818181} .paging {color:#000000;cursor:hand}";
PopupMenu.bodyCSS = "overflow: hidden;margin: 0px; padding: 0px;background-color:white; border: solid 1px #000000;";
PopupMenu.hidePopup = function() {this.cpContext.hide();}
PopupMenu.showPopup = function() {this.cpContext.show(0, this.srcElement.offsetHeight+5, this.size.width, this.size.height, this.srcElement);}
function isPartDisplayed(pID) {return document.all[pID].style.display=="";}
function getPartDisplayed(cl) {return (document.all[cl[0]] && (isPartDisplayed(cl[0])));}
function killEvent() {event.returnValue = false;return false;}
function InitPage(bEdit) {
 if (document.all.layoutManager!=null && layoutManager.readyState=="complete") {
 PopupMenu.cpContext.document.createStyleSheet(m_maincss);
 PopupMenu.cpContext.document.body.style.cssText= PopupMenu.bodyCSS;
 var elContainer = PopupMenu.cpContext.document.createElement("div");
 elContainer.id = "popupContainer";
 PopupMenu.cpContext.document.body.appendChild(elContainer);
 //add a style sheet - CreateFromElement doesn't do this, it needs to pre-exist
 //duplicate string consts as in includeStyle
 var style = PopupMenu.cpContext.document.styleSheets[0];
 style.addRule(".selected", "z-index:1;background:url(" + s_gif + ") no-repeat top left;");
 style.addRule("img", "position: relative;z-index:-1");
 style.addRule("a", "text-decoration:none;");
 style.addRule("a:hover", "text-decoration:none;")
 style.addRule(".disabledPaging", "cursor:default;color:#FFFFFF;background-color:#818181");
 style.addRule(".paging", "color:#000000;cursor:hand");
 m_pageLoaded = true;
 editLayoutButton.className = editLayoutButton.className.replace("disabled","");
 layoutManager.attachEvent("onlayoutchange",dirtyPage)
 if (bEdit) displayToolbar();
 }
 else // Not ready yet
 setTimeout("InitPage(" + bEdit + ")",200);
}
function BackupInit() { layoutManager.attachEvent("onlayoutchange",dirtyPage) }
window.attachEvent("onload",BackupInit);
var featuredThemeList = new Array();
var themeList = new Array();
var layoutList = new Array();
var contentList = new Array();
// Use associate array - a cheat to eliminate duplicates
var multiList = new Object();
themeList[0] = new Array("spaces1","默认模板","../blog/style1/style1.gif",0);
themeList[1] = new Array("spaces2","视觉风暴","../blog/style2/style2.gif",10);
themeList[2] = new Array("spaces3","春野之声","../blog/style3/style3.gif",10);
themeList[3] = new Array("spaces4","蓝色乐章","../blog/style4/style4.gif",10);
themeList[4] = new Array("spaces5","Mu人","../blog/style5/style5.gif",10);
themeList[5] = new Array("spaces6","蓝色天空","../blog/style6/style6.gif",10);
themeList[6] = new Array("spaces7","心心相印","../blog/style7/style7.gif",10);
themeList[7] = new Array("spaces8","黄色花香","../blog/style8/style8.gif",10);
themeList[8] = new Array("spaces9","星际之门","../blog/style9/style9.gif",10);
themeList[9] = new Array("spaces10","蓝色心情","../blog/style10/style10.gif",10);
themeList[10] = new Array("spaces11","黑色恐怖","../blog/style11/style11.gif",10);
themeList[11] = new Array("spaces12","粉红佳人","../blog/style12/style12.gif",10);
themeList[12] = new Array("spaces13","血染的风采","../blog/style13/style13.gif",10);
themeList[13] = new Array("spaces14","花瓣心雨","../blog/style14/style14.gif",10);
themeList[14] = new Array("spaces15","秋风落叶","../blog/style15/style15.gif",10);
themeList[15] = new Array("spaces16","MSN风格","../blog/style16/style16.gif",10);
themeList[16] = new Array("spaces17","可爱Pucca","../blog/style17/style17.gif",10); 
themeList[17] = new Array("spaces18","牧场物语","../blog/style18/style18.gif",10); 
themeList[18] = new Array("spaces19","飘雪之季","../blog/style19/style19.gif",10);  
themeList[19] = new Array("spaces20","圣诞主题","../blog/style20/style20.gif",10);  
themeList[20] = new Array("spaces21","圣诞白雪","../blog/style21/style21.gif",10);  
themeList[21] = new Array("spaces22","新年快乐","../blog/style22/style22.gif",10);  
themeList[22] = new Array("spaces23","咖啡女人","../blog/style23/style23.gif",10);  
themeList[23] = new Array("spaces24","咖啡男人","../blog/style24/style24.gif",10);  
themeList[24] = new Array("spaces25","两小无猜","../blog/style25/style25.gif",10);  
themeList[25] = new Array("spaces26","国画山水","../blog/style26/style26.gif",10);  
themeList[26] = new Array("spaces27","国画荷花","../blog/style27/style27.gif",10);  
themeList[27] = new Array("spaces28","情浓巧克力","../blog/style28/style28.gif",10);  
themeList[28] = new Array("spaces29","浪漫情人节","../blog/style29/style29.gif",10);  
themeList[29] = new Array("spaces30","新春佳节","../blog/style30/style30.gif",10);  
themeList[30] = new Array("spaces31","喜迎新春","../blog/style31/style31.gif",10);  
themeList[31] = new Array("spaces32","春的序曲","../blog/style32/style32.gif",10);  
themeList[32] = new Array("spaces33","春意盎然","../blog/style33/style33.gif",10);  
themeList[33] = new Array("spaces34","海洋世界","../blog/style34/style34.gif",10);  
themeList[34] = new Array("spaces35","海洋生物","../blog/style35/style35.gif",10);  
themeList[35] = new Array("spaces36","母亲节快乐","../blog/style36/style36.gif",10); 
themeList[36] = new Array("spaces37","醉酒迷情","../blog/style37/style37.gif",10); 
themeList[37] = new Array("spaces38","夏日风情","../blog/style38/style38.gif",10); 
themeList[38] = new Array("spaces39","中秋快乐","../blog/style39/style39.gif",10); 
themeList[39] = new Array("spaces40","中国心","../blog/style40/style40.gif",10); 
themeList[40] = new Array("spaces41","奥运北京","../blog/style41/style41.gif",10); 
themeList[41] = new Array("spaces42","欢庆劳动节","../blog/style42/style42.gif",10); 
themeList[42] = new Array("spaces43","端午节快乐","../blog/style43/style43.gif",10); 
themeList[43] = new Array("spaces44","众志成城","../blog/style44/style44.gif",10); 
themeList[44] = new Array("spaces45","DJ潮流","../blog/style45/style45.gif",10); 
themeList[45] = new Array("spaces46","我爱你中国","../blog/style46/style46.gif",10); 

//layoutList[0] = new Array("OneCol","一列","image/Layouts/layout0.gif");
//layoutList[1] = new Array("SymmetricTwoCol","两个对称列","image/Layouts/layout4.gif");
layoutList[0] = new Array("ClassicThreeCol","三列，中间宽","../blog/image/Layouts/layout3.gif");
layoutList[1] = new Array("ClassicTwoCol","两列，左窄","../blog/image/Layouts/layout1.gif");
layoutList[2] = new Array("BackwardsTwoCol","两列，右窄","../blog/image/Layouts/layout2.gif");
//layoutList[5] = new Array("RightHeavyThreeCol","三列，左边窄","image/Layouts/layout5.gif");
contentList["0"] = new Array("blogrecord","档案文件","您要共享的关于您的信息","False","Normal");
contentList["1"] = new Array("blogsingertopic","留言","别人对您的留言","False","FullRegionWidth");
contentList["2"] = new Array("blogspecial","专辑","您的专辑","False","FullRegionWidth");
contentList["3"] = new Array("bloglink","快捷链接","您的快捷链接","False","FullRegionWidth");
contentList["4"] = new Array("blogmusicbox","收藏夹","您的收藏夹","False","FullRegionWidth");
contentList["5"] = new Array("blogalbum","相册","可以与亲友共享的相册。","False","FullRegionWidth");
contentList["6"] = new Array("blogdiary","音乐日记","可以与亲友共享的相册。","False","FullRegionWidth");
contentList["7"] = new Array("blogsummary","个人简介","关于您自己的简介","False","FullRegionWidth");
contentList["8"] = new Array("blogsong","歌曲列表","可以与您的亲友共享的歌曲列表","False","FullRegionWidth");
contentList["9"] = new Array("blogobbligato","伴奏列表","可以与您的亲友共享的伴奏列表","False","Normal");
contentList["10"] = new Array("blogmidi","MIDI","可以与您的亲友共享的MIDI列表","False","Normal");
contentList["11"] = new Array("blogmtv","视频","可以与您的亲友共享的MTV列表","False","Normal");
contentList["12"] = new Array("blogflash","FLASH","可以与您的亲友共享的FLASH列表","False","Normal");
contentList["13"] = new Array("bloglist","友情链接","我的友情链接","False","FullRegionWidth");
contentList["14"] = new Array("blogcomment","最新评论","最新评论","False","FullRegionWidth");
contentList["15"] = new Array("radiodiary","播客","播客","False","FullRegionWidth");

function ProcessTheme(el) {
 if (el)
 {
 document.styleSheets.theme.href = m_styleurl + el.id;
 document.styleSheets.theme.title = el.id;
 dirtyPage();
 }
}
function ProcessLayout(el) {
 if (el)
 {
 layoutManager.setLayout(el.id);
 dirtyPage();
 }
}
function ProcessPart(el) {
 if (el) {
 dirtyPage();
 var target = document.getElementById(el.id);
 if (target!=null) {
 if (target.style.display == "")
 target.style.display = "none";
 else
 target.style.display = "";
 }
 else
 {
 var id = el.id;
 if (el.MultiInstance=="true")
 {
 id+=layoutManager.generateHash();
 contentList[contentList.length] = new Array(id,el.className,el.title);
 }
 layoutManager.generatePartTemplate(id,el.className,s_placeholder,el.Expansion);
 }
 }
}
//Util functions for generating popup contents
function CreateThemeList(themeCollection, cPage, ID, cThemeRows, cThemeColumns, bUsePlaceholders)
{
 var cThemesPerPage = cThemeColumns*cThemeRows;
 var sCurrent = document.styleSheets.theme.title;
 var iStartIndex = cThemesPerPage*(cPage-1);
 if((!iStartIndex) || (0 > iStartIndex) || (themeCollection.length <= iStartIndex))
 {
 iStartIndex = 0;
 }
 var elThemeContainer = PopupMenu.cpContext.document.createElement("div");
 elThemeContainer.id = ID;
 elThemeContainer.onclick = ValidateClick(ProcessTheme);
 //theme list
 for(var i = iStartIndex; ((i - iStartIndex) < cThemesPerPage) && (i < themeCollection.length); i++)
 {
 elThemeContainer.appendChild(CreateElementItem(themeCollection[i],sCurrent,60,60));
 if ((i - iStartIndex + 1) % cThemeColumns == 0)
 {
 elThemeContainer.appendChild(PopupMenu.cpContext.document.createElement("br"));
 }
 }
 if(((i - iStartIndex) < cThemesPerPage) && bUsePlaceholders){
 var elTemp;
 for(;((i - iStartIndex) < cThemesPerPage); i++){
 //placeholder for a theme.
 elTemp = PopupMenu.cpContext.document.createElement("span");
 elTemp.style.height = 60;
 elTemp.style.width = 60;
 elThemeContainer.appendChild(elTemp);
 if ((i - iStartIndex + 1) % cThemeColumns == 0)
 {
 elThemeContainer.appendChild(PopupMenu.cpContext.document.createElement("br"));
 }
 }
 }
 return elThemeContainer;
}
function ValidateClick(fnCallback)
{
 return function(){
 var el = this.document.parentWindow.event.srcElement.parentElement;
 if ( el && el.canselect == "true" && el.id != "")
 {
 fnCallback(el);
 }
 PopupMenu.hidePopup();
 }
}
function PageThemeList(cPage, cTotalPages)
{
 return function(){
 var elOldListNode = PopupMenu.cpContext.document.getElementById("themeContainer");
 var elLink;
 var elLinkContainer;
 if(elOldListNode){
 elOldListNode.replaceNode(CreateThemeList(themeList,cPage, "themeContainer", c_ThemeRows, c_ThemeColumns, true));
 }
 //update paging links
 for(var c = 1; c <= cTotalPages; c++){
 elLink = PopupMenu.cpContext.document.getElementById("PageLink_" + c);
 if(elLink){
 SetLinkProperties(c == cPage, elLink);
 }
 }
 //previous link
 elLink = PopupMenu.cpContext.document.getElementById("PageLink_p");
 elLinkContainer = PopupMenu.cpContext.document.getElementById("PageLinkContainer_p");
 if(elLink && elLinkContainer){
 SetImageLinkProperties("left", cPage == 1, elLinkContainer, elLink, PageThemeList(cPage-1, cTotalPages))
 }
 //next link
 elLink = PopupMenu.cpContext.document.getElementById("PageLink_n");
 elLinkContainer = PopupMenu.cpContext.document.getElementById("PageLinkContainer_n");
 if(elLink && elLinkContainer){
 SetImageLinkProperties("right", cPage == cTotalPages, elLinkContainer, elLink, PageThemeList(cPage+1, cTotalPages));
 }
 return false;
 }
}
function ReturnFalse(){
 return false;
}
function CreatePagingLinks(cPage, cTotalPages)
{
 var bDisabled;
 var onclick;
 var elSpace
 //table so we can vertically center
 var elContainer = PopupMenu.cpContext.document.createElement("table");
 elContainer.style.height = "29px";
 elContainer.style.marginLeft = "6px";
 var elRow = elContainer.insertRow();
 var elLinkContainer = elRow.insertCell();
 elLinkContainer.className = "bold";
 elLinkContainer.innerText = s_morethemes;
 elLinkContainer.valign = "center";
 elLinkContainer = elRow.insertCell();
 elLinkContainer.innerHTML = "&nbsp;&nbsp;";
 elLinkContainer = elRow.insertCell();
 elLinkContainer.id = "PageLinkContainer_p";
 bDisabled = (cPage == 1);
 elLinkContainer.appendChild(CreateImageLink("left", PageThemeList(cPage - 1, cTotalPages), "PageLink_p", bDisabled, elLinkContainer));
 elLinkContainer = elRow.insertCell();
 for(var c = 1; c <= cTotalPages; c++)
 {
 elSpace = PopupMenu.cpContext.document.createElement("span");
 elSpace.innerHTML = "&nbsp;";
 elLinkContainer.appendChild(elSpace);
 bDisabled = (c == cPage)
 elLinkContainer.appendChild(CreateLink(c, PageThemeList(c, cTotalPages), "PageLink_" + c, bDisabled));
 }
 elSpace = PopupMenu.cpContext.document.createElement("span");
 elSpace.innerHTML = "&nbsp;";
 elLinkContainer.appendChild(elSpace);
 elLinkContainer = elRow.insertCell();
 elLinkContainer.id = "PageLinkContainer_n";
 bDisabled = (cPage == cTotalPages)
 var elImage = CreateImageLink("right", PageThemeList(cPage + 1, cTotalPages), "PageLink_n", bDisabled, elLinkContainer)
 elLinkContainer.appendChild(elImage);
 return elContainer;
}
function CreateImageLink(type, OnClick, sID, bDisabled, elContainer){
 var elImg = PopupMenu.cpContext.document.createElement("img");
 elImg.id = sID;
 elImg.ondragstart = ReturnFalse;
 elImg.border = 0;
 elImg.width = 4;
 SetImageLinkProperties(type, bDisabled, elContainer, elImg, OnClick);
 return elImg;
}
function CreateLink(sText, OnClick, sID, bDisabled)
{
 var elSpan = PopupMenu.cpContext.document.createElement("span");
 var elLink = PopupMenu.cpContext.document.createElement("a");
 elLink.href = "#";
 elLink.tabIndex = -1;
 elLink.id = sID;
 elLink.ondragstart = ReturnFalse;
 elLink.saveonclickfunction = OnClick;
 elSpan.style.height = "14px";
 elSpan.style.width = "14px";
 elSpan.style.textAlign = "center";
 elSpan.innerText = sText;
 elSpan.className = "bold";
 elLink.appendChild(elSpan);
 SetLinkProperties(bDisabled, elLink);
 return elLink;
}
function SetImageLinkProperties(type, bDisabled, elLinkContainer, img, OnClick){
 if(bDisabled){
 if(type == "left"){
 img.src = "images/arrow_leftG.gif";
 }else{
 img.src = "images/arrow_rightG.gif";
 }
 img.height = 7;
 //set properties on table cell because they don't work for image or anchor tag
 elLinkContainer.onclick = ReturnFalse;
 elLinkContainer.style.cursor = "default";
 }else{
 img.height = 8;
 if(type == "left"){
 img.src = "images/arrow_left_black.gif";
 }else{
 img.src = "images/arrow_right_black.gif";
 }
 //set properties on table cell because they don't work for image or anchor tag
 elLinkContainer.onclick = OnClick;
 elLinkContainer.style.cursor = "hand";
 }
}
function SetLinkProperties(bDisabled, elLink, OnClick){
 if(bDisabled){
 elLink.onclick = ReturnFalse;
 elLink.className = "disabledPaging";
 }else{
 if(OnClick){
 elLink.onclick = OnClick;
 }else{
 elLink.onclick = elLink.saveonclickfunction;
 }
 elLink.className = "paging";
 }
}
function AddItem(aContent,sCurrent,w,h){return '<span canselect=true class="' + ((aContent[0]==sCurrent) ? 'selected' : '') + '" id="' + aContent[0] + '" style="cursor: hand;margin: 3px;"><IMG SRC="' + aContent[2] + '" ALT="' + aContent[1] + '" ONDRAGSTART="return false" WIDTH="' + w + '" HEIGHT="' + h + '"></span>';}
function GetSize(s,bScroll)
{
 // Dynamically calculate popup bounds based on contents
 var d = document.createElement("div");
 d.style.cssText = "position:absolute;top:-500;left:-500;z-index:-1;padding:3px;visibility:hidden";
 d.innerHTML = s;
 elTest = document.body.appendChild(d);
 var i_width = elTest.offsetWidth + (bScroll ? 20 : 0);//hard-code scroll width
 var i_height = elTest.offsetHeight;
 if (bScroll)
 i_height = Math.min(i_height,250);
 elTest.outerHTML = ""; // Wierd bug - must destroy and recreate each time
 elTest = d = null;
 return {width:i_width,height:i_height};
}
function CreateElementItem(aContent,sCurrent,w,h)
{
 var elSpan = PopupMenu.cpContext.document.createElement("span");
 if(aContent[0] == sCurrent){
 elSpan.className = "selected";
 }else{
 elSpan.className = "";
 }
 elSpan.canselect = "true";
 elSpan.id = aContent[0];
 elSpan.style.cursor = "hand";
 elSpan.style.marginRight = "6px";
 elImg = PopupMenu.cpContext.document.createElement("img");
 elImg.src = aContent[2];
 elImg.alt = aContent[1];
 elImg.ondragstart = ReturnFalse;
 elImg.width = w;
 elImg.height = h;
 elSpan.appendChild(elImg);
 return elSpan;
}
function AddTextItem(sDisplay,sContent, sEvent,sDesc,bMulti,sExpansion){
 var s = '<tr canselect=true Expansion="' + sExpansion + '" title="' + sDesc + '" id="' + sEvent + '" class="' + sContent + '" MultiInstance="' + bMulti + '" style="padding: 3px;cursor:hand"><td nowrap class="name bold">' + sContent + '</td><td nowrap class="remove">';
 if (sDisplay)
 s+=(("True" == bMulti) ? s_delete : s_remove);
 else
 s+= ((bMulti) ? s_addnew : s_add);
 return s+"</td></tr>";
}
window.onbeforeunload = doDirtyCheck;
