var DateFormatString = "yyyy-mm-dd";

if (location.href.indexOf('lang=fr') >-1) { currentLang = 'fra' }
else { currentLang = 'eng' }

if (window.attachEvent)
	window.attachEvent("onload", fixMinHeight);

if (window.addEventListener)
	window.addEventListener("load", fixMinHeight, false);

function fixMinHeight() {
	if (document.getElementById) {
		var ca = document.getElementById("contentArea");
		var cf = document.getElementById("contentFrame");
		var sm = document.getElementById("sideMenu");
		if (!ca || !sm || ca.offsetHeight >= sm.offsetHeight-30)
			return;
		if (cf.offsetHeight < sm.offsetHeight-30)
			cf.style.height = (sm.offsetHeight-30)+"px";
	}
}

var dateField = null;
var CalFrameObj = null;
var CalFrameInit = false;
function ShowCalendar(thisObj) {
	dateField = null;
	dateField = $(thisObj).getPrevious();
	if (!dateField || dateField.tagName != "INPUT") {
		var parentElem = $(thisObj).getParent();
		dateField=parentElem.getElementsByTagName('INPUT')[0];
	}
	if (!CalFrameObj) {
		CalFrameObj = new Element('iframe', {
			'styles': {'position': 'absolute', 'display':'none',
				'z-index': '100', 'margin':'0px',
				'bottom':'0px', 'border': 'solid 1px black', 'background': 'white',
				'width':'175px', 'height': '205px'
				},
			'id': 'CalFrame', 'name': 'CalFrame', 'src': '/php_core/calendar.php?'+Math.random(), 
			'frameBorder': '0',	'scrolling': 'no', 'marginHeight': '0',
			'allowTransparency': false, 'marginWidth': '0'
			}).injectInside($(document.body));
	}
	var CalFrameIndex = null;
	if (document.frames) {
		for (i=0;i<document.frames.length;i++) {
			if (document.frames[i].location.href.toLowerCase().indexOf("calendar.php") > -1)
				CalFrameIndex = i;
		}
	}
	CalFrameObj.setStyles({display: "", left: $(thisObj).getLeft()+"px",top: $(thisObj).getTop()+"px"});
	CalFrameObj.src = "/php_core/calendar.php?lang="+currentLang+"&"+Math.random();

	document.addEvent("mouseup", hideCalendar);
	return false;
}

function hideCalendar() {
	CalFrameObj.style.display = "none";
	document.removeEvent("mouseup", hideCalendar);
	dateField = null;
}

function setLinkRedirects() {
	if (document.getElementsByTagName) {
		var allAnchors = document.getElementsByTagName("A");
		for (var i=0; i<allAnchors.length; i++) {
			if (allAnchors[i].href.toLowerCase().indexOf("http://") == 0 && allAnchors[i].href.toLowerCase().indexOf(location.hostname.toLowerCase()) == -1) {
				allAnchors[i].target = "_blank";
			}
		}
	}
}

function fixAnchorsIE() {
	if (document.layers) return;
	var sideBarObj = document.getElementById("sideMenu");
	if (sideBarObj.getElementsByTagName) {
		var allAnchors = sideBarObj.getElementsByTagName("A");
		for (var i=0; i<allAnchors.length; i++) {
			allAnchors[i].style.width = "160px";
		}
	}
}

function fixPaddingIE() {
	if (document.layers) return;
	var divObjs = document.getElementsByTagName("DIV");
	for (var i=0; i<divObjs.length; i++) {
		var divObj = divObjs[i];
//		alert(divObj.style.cssText);
		if (divObj.style && divObj.style.padding != "") {
			alert(divObj.style.padding);
		}
	}
}

/* Return an object by name, checking to see if the value passed is already an object */
function getThisObj (objName) {
	if (typeof(objName) == 'object') {
		return objName;
	} else {
		if (document.getElementById && document.getElementById(objName)) {
			return document.getElementById(objName);
		} else if (document.layers && document.layers[objName]) {
			return document.layers[objName];
		} else if (document.all && document.all[objName]) {
			return document.all[objName];
		} else if (document[objName]) {
			return document[objName];
		} else {
			alert(objName + " not found!");
			return false;
		}
	}
}

/* get the left pixel position for a given element */
function getXPos(thisObj) {
	var x=0;
	do {
		x += thisObj.offsetLeft;
		thisObj = thisObj.offsetParent;
	} while (thisObj != null)
	return x;
}

