var en = 1; //English
var es = 2; //Spanish
var fr = 3 //French
var zh = 4; //Simplified Chinese
var zh_tw = 5; //Traditional Chinese
var ja = 6; //Japanese
var ko = 7; //Korean
var ar = 8; //Arabic
var cs = 9; //Czech
var pl = 10; //Polish
var sk = 12; //Slovakia
var ru = 13; //Russian

var maxCrumbWidth = 700;
var maxCrumbLength = 15;

var maxMenu = 11;
var bottomOffset = 0;

var ELEMENT_NODE = 1;

var actionMenuWidth = 14;
var actionMenuHeight = 18;

var showLanguages = new Array();
showLanguages[en] = "Show details";
showLanguages[es] = "Show details";
showLanguages[fr] = "Show details";
showLanguages[zh] = "Show details";
showLanguages[zh_tw] = "Show details";
showLanguages[ja] = "Show details";
showLanguages[ko] = "Show details";
showLanguages[ar] = "Show details";
showLanguages[cs] = "Show details";
showLanguages[pl] = "Show details";
showLanguages[sk] = "Show details";
showLanguages[ru] = "Show details";

var hideLanguages = new Array();
hideLanguages[en] = "Hide details";
hideLanguages[es] = "Hide details";
hideLanguages[fr] = "Hide details";
hideLanguages[zh] = "Hide details";
hideLanguages[zh_tw] = "Hide details";
hideLanguages[ja] = "Hide details";
hideLanguages[ko] = "Hide details";
hideLanguages[ar] = "Hide details";
hideLanguages[cs] = "Hide details";
hideLanguages[pl] = "Hide details";
hideLanguages[sk] = "Hide details";
hideLanguages[ru] = "Hide details";

var requiredLanguages = new Array();
requiredLanguages[en] = "This is a mandatory field";
requiredLanguages[es] = "Este campo es obligatorio";
requiredLanguages[fr] = "Ce champ est obligatoire";
requiredLanguages[zh] = "&#36825;&#19968;&#21306;&#22495;&#26159;&#24378;&#21046;&#24615;&#30340;";
requiredLanguages[zh_tw] = "&#27492;&#27396;&#20301;&#28858;&#24517;&#22635;&#27396;&#20301;";
requiredLanguages[ja] = "&#12371;&#12398;&#38917;&#30446;&#12399;&#24517;&#38920;&#12391;&#12377;&#12290;";
requiredLanguages[ko] = "&#51060; &#54596;&#46300;&#45716; &#54596;&#49688;&#54637;&#47785;&#51077;&#45768;&#45796;";
requiredLanguages[ar] = "This is a mandatory field";
requiredLanguages[cs] = "Toto pole je povinné";
requiredLanguages[pl] = "To pole jest obowiązkowe";
requiredLanguages[sk] = "Toto pole je povinné";
requiredLanguages[ru] = "Это поле обязательно";
				  
var calendarWidth = 224;
var calendarHeight = 166;
var calendarHorizOffset = 16;
var calendarIconWidth = 13;
var calendarIconHeight = 19;
var calendarStartYear = 1990;
var calendarEndYear = new Date().getFullYear() + 2;
var calendarField;
var calendar;
var calendarFrame;
var calendarLanguages = new Array();
var selectedDate = new Object();

var calendarShortMonths = new Object();
calendarShortMonths.Jan = "1";
calendarShortMonths.Feb = "2";
calendarShortMonths.Mar = "3";
calendarShortMonths.Apr = "4";
calendarShortMonths.May = "5";
calendarShortMonths.Jun = "6";
calendarShortMonths.Jul = "7";
calendarShortMonths.Aug = "8";
calendarShortMonths.Sep = "9";
calendarShortMonths.Oct = "10";
calendarShortMonths.Nov = "11";
calendarShortMonths.Dec = "12";

var calendarShortMonthsNumeric = new Array();
calendarShortMonthsNumeric[1] = "Jan";
calendarShortMonthsNumeric[2] = "Feb";
calendarShortMonthsNumeric[3] = "Mar";
calendarShortMonthsNumeric[4] = "Apr";
calendarShortMonthsNumeric[5] = "May";
calendarShortMonthsNumeric[6] = "Jun";
calendarShortMonthsNumeric[7] = "Jul";
calendarShortMonthsNumeric[8] = "Aug";
calendarShortMonthsNumeric[9] = "Sep";
calendarShortMonthsNumeric[10] = "Oct";
calendarShortMonthsNumeric[11] = "Nov";
calendarShortMonthsNumeric[12] = "Dec";

calendarLanguages[en] = new Object();
calendarLanguages[en].months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
calendarLanguages[en].weekdays = new Array("M","T","W","T","F","S","S");
calendarLanguages[en].close = "Close";
calendarLanguages[en].hover = "Select a date";

