/* ***************************************************************** */
/*                                                                   */
/* IBM Confidential                                                  */
/*                                                                   */
/* OCO Source Materials                                              */
/*                                                                   */
/* Copyright IBM Corp. 2007, 2008                                    */
/*                                                                   */
/* The source code for this program is not published or otherwise    */
/* divested of its trade secrets, irrespective of what has been      */
/* deposited with the U.S. Copyright Office.                         */
/*                                                                   */
/* ***************************************************************** */

/* 5724-S31                                                          */
/* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */
/*                                                                   */
/*********************************************************************/


// QUICKR 8.1 THEME SUPPORT
var theme_name='quickr81';
var theme_imgLoc = '/qphtml/skins/quickr81/images/';


// CSS LOADER

function quickr81_preloadStyles()
{

	QuickrLocaleUtil.loadCssFiles("/qphtml/skins/quickr81", "Quickr81.css");
	
}


// SHOULD BE COMMON:

function _qp_isOkToAppend(newval, curval) {
	return (typeof(newval) != "undefined" && newval != "" && curval.indexOf(newval) == -1);
}
function _qp_hideIfTrue(id, yn) {
	if (yn) {
		var trg=dojo.byId(id);
		if (trg) {
			trg.style.display="none";
		}
	}
}
function _qp_showBreadcrumbs() {
	var frm=document.forms["h_PageUI"];
	if (frm && frm.h_SetEditCurrentScene && frm.h_SetEditCurrentScene.value) {
		if (frm.h_SetEditCurrentScene.value.indexOf("Animation") > -1) {
			return true;
		}
	}
	return false;
}

function twistAndCollapse(t,h)
{
	el=dojo.byId(h);
	if (el) {
		c=t.className;
		if (c.indexOf('lotusTwistyOpen')>=0) {
			el.style.display='none';
			t.title=t.title.replace(/collapse/,'expand');
			return c.replace(/Open/,'Closed');
		}
		else {
			el.style.display='block';
			t.title=t.title.replace(/expand/,'collapse');
			return c.replace(/Closed/,'Open');
		}
	}
}

function clearForm(id) 
{
	var els=dojo.byId(id).getElementsByTagName("input");
	var el;
	for (i=0; el=els.item(i); i++) {
		var type=el.getAttribute('type');
		if (type=="text" || type=="password") {
			el.value="";
		}
	}
}


// ACTIONS MENU

function theme_addActionMenuItems(menu,id,container,icon)
{
	var el=qp_getElementsByClassName(id,"a",container);

	var menuR = new QP_ContextMenu("actions_R");

	for (var i=0; i<el.length; i++) {
		// HACKS: this works fine, but should separate scene actions into subcategories to avoid this!
		if (el[i].href.indexOf("h_PageType;h_Response") > -1 || el[i].href.indexOf("h_PageType;h_Revision") > -1) {
			menuR.addItem(el[i].innerHTML,el[i].href,"_self",null,(icon || GetActionIcon(el[i].innerHTML)),el[i].innerHTML);
		}
		else if (el[i].href.indexOf("confirmCopy") > -1) {
			menu.addSeparator();
		}
		menu.addItem(el[i].innerHTML,el[i].href,"_self",null,(icon || GetActionIcon(el[i].innerHTML)),el[i].innerHTML);
	}
				 
	if (menuR.items.length > 0) {
		 // Add the "Respond" submenu
		 menuR.write();
		 menu.addSubmenu("Ответить", "#", "_self", null, "", null, "actions_R");
		 menu.addSeparator();
	}
	return i;
}

