/*********************************************************************/
/*                                                                   */
/* IBM Confidential                                                  */
/*                                                                   */
/* OCO Source Materials                                              */
/*                                                                   */
/* Copyright IBM Corp. 2005, 2007                                    */
/*                                                                   */
/* 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.                         */
/*                                                                   */
/*********************************************************************/

//-------------------------------------------------------------
//  Quickplace common folder display functions
//-------------------------------------------------------------

var h_F_ExpansionParms			= new Array("&ExpandView","&CollapseView","&Expand=","&Collapse=");

var h_F_STATE_EXPANDED			= 0;
var h_F_STATE_COLLAPSED			= 1;
var h_F_STATE_NEXPANDED			= 2;
var h_F_STATE_NCOLLAPSED		= 3;

var h_F_ExpansionState			= h_F_STATE_EXPANDED;	// Default
var h_F_DocNumSelected			= "";	// E.g., "3.3.1"
var h_F_ShowHideResponsesURL	= "";
var h_F_NoExpandCollapseURL	= "";	// No Expand or Collapse param

// Set vars indicating whether folder contents are expanded or collapsed,
// and at which document number, if any.
function FolderSetExpansionState()
{
	var loc = location.href;
	var arg = "";
	var l=m=n=-1;

	// Get which parm if any, and parm's length
	h_F_ExpansionState = h_F_STATE_EXPANDED;
	for (var i=0; i<h_F_ExpansionParms.length; i++) {
		 if ((m=loc.indexOf(h_F_ExpansionParms[i])) != -1) {
			  l=h_F_ExpansionParms[i].length;
			  h_F_ExpansionState = i;
			  break;
		 }
	}
	n = m+l;

	if (h_F_ExpansionState == h_F_STATE_NEXPANDED ||
		 h_F_ExpansionState == h_F_STATE_NCOLLAPSED) {
		// Currently showing SOME responses:
		// skip num arg
		for (var c=''; n<loc.length; n++) {
			if (((c=loc.charAt(n))<'0' || c>'9') && c!='.')
				break;
			else
				arg += c;
		}
		// strip &Expand=a.b.c from URL and add &CollapseView
		h_F_ShowHideResponsesURL = loc.substring(0, m) + loc.substring(n) + h_F_ExpansionParms[h_F_STATE_COLLAPSED];
		h_F_NoExpandCollapseURL = loc.substring(0, m) + loc.substring(n);
	}
	else if (h_F_ExpansionState == h_F_STATE_COLLAPSED) {
		// currently hiding ALL responses strip &CollapseView from URL
		h_F_ShowHideResponsesURL = loc.substring(0, m) + loc.substring(n);
		h_F_NoExpandCollapseURL = loc.substring(0, m) + loc.substring(n);
	}
	else {
		// currently showing ALL responses
		h_F_ShowHideResponsesURL = loc + h_F_ExpansionParms[h_F_STATE_COLLAPSED];
		h_F_NoExpandCollapseURL = loc;
	}

	h_F_DocNumSelected = arg;
}


//------------------------------------------------------------------------------------
// GENERATE INDENTS AND EXPAND/COLLAPSE THREADS IN FOLDER

// # of Doc children on level [i]
var aChOnLev = new Array(0,0);

// Indent & Expand image tags
var fIndentImgTag = '<img style="width:18px;height:18px;vertical-align:middle;'
	+ '" src="/qphtml/html/common/treenode_%s.gif"/>';
var fIndentImgTagBg = '<img style="width:18px;height:18px;vertical-align:middle;'
	+ 'background-image:url(/qphtml/html/common/treenode_grid_%g.gif);'
	+ '" src="/qphtml/html/common/treenode_%s.gif"/>';
var fTwistyImgTag = '<img style="width:18px;height:18px;vertical-align:middle;'
	+ 'background-image:url(/qphtml/html/common/treenode_grid_%g.gif);'
	+ '" src="/qphtml/html/common/treenode_expand_%s.gif"'
	+ ' onmouseover="this.style.cursor=\'default\';"'
	+ ' onclick="javascript:fDoTwist(\'%n\',%b);"/>';

function fIndentImg(src, bg)
{
	return (bg ? fIndentImgTagBg.replace(/%s/,src).replace(/%g/,bg) : fIndentImgTag.replace(/%s/,src));
}

