var MenuTop = 0;

function ReturnValidHref(strParam) {
	var RetHref = window.location.href;
	if (strParam && RetHref.indexOf('?') == -1) RetHref += '?xtag=1';
	return (RetHref + strParam);
}

function GoTop() {
  scrollTo(0, 0);
}

function InitPage() {
  if (isCheckLoad) DoLoadFnc();
  if (MainNavSection != '') xGetElementById(MainNavSection).className = 'SelectedNavItem';
	winOnResize(); // set initial position
  xAddEventListener(window, 'resize', winOnResize, false);
  xAddEventListener(window, 'scroll', winOnScroll, false);
	// Hook References
	var RefList = xGetElementsByTagName('LI', xFirstChild(xGetElementById('references'), 'OL'));
	if (RefList) {
		var RefNo = 1;
		var AllRefLinks = xGetElementsByClassName('ReferenceLink', document, 'SPAN');
		for (var i = 0; i < AllRefLinks.length; i++) {
			var NextId = 'Ref_'+RefNo;
			RefNo++;
			AllRefLinks[i].id = NextId;
			var RefsBlock = '';
			var Refs = xInnerHtml(NextId).split(',');
			for (var j = 0; j < Refs.length; j++) {
				var Range = Refs[j].split('-');
				if (!Range[1]) Range[1] = Range[0];
				for (var k = Number(Range[0]); k <= Number(Range[1]); k++) {
					if (RefsBlock != '') RefsBlock += '<BR><IMG SRC="/Images/Clear.gif" WIDTH="1" HEIGHT="5" BORDER="0"><BR>';
					RefsBlock += k+'. '+xInnerHtml(RefList[k-1]);
				}
			}		
			new xTooltipGroup([NextId], 'ReferenceToolTip', 'mouse', 20, -10, [RefsBlock]);
		}
	}
}

function ShowTimedMessage(ID, Msg, Timeout) {
	xInnerHtml(ID, Msg);
  setTimeout('xHide(\''+ID+'\')', Timeout);
}

function EmailDocument(Obj) {
	xMoveTo('PopUpMessageID', xPageX(Obj), xPageY(Obj));
	xInnerHtml('PopUpMessageID', 'Sending Email...');
	xShow('PopUpMessageID');
  var Req = new AsynchRequest();
  Req.OnComplete = EmailDocumentComplete;
  Req.OnError = EmailDocumentError;
  Req.Send(ReturnValidHref('&EmailToMe=1'));
}

function PrintDocument() {
	OpenNewBrowser(ReturnValidHref('&Print=1'));
}

function EmailDocumentComplete(Req) {
	ShowTimedMessage('PopUpMessageID', Req.GetResponseText(), 5000)
}

function EmailDocumentError(ErrorMsg) {
	ShowTimedMessage('PopUpMessageID', ErrorMsg, 10000)
}

var BlankFeedback = true;
var FeedbackFormHTML = '';

function CheckFeedback() {
  if (BlankFeedback || document.FeedbackForm.Feedback.value == '') {
    alert ('Your Feedback was blank. Please type your message into the Feedback form before clicking the Send Feedback button.');
  } else {
		SendFeedback();
	}
}

function ClearFeedback() {
  if (BlankFeedback) {
    document.FeedbackForm.Feedback.value = '';
    BlankFeedback = false;
  }
}

function SendFeedbackShow(Obj) {
	if (!FeedbackFormHTML) FeedbackFormHTML = xInnerHtml('FeedbackFormID');
	var PageY = xPageY(Obj);
	if ((PageY-xScrollTop(window, true)) > xHeight('FeedbackFormID')) PageY -= xHeight('FeedbackFormID'); else PageY += xHeight(Obj);
	xMoveTo('FeedbackFormID', -xWidth('FeedbackFormID'), PageY);
	var PageX = xPageX(Obj);
	if (PageX > xWidth('FeedbackFormID')) PageX -= xWidth('FeedbackFormID');
	xShow('FeedbackFormID');
	xSlideTo('FeedbackFormID', PageX, PageY, 1000);
}

function SendFeedback() {
  var Req = new AsynchRequest();
  Req.OnComplete = SendFeedbackComplete;
  Req.OnError = SendFeedbackError;
  Req.Send('/Members/Help/Feedback.plx', 'Feedback='+document.FeedbackForm.Feedback.value);
}

function SendFeedbackComplete(Req) {
	ShowTimedMessage('FeedbackFormID', Req.GetResponseText(), 10000)
}

function SendFeedbackError(ErrorMsg) {
	ShowTimedMessage('FeedbackFormID', ErrorMsg, 10000)
}