function theme_makeActionsMenu(pageType)
{
	if (dojo.byId("moreActions"))
	{
		var menu = new QP_ContextMenu("actions");
		if (!menu.exists)
		{
			var nI=0;
			var actions=dojo.byId("actions");

			// Allow member mgmt only if Manager or above and not offline
			var bAllowMM=(pageType=="listfolder.htm" && fieldNames.h_SetReadScene=='h_MembersView'
							 && currentUserAccess>=6 && !drF_isOffline());

			if ( Quickr81SupportUtil.isBlogPlace() ) {
				if (typeof(h_SetReadScene) == "undefined" || h_SetReadScene != "h_MembersView") {
					/****************
					* if this is a blog place and not the members page, loop through all the actions and remove
					* any action that isn't "Delete".
					****************/
					var el=qp_getElementsByClassName("sceneAction","a",actions);
					for (var i = el.length - 1; i >= 0; i--) {
						var sHREF = el[i].getAttribute("href");
						if (sHREF) {
							if (typeof(c_Form)!="undefined") {
								var bRemove = (c_Form == "QPreference");
								
								if (!bRemove) {
									if (c_Form == "BlogEntry" && (sHREF.indexOf(":confirmDelete") > -1 || sHREF.indexOf(":DM.folder.remove") > -1)) {
										el[i].setAttribute("href", "javascript:deleteBlogEntry();");
									} else {
										bRemove = true;
									}	
								}
								
								if (bRemove) el[i].parentNode.removeChild(el[i]);
								
							}
						}
					}

					for (var i = 0; i < document.links.length; i++) {
						var sHREF = document.links[i].href;
						
						if( sHREF.indexOf("&Form=h_Atom") > -1 ) {
							document.links[i].href = QuickrGeneralUtil.getBaseUrl() + "/stories.rss?OpenPage";
						}
					}
				}

			} else {
				nI += theme_addActionMenuItems(menu,"roomAction",actions);
			}

			if (bAllowMM) {
				menu.addItem(QuickrLocaleUtil.getStringResource("MEMBERS.MOREACTIONS.DELETE"),"javascript:MM.remove.showDialog();","_self",null,GetActionIcon("Удалить"));
				menu.addItem(QuickrLocaleUtil.getStringResource("MEMBERS.MOREACTIONS.CHANGEROLE"),"javascript:MM.change.showDialog();");
				nI += 2;
			}

			if (nI>0) {
				menu.addSeparator();
				nI=0;
			}
			
			if (bAllowMM) {
				menu.addItem(QuickrLocaleUtil.getStringResource("MEMBERS.MOREACTIONS.GRANT"),"javascript:MM.anonDef.showDialog();");
				nI++;
			}

			nI += theme_addActionMenuItems(menu,"sceneAction", actions);
			menu.addSeparator();
			nI=0;

			nI += theme_addActionMenuItems(menu,"folderAction",actions);
			nI += theme_addActionMenuItems(menu,"download",actions,"/qphtml/html/common/download.gif");

			if (nI>0) {
				menu.addSeparator();
			}

			// Set Access:
			if (pageType=="page.htm" &&
				(typeof(isEditablePage) != "undefined" && isEditablePage) &&
				(typeof(validForm) != "undefined" && validForm) &&
				(typeof(szDeliveredDate)=="undefined" || szDeliveredDate == "")) {

				var menuSA = new QP_ContextMenu("actions_SA");
				 
				if (h_DraftVersionUNID=="") {
					// no draft version, so populate the edit accordingly
					menuSA.addItem("Ограничение круга читателей",
										  "javascript:setDocPermissions('Reader',"+(h_IsInToc=="1")+",'" + h_PageUnid + "','" + h_PublishedVersionUNID + "')");
					  
					//SPR #QDAI74CAMP - There is an issue allowing authors to add other authors through the context menu
					menuSA.addItem("Добавление авторов",
										(currentUserAccess > 3
										 ? "javascript:setDocPermissions('Author',"+(h_IsInToc=="1")+",'" + h_PageUnid + "','" + h_PublishedVersionUNID + "')"
										 : ""));
				}
				else {
					//there is a draft version, so populate the edit with a link to the draft version
					menuSA.addItem("Ограничение круга читателей", "");
					menuSA.addItem("Добавление авторов", "");
				}
				 
				if (menuSA.items.length > 0) {
					// Add the "Respond" submenu
					menuSA.write();
					menu.addSeparator();
					menu.addSubmenu("Настроить доступ", "#", "_self", null, "", null, "actions_SA");
				}
			}					
			
			menu.addSeparator();
			if ((Quickr81SupportUtil.isBlogPlace() && typeof(c_Form)!="undefined" && c_Form == "QPreference") || (typeof(h_Type) != "undefined" && h_Type=="1")) {
				theme_addActionMenuItems(menu,"folderAtomFeed",actions,theme_imgLoc+"feed_18.gif");
			}
			theme_addActionMenuItems(menu,"notify",actions,theme_imgLoc+"notify_icon.gif");
			theme_addActionMenuItems(menu,"print",actions,theme_imgLoc+"print_icon.gif");

			// Write the menu's HTML
			menu.write();
		}
	}
}