function fTwistyImg(bExp, bg, num)
{
	var pm = (bExp?'plus':'minus');
	return fTwistyImgTag.replace(/%s/,pm).replace(/%n/,num).replace(/%b/,bExp).replace(/%g/,bg);
}

function fDoTwist(num, bExp)
{
	location.href = h_F_NoExpandCollapseURL
		+ h_F_ExpansionParms[bExp ? h_F_STATE_NEXPANDED : h_F_STATE_NCOLLAPSED]
		+ num;
}

function GenerateResponseIndent(lev, num, nC, hasP)
{ 
	var html = "";

	// record #children at this level
	aChOnLev[lev] = nC;

	if (lev > 1) {
		// One child down
		aChOnLev[lev-1]--;

		// write preceeding blanks
		html += fIndentImg('blank');
		for (var i=2; i < lev; i++) {
			if (aChOnLev[i-1] > 0)
				html += fIndentImg('blank', 'v');
			else
				html += fIndentImg('blank');
		}
	}

	if (nC > 0) {
		// doc has child(ren)

		// Select "+" or "-" for twisty
		var bExp = false;
		switch (h_F_ExpansionState)
		{
		case h_F_STATE_NEXPANDED:
			if (num != h_F_DocNumSelected &&
				 num != h_F_DocNumSelected.substr(0,num.length))
				 bExp = true;
			break;
		case h_F_STATE_NCOLLAPSED:
			if (num == h_F_DocNumSelected ||
				 num != h_F_DocNumSelected.substr(0,num.length))
				 bExp = true;
			break;
		case h_F_STATE_COLLAPSED:
			bExp = true;
			break;
		default:
			 ;
		}

		if (lev > 1)
			html += fTwistyImg(bExp, (aChOnLev[lev-1]>0 ? 't' : 'l'), num);
		else
			html += fTwistyImg(bExp, 'x', num);
	}
	else if (lev > 1) {
		// no children
		html += fIndentImg('blank', (aChOnLev[lev-1]>0 ? 't' : 'l'));
	}
	return html;
};


//------------------------------------------------------------------------------------
//
var aColInfo = new Array();
var iCol = 0;
var lastEdDN = authorDN = "";

function InitFolderColInfo(authDN, edDN)
{
	authorDN = authDN;
	lastEdDN = edDN;
	iCol = 0;
}

function FolderColInfo(item,val)
{
	this.item = item;
	this.val = val;
}

function AddFolderColInfo(item,val)
{
	if (item != "") {
		aColInfo[iCol] = new FolderColInfo(item,val);
		iCol++;
	}
}

function MakeFolderListViewItem(chkbx,type,name,unid,aName,form,hasP,nC,lev,revNum,docNum,attName,attSize,isLocked,auth)
{
	var html="";

	// Don't allow dragging of folders
	if (type != "1") {
		html += QP_DragAndDrop_sourceBegin("tbody", unid, nC, lev);
	}
	else {
		// Terminate preceeding drag source so it doesn't include this folder
		html += QP_DragAndDrop_sourceEnd("tbody");
	}
		 
	var imgSrc=' src="/qphtml/html/common/transparent.gif" ';
	if (isLocked=="1") {
		imgSrc=' title="'+auth+'" alt="'+auth+'" src="/qphtml/html/common/check_out_you.gif" ';
	}

	html += '<tr class="h-folderItem-bg" valign=top>'

		// Checkbox
		+ '<td class="h-folderItem-text" width="10" valign="top">' + chkbx + '</td>'

		// Locked icon
		+ '<td class="h-folderItem-text" style="text-align:center;">'
		+ '<img '+imgSrc+' height="12" width="12"/>'
		+ '</td>'

		// Icon
		+ '<td class="h-folderItem-text" valign="top">'
		+	GetDocTypeIconImgTag(type,form)
		+ '</td>'

		// Response indent(s), doc name, rev#
		+ '<td class="h-folderItem-text" valign="top">'
		+ GenerateResponseIndent(lev,docNum,nC,hasP)
		+ (typeof(aName) != "undefined" ? GenerateQPObjURLAnchor(type,aName,name) : name)
		+	((revNum && revNum != "") ? '&nbsp;(' + GenerateRevisionText(revNum) + ')': '')
		+ '</td>'
	;

	// Other (optional/custom) columns:
	for (var i=0; i<aColInfo.length; i++) {
		if (aColInfo[i].item == "h_AttachmentNames" && attName != "") {
			// Special case for attachments
			html += '<td class="h-folderItem-text download" valign="top">'
				 + GenerateAttachmentsAnchor(unid,attName,attSize,form);
				 + '</td>';
		}
		else {
			html += '<td class="h-folderItem-text" valign="top">'
				 + DisplayFolderColInfo(aColInfo[i].item, aColInfo[i].val)
				 + '</td>';
		}
	}

	html += '</tr>';

	return html;
}