/* get the top pixel position for a given element */
function getYPos(thisObj) {
	var y=0;
	do {
		y += thisObj.offsetTop;
		thisObj = thisObj.offsetParent;
	} while (thisObj != null)
	return y;
}

function telephoneFrmt(formElement) {
	formElement.value = formElement.value.replace(/\D+/g,"");
	if (formElement.value.replace(/^1(\d{3})(\d{3})(\d{4})(\d+)/g,"true") == "true") {
		formElement.value = formElement.value.replace(/^1(\d{3})(\d{3})(\d{4})(\d+)/g,"1 ($1) $2-$3 x$4");
	} else if (formElement.value.replace(/^1(\d{3})(\d{3})(\d{4})/g,"true") == "true") {
		formElement.value = formElement.value.replace(/^1(\d{3})(\d{3})(\d{4})/g,"1 ($1) $2-$3");
	} else if (formElement.value.replace(/^(\d{3})(\d{3})(\d{4})(\d+)/g,"true") == "true") {
		formElement.value = formElement.value.replace(/^(\d{3})(\d{3})(\d{4})(\d+)/g,"($1) $2-$3 x$4");
	} else {
		formElement.value = formElement.value.replace(/^(\d{3})(\d{3})(\d{4})/g,"($1) $2-$3");
	}
}

function PSCodeFrmt(formElement) {
	formElement.value = formElement.value.toUpperCase().replace(/[^A-Z0-9]+/g,"");
	if (formElement.value.replace(/^([A-Z]\d[A-Z])(\d[A-Z]\d)$/g,"true") == "true") {
		formElement.value = formElement.value.replace(/^([A-Z]\d[A-Z])(\d[A-Z]\d)$/g,"$1 $2");
	} else {
		formElement.value = "";
	}	
}

var activeSidebarMenu = null;
function showSubMenu() {
	var objThis = this;
	for(var i = 0; i  < objThis.childNodes.length; i++) {
		if(objThis.childNodes.item(i).nodeName == "UL")	{
			objThis.childNodes.item(i).style.filter = "progid:DXImageTransform.Microsoft.Inset(duration=0.25)";
//			objThis.childNodes.item(i).style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.5)";
			if (objThis.childNodes.item(i).filters && objThis.childNodes.item(i) != activeSidebarMenu) {
				objThis.childNodes.item(i).filters[0].Apply();
				objThis.childNodes.item(i).style.display = "block";
				objThis.childNodes.item(i).filters[0].Play();
			} else {
				objThis.childNodes.item(i).style.display = "block";
			}			
			objThis.childNodes.item(i).style.marginTop = (-1 * parseInt(objThis.offsetHeight,10))+"px";
			activeSidebarMenu = objThis.childNodes.item(i);
		}
	}
}

function hideSubMenu() {								
	var objThis = this;
	for(var i = 0; i  < objThis.childNodes.length; i++) {
		if(objThis.childNodes.item(i).nodeName == "UL") {
			objThis.childNodes.item(i).style.display = "none";
			activeSidebarMenu = objThis.childNodes.item(i);
			return;
		}
	}
}

function initialiseMenu(menuObject) {
	var objLICollection = menuObject.getElementsByTagName("LI");
	for(var i = 0; i < objLICollection.length; i++) {		
		var objLI = objLICollection[i];
		for(var j = 0; j  < objLI.childNodes.length; j++) {
			if(objLI.childNodes.item(j).nodeName == "UL") {
				objLI.childNodes.item(j).style.zIndex = 200;
				objLI.onmouseover=showSubMenu;
				objLI.onmouseout=hideSubMenu;
				for(var k = 0; k  < objLI.childNodes.length; k++) {
					if(objLI.childNodes.item(k).nodeName == "A") {					
						objLI.childNodes.item(k).className = "hassubmenu";
					}
				}
			}
		}
	}
}

var mainStyleSheetUrl = "";
function togglePrintView() {
	if (document.styleSheets[0].href == "null") {
		document.styleSheets[0].href = mainStyleSheetUrl;
		document.getElementById("topBanner").style.display="block";
		document.getElementById("clfCommonMenu").style.display="block";
		document.getElementById("sideMenu").style.display="block";
	} else {
		mainStyleSheetUrl = document.styleSheets[0].href;
		document.styleSheets[0].href="null";
		document.getElementById("topBanner").style.display="none";
		document.getElementById("clfCommonMenu").style.display="none";
		document.getElementById("sideMenu").style.display="none";
	}
}