function theme_showMoreActions(e)
{
	var ab=dojo.byId("moreActions");
	if (ab) {
		var pb=findPos(ab);
		var am=dojo.byId("actions_Menu");
		var pm=findPos(am);
		var amTop=(pb[1]+ab.offsetHeight+1);
		if (document.all) {
			// IE: if there is an Upload (Active X) control on the page, shift the menu up
			// to avoid it because an Active X control is always on the top layer.
			var uc=dojo.byId("UploadControl");
			if (uc) {
 				var amBot=amTop+am.offsetHeight;
				var ucTop=findPos(uc)[1];
				if (amBot>ucTop) {
					amTop -= (amBot-ucTop);
				}
			}
		}
		QP_ContextMenu_show("actions",true,pb[0]+1, amTop);
	}
	e.preventDefault();
}

// BREADCRUMB

function theme_writeCrumbSuffix() {
	var bc = dojo.byId("crumb");
	var bc_suffix = dojo.byId("crumb_suffix");

	var s="";
	if (bc && bc_suffix) {
		if (_qp_isOkToAppend(currentRoom.roomTitle, bc.innerHTML) ) {
			s=currentRoom.roomTitle;
		}
		//SPR #XCDL7AZE6E: h_Name is undefined
		//else if (_qp_isOkToAppend(h_Name , bc.innerHTML) ) {
		//	s=h_Name;
		//}
	}

	if (bc && s.length > 0) {
		bc_suffix.innerHTML=">"+s
	}
}

// FOLDER NAVIGATOR

var szShowFNav='<img border="0" src="/qphtml/html/common/folder.png" alt="Щелкните, чтобы показать папки"/>&nbsp;&nbsp;Показать навигатор папки';
var szHideFNav='<img border="0" src="/qphtml/html/common/hiddenfolder.png" alt="Щелкните, чтобы скрыть папки"/>&nbsp;&nbsp;Скрыть навигатор по папкам';
var bFNavShown=false;

function theme_showHideFNav()
{
	var fNav=dojo.byId("toc");
	var fNavA=dojo.byId("fNavA");

	if (bFNavShown) {
		if (fNav != null) {
			fNav.style.display="none";
		}
		if (fNavA != null) {
			fNavA.innerHTML=szShowFNav;
		}
	} else {
		if (fNav != null) {
			fNav.style.display="inline";
		}
		if (fNavA != null) {
			fNavA.innerHTML=szHideFNav;
		}
	}
	bFNavShown = !bFNavShown;
}

function quickr81_initFNavBtn()
{
	var fNavA=dojo.byId("fNavA");
	if (fNavA) {
		var fS = getFolderStyle();
		if (fS=="5" || fS=="h_Index" || fS=="7" || fS=="1") {
			fNavA.style.display="inline";
			fNavA.innerHTML=szShowFNav;
		}
	}
}

