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(); }
