var bo_ns_id = 0;

function isIE() { var strBrowser = navigator.userAgent.toLowerCase(); if (strBrowser.indexOf("msie") > -1 && strBrowser.indexOf("mac") < 0) { return true; } else { return false; } }
function startIeFix() { if (isIE()) { document.write('<div id="bo_ns_id_' + bo_ns_id + '"><!-- '); } }
function endIeFix() { if (isIE()) { document.write('</div>'); var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++); var theCode = theObject.innerHTML; theCode = theCode.substring(4 ,9+theCode.indexOf("</object>")); document.write(theCode); } }

function getObject(elementId) { if (document.getElementById) { return document.getElementById(elementId); } else if (document.all) { return document.all[elementId]; } else if (document.layers) { return document.layers[elementId]; } }
function getObjectByName(elementName) { if (document.getElementByName) { return document.getElementByName(elementName); } else if (document.all) { return document.all[elementName]; } else if (document.layers) { return document.layers[elementName]; } }
function getObjectHeight(i) { return i.offsetHeight; }
function getObjectWidth(i) { return i.offsetWidth;  }
function getObjectLeft(i) { var curleft = 0; if(i.offsetParent) { while(1) { curleft += i.offsetLeft; if(!i.offsetParent) break; i = i.offsetParent; } } else if(i.x) { curleft += i.x; }	return curleft; }
function getObjectTop(i) { var curtop  = 0; if(i.offsetParent) { while(1) { curtop  += i.offsetTop;  if(!i.offsetParent) break; i = i.offsetParent; } } else if(i.y) { curtop  += i.y; } return curtop;  }
function getObjectRight(i) { return getObjectLeft(i) + getObjectWidth(i); }
function getObjectBottom(i) { return getObjectTop(i) + getObjectHeight(i); }
function getObjectsByTagAndClass(tag, cls) { var array = document.getElementsByTagName(tag); var output = new Array(); var matches = 0; for(var i=0;i<array.length;i++) { var parts = array[i].className.split(' '); for(var j=0;j<parts.length;j++) { if(parts[j]==cls) { output[matches++]=array[i]; } } } return output; }
function getTargetFromEvent(e) { if (!e) var e = window.event; if (e.target) var tg = e.target; else if (e.srcElement) var tg = e.srcElement; while (tg.nodeType != 1) tg = tg.parentNode; return tg; }
function getBrowserWidth() { if(window.innerWidth) return window.innerWidth; else if(document.body.clientWidth) return document.body.clientWidth; else return -1; }
function getBrowserHeight() { return document.documentElement.clientHeight; }
function getBodyHeight() { if(document.body.clientHeight) return document.body.clientHeight; else return -1; }
function getBodyWidth() { if(document.body.clientWidth) return document.body.clientWidth; else return -1; }
function checkstr(rex, str) { if (rex == null || rex == "" || str == null || str == "") return false; for (var i=0; i < str.length; i++ )  { if( rex.indexOf(str.substring(i,i+1)) < 0) return false; } return true; }
function checknumeric(num) { if (isNaN(num)) return false; return true; }
function checkchar(str) { if (checkstr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', str)) return true; return false; }
function checkemail(email) { if (email.length == 0) return false; if (email.indexOf("@") < 0) return false; if (email.indexOf(".") < 0) return false; if (!checkstr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_-.@', email)) return false; if (email.search(/(\S+)@(\S+)\.(\S+)/) == -1) return false; return true; }
function checkdate(dateStr) { var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; var matchArray = dateStr.match(datePat); if (matchArray == null) { alert("Please enter your birth date as dd/mm/yyyy. Your current selection reads: " + dateStr); return false; } day = matchArray[1]; month = matchArray[3]; year = matchArray[5]; if (month < 1 || month > 12) { alert("Month must be between 1 and 12."); return false; } if (day < 1 || day > 31) { alert("Day must be between 1 and 31."); return false; } if ((month==4 || month==6 || month==9 || month==11) && day==31) { alert("Month "+month+" doesn`t have 31 days!"); return false; } if (month == 2) { var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day > 29 || (day==29 && !isleap)) { alert("February " + year + " doesn`t have " + day + " days!"); return false; } } return true; }
function trim(str, chars) { return ltrim(rtrim(str, chars), chars); }
function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); }
function rtrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); }
function getRadioValue(nm) { var obj = getObjectByName(nm); var val = ""; if (obj != null) { if (typeof(obj.length) != "undefined") { for (var i=0;i<obj.length;i++) { if (obj[i].checked) { val = obj[i].value; break; } } } else { if (obj.checked) val = obj[i].value; } } return val; }
function getCheckValue(nm) { var obj = getObjectByName(nm);	var val = ""; var cnt = 0; if (obj != null) { if (typeof(obj.length) != "undefined") { for (var i=0;i<obj.length;i++) { if (obj[i].checked) { if (cnt == 0) { val += obj[i].value; } else { val += "," + obj[i].value; } cnt++; } } } else { if (obj.checked) val = obj.value; } } return val; }
function setCheckValue(nm, chk) { var checked = false; var obj = getObjectByName(nm); if (obj != null) { if (typeof(obj.length) != "undefined") { for (var i=0;i<obj.length;i++) { if (!obj[i].checked) checked = true; } if (checked) { for (var j=0;j<obj.length;j++) obj[j].checked = chk; }	else { for (var k=0;k<obj.length;k++) obj[k].checked = !chk; } } else { if (obj.checked) { obj.checked = false; } else { obj.checked = true; } } } }
function setCheckValue(p, nm, chk) { var checked = false; var obj = getObjectByName(nm); if (obj != null) { if (typeof(obj.length) != "undefined") { if (p.checked) { for (var i=0;i<obj.length;i++) { obj[i].checked = true; } } else { for (var i=0;i<obj.length;i++) { obj[i].checked = false; } } } else { if (p.checked) { obj.checked = true; } else { obj.checked = false; } } } }
function GetXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { } } } return xmlreq; }
function urlDecode(str){ str=str.replace(new RegExp('\\+','g'),' '); return unescape(str); }
function urlEncode(str){ str=escape(str); str=str.replace(new RegExp('\\+','g'),'%2B'); return str.replace(new RegExp('%20','g'),'+'); }
function ShowMain(page, wndname, w, h, scroll) { var x = (screen.width - w) / 2; var y = (screen.height - h) / 2; y -= 20; var param = 'height=' + h + ',width=' + w + ',top=' + y + ',left=' + x + ',scrollbars=' + scroll + ',resizable=no,directories=no,status=no,toolbar=no,menubar=no,location=no'; var hWnd  = window.open('', wndname, param); if (hWnd != null) hWnd.location.href = page; if (parseInt(navigator.appVersion) >= 4) hWnd.window.focus(); }
function MM_findObj(n, d) { var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p); } if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; }
function MM_swapImage() { var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }
function MM_nbGroup(event, grpName) { var i,img,nbArr,args=MM_nbGroup.arguments; if (event == "init" && args.length > 2) { if ((img = MM_findObj(args[2])) != null && !img.MM_init) { img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src; if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array(); nbArr[nbArr.length] = img; for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) { if (!img.MM_up) img.MM_up = img.src; img.src = img.MM_dn = args[i+1]; nbArr[nbArr.length] = img; } } } else if (event == "over") { document.MM_nbOver = nbArr = new Array(); for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) { if (!img.MM_up) img.MM_up = img.src; img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1]; nbArr[nbArr.length] = img; } } else if (event == "out" ) { for (i=0; i < document.MM_nbOver.length; i++) { img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; } } else if (event == "down") { if ((nbArr = document[grpName]) != null) for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; } document[grpName] = nbArr = new Array(); for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) { if (!img.MM_up) img.MM_up = img.src; img.src = img.MM_dn = args[i+1]; nbArr[nbArr.length] = img; } } }
function MM_swapImgRestore() { var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; }
function MM_preloadImages() { var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i]; } } }
function MM_openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); }

function getPageSize(){
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}