//------------------------------------------------------------------------------------
// 
function DisplayFolderColInfo (item, val, aTag)
{ 
	var html = "";

	if (item == "h_Author")
	{
		html = GetMemberProfileName(authorDN,val);
	}
	else if (item == "h_LastEditorDisplayName")
	{
		html = GetMemberProfileName(lastEdDN,val);
	}
	else if (item == "h_DisplayModified" ||  item == "h_Created") 
	{
		var iSpace = val.indexOf (' ');
		if (iSpace != -1)
			html = val.substring(0, iSpace);
		else
			html = val;
	}
	else
	{
		html = (typeof(aTag) != "undefined") ? GenerateQPObjURLAnchor("0",aTag,val) : val;
	}
 
	return html;
};


//------------------------------------------------------------------------------------
// 
var aPlaces = new Array();

function DisplayMyPlacesBegin()
{
	document.write('<table width="100%"><tbody>');
}

function DisplayMyPlacesEnd()
{
	document.write('</tbody></table>');
}


function DisplayMyPlacesEntry(url,name,title,desc,size,accDate,modDate,isLocked)
{
	var target = (G_bOpenPlacesInNewWindow ? ' target="_blank"' : '');

	// Removetime of day from dates
	aDate = accDate;
	mDate = modDate;
	var iSpace = accDate.indexOf (' ');
	if (iSpace != -1)
		aDate = (accDate.substring (0, iSpace));
	iSpace = modDate.indexOf (' ');
	if (iSpace != -1)
		mDate = (modDate.substring (0, iSpace));

	var html= '<tr><td valign="top" width="100%">'
	+ '<div class="entry" onmouseout="this.style.background=\'#fff\';this.style.cursor=\'default\';" onmouseover="this.style.background=\'#eaf2fe\';this.style.cursor=\'hand\';" style="background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">'
	+ '  <span>'
	+ '   <a href="'+url+name+'"'+target+'>'
	+      title
	+ '    <div class="entryDetails">'
	+ '     <p>'+desc+'</p>'
	+ '    </div>'
	+ '   </a>'
	+ '  </span>'
	+ '  <div class="entryDetails">'
	+ '   <span class="outer">'
	+ '    <span class="person">'
	+ '     Last Accessed on&nbsp;'
	+ '    </span>'
	+ '    <span class="vcard" id="owner">'
	+ '     <span class="fn">'
	+        aDate
	+ '     </span>'
	+ '    </span>'
	+ '   </div>'
	+ ' </div>'
	+ '</td></tr>';

	document.write(html);
}