/*
if (window.attachEvent)
	window.attachEvent("onload", function (e) { initialiseMenu(document.getElementById("sideMenu")); });

if (window.addEventListener)
	window.addEventListener("load", function (e) { initialiseMenu(document.getElementById("sideMenu")); }, false);
*/

// always returns year, month, day
function getDateArray(dtString,dtFrmt) {
	var separator = "-";
	if (dtFrmt.indexOf('/') != -1) {
		separator = "/";
	} else if (dtFrmt.indexOf('.') != -1) {
		separator = ".";
	}
	var dtFrmtArray = dtFrmt.toLowerCase().split(separator);
	var dtStringArray = dtString.split(separator);
	var ymd = new Array;
	var parseError = false;
	if (dtFrmtArray.length == 3 && dtStringArray.length == 3) {
		for (i=0;i<3;i++) {
			if (dtFrmtArray[i].charAt(0) == "m") {
				ymd[1] = parseInt(dtStringArray[i],10);
			} else if (dtFrmtArray[i].charAt(0) == "d") {
				ymd[2] = parseInt(dtStringArray[i],10);
			} else if (dtFrmtArray[i].charAt(0) == "y") {
				ymd[0] = parseInt(dtStringArray[i],10);
			} else {
				parseError = true;
			}
		}
	} else {
		parseError = true;
	}
	if (parseError) {
		return null;
	} else {
		return ymd;
	}
}
function getDateString(year,month,day,dtFrmt) {
	var separator = "-";
	if (dtFrmt.indexOf('/') != -1) {
		separator = "/";
	} else if (dtFrmt.indexOf('.') != -1) {
		separator = ".";
	}
	var dtFrmtArray = dtFrmt.toLowerCase().split(separator);
	var DateOutput = "";
	var parseError = false;
	if (dtFrmtArray.length == 3) {
		for (var i=0;i<3;i++) {
			if (DateOutput != "") {
				DateOutput = DateOutput + separator;
			}
			if (dtFrmtArray[i] == "mm") {
				DateOutput = DateOutput + padNumber(2,month+"");
			} else if (dtFrmtArray[i] == "m") {
				DateOutput = DateOutput + (parseInt(month,10)+0);
			} else if (dtFrmtArray[i] == "dd") {
				DateOutput = DateOutput + padNumber(2,day+"");
			} else if (dtFrmtArray[i] == "d") {
				DateOutput = DateOutput + (parseInt(day,10)+0);
			} else if (dtFrmtArray[i] == "yy") {
				DateOutput = DateOutput + year.substring(2,3);
			} else if (dtFrmtArray[i] == "yyyy") {
				DateOutput = DateOutput + ((parseInt(year,10) < 100) ? (parseInt(year,10) + 2000) : year);
			} else {
				parseError = true;
			}
		}
	}
	if (parseError) {
		return "";
	} else {
		return DateOutput;
	}
}

function padNumber(padLength,StringNumber) {
	StringNumber = StringNumber.replace(/[^0-9]/g,"");
	var padElem = padLength - StringNumber.length;
	for (var i=0;i<padElem;i++) {
		StringNumber = "0"+StringNumber;
	}
	return StringNumber;
}

var currentFontScaling = null;
function textSize(upDown) {
	if (!currentFontScaling) currentFontScaling = parseInt(Get_Cookie("_fs"),10);
	var currSize = currentFontScaling;
	if (!currSize) currSize = 80;
	if (upDown == 1)
		currSize = currSize+10;
	else if (upDown == -1)
		currSize = currSize-10;
	if (currSize < 60) currSize = 60;
	if (currSize > 160) currSize = 160;
	currentFontScaling = currSize;
	document.getElementsByTagName("BODY")[0].style.fontSize=currSize+"%";
	Set_Cookie("_fs", currSize);
	return false;
}


/******************************************************/
/* Functions for getting and setting cookie values    */
/******************************************************/
function Set_Cookie( _name, _value, _expires, _path, _domain, _secure ) {
	var setCookie = Cookie.set(_name, _value, {duration: (_expires?_expires:0), path: (_path?_path:"/"),  domain: (_domain?_domain:""),  secure: (_secure?_secure:"")});
	if (!_value || _value == "")
		Cookie.remove(setCookie);
}
// this function gets the cookie, if it exists
function Get_Cookie(_name) {
	return Cookie.get(_name);
}