calendarLanguages[es] = new Object();
calendarLanguages[es].months = new Array('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
calendarLanguages[es].weekdays = new Array('L','M','M','J','V','S','D');
calendarLanguages[es].close = "Cerrar";
calendarLanguages[es].hover = "Selecciona una fecha";

calendarLanguages[fr] = new Object();
calendarLanguages[fr].months = new Array('janvier','fvrier','mars','avril','mai','juin','juillet','ao&#251t','septembre','octobre','novembre','d&eacute;cembre');
calendarLanguages[fr].weekdays = new Array('L','M','M','J','V','S','D');
calendarLanguages[fr].close = "Fermer";
calendarLanguages[fr].hover = "S&#233;lectionner une date";

calendarLanguages[zh] = new Object();
calendarLanguages[zh].months = new Array('&#19968&#26376','&#20108&#26376','&#19977&#26376','&#22235&#26376','&#20116&#26376','&#20845&#26376','&#19971&#26376','&#20843&#26376','&#20061&#26376','&#21313&#26376','&#21313&#19968&#26376','&#21313&#20108&#26376');
calendarLanguages[zh].weekdays = new Array('&#19968','&#20108','&#19977','&#22235','&#20116','&#20845','&#26085');
calendarLanguages[zh].close = "&#20851&#38381";
calendarLanguages[zh].hover = "&#36873;&#25321;&#19968;&#20010;&#26085;&#26399;";

calendarLanguages[zh_tw] = new Object();
calendarLanguages[zh_tw].months = new Array('&#19968&#26376','&#20108&#26376','&#19977&#26376','&#22235&#26376','&#20116&#26376','&#20845&#26376','&#19971&#26376','&#20843&#26376','&#20061&#26376','&#21313&#26376','&#21313&#19968&#26376','&#21313&#20108&#26376');
calendarLanguages[zh_tw].weekdays = new Array('&#19968','&#20108','&#19977','&#22235','&#20116','&#20845','&#26085');
calendarLanguages[zh_tw].close = "&#38364&#38281";
calendarLanguages[zh_tw].hover = "&#36984;&#25799;&#19968;&#20491;&#26085;&#26399;";

calendarLanguages[ja] = new Object();
calendarLanguages[ja].months = new Array('1 &#26376','2 &#26376','3 &#26376','4 &#26376','5 &#26376','6 &#26376','7 &#26376','8 &#26376','9 &#26376','10 &#26376','11 &#26376','12 &#26376');
calendarLanguages[ja].weekdays = new Array('&#26376','&#28779','&#27700','&#26408','&#37329','&#22303','&#26085');
calendarLanguages[ja].close = "&#38281&#12376&#12427";
calendarLanguages[ja].hover = "&#26085;&#20184;&#12434;&#36984;&#25246;&#12375;&#12390;&#19979;&#12373;&#12356;&#12290;";

calendarLanguages[ko] = new Object();
calendarLanguages[ko].months = new Array('1 &#50956','2 &#50956','3 &#50956','4 &#50956','5 &#50956','6 &#50956','7 &#50956','8 &#50956','9 &#50956','10 &#50956','11 &#50956','12 &#50956');
calendarLanguages[ko].weekdays = new Array('&#50956','&#54868','&#49688','&#47785','&#44552','&#53664','&#50620');
calendarLanguages[ko].close = "&#45803&#44592";
calendarLanguages[ko].hover = "&#45216;&#51676;&#47484; &#49440;&#53469;&#54616;&#49884;&#50724;";

calendarLanguages[ar] = new Object();
calendarLanguages[ar].months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
calendarLanguages[ar].weekdays = new Array("M","T","W","T","F","S","S");
calendarLanguages[ar].close = "Close";
calendarLanguages[ar].hover = "Select a date";

calendarLanguages[cs] = new Object();
calendarLanguages[cs].months = new Array("Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec");
calendarLanguages[cs].weekdays = new Array("P","Ú","S","Č","P","S","N");
calendarLanguages[cs].close = "Zavřít";
calendarLanguages[cs].hover = "Vybrat datum";

calendarLanguages[pl] = new Object();
calendarLanguages[pl].months = new Array("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień");
calendarLanguages[pl].weekdays = new Array("P","W","S","C","P","S","N");
calendarLanguages[pl].close = "Zamknij";
calendarLanguages[pl].hover = "Wybierz dat&#281;";

calendarLanguages[sk] = new Object();
calendarLanguages[sk].months = new Array("Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December");
calendarLanguages[sk].weekdays = new Array("P","U","S","Š","P","S","N");
calendarLanguages[sk].close = "Zavrieť";
calendarLanguages[sk].hover = "Vybrať dátum";

calendarLanguages[ru] = new Object();
calendarLanguages[ru].months = new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
calendarLanguages[ru].weekdays = new Array("П","В","С","С","Ч","П","В");
calendarLanguages[ru].close = "Закрыть";
calendarLanguages[ru].hover = "Выбрать дату";

var currentLanguage = en;
var calendarLanguage = currentLanguage;

var tabs;

var selectOriginals = new Array();
var selectClones = new Array();
var selectParents = new Array();

function daysInMonth (year, month) {
     return 32 - new Date(year, month, 32).getDate();
}

function isRightInbounds(theElement) {
	var objectRight = getObjectLeft(theElement) + theElement.offsetWidth - 12;
	var windowRight = getScrollLeft() + getWindowWidth();
	return (objectRight < windowRight);
}

function isBottomInbounds(theElement) {
	var objectBottom = getObjectTop(theElement) + theElement.offsetHeight - 12;
	var windowBottom = getScrollTop() + getWindowHeight();
	return (objectBottom < windowBottom);
}

function getObjectTop(theElement) {
  yPos = theElement.offsetTop;
  tempEl = theElement.offsetParent;
  while (tempEl != null) {
    yPos += tempEl.offsetTop;
    tempEl = tempEl.offsetParent;
  }
  return yPos;
}

function getObjectLeft(theElement) {
  yPos = theElement.offsetLeft;
  tempEl = theElement.offsetParent;
  while (tempEl != null) {
    yPos += tempEl.offsetLeft;
    tempEl = tempEl.offsetParent;
  }
  return yPos;
}

function getWindowHeight() {
	if (document.documentElement && document.documentElement.clientHeight) {
		// IE 6.0 in Standards Compliant Mode
		return(document.documentElement.clientHeight);
	} else if (document.body) {
		// All other IE/Mozilla/Opera cases
		return(document.body.clientHeight);
	} else if (window.innerHeight) {
		// Last try
		return(window.innerHeight);
	} else {
		// Sorry, no options
		return 0;
	}
}


function getWindowWidth() {
	if (document.documentElement && document.documentElement.clientWidth) {
		// IE 6.0 in Standards Compliant Mode
		return(document.documentElement.clientWidth);
	} else if (document.body) {
		// All other IE/Mozilla/Opera cases
		return(document.body.clientWidth);
	} else if (window.innerWidth) {
		// Last try
		return(window.innerWidth);
	} else {
		// Sorry, no options
		return 0;
	}
}

function getScrollTop() {
	if (document.documentElement && document.documentElement.scrollTop) {
		// IE 6.0 in Standards Compliant Mode
		return(document.documentElement.scrollTop);
	} else if (document.body) {
		// All other IE/Mozilla/Opera cases
		return(document.body.scrollTop);
	} else {
		// Sorry, no options
		return 0;
	}
}

function getScrollLeft() {
	if (document.documentElement && document.documentElement.scrollLeft) {
		// IE 6.0 in Standards Compliant Mode
		return(document.documentElement.scrollLeft);
	} else if (document.body) {
		// All other IE/Mozilla/Opera cases
		return(document.body.scrollLeft);
	} else {
		// Sorry, no options
		return 0;
	}
}

function entityToUTF(entities) {

	var result = "";
	var start = -1;
	var finish = -1;
	
	for (var i = 0; i < entities.length; i++) {
		if (entities.substr(i,1) != "&") {
			result += entities.substr(i,1);
		} else {
			start = entities.indexOf("&#",i);
			finish = entities.indexOf(";",start);
			result += String.fromCharCode(entities.substring(start+2,finish));
			i = finish;
		}
	}
	
	return result;
	
}

function getElementLanguage(field){
	if (field.className.search("en_override") > 0) { return en; }
	if (field.className.search("es_override") > 0) { return es; }
	if (field.className.search("fr_override") > 0) { return fr; }
	if (field.className.search("zh_override") > 0) { return zh; }
	if (field.className.search("zh_tw_override") > 0) { return zh_tw; }
	if (field.className.search("ja_override") > 0) { return ja; }
	if (field.className.search("ko_override") > 0) { return ko; }
	if (field.className.search("ar_override") > 0) { return ar; }
	if (field.className.search("cs_override") > 0) { return cs; }
	if (field.className.search("pl_override") > 0) { return pl; }
	if (field.className.search("sk_override") > 0) { return sk; }
	if (field.className.search("ru_override") > 0) { return ru; }
	return currentLanguage;
}

function breakTab(tabName) {
	var newName = tabName;
	var breakSpace = 0;
	if (tabName.length > 13) {
		for (var i = Math.floor(tabName.length / 2); i > 0; i--) {
			if (tabName.substr(i,1) == " ") {
				breakSpace = i;
				break;
			}
			if (tabName.substr(tabName.length-i,1) == " ") {
				breakSpace = tabName.length-i;
				break;
			}
		}
		if (breakSpace > 0) {
			newName = '<span class="twoLine">' + tabName.substring(0,breakSpace) + "<br/>" + tabName.substring(breakSpace + 1,tabName.length) + "</span>";
		} else {
			newName = "<span>" + tabName + "</span>";
		}
	} else {
		newName = "<span>" + tabName + "</span>";
	}
	return newName;
}

/* New functions for post-R9 new tool development */
function setSelectToolTip(elementObj) {
	
	var tipObj = document.getElementById('toolTip');

	if (elementObj.options[elementObj.selectedIndex].title.length > 0)
		tipObj.innerHTML = elementObj.options[elementObj.selectedIndex].title;
	else
		tipObj.innerHTML = elementObj.options[elementObj.selectedIndex].innerHTML;
	

}

function showSelectToolTip(elementObj) {

	var tipObj = document.getElementById('toolTip');
	var frameObj = document.getElementById('toolTipFrame');
	
	tipObj.style.width = elementObj.scrollWidth;
	tipObj.style.left = getObjectLeft(elementObj);
	tipObj.style.top = getObjectTop(elementObj) + elementObj.scrollHeight;
	frameObj.style.width = (elementObj.scrollWidth + 2) + "px";
	frameObj.style.left = tipObj.style.left;
	frameObj.style.top = tipObj.style.top;
	frameObj.style.height = (tipObj.scrollHeight - 2) + "px";
	
	tipObj.style.visibility = "visible";
	frameObj.style.visibility = "visible";
	frameObj.style.display = "block";
}

function hideSelectToolTip() {
	
	var tipObj = document.getElementById('toolTip');
	var frameObj = document.getElementById('toolTipFrame');
	
	tipObj.style.visibility = "hidden";
	frameObj.style.visibility = "hidden";
	frameObj.style.display = "none";
	
}
/* End functions for post-R9 new tool development */

/* Functions for clear/fill text field handling */
function clearField(field) {
	if (field.value == field.title) {
		field.value = "";
	}
}

function fillField(field) {
	if (field.value == "") {
		field.value = field.title;
	}
}
/* End clear/fill */

/* Action Menus */
function positionActionMenu(menu) {

	var left = actionMenuWidth;
	var top = 0;
	var actionFrameParent = document.getElementById("actionMenuFrame").parentNode;

	// Move actionMenuFrame into current container
	var oldFrame = actionFrameParent.removeChild(document.getElementById("actionMenuFrame"));
	menu.parentNode.appendChild(oldFrame);
	var actionFrame = document.getElementById("actionMenuFrame");
	
	// Initial position
	menu.style.left = left;
	menu.style.top = top;
	
	// Handle horizontal positioning
	if (!isRightInbounds(menu)) {
		left = 0 - menu.offsetWidth;
		menu.parentNode.className = "actionMenuHoverLeft";
	}
	
	// Handle vertical positioning
	if (!isBottomInbounds(menu)) {
		top = 0 - menu.offsetHeight + actionMenuHeight;
	}
	
	// Final position
	menu.style.left = left;
	menu.style.top = top;
	
	// Position frame
	actionFrame.style.left = left;
	actionFrame.style.top = top;
	actionFrame.style.width = menu.offsetWidth;
	actionFrame.style.height = menu.offsetHeight;
	actionFrame.style.backgroundColor = "blue";
	actionFrame.style.display = "block";
	
	menu.style.zIndex = 2;
	actionFrame.style.zIndex = 1;

}

/* Calendars */
function calendarToggleMY(theElement) {
	
	var otherElement = (theElement == "calMonthMenu") ? "calYearMenu" : "calMonthMenu";

	document.getElementById(otherElement).style.display = "none";
	if (document.getElementById(theElement).style.display == "none") {
		var baseElement = (theElement == "calMonthMenu") ? "calMonth" : "calYear";
		var entryElement = baseElement + document.getElementById(baseElement).innerHTML;
		document.getElementById(baseElement).scrollTop = getObjectTop(document.getElementById(entryElement));
		document.getElementById(theElement).style.display = "block";
	} else {
		document.getElementById(theElement).style.display = "none";
	}

}

function calendarDisplayMonth(selectedDate) {

	var theDate = new Date();
	var calDays = document.getElementById("calDaysOfMonth");
	var firstDay = 0;
	
	theDate.setDate(1);
	theDate.setMonth(selectedDate.month-1);
	theDate.setYear(selectedDate.year);
	
	calDays.innerHTML = "";

	firstDay = theDate.getDay() - 1;
	if (firstDay < 0) { firstDay = 6; }
	
	for (var i=0; i<firstDay; i++) {
		calDays.innerHTML += "<li></li>";
	}
	
	for (var i=1; i<=daysInMonth(theDate.getFullYear(),theDate.getMonth()); i++) {
		calDays.innerHTML += '<li id="calDay' + i + '"><a href="#" onclick="calendarSelectDate(' + theDate.getFullYear() + ',' + theDate.getMonth() + ',' + i + '); return false;">' + i + '</a></li>';
	}
	
}

function calendarOpen(field) {

	if (event.clientX < (getObjectLeft(field) - calendarHorizOffset + field.offsetWidth - calendarIconWidth)) { return false; }
	
	var left = getObjectLeft(field) + field.offsetWidth - calendarHorizOffset;
	var top = getObjectTop(field) + field.offsetHeight + 1;
	
	// Set calendar field
	calendarField = field;

	// Check for a language
	calendarLanguage = getElementLanguage(field);

	// Populate calendar
	if (calendarLanguage != currentLanguage) { calendarPopulate(); }
	
	// Selected date
	selectedDate = calendarGetDate(field);

	calendarDisplayMonth(selectedDate);
	
	// Handle horizontal positioning
	if ((left + calendarWidth - 12) >= (getScrollLeft() + getWindowWidth())) {
		left = left - calendarWidth + calendarIconWidth - 12;
	}
	
	// Handle vertical positioning
	if ((top + calendarHeight) >= (getScrollTop() + getWindowHeight())) {
		top = getObjectTop(field) - calendarHeight -1;
	}
	
	// Final position
	calendar.style.left = left;
	calendar.style.top = top;
	calendarFrame.style.left = left;
	calendarFrame.style.top = top;
	calendarFrame.style.visibility = "visible";
	calendarFrame.style.display = "block";
	
	// Show selected year
	document.getElementById("calYear").innerHTML = selectedDate.year;
	
	// Show selected month
	document.getElementById("calMonth").innerHTML = calendarLanguages[calendarLanguage].months[selectedDate.month - 1];

	// Show selected day
	for (i = 1; i <= daysInMonth(selectedDate.year,selectedDate.month-1); i++) {
		if (document.getElementById("calDay" + i)) {
			document.getElementById("calDay" + i).className = "";
		}
	}
	// If date is invalid, make it last day of month.
	if (selectedDate.day > daysInMonth(selectedDate.year,selectedDate.month-1)) {
		selectedDate.day = daysInMonth(selectedDate.year,selectedDate.month-1);
	}
		document.getElementById("calDay" + selectedDate.day).className = "current";

	// Close month/year menus
	document.getElementById("calYearMenu").style.display = "none";
	document.getElementById("calMonthMenu").style.display = "none";

	calendar.style.display = "block";

}

function calendarClose() {
	
	calendar.style.display = "none";
	calendarFrame.style.visibility = "hidden";
	calendarFrame.style.display = "none";
	if (calendarLanguage != currentLanguage) { calendarLanguage = currentLanguage; calendarPopulate(); }
	
}

function calendarGetDate(field) {
	
	var selectedDate = new Object();
	var fieldValue = (field.value) ? field.value : null;

	if (fieldValue == null || fieldValue.length == 0 || (!fieldValue.match(/\d\d\/\d\d\/\d\d\d\d/) && !fieldValue.match(/\d\d\-\w\w\w\-\d\d\d\d/))) {
		var today = new Date();
		selectedDate.year = today.getFullYear();
		selectedDate.month = today.getMonth() + 1;
		selectedDate.day = today.getDate();
	} else if (fieldValue.match(/\d\d\/\d\d\/\d\d\d\d/)) {
// Handling for DD/MM/YYY
		selectedDate.day = fieldValue.substr(0,2);
		selectedDate.month = fieldValue.substr(3,2)
		selectedDate.year = fieldValue.substr(6,4);
		if (selectedDate.day.substr(0,1) == "0") {
			selectedDate.day = selectedDate.day.substr(1,1);
		}
		if (selectedDate.month.substr(0,1) == "0") {
			selectedDate.month = selectedDate.month.substr(1,1);
		}	
	} else {
// Handling for DD-Mmm-YYYY
		selectedDate.day = fieldValue.substr(0,2);
		monthName = fieldValue.substr(3,3);
		selectedDate.month = eval("calendarShortMonths." + monthName);
		selectedDate.year = fieldValue.substr(7,4);
		if (selectedDate.day.substr(0,1) == "0") {
			selectedDate.day = selectedDate.day.substr(1,1);
		}
		if (selectedDate.month.substr(0,1) == "0") {
			selectedDate.month = selectedDate.month.substr(1,1);
		}
	}

	return selectedDate;
	
}

function calendarSetYear(year) {
	
	document.getElementById("calYear").innerHTML = year;
	selectedDate.year = year;
	calendarDisplayMonth(selectedDate);
	if (document.getElementById("calYearMenu").style.display == "block") {
		calendarToggleMY("calYearMenu");
	}
	
}

function calendarSetMonth(month) {
	
	document.getElementById("calMonth").innerHTML = calendarLanguages[calendarLanguage].months[month-1];
	selectedDate.month = month;
	calendarDisplayMonth(selectedDate);
	if (document.getElementById("calMonthMenu").style.display == "block") {
		calendarToggleMY("calMonthMenu");
	}
	
}

function calendarNextMonth() {

	var newMonth = selectedDate.month;
	var newYear = parseInt(selectedDate.year);

	newMonth = parseInt(newMonth) + 1;
	if (newMonth > 12) {
		newMonth = 1;
		newYear = parseInt(newYear) + 1;
		calendarSetMonth(newMonth);
		calendarSetYear(newYear);
	} else {
		calendarSetMonth(newMonth);
	}
	
}

function calendarPrevMonth() {

	var newMonth = selectedDate.month;
	var newYear = selectedDate.year;
	
	
	newMonth = parseInt(newMonth) - 1;
	if (newMonth < 1) {
		newMonth = 12;
		newYear = parseInt(newYear) - 1;
		calendarSetMonth(newMonth);
		calendarSetYear(newYear);
	} else {
		calendarSetMonth(newMonth);
	}
	
}

function calendarSelectDate(year,month,day) {
	
	var monthDisplay = (month < 9) ? "0" + (month+1) : (month+1);
	var dayDisplay = (day < 10) ? "0" + day : day;
	
	if (calendarField.className.indexOf("alphaMonth") > 0) {
		calendarField.value = dayDisplay + "-" + calendarShortMonthsNumeric[month + 1] + "-" + year;
	} else {
		calendarField.value = dayDisplay + "/" + monthDisplay + "/" + year;
	}
	calendarClose();
	
}

function calendarPopulate() {

	if(document.getElementById("calendarSelector")) {
		
		var calHTML = '<div id="calMonthMenu">';
	
		for (i = 0; i < 12; i++) {
			calHTML += '<a href="#" id="calMonth' + calendarLanguages[calendarLanguage].months[i] + '" onclick="calendarSetMonth(' + (i+1) + '); return false;">' + calendarLanguages[calendarLanguage].months[i] + '</a>';
		}
		calHTML += '</div><div id="calYearMenu">';
		for (i = calendarStartYear; i <= calendarEndYear; i++) {
			calHTML += '<a href="#" id="calYear' + i + '" onclick="calendarSetYear(' + i + '); return false;">' + i + '</a>';
		}
		calHTML += '</div><div class="controls">';
		calHTML += '<a class="prev" href="#" onclick="calendarPrevMonth(); return false"></a>';
		calHTML += '<a class="month" id="calMonth" href="#" onclick="calendarToggleMY(\'calMonthMenu\'); return false;"></a>';
		calHTML += '<a class="year" id="calYear" href="#" onclick="calendarToggleMY(\'calYearMenu\'); return false;"></a>';
		calHTML += '<a class="next" href="#" onclick="calendarNextMonth(); return false"></a>';
		calHTML += '</div>';
		calHTML += '<ul class="weekdays">';
		for (i = 0; i < 7; i++) {
			calHTML += '<li>' + calendarLanguages[calendarLanguage].weekdays[i] + '</li>';
		}
		calHTML += '</ul><ul id="calDaysOfMonth"></ul>';
		calHTML += '<a href="#" class="close" onclick="calendarClose(); return false;">' + calendarLanguages[calendarLanguage].close + '</a>';
		
		document.getElementById("calendarSelector").innerHTML = calHTML;
		
	}

}

/* End Calendars */

/* Control visibility */

function showHideSetup(element) {

	// Find its mate
	var target = element.id.replace("Control","");
	if (!target) { return; }
	
	// Determine open/closed status
	var status = "Open";
	if (document.getElementById(target).className.indexOf("showHideInvisible") >= 0) { status = "Closed"; }
	
	// Create new <a> elements
	var title = element.innerHTML;
	element.innerHTML = "";
	
	var arrowEl = document.createElement('span');
	arrowEl.className = "showHide" + status;
	arrowEl.href = "#" + element.id;
	arrowEl.innerHTML = title;
	arrowEl.onclick = function() {
		showHideAuto(target,arrowEl,linkEl);
	}
	element.appendChild(arrowEl);
	
	var linkEl = document.createElement('span');
	linkEl.className = "showHideLink";
	linkEl.href = "#" + element.id;
	if (status == "Open") {
		linkEl.innerHTML = hideLanguages[currentLanguage];
	} else {
		linkEl.innerHTML = showLanguages[currentLanguage];
	}
	linkEl.onclick = function() {
		showHideAuto(target,arrowEl,linkEl);
	}
	element.appendChild(linkEl);
	
}

function hideElement(theElement) {
	
	var className = document.getElementById(theElement).className.toString();
	
	className = className.replace("showHideVisible","showHideInvisible");
	
	document.getElementById(theElement).className = className;
	
}

function showElement(theElement) {
	
	var className = document.getElementById(theElement).className.toString();
	
	className = className.replace("showHideInvisible","showHideVisible");
	
	document.getElementById(theElement).className = className;
	
}

function showHideElement(theElement) {
	if (document.getElementById(theElement).className.search("showHideVisible") >= 0) {
		hideElement(theElement);
	} else {
		showElement(theElement);
	}

}

function showHideAuto(target,arrow,detailLink) {
	var element = document.getElementById(target);
	if (element.className.search("showHideVisible") >= 0) {
		hideElement(element.id);
		arrow.className = "showHideClosed";
		detailLink.innerHTML = showLanguages[currentLanguage];
	} else {
		showElement(element.id);
		arrow.className = "showHideOpen";
		detailLink.innerHTML = hideLanguages[currentLanguage];
	}
}

/* End Control visibility */

/* Hover mouseover functions */

function hoverMouseover() {
	if (this.className == 'current') {
		this.className = 'currentHover';
	} else if (this.className == 'last') {
		this.className = 'lastHover';
	} else if (this.className == 'toolTip') {
		this.className = 'toolTipHover';
	} else if (this.className == 'actionMenu') {
		this.className = 'actionMenuHover';
		positionActionMenu(this.childNodes[0]);
	} else if (!this.className) {
		this.className = 'hover';
	}
}

/* Set up onMouseOut simulation */
function hoverMouseout() {
	if (this.className == 'currentHover') {
		this.className = 'current';
	} else if (this.className == 'lastHover') {
		this.className = 'last';
	} else if (this.className == 'toolTipHover') {
		this.className = 'toolTip';
	} else if (this.className == 'actionMenuHover' || this.className == 'actionMenuHoverLeft') {
		this.className = 'actionMenu';
		document.getElementById("actionMenuFrame").style.display = "none";
	} else if (this.className == 'hover') {
		this.className = '';
	}
}

/* End hover mouseover functions */

function setUpMenu() {

	if (!document.getElementById) return

	// Call local tab fixing for special site handling
	fixTabs();
	
	if (document.getElementById("navigation")) {
		/* Get tabs if we need them */
		tabs = document.getElementById("navigation");
	}
	
	if (document.getElementById("navigation")) {
		/* Adjust tabs as appropriate */
		var entries = tabs.childNodes;

		for (i = 0; i < entries.length; i++) {

			if (entries[i].nodeType == ELEMENT_NODE) {
				for(j = 0; j < entries[i].childNodes.length; j++) {

					if (entries[i].childNodes[j].nodeType == ELEMENT_NODE) {
						for (k = 0; k < entries[i].childNodes[j].childNodes.length; k++) {
							if (entries[i].childNodes[j].childNodes[k].nodeType == ELEMENT_NODE) {
								if (entries[i].childNodes[j].childNodes[k].innerHTML && nlsLanguage == "en") {
									entries[i].childNodes[j].childNodes[k].innerHTML = breakTab(entries[i].childNodes[j].childNodes[k].innerHTML);
									k = entries[i].childNodes[j].childNodes.length;
								} else {
									entries[i].childNodes[j].childNodes[k].innerHTML = "<span>" + entries[i].childNodes[j].childNodes[k].innerHTML + "</span>" ;
									k = entries[i].childNodes[j].childNodes.length;
								}
							}
						}
							
						entries[i].childNodes[j].innerHTML = "<strong><span>" + entries[i].childNodes[j].innerHTML + "</span></strong>";
						var subEntries = entries[i].childNodes[j].getElementsByTagName("li");
						
						for (k = 0; k < subEntries.length; k++) {
							subEntries[k].innerHTML = "<span>" + subEntries[k].innerHTML + "</span>";
						}

					}
				
				}
				
				entries[i].style.visibility = "visible";
				
			}

		}
		
	}

}

function setUp(){

	var elementList;

	if (!document.getElementById) return
	/* First do things we want to do in all modern browsers that support the DOM */

	// Calendar selector

	/* Language Settings */
	switch (nlsLanguage) {
		case "en": currentLanguage = en; break;
		case "es": currentLanguage = es; break;
		case "fr": currentLanguage = fr; break;
		case "zh": currentLanguage = zh; break;
		case "zh_tw": currentLanguage = zh_tw; break;
		case "ja": currentLanguage = ja; break;
		case "ko": currentLanguage = ko; break;
		case "ar": currentLanguage = ar; break;
		case "cs": currentLanguage = cs; break;
		case "pl": currentLanguage = pl; break;
		case "sk": currentLanguage = sk; break;
		case "ru": currentLanguage = ru; break;
		default: currentLanguage = en;
	}
	calendarLanguage = currentLanguage;

	// Calendar holder
	var calHTML = '<div id="calendarSelector"></div><iframe id="calendarFrame" src="/solutions/images/clear.gif" scrolling="no" frameborder="no"></iframe>';

	// ToolTip holder
	var toolTipHTML = '<div id="toolTip"></div><iframe id="toolTipFrame" src="/solutions/images/clear.gif" scrolling="no" frameborder="no"></iframe>';
	
	// Action Menu iframe
	var actionMenuFrameHTML = '<iframe id="actionMenuFrame" src="/solutions/images/clear.gif" scrolling="no" frameborder="no"></iframe>';

var footer = document.getElementById("foot");
	footer.outerHTML = footer.outerHTML + toolTipHTML + calHTML + actionMenuFrameHTML;
	
	// Populate calendar
	calendarPopulate();

	/* Display the page since the tab manipulation is done */
	/* Being kept for R10 implementation */

	/* Set up calendar widget handler */

	elementList = new Array("input");

	for (j = 0; j < elementList.length; j++) {

		var items;
		items = document.getElementsByTagName(elementList[j]);
		
		// Set up hover simulation
		for (var i = 0; i < items.length; i++) {
			
			if (items[i].className.indexOf("calendar") >= 0) {
				items[i].size = 10;
				items[i].maxLength = 10;
				if(items[i].className.indexOf("alphaMonth") >= 0) {
					items[i].size = 11;
					items[i].maxLength = 11;
				}
				items[i].title = entityToUTF(calendarLanguages[getElementLanguage(items[i])].hover);
				items[i].onclick = function() {
					calendarOpen(this);
				}
			}

		}

	}
	
	/* End calendar widget handler */

	/* Set up required asterisk */

	elementList = new Array("label","th","td");

	for (j = 0; j < elementList.length; j++) {

		var items;
		items = document.getElementsByTagName(elementList[j]);
		
		// Set up hover simulation
		for (var i = 0; i < items.length; i++) {
			
			if (items[i].parentNode.className.indexOf("required") >= 0) {
				items[i].title = entityToUTF(requiredLanguages[getElementLanguage(items[i].parentNode)]);
				items[i].innerHTML = items[i].innerHTML + "<span>&nbsp;</span>";
			} else if (items[i].className.indexOf("required") >= 0) {
				items[i].title = entityToUTF(requiredLanguages[getElementLanguage(items[i])]);
				items[i].innerHTML = items[i].innerHTML + "<span>&nbsp;</span>";
			}

		}

	}
	
	/* End required asterisk */

	/* Set up showHide */

	elementList = new Array("h1","h2");

	for (j = 0; j < elementList.length; j++) {

		var items;
		items = document.getElementsByTagName(elementList[j]);
		
		// Set up hover simulation
		for (var i = 0; i < items.length; i++) {
			
			if (items[i].className.indexOf("showHide") >= 0) {
				showHideSetup(items[i]);
			}

		}

	}
	
	/* End required showHide */

	/* Handle bread crumb length */

	if (document.getElementById("breadcrumbs")) {
		var crumbs = document.getElementById("breadcrumbs");
		if (crumbs.scrollWidth > maxCrumbWidth) {
			var items = crumbs.getElementsByTagName("a");
			for (var i =0; i<items.length; i++) {
				if (items[i].innerHTML.length > maxCrumbLength) {
					items[i].innerHTML = items[i].innerHTML.substr(0,maxCrumbLength) + " ...";
				}
				if (crumbs.scrollWidth <= maxCrumbWidth) { break; }
			}
		}
	}
	
	/* End handle bread crumb length */

	if (document.all) {
	/* Continue to do IE-specific stuff */

	// Do some navigation work
	if (document.getElementById("navigation")) {
		elementList = new Array("ul");

		// Check for long tab menus and handle accordingly
		for (j = 0; j < elementList.length; j++) {

			var items = tabs.getElementsByTagName(elementList[j]);
	
			for (var i = 0; i < items.length; i++) {
				if (items[i].className == "popUpMenu") {
					// Is the menu in question long?
					if (items[i].childNodes.length > maxMenu) {
						// If so, split it and hang a "More ..." off the end for the extra items
						var newHTML = ""
						for (k = 0; k < maxMenu; k++) {
							newHTML += items[i].childNodes[k].outerHTML;
						}
						newHTML += '<li><span><a href="#" class="menuExtension">' + nlsMoreTxt + '</a><ul class="popUpMenu">';
						for (k = maxMenu; k < items[i].childNodes.length; k++) {
							newHTML += items[i].childNodes[k].outerHTML;
						}
						newHTML += '</ul></span></li>';
						items[i].innerHTML = newHTML;
						// If the menu is off the bottom of the screen as it is currently open, accomodate the problem
						var moreMenu = items[i].childNodes[maxMenu].childNodes[0].childNodes[1];
					}
				}
			}

		}
		
	}
	
	if (navigator.userAgent.indexOf("MSIE 7") < 0) {
		/* Set up SELECT iframe handler for pop-up menus for IE*/
		var elementList = new Array("ul");
	
		for (j = 0; j < elementList.length; j++) {
	
			var items = document.getElementsByTagName(elementList[j]);
		
			for (var i = 0; i < items.length; i++) {
				if (items[i].className == "popUpMenu" || items[i].className == "popUp") {
					if (items[i].parentNode.parentNode.parentNode.parentNode.parentNode.id != "navigation"){
						if ((getObjectTop(items[i]) + items[i].offsetHeight + bottomOffset) > (getWindowHeight())) {
							items[i].style.top = items[i].offsetTop - ((getObjectTop(items[i]) + items[i].offsetHeight) - (getWindowHeight())) - bottomOffset;
						}
					}
					// Set up the iframe to fix IE's problems.
					items[i].parentNode.innerHTML = items[i].parentNode.innerHTML + '<iframe style="top: ' + items[i].offsetTop + 'px; left: ' + items[i].offsetLeft + 'px; width: ' + (items[i].offsetWidth) + '; height: ' + (items[i].offsetHeight) + ';" src="/solutions/images/clear.gif" scrolling="no" frameborder="0"></iframe>';
				}
			}
	
		}
		
		/* Set up tooltip iframe handler for IE*/
		var containers = document.getElementsByTagName("dd");
		
		for (k = 0; k < containers.length; k++) {

			var elementList = new Array("span");
		
			for (j = 0; j < elementList.length; j++) {
		
				var items = containers[k].getElementsByTagName(elementList[j]);
			
				for (var i = 0; i < items.length; i++) {
					if (items[i].parentNode.className == "toolTip") {
						outerHTML = items[i].outerHTML;
						items[i].outerHTML = '<iframe src="/solutions/images/clear.gif" scrolling="no" frameborder="0" style="height: ' + (items[i].offsetHeight + 2) + '; width: ' + (items[i].offsetWidth + 2)  + ';"></iframe>' + outerHTML;
					}
				}
		
			}
		
		}

/* Set up artificial hover handler for IE */
		elementList = new Array("dd","span");
	
		for (j = 0; j < elementList.length; j++) {
	
			var items;
			items = document.getElementsByTagName(elementList[j]);
			
			/* Set up hover simulation */
			for (var i = 0; i < items.length; i++) {
				
					/* Set up onMouseOver simulation */
					items[i].onmouseover = hoverMouseover;
					/*items[i].onmouseover = function() {
						if (this.className == 'current') {
							this.className = 'currentHover';
						} else if (this.className == 'last') {
							this.className = 'lastHover';
						} else if (this.className == 'toolTip') {
							this.className = 'toolTipHover';
						} else if (this.className == 'actionMenu') {
							this.className = 'actionMenuHover';
							positionActionMenu(this.childNodes[0]);
						} else if (!this.className) {
							this.className = 'hover';
						}
					}*/
					
					/* Set up onMouseOut simulation */
					items[i].onmouseout = hoverMouseout;
					/*items[i].onmouseout  = function() {
						if (this.className == 'currentHover') {
							this.className = 'current';
						} else if (this.className == 'lastHover') {
							this.className = 'last';
						} else if (this.className == 'toolTipHover') {
							this.className = 'toolTip';
						} else if (this.className == 'actionMenuHover' || this.className == 'actionMenuHoverLeft') {
							this.className = 'actionMenu';
							document.getElementById("actionMenuFrame").style.display = "none";
						} else if (this.className == 'hover') {
							this.className = '';
						}
					}*/
					
			}
	
		}
		/* End artificial hover handler for IE */
	
		/* Set up artificial hover handler for funcBox on content pages*/
		if (document.getElementById("r1c1r1c1")) {
			var column = document.getElementById("r1c1r1c1");
			var childDivs = column.getElementsByTagName("div");
			
			for (var k = 0; k < childDivs.length; k++) {
				if (childDivs[k].className.indexOf('funcBox') >= 0) {
					
					elementList = new Array("li");
		
					for (j = 0; j < elementList.length; j++) {
		
						var items;
						items = childDivs[k].getElementsByTagName(elementList[j]);
				
						for (var i = 0; i < items.length; i++) {
					
							items[i].onmouseover = function() {
								this.className = 'hover';
							}
						
							items[i].onmouseout  = function() {
								this.className = '';
							}
						}
						
					}
					
				}
			}
		}
					
		/* End artificial hover handler for IE for funcBox*/

		
	}
	
	/* Set up artificial title tooltip handler for select lists in IE */

	elementList = new Array("select");

	for (j = 0; j < elementList.length; j++) {

		var items;
		items = document.getElementsByTagName(elementList[j]);
		
		// Set up hover simulation
		for (var i = 0; i < items.length; i++) {
			
			if (items[i].className.indexOf("toolTip") >= 0) {
				// Set up onMouseOver simulation
				if (typeof items[i].onmouseover != "function") {
					items[i].onmouseover = function() {
						setSelectToolTip(this); showSelectToolTip(this);
					}
				} else {
					var currentevent = items[i].onmouseover;
					items[i].onmouseover = function() {
						if (currentevent) currentevent();
						setSelectToolTip(this); showSelectToolTip(this);
					}
				}
				
				// Set up onMouseOut simulation
				if (typeof items[i].onmouseout != "function") {
					items[i].onmouseout = function() {
						hideSelectToolTip();
					}
				} else {
					var currentevent = items[i].onmouseout;
					items[i].onmouseout = function() {
						if (currentevent) currentevent();
						hideSelectToolTip();
					}
				}
					
				// Set up onClick simulation
				// Set up onMouseOut simulation
				if (typeof items[i].onclick != "function") {
					items[i].onclick = function() {
						hideSelectToolTip();
					}
				} else {
					var currentevent = items[i].onclick;
					items[i].onclick = function() {
						if (currentevent) currentevent();
						hideSelectToolTip();
					}
				}
			}

		}

	}
	
	/* End artificial tool-tip handler for IE */

	/* IE 7 handler for select lists with labels on options */
	if (navigator.userAgent.indexOf("MSIE 7") >= 0) {
		
		elementList = new Array("select");
		x = 0;
	
		for (j = 0; j < elementList.length; j++) {
	
			var items;
			items = document.getElementsByTagName(elementList[j]);
			
			// Set up hover simulation
			var numLists = items.length;
			for (var i = 0; i < numLists; i++) {
				
				var entries;
				entries = items[i].getElementsByTagName("option");
				
				var haveLabel = 0;
				
				for (var k = 0; k < entries.length; k++) {
					if (entries[k].label) {
						haveLabel = 1;
						break;
					}
				}
				
				if (haveLabel) {
					/* clone node */
					var clone = document.createElement("select");
					/* check for id on list */
					if (!items[i].id) {
						/* assign unique id */
						items[i].id = items[i].name + x;
					}
					clone.id = items[i].id + "Visible";
					clone.name = "";
					clone.className = items[i].className;
					clone.className.replace("toolTip","");
					clone.disabled = items[i].disabled;
					for (var k = 0; k < items[i].childNodes.length; k++) {
						if (items[i].childNodes[k].nodeType == 1) {
							var cloneOption = items[i].childNodes[k].cloneNode(true);
							clone.appendChild(cloneOption);
						}
					}
					/* Store tracker number */
					clone.hsbcSelectTracker = x;
					items[i].hsbcSelectTracker = x;
					/* store clone/parent */
					selectOriginals[x] = items[i];
					selectClones[x] = clone;
					selectParents[x] = items[i].parentNode;
					x++;
				}
				
			}
			
			for (var i = 0; i < selectClones.length; i++) {
	
				// Remove labels
				var entries;
				entries = selectClones[i].getElementsByTagName("option");
				
				for (j = 0; j < entries.length; j++) {
					entries[j].label = "";
				}
	
				// Match selected item
				selectClones[i].selectedIndex = selectOriginals[i].selectedIndex;
	
				// Hide original
				selectOriginals[i].className = selectOriginals[i].className + " invisible";
				
				// Add clone
				selectParents[i].insertBefore(selectClones[i],selectOriginals[i]);
				
				// Add event handlers
				
				/* onChange for original list -- keep original onChange function */
				if (typeof selectOriginals[i].onchange != "function") {
					selectOriginals[i].onchange = function() {
						if (selectClones[this.hsbcSelectTracker].selectedIndex != selectOriginals[this.hsbcSelectTracker].selectedIndex) {
							selectClones[this.hsbcSelectTracker].selectedIndex = selectOriginals[this.hsbcSelectTracker].selectedIndex;
						}
					}
				} else {
					var currentOnChange = selectOriginals[i].onchange;
					selectOriginals[i].onchange = function() {
						if (selectClones[this.hsbcSelectTracker].selectedIndex != selectOriginals[this.hsbcSelectTracker].selectedIndex) {
							selectClones[this.hsbcSelectTracker].selectedIndex = selectOriginals[this.hsbcSelectTracker].selectedIndex;
						}
						if (currentOnChange) {
							currentOnChange();
						}
					}
				}
				
				/* onMouseover for visible clone list */
				selectClones[i].onmouseover = targetEventHandler;
				selectClones[i].onmouseout = targetEventHandler;
				selectClones[i].onclick = targetEventHandler;
				selectClones[i].onselect = targetEventHandler;
				selectClones[i].onchange = targetEventHandler;
	
				selectOriginals[i].handleEvent = function(e) {
					if (e.type == "mouseover" && this.onmouseover) this.onmouseover();
					if (e.type == "mouseout" && this.onmouseout) this.onmouseout();
					if (e.type == "click" && this.onclick) this.onclick();
					if (e.type == "select" && this.onselect) this.onselect();
					if (e.type == "change" && this.onchange) this.onchange();
				}
				
				function targetEventHandler(e) {
					e = e||window.event;
					if (e.type == "change") {
						selectOriginals[this.hsbcSelectTracker].selectedIndex = selectClones[this.hsbcSelectTracker].selectedIndex;
					}
					selectOriginals[this.hsbcSelectTracker].handleEvent(e);
				}
				
	
			}
	
		}
	
	}
	
	/* End IE 7 handler for select lists with labels on options */

	/* IE7 handler for action menus */
	if (navigator.userAgent.indexOf("MSIE 7") >= 0) {
		var items;
		items = document.getElementsByTagName("span");
			
		/* Set up hover simulation */
		for (var i = 0; i < items.length; i++) {
				
				/* Set up onMouseOver simulation */
				items[i].onmouseover = function() {
					if (this.className == 'actionMenu') {
						this.className = 'actionMenuHover';
						positionActionMenu(this.childNodes[0]);
					}
				}
					
				/* Set up onMouseOut simulation */
				items[i].onmouseout  = function() {
					if (this.className == 'actionMenuHover' || this.className == 'actionMenuHoverLeft') {
						this.className = 'actionMenu';
						document.getElementById("actionMenuFrame").style.display = "none";
					}
				}
				
		}
	
	}

	/* End IE7 handler for action menus */

	}
	
	/* Handler for hourglass on document unload */
	document.body.onunload = function() {
		document.body.style.cursor = "wait";
	}


	document.body.style.cursor = "default";

	/* Reset z-indexing of tools */
	var column1 = document.getElementById("r1c1");
	var column2 = document.getElementById("r1c2");
	
	var z = 50;
	
	for (i = 0; i < column1.childNodes.length; i++) {
		if (column1.childNodes[i].nodeType == ELEMENT_NODE && column1.childNodes[i].className.indexOf("row") < 0) {
			column1.childNodes[i].style.zIndex = z;
			column1.childNodes[i].style.position = "relative";
			z--;
		}
	}
	
	if (column2 && column2.childNodes) {
		column2.style.zIndex = 49;
		for (i = 0; i < column2.childNodes.length; i++) {
			if (column2.childNodes[i].nodeType == ELEMENT_NODE) {
				column2.childNodes[i].style.zIndex = z;
				column2.childNodes[i].style.position = "relative";
				z--;
			}
		}
	}
	/* End resetting z-indexing of tools*/
	
	/* Set up calendar */
	calendar = document.getElementById("calendarSelector");
	calendarFrame = document.getElementById("calendarFrame");

	// Call local tab fixing for special site handling
	//staffDisplay();
	fixLinks();
	attach_giws_handlers();

}