var nRow=0;
//------------------------------------------------------------------------------------
//
function DisplayAbstractViewEntry(chkbx,type,name,unid,aName,auth,authDN,crDate,lastEd,lastEdDN,modDate,szAbstract,form,hasP,nC,lev,revNum,attName,attSize,isLocked)
{
	nRow++;

	//TODO - Localize these strings...
	var m_UPDATETEXT = "Updated by ";
	var m_DATETIMEPROCESS = " on {0} {1}"; //{0} is the date, {1} is the time
	var m_DATEPROCESS = " on {0}"; //{0} is the date/time

	//format the dates appropriately
	var cDate = crDate;
	var mDate = modDate;

	var arr_cDate = new Array();
	var arr_mDate = new Array();
	var sProcess = "";
	
	
	//if there is a space, then separate the date from the time and format it...
	if (cDate.indexOf(" ") == -1) {
		arr_cDate[0] = cDate;
		sProcess = m_DATEPROCESS;
	} else {
		arr_cDate[0] = cDate.substring(0, cDate.indexOf(" ") );
		arr_cDate[1] = cDate.substring(cDate.indexOf(" ") + 1 );
		sProcess = m_DATETIMEPROCESS;
	}
	cDate = AbstractStringProcess(sProcess, arr_cDate );
	
	if (mDate.indexOf(" ") == -1) {
		arr_mDate[0] = mDate;
		sProcess = m_DATEPROCESS;
	} else {
		arr_mDate[0] = mDate.substring(0, mDate.indexOf(" ") );
		arr_mDate[1] = mDate.substring(mDate.indexOf(" ") + 1 );
		sProcess = m_DATETIMEPROCESS;
	}
	mDate = AbstractStringProcess(sProcess, arr_mDate );
	

	//don't allow dragging of folders
	if (type != "1") {
		QP_DragAndDrop_writeSourceBegin("div", unid, nC, lev);
	}
	else {
		// Terminate preceeding drag source so it doesn't include this folder
		QP_DragAndDrop_writeSourceEnd("div");
	}
	
	if (typeof(h_TextAbstract) != "undefined" && h_TextAbstract == "0")
		szAbstract = "";

	var szEnd="";
	var szClass="";

	if (isLocked=="1") {
		szClass=' class="row-locked"';
		szEnd='<img title="'+auth+'" alt="'+auth+'" src="/qphtml/html/common/lockme_page_curl.gif"/>';
	}
	else if (nRow % 2 == 0)
		szClass=' class="row-alternate"';

	if (attName != 0)
		szEnd += GenerateAttachmentsAnchor(unid,attName,attSize,form);

	var html = '<dl class="h-abstractEntry">'
		 + ' <table width="100%" cellpadding="0" cellspacing="0">'
		 + '  <tr' + szClass + '>'
		 + '   <td class="start" width="10">' + chkbx + '</td>'
		 + '   <td class="icon" width="35"><img class="h-abstractEntryIcon" src="' + GetDocTypeIconImgSrc(type, form, null, 'LG') + '"/></span></td>'
		 + '   <td class="body">'
		 + '    <div class="h-abstractEntryTitle">' + (typeof(aName) != 'undefined' ? GenerateQPObjURLAnchor(type,aName,name) : name) + '</div>'
		 + '    <div class="h-abstractEntryText">'
		 + 'Updated ' + mDate + ' by ' + GetMemberProfileName(lastEdDN,lastEd) + '| First created ' + cDate
		 + '    </div>'
		 + '    <div class="h-abstractEntryDetail">'+szAbstract+'</div>'
		 + '   </td>'
		 + '   <td class="end" width="42" valign="top">'+szEnd+'</td>'
		 + '  </tr>'
		 + ' </table>'
		 + '</dl>';
	
	document.write(html);
}

function AbstractStringProcess(sFormat, arrValues)
{
	var sReturn = sFormat;

	for (var i = 0; i < arrValues.length; i++) {
		var sTmp = "{" + i + "}";

		while (sReturn.indexOf(sTmp) > -1) {
			sReturn = sReturn.replace(sTmp, arrValues[i]);
		}
	}

	return sReturn;
}


//-----------------------------------------------------------------
// FUNCTIONS USED TO IMPLEMENT FOLDER SCENE SKIN COMPONENTS

function FolderItemsPerPageLink(n, szN, szTitle)
{
	var cnt = h_FolderNavBaseURL.indexOf("&Count="); 
	var url = h_FolderNavBaseURL.substring(0, cnt+7);
	 
	document.write('<a '
						+ '" alt="' + szTitle + '" title="' + szTitle 
						+ '" href="' + url + n
						+ '&PresetFields=h_SetReadScene;' + h_SetReadScene
						+ '">' + szN + '</a>');
}

var h_F_MyPlacesParms = new Array("&PresetFields=h_SetReadScene;h_MyPlacesList","&PresetFields=h_SetReadScene;h_MyPlacesDetails");