/*supporting util to show quickr stuff*/
Quickr81SupportUtil = {

	currentPageType: "listfolder.htm",
	bNewUsersAllowed: 1,

	init: function()
	{
		//override the css stuff for the OneUI
		quickr81_preloadStyles();
		
		Quickr81SupportUtil.loadBlogScripts();


		//load an external js file
		QuickrGeneralUtil.loadSupplementalScript("/qphtml/skins/quickr81/scripts/Quickr81_ext.js");
		
		
		
		
		if (typeof(dojo) !="undefined") {
			dojo.addOnLoad(function(){
				//init the locale stuff
				QuickrLocaleUtil.loadStringFiles("quickr81", "/qphtml/skins/quickr81", "Quickr81Strings");
				
				//load blog stuff if it is blog place
				Quickr81SupportUtil.loadBlogInfo();
				
				QuickrGeneralUtil.hideClassesIfTrue("ConnectorSection", !h_ClientBrowser.isPlatformWin() );
				
				Quickr81SupportUtil.massageUi();
				
				QuickrSetupUtil.adjustPrefilledTextBox("searchtext");
			});
		}
	},
	
	isBlogPlace: function () {
		var ret = false;
		
		if (!ret) ret = ( typeof(window.G_PlaceType) != "undefined" && window.G_PlaceType.toLowerCase() == "blog" );
		if (!ret) ret = ( typeof(window.c_BlogDate) != "undefined" );
		if (!ret) ret = this.isBlogPage();
		
		return ret;
	
	},
	
	isWikiPlace: function () {
		var ret = false;
		
		if (!ret) ret = ( typeof(window.G_PlaceType) != "undefined" && window.G_PlaceType.toLowerCase() == "wiki" );
		
		return ret;
	
	},	
	
	isBlogPage: function () {
		return ( typeof(window.c_Form) != "undefined" && (window.c_Form.toLowerCase() == "qpreference" || window.c_Form.toLowerCase() == "blogentry") );

	},
	
	loadBlogScripts: function() {
		if ( Quickr81SupportUtil.isBlogPlace() ) {
			//load the necessary JS Files
			var head = document.getElementsByTagName("head");
			if (head && head[0]) {

				var oLinkObj = document.createElement("link");
				oLinkObj.setAttribute("href", "/qphtml/html/templatecommon/QBlog.css");
				oLinkObj.setAttribute("type", "text/css");
				oLinkObj.setAttribute("rel", "stylesheet");

				var oJSStringsObj = document.createElement("script");
				oJSStringsObj.setAttribute("src", "/qphtml/html/templatecommon/qp_strings.js");
				oJSStringsObj.setAttribute("type", "text/javascript");

				var oJSAjaxObj = document.createElement("script");
				oJSAjaxObj.setAttribute("src", "/qphtml/html/templatecommon/qp_ajax.js");
				oJSAjaxObj.setAttribute("type", "text/javascript");

				var oJSPLObj = document.createElement("script");
				oJSPLObj.setAttribute("src", "/qphtml/html/templatecommon/qp_blog_pagelayout.js");
				oJSPLObj.setAttribute("type", "text/javascript");

				var oHeadLoc = head[0];
				oHeadLoc.appendChild(oLinkObj);
				oHeadLoc.appendChild(oJSStringsObj);
				oHeadLoc.appendChild(oJSAjaxObj);
				oHeadLoc.appendChild(oJSPLObj);			
			}
		}
	},
	
	loadBlogInfo: function () {

		if ( Quickr81SupportUtil.isBlogPlace() ) {
			
			//load the necessary JS Files
			var head = document.getElementsByTagName("head");
			if (head && head[0]) {

				var elImg;
				
				elImg = document.createElement("img");
				elImg.id = "icn_page_link"
				elImg.src = "/qphtml/html/common/images/page_link.png";
				elImg.style.display = "none";
				document.body.appendChild(elImg);
				
				elImg = document.createElement("img");
				elImg.id = "icn_email"
				elImg.src = "/qphtml/html/common/images/email.png";
				elImg.style.display = "none";
				document.body.appendChild(elImg);
				
				elImg = document.createElement("img");
				elImg.id = "icn_printer"
				elImg.src = "/qphtml/html/common/images/printer.png";
				elImg.style.display = "none";
				document.body.appendChild(elImg);
			
				var elCrumb = dojo.byId("crumb");
				if (elCrumb) {
					elCrumb.style.display = "none";
				}
				
				if ( Quickr81SupportUtil.isBlogPage() ) {
					var elHeader = qp_getElementsByClassName("lotusHeader","div",document.body);				
					if (elHeader && elHeader[0]) {
						elHeader[0].style.display = "none";
					}
				}
				
				//remove the advanced search link
				for (var i = document.links.length-1; i >= 0; i--) {
					var lnk = document.links[i];
					if (lnk.href == "javascript:AdvSearchFormSubmit()") {
						lnk.parentNode.removeChild(lnk);
					}
				}
				
				
			}
			
			if ( h_isBeingEdited ) {
				if (typeof(initPrefEdit) != "undefined") {
					initPrefEdit();
				}
			} else {
				if (typeof(initPrefRead) != "undefined") {
					initPrefRead();
				}
			}			
		}
	},

	massageUi: function ()
	{
		try {
			//clean up the body tag
			document.body.removeAttribute("class");
			
			// show/hide stuff if (not) offline
			if (typeof(h_InstallType)!="undefined" && h_InstallType == "2") {
				this.massageOffline();
			}
			
			//fix the imgs with the align attribute to wrap correctly in IE
			if (h_CurrentSkinType == "h_Page" && h_ClientBrowser && h_ClientBrowser.isIE() ) {
				var elRT = getElementsByClassName("richTextContainer", "*", document.body);
				if (elRT && elRT.length > 0) {
					var elImgs = elRT[0].getElementsByTagName("img");
					for (var ii = 0; ii < elImgs.length; ii++) {
						var attAlign = elImgs[ii].getAttribute("align").toLowerCase();
						if (attAlign == "right" || attAlign == "left") {
							elImgs[ii].setAttribute("style","float:" + attAlign);
							elImgs[ii].style.styleFloat = attAlign;							
						}
					}					
				}
			}
			
			switch (h_SystemName) {
				case "h_Welcome":
				case "h_RoomInstructions":
				case "h_PageLibraryInstructions":
				case "h_TeamGoals":
				case "h_TeamTasks":
				case "h_Accessories":

					if (document.body.dir == 'rtl') {

						elImgs = document.images;
						if (elImgs && elImgs.length > 0) {
							for (var ii = 0; ii < elImgs.length; ii++) {
								if (elImgs[ii].src && elImgs[ii].src.indexOf("silverbullet.gif") > -1) {
									if (elImgs[ii].src.indexOf("/") == 0) {
										elImgs[ii].src = ximg.src.replace(/silverbullet.gif/,"silverbullet_rtl.gif");
									} else {
										elImgs[ii].src = "/qphtml/html/common/silverbullet_rtl.gif";
									}
								}
							}
						}
					}

					break;

			}
			
			//if we are in animation, don't show the title...
			var elHeader = dojo.byId("lotusMainHeader");
			if (elHeader && h_SetEditNextScene != "h_StdPageAnimation") {
				elHeader.style.display = "block";
			}			

			theme_makeActionsMenu(this.currentPageType);

			var nI=0;
			var m2ul=dojo.byId("menu2ul");
			var m2items=dojo.byId("menu2items");
			if (m2ul && m2items) {
				var el=qp_getElementsByClassName("item", "ul", m2items);
				for (var i=0; i < el.length; i++) {
					 m2ul.innerHTML += el[i].innerHTML;
					 nI++;
				}
				if (nI>0) {
					 var m2=dojo.byId("menu2");
					 if (m2)
							m2.style.display="block";
				}
			}

			var ab=dojo.byId("moreActions");
			if (ab) {
				dojo.event.connect(ab, "onclick", "theme_showMoreActions");
			}

			if (this.currentPageType == "listfolder.htm") {
				// SPR #XHKG7BG9LD
				var tags = getElementsByClassName("lotusFirst", "*", document.body);
				for(var i = 0; i < tags.length; i++) {
					QP_ContextMenu_attachMenus(tags[i]);
				}
				switch (fieldNames.h_SetReadScene) {
				case "h_MembersView":
					MM.init();
					// Fix SPR #AGAI7AXQGH "TAP: Local Users can be created when New Users Disallowed"
					if (!this.bNewUsersAllowed) {
						var btn = dojo.byId("createMembersBtn");
						if (btn) {
							btn.style.display = "none";
						}
					}
					FM.view.reqData(); // load the initial view
					break;
				case "h_StdFolderRead":
				case "h_AbstractsFolderRead":
					quickr81_initFNavBtn();
					FM.view.init();
					FM.view.displayView();
					break;
				case "h_GanttView":
				case "h_TaskList":
					FV.tasks.init();
					// show paging skin components
					this.useSkinComponent("itemsPerPage");
					this.useSkinComponent("pgButtons");
					break;
				case "h_CalendarRead":
					FV.calendar.init();
					break;
				case "h_StdPageRead":
					// e.g., What's New
					if (fieldNames.h_SetEditScene=="h_SearchResults") {
						// search results: show paging buttons & hide itemsPerPage i.e. 10, 20, 30...
						dojo.byId("pageNavBar").style.display="block";
						dojo.byId("itemsPerPage").style.display="none";
						this.useSkinComponent("pgButtons");
					} else {
						QuickrGeneralUtil.hideClassesIfTrue("lotusPaging",true,true);
					}
					break;
				case "h_SearchPlacesResults":
					// results from Search All Places
					this.massagePgBtns();
					break;
				default:
					break;
				}
			}
			else if (this.currentPageType == "edit.htm") {
				var btnConts=qp_getElementsByClassName("lotusBtnContainer","div");
				for (var i=0; i<btnConts.length; i++) {
					var btns=qp_getElementsByClassName("lotusBtn","span",btnConts[i]);
					if (btns.length<1) {
						btnConts[i].style.display="none";
					}
				}
				
				//SPR #TCHU7CAAAU - Remove items from customize for blogs and wikis
				if ( Quickr81SupportUtil.isBlogPlace() || Quickr81SupportUtil.isWikiPlace() ) {
					if (h_SetEditScene && h_SetEditScene == "h_TailorRoomEdit") {
						var aFields;
						var aRemove = new Array();
						
						if ( Quickr81SupportUtil.isBlogPlace() ) {
							aFields	= new Array(
								"h_GetSearch",
								"h_GetTasks",
								"h_GetIndex",
								"h_GetSecurity",
								"h_GetWhatsNew",
								"h_GetNewsDefault",
								"h_GetOffline"
							);
							
							
							var fld;
							
							fld = theForm["h_OfflineEncryptLevelMenu"];							
							if (fld) aRemove[aRemove.length] = fld.parentNode.parentNode.parentNode;
							
							fld = theForm["h_GetOfflineLoginPasswords"];
							if (fld) aRemove[aRemove.length] = fld.parentNode.parentNode;
							
							
						} else
						if ( Quickr81SupportUtil.isWikiPlace() ) {
							aFields	= new Array(
								"h_GetTasks",
								"h_GetIndex",
								"h_GetSecurity",
								"h_GetWhatsNew",
								"h_GetNewsDefault"
							);
						}
						
						
						
						for (var i = 0; i < aFields.length; i++) {
							var fld = theForm[aFields[i]];
							if (fld) {
								if (fld.length && fld.length > 0) {
									for (var j = 0; j < fld.length; j++) {
										if (fld[j].type == "radio") {
											aRemove[aRemove.length] = fld[j];
										}
									}
								}
								if (fld.type == "checkbox") {
									aRemove[aRemove.length] = fld;
								}
							}
						}
						
												
						for (var i = 0; i < aRemove.length; i++) {
							aRemove[i].parentNode.style.display = "none";
						}
					}				
				}
			}
			else if (this.currentPageType == "page.htm") {
			}
			
			// fix page title
			var pNode = document.getElementById('pageTitlePlaces');
			QuickrSetupUtil.fixPageTitle(pNode, 'PAGE.PLACES');
	
			this.showMainFrame();
		}
		catch (e) {
			this.showMainFrame();
		}
	},

	goTo: function(hUrl) {
		location.href=getAbsoluteServerRootURL(self)+hUrl;
	},

	useSkinComponent: function(id) {
		var el=dojo.byId(id);
		var sc=dojo.byId(id+"_SC");
		if (el && sc) {
			el.style.display="none";
			sc.style.display="block";
		}
	},

	massagePgBtn: function(url,which) {
		if (url != "") {
			FM.view.toggleBtn("pgBtn_"+which,true,"javascript:Quickr81SupportUtil.goTo('"+url+"');");
		} else {
			FM.view.toggleBtn("pgBtn_"+which,false,"");
		}
	},

	massagePgBtns: function() {
		this.massagePgBtn(h_FirstPageURL,"f");
		this.massagePgBtn(h_PreviousPageURL,"p");
		this.massagePgBtn(h_NextPageURL,"n");
		this.massagePgBtn(h_LastPageURL,"l");
		dojo.byId("pageNavBar").style.display="block";
	},

	massageOffline: function() {
		if (!drF_isOffline()) {
			// show stuff if online
			dojo.byId("PlacesOrFiles").style.display="block";
		}
	},
 
	showMainFrame: function() {
		// outermost tag in body
		var frame = dojo.byId("lotusFrame");
		if (frame) {
			frame.style.display = "block";
		}	
	}
}