function SendFeedbackReset() {
	xHide('FeedbackFormID');
	xInnerHtml('FeedbackFormID', FeedbackFormHTML);
	BlankFeedback = true;
}

function winOnResize() {
  xHide('TopBar');
  MenuTop = xPageY('TopBarPos');
	xWidth('TopBar', xClientWidth());
  winOnScroll(); // initial slide
  xShow('TopBar');
}

function winOnScroll() {
  var y = xScrollTop();
	xMoveTo('TopBar', 0, (y >= MenuTop) ? y : MenuTop);
}

function ShowFigure(PictureID, Width, Height) {
	var FigureObjList = xGetElementsByClassName('FigureListClass');
	if (FigureObjList) {
		for (var FigIdx = 0; FigIdx < FigureObjList.length; FigIdx++) {
			var FigureObj = FigureObjList[FigIdx];
			if (FigureObj) {
				var TDList = xGetElementsByTagName('TD', xFirstChild(FigureObj, 'TABLE'));
				for (var i = 0; i < TDList.length; i++) {
					var iHtml = xInnerHtml(TDList[i]);
					if (iHtml.indexOf(PictureID) >= 0) {
						iHtml = iHtml.replace(/<a href="JAVASCRIPT:ShowFigure\('([^']+)', (\d+), (\d+).*<\/a>/i, '<IMG SRC="$1" WIDTH=$2 HEIGHT=$3>');
						ShowSubWindow(iHtml, Width+20, Height);
						return;
					}
				}
			}
		}
	}
}

function ShowTable(TableID) {
	var Width = xWidth(xFirstChild(xGetElementById(TableID), 'TABLE')) || xWidth(TableID);
	ShowSubWindow(xInnerHtml(TableID), Width, xHeight(TableID));
}

function ShowSubWindow(Content, Width, Height) {
	var WinObj = xGetElementById('SubWindowID');
	WinObj.style.width = Width;
	WinObj.style.height = 'auto';
	xInnerHtml('SubWindowContentID', Content);
	if ((xHeight(WinObj)+20) > xClientHeight()) xHeight(WinObj, xClientHeight()-20);
	if ((xWidth(WinObj)+20) > xClientWidth()) xWidth(WinObj, xClientWidth()-20);
	xMoveToCenter(WinObj);
	xShow(WinObj);
}

function xMoveToCenter(ObjID) {
	var PosX = xClientWidth()/2 - xWidth(ObjID)/2 + xScrollLeft(window, true)-2;
  var PosY = xClientHeight()/2 - xHeight(ObjID)/2 + xScrollTop(window, true)-2;
	xMoveTo(ObjID, PosX, PosY);
}

function xDropDownBoxShow(Obj, CurrentValue, onClickCallBack, TextArray, ExtraParam) {
	ExtraParam = (ExtraParam) ? ', '+ExtraParam : '';
	ObjDropDown = xGetElementById('xDropDownID');
	ObjDropDown.style.width = 'auto';
	ObjDropDown.style.height = 'auto';
	var ElemArray = TextArray.split('\r\n');
	var ListContent = '<TABLE BORDER=0>';
	for (var i = 0; i < ElemArray.length; i++) {
		if (ElemArray[i] != '') {
			var Row = ElemArray[i].split('\t');
			var ClassCode = (Row[1] == CurrentValue) ? ' CLASS="SelectedDropDownItem"': '';
			ListContent += '<TR><TD><A HREF="javascript:;" onclick="'+onClickCallBack+'(\''+Row[1].replace(/'/g, '\\\'')+'\', \''+Row[0].replace(/'/g, '\\\'')+'\''+ExtraParam+');"'+ClassCode+'>'+Row[0]+'&nbsp;</A></TD></TR>';
		}
	}
	ListContent += '</TABLE>'
	xInnerHtml(ObjDropDown, ListContent);
	var Height = xHeight(ObjDropDown);
	var Y = xPageY(Obj);
	var YHidden = (Y+Height) - xClientHeight();
	if (YHidden > 0) {
		if (YHidden < Y) {
			Y -= YHidden;
		} else {
			YHidden -= Y-1;
			Y = 1;
			xHeight(ObjDropDown, Height-YHidden);
		}
	}
	var X = xPageX(Obj)-xWidth(ObjDropDown);
	if (X<0) X = xPageX(Obj)+xWidth(Obj);
	xMoveTo(ObjDropDown, X, Y);
	xShow(ObjDropDown);	
  setTimeout('xAddEventListener(document, \'click\', xDropDownBoxHide)', 500);
}

function xDropDownBoxHide() {
	xHide('xDropDownID');
	xRemoveEventListener(document, 'click', xDropDownBoxHide);
}