function FolderShowHideDetailsLink(szShow, szHide, szShowTitle, szHideTitle)
{
	var fS = getFolderStyle();
	if (fS == 'h_MyPlaces') {
		// My Places listing
		var loc = location.href;
		var l=m=n=-1;

		// Get which parm if any, and parm's length
		for (var i=0; i<h_F_MyPlacesParms.length; i++) {
			if ((m=loc.indexOf(h_F_MyPlacesParms[i])) != -1) {
				l=h_F_MyPlacesParms[i].length;
				break;
			}
		}

		if ((n=m+l)>0) {
			// Strip param from current URL
			loc = loc.substring(0, m) + loc.substring(n);
		}

		document.write('<a href="'
							+ loc + '&PresetFields=h_SetReadScene;'
							+ '&PresetFields=h_SetReadScene;'
							+ (h_SetReadScene == 'h_MyPlacesList' ? 'h_MyPlacesDetails' : 'h_MyPlacesList')
							+ '"'
							+ ' title="' + (h_SetReadScene == 'h_MyPlacesDetails' ? szHideTitle : szShowTitle) + '"'
							+ ' alt="'   + (h_SetReadScene == 'h_MyPlacesDetails' ? szHideTitle : szShowTitle) + '"'
							+ '>'
							+ (h_SetReadScene == 'h_MyPlacesDetails' ? szHide : szShow)
							+ '</a>');
	}
	else {
		// Folder listing
		document.write('<a href="'
							+ '../../h_Toc/' + h_FolderDoc.h_Unid + '/?OpenDocument&Start=' + h_FolderStart
							+ '&Count=' + (h_SetReadScene == 'h_AbstractsFolderRead' ? 20 : 10)
							+ '&PresetFields=h_SetReadScene;'
							+ (h_SetReadScene == 'h_AbstractsFolderRead' ? 'h_StdFolderRead' : 'h_AbstractsFolderRead')
							+ '"'
							+ ' title="' + (h_SetReadScene == 'h_AbstractsFolderRead' ? szHideTitle : szShowTitle) + '"'
							+ ' alt="'   + (h_SetReadScene == 'h_AbstractsFolderRead' ? szHideTitle : szShowTitle) + '"'
							+ '>'
							+ (h_SetReadScene == 'h_AbstractsFolderRead' ? szHide : szShow)
							+ '</a>');
	}
}

function FolderShowHideResponsesLink(szShow, szHide, szShowTitle, szHideTitle)
{
	var bShow = (h_F_ExpansionState == h_F_STATE_COLLAPSED);
	document.write('<a href="' + h_F_ShowHideResponsesURL + '"'
						+ ' title="' + (bShow ? szShowTitle : szHideTitle) + '"'
						+ ' alt="'   + (bShow ? szShowTitle : szHideTitle) + '"'
						+ '>'
						+ (bShow ? szShow : szHide)
						+ '</a>');
}

function FolderShowingItemsText(szFmt) 
{ 
	if (h_FolderDocCount > 0)
	{
		var s = szFmt;
			  
		var iEndIndex =  h_FolderStart.indexOf( ".");
		if	( iEndIndex == -1) {
			iEndIndex = h_FolderStart.length;
		}
		 
		// The thread start (1 in the above string
		var iThreadStart = h_FolderAbsoluteStartPosition;
		// The last thread in the list
		var rangeEnd = h_FolderAbsoluteStartPosition + iTotNumOfDocs - 1;
		 
		// replace the string which has the following syntax	
		s = s.replace( /\%d/, iThreadStart);
		s = s.replace( /\%d/, rangeEnd);
		s = s.replace( /\%d/, h_FolderDocCount);
		document.write(s);
	}
};


//------------------------------------------------------------------------------------
//
function FolderMakeSortButton(url,sort,szAlt,title)
{
	var szClass=(sort==0 ? '' : 'class="button"');
	var aStyle=' style="display: none;"';
	var dStyle=aStyle;

	if (sort==1) {
		 // current sort is ascending
		 dStyle='';
	}
	else if (sort==2) {
		 // current sort is descending
		 aStyle='';
	}

	return ('<li '+szClass+'>'
			  + '<a href="'+url+'" alt="'+szAlt+'" title="'+title+'">'+title
			  + '<span'+aStyle
			  + '<img title="ascending" alt="'+szAlt+'" src="/qphtml/html/common/sort_ascending.gif"/>'
			  + '</span>'
			  + '<span'+dStyle
			  + '<img title="descending" alt="'+szAlt+'" src="/qphtml/html/common/sort_descending.gif"/>'
			  + '</span>'
			  + '</a>'
			  + '</li>');
}

function DisplaySortBarBegin(szSortBy)
{
	var sEntry = "";
	sEntry += "<div class=\"actions sort\">";
	sEntry += "	<ul class=\"inlinelist\">";
	sEntry += "  <li class=\"first\">"+szSortBy+":</li>";
	// Other <li>s for sort items come after this...
	document.write(sEntry);
}

function DisplaySortBarEnd()
{
	var sEntry = "";
	sEntry += " </ul>";
	sEntry += "</div>";
	document.write(sEntry);
}

function DisplayAbstractViewSortBegin(chkbx,szSortBy/*add other strings*/) 
{
	var sEntry = "";
	sEntry += "<dl class=\"h-abstractEntry\"><table width=\"100%\" cellpadding=\"10\"><tr>";
	sEntry += "	<td width=\"10\">" + chkbx + "</td>";
	sEntry += "	<td width=\"*\">";
	document.write(sEntry);
	DisplaySortBarBegin(szSortBy);
}

function DisplayAbstractViewSortEnd()
{
	var sEntry = "";
	DisplaySortBarEnd();
	sEntry += "	</td>";
	sEntry += "</tr></table></dl>";
	document.write(sEntry);
}


//------------------------------------------------------------------------------------
//

function FolderHideIdIfBlank(sId, fFunct) {
	var preloadid = document.getElementById(sId);
	if (preloadid) {
	
		var bHide = true;
		for (var i = 0; i < preloadid.childNodes.length; i++) {
			if (typeof(preloadid.childNodes[i].tagName) != "undefined" && typeof(preloadid.childNodes[i].innerHTML) != "undefined" && preloadid.childNodes[i].tagName != "SCRIPT") {
				bHide = false;
			}
			if (typeof(fFunct) != "undefined") {
				if (fFunct() == "") {
					bHide = true;
				}
			}
		}
		
		if (bHide) {
			preloadid.style.display = "none";
		}
	}
}

function FolderAlternateTableRowsBackground(sId, sClassName) {
	if (sClassName == null) sClassName = "h-folderitem-bg";
	var mydetailslist = document.getElementById(sId);
	if (mydetailslist) {
		var onoffswitch = false;
		var alltrs = mydetailslist.getElementsByTagName("tr");
		for (var idx = 0; idx < alltrs.length; idx++) {
			if (alltrs[idx].className.toLowerCase() == sClassName.toLowerCase()) {
				if (onoffswitch) {				
					alltrs[idx].className += " h-folderItem-bg-alt";
				}
				onoffswitch = !onoffswitch;
			}
		}
	}
}

// "Stretch" button support
function changeWidth(widthSet)
{
	var cookieName = haiku.userName  +'Width';
	if(widthSet=="fluid"){
		document.body.style.width=100+'%';
		document.getElementById("widthPage").style.display="none";
		document.getElementById("widthPageFixed").style.display="inline";
		setCookie(cookieName,'fluid',7);
	}
	else {
		document.body.style.width=900+'px';
		document.getElementById("widthPageFixed").style.display="none";
		document.getElementById("widthPage").style.display="inline";
		removeCookie(cookieName);
		  
		var mainSize = document.getElementById("portletRenderWidth").offsetWidth;
		var bodySize = document.body.offsetWidth;
		if(mainSize>bodySize){
			document.body.style.width = mainSize +50+'px';
		}
	}
}

// IBM Footer
function toggleFooter() {
	var footerL = document.getElementById('footerMain');
	var footerS = document.getElementById('footerSmall');

	if (footerL.style.display == "none"){
		footerS.style.display="none";
		footerL.style.display="block";
		document.getElementById("footerLinkIDExpand").style.display='none';
		document.getElementById("footerLinkIDCollapse").style.display='block';
	}
	else{
		footerL.style.display="none";
		footerS.style.display="block";
		document.getElementById("footerLinkIDExpand").style.display='block';
		document.getElementById("footerLinkIDCollapse").style.display='none';
	}

	var cookieName = haiku.userName +'Footer';
	var x = getCookie(cookieName);
	if (x=="small") {
		removeCookie(cookieName);
	}else{
		setCookie(cookieName,'small',7);
	}
}

