
function ge_calendar_select_onchange(id){var h=document.getElementById(id);var d=document.getElementById(id+'_d');var m=document.getElementById(id+'_m');var y=document.getElementById(id+'_y');var d_v=d.options[d.selectedIndex].value;var days=30;switch(m.options[m.selectedIndex].value){case'01':case'03':case'05':case'07':case'08':case'10':case'12':days=31;break;case'02':days=29;break;}
d.options.length=0;for(var i=1;i<=days;i++){d.options[d.options.length]=new Option(i,i);}
if(d_v>days)d_v=days;d.selectedIndex=(d_v-1);h.value=y.options[y.selectedIndex].value+'-'+m.options[m.selectedIndex].value+'-'+d.options[d.selectedIndex].value;}
function number_format(number,decimals,dec_point,thousands_sep){var n=number,c=isNaN(decimals=Math.abs(decimals))?2:decimals;var d=dec_point==undefined?".":dec_point;var t=thousands_sep==undefined?",":thousands_sep,s=n<0?"-":"";var i=parseInt(n=Math.abs(+n||0).toFixed(c))+"",j=(j=i.length)>3?j%3:0;return s+(j?i.substr(0,j)+t:"")+i.substr(j).replace(/(\d{3})(?=\d)/g,"$1"+t)+(c?d+Math.abs(n-i).toFixed(c).slice(2):"");}
function check_for_defaults(){var inputs=document.getElementsByTagName('INPUT');for(var i=0;i<inputs.length;i++){if((inputs[i])&&(inputs[i].value)&&(inputs[i].value=='--default--')){inputs[i].style.color=inputs[i].style.borderColor='#c0c0c0';}}}
function set_default(ctrl){if(ctrl.value==''){ctrl.value='--default--';ctrl.style.color=ctrl.style.borderColor='#c0c0c0';}}
function clear_default(ctrl){if(ctrl.value=='--default--'){ctrl.value='';ctrl.style.color=ctrl.style.borderColor='#000000';}}
function val(x){if(!x)return 0;x=x.toString().replace(/,/g,'');x=x.replace(/ /g,'');x=x.replace('$','');x=x.replace(/%/g,'');x=parseFloat(x);if(isNaN(x))return 0;return x;}
function add_commas(num){dec=num.split('.')[1];num=num.split('.')[0];if(num.indexOf('-')==0){var is_neg=true;num=num.substring(1);}else{var is_neg=false;}
finish=num.substring(0,num.length%3);for(x=num.length%3+3;x<=num.length;x+=3){finish+=((finish=="")?"":",")+num.substring(x-3,x);}
return((is_neg==true)?'-':'')+finish+((dec)?"."+dec:"");}
function format(ctrl,frmt){switch(frmt){case'percent.2':var x=val(ctrl.value);if(ctrl.getAttribute('max')){var max=val(ctrl.getAttribute('max'));if(x>max){alert('Maximum allowed value is: '+max);x=max;}}
if(ctrl.getAttribute('min')){var min=val(ctrl.getAttribute('min'));if(x<min){alert('Minimum allowed value is: '+min);x=min;}}
x=x.toFixed(2);if(x=='0.00'){if((ctrl.getAttribute('required'))&&(ctrl.getAttribute('required')=='true')){x='0.00';}else{x='';}}
ctrl.value=x+'%';break;case'd2':case'decimal.2':case'currency':var x=val(ctrl.value);if(ctrl.getAttribute('max')){var max=val(ctrl.getAttribute('max'));if(x>max){alert('Maximum allowed value is: '+max);x=max;}}
if(ctrl.getAttribute('min')){var min=val(ctrl.getAttribute('min'));if(x<min){alert('Minimum allowed value is: '+min);x=min;}}
x=add_commas(x.toFixed(2));if(x=='0.00'){if((ctrl.getAttribute('required'))&&(ctrl.getAttribute('required')=='true')){x='0.00';}else{x='';}}
if((x!='')&&(frmt=='currency'))x='$'+x;ctrl.value=x;break;case'decimal.0':case'int':var x=val(ctrl.value);if(ctrl.getAttribute('max')){var max=val(ctrl.getAttribute('max'));if(x>max)alert('Maximum allowed value is: '+max);x=max;}
if(ctrl.getAttribute('min')){var min=val(ctrl.getAttribute('min'));if(x<min)alert('Minimum allowed value is: '+min);x=min;}
x=x.toFixed(0);if(x=='0.00')x='';ctrl.value=x;break;}}
function close_and_focus_opener(){try{window.top.close();}catch(e){alert(e.message);}
try{window.top.opener.focus();}catch(e){alert(e.message);}}
function multi_select_all(ctrl,selected){var d=document.getElementById(ctrl);for(var i=0;i<d.options.length;i++){if(d.options[i].selected!=selected){d.options[i].selected=selected;}}}
function try_focus(element){if(typeof(element)=='string'){var o=document.getElementById(element);}else{var o=element;}
try{o.focus();o.select();}catch(e){}}
function cint(x){x=parseInt(x);if(isNaN(x))x=0;return x;}
function get_current_time(plus_minutes){var d=new Date();try{if(!plus_minutes)plus_minutes=0;plus_minutes=parseInt(plus_minutes);}catch(e){plus_minutes=0;}
d.setMinutes(d.getMinutes()+plus_minutes);var dt=value=d.getHours()+':';if(d.getMinutes()<10){dt+='0'+d.getMinutes();}else{dt+=d.getMinutes();}
return dt;}
function resizeme(width,height){var diff=screen.height-screen.availHeight;var h=height+100;var w=width+50;if(h>screen.height){h=screen.height-30;}
if(w>screen.width){w=screen.width;}
window.moveTo(0,0);window.resizeTo(w,h);}
function right(strval,chars){return strval.toString().substr(strval.toString().length-chars,chars);}
function rand_url(url){var d=new Date();var rnd=d.getYear().toString()+d.getMonth().toString()+d.getDate().toString()+Math.floor(Math.random()*1000).toString();if(url.indexOf('?')>-1){url+='&nocache='+rnd;}else{url+='?nocache='+rnd;}
return url;}
function OpenWindow(url,frame,features){try{if((navigator.userAgent.indexOf('IE8'))||(navigator.userAgent.indexOf('Chrome'))){features='';}
var hwnd=window.open(url,frame,features,true)}catch(e){alert('Failed to open url: '+url+'\n Please check Popup settings.\nError:'+e.message);return false;}
hwnd.focus();return hwnd;}
function OpenSizedWindow(url,frame,width,height){var features;var max_height=width;var max_width=height;features='height='+max_height+','+'width='+max_width+','+'resizable=1,'+'scrollbars=1,'+'status=1,'+'titlebar=1';if((navigator.userAgent.indexOf('IE8'))||(navigator.userAgent.indexOf('Chrome'))){features='';}
try{var hwnd=window.open(url,frame,features,true)}catch(e){alert('Failed to open url: '+url+'\n Please check Popup settings.\nError:'+e.message);return false;}
hwnd.resizeTo(max_width,max_height);hwnd.focus();}
function OpenFullPopupWindow(url,frame){var features;var max_height=window.screen.availHeight;var max_width=window.screen.availWidth;var top=window.screen.availTop;var left=window.screen.availLeft;features='height='+max_height+','+'width='+max_width+','+'top='+top+','+'left='+left+','+'resizable=1,'+'scrollbars=1,'+'status=1,'+'titlebar=1';if((navigator.userAgent.indexOf('IE8'))||(navigator.userAgent.indexOf('Chrome'))){features='';}
try{var hwnd=window.open(url,frame,features,true)}catch(e){alert('Failed to open url: '+url+'\n Please check Popup settings.\nError:'+e.message);return false;}
hwnd.moveTo(left,top);hwnd.resizeTo(max_width,max_height);hwnd.focus();}
function getTop(element){var y=0;while(element!=null){y+=element.offsetTop;if(element.scrollTop){y-=element.scrollTop;}
element=element.offsetParent;}
return parseInt(y);}
function getHeight(element){return parseInt(element.offsetHeight);}
function getWidth(element){return parseInt(element.offsetWidth);}
function getLeft(element){var x=0;while(element!=null){x+=element.offsetLeft;element=element.offsetParent;}
return parseInt(x);}
function getRight(element){return getLeft(element)+getWidth(element);}
function getBottom(element){return getTop(element)+getHeight(element);}
function getParentByTagName(element,tagName){tagName=tagName.toUpperCase()
while(element!=null){if(element.tagName.toUpperCase()==tagName){return element;}
element=element.parentNode;}
alert('Unable to find parent element ('+tagName+')');return false;}
function replaceChildClassByTagName(element,tagName,findClassName,replaceWithClassName){tagName=tagName.toUpperCase()
if(!element)return false;if(!element.childNodes)return false;for(var i=0;i<element.childNodes.length;i++){if(element.childNodes[i].tagName&&element.childNodes[i].className){if(element.childNodes[i].tagName.toUpperCase()==tagName){if(element.childNodes[i].className==findClassName){element.childNodes[i].className=replaceWithClassName;}}}
if(element.childNodes[i].childNodes){if(element.childNodes[i].childNodes.length>0){replaceChildClassByTagName(element.childNodes[i],tagName,findClassName,replaceWithClassName);}}}
return true;}
function getEvent(evt){var event;if(window.event){}else{}}
function getScrollerWidth(){var scr=null;var inn=null;var wNoScroll=0;var wScroll=0;scr=document.createElement('div');scr.style.position='absolute';scr.style.top='-1000px';scr.style.left='-1000px';scr.style.width='100px';scr.style.height='50px';scr.style.overflow='hidden';inn=document.createElement('div');inn.style.width='100%';inn.style.height='200px';scr.appendChild(inn);document.body.appendChild(scr);wNoScroll=inn.offsetWidth;scr.style.overflow='auto';wScroll=inn.offsetWidth;document.body.removeChild(document.body.lastChild);return(wNoScroll-wScroll);}
function get_window_height(){if(window.innerHeight)return window.innerHeight;if(document.body.clientHeight)return document.body.clientHeight;return(null);}
function get_window_width(){if(window.innerWidth)return window.innerWidth;if(document.body.clientWidth)return document.body.clientWidth;return(null);}
function get_vars(){var get=new Array();var u=window.location.toString();var q=u.search(/\?/);if(q!=-1){var g=u.substr(q+1);var ga=g.split(/&/g);for(var i=0;i<ga.length;i++){var d=ga[i].split(/=/);if(d[1]){get[unescape(d[0])]=unescape(d[1]);}else{get[unescape(d[0])]='';}}}
return get;}
function get_current_url(){var u=window.location.toString()
var q=u.search(/\?/);if(q<=0)return u;var g=u.substr(0,q);return g;}
function center_element(el){var w=getWidth(el);var h=getHeight(el);el.style.position='absolute';el.style.left=((get_window_width()-w)/2);el.style.top=((get_window_height()-h)/2);el.style.display='block';}
function create_event(event_name,code){if(document.body.addEventListener){document.body.addEventListener(event_name.substr(2),code,false);}else if(document.body.attachEvent){document.body.attachEvent(event_name,code);}else{alert('DHTML Events not supported by your browser.');}}
function delete_event(event_name,code){if(document.body.addEventListener){document.body.removeEventListener(event_name.substr(2),code,false);}else if(document.body.attachEvent){document.body.detatchEvent(event_name,code);}else{alert('DHTML Events not supported by your browser.');}}
if(typeof String.prototype.trim=="undefined"){String.prototype.trim=function(){var s=this.replace(/^\s*/,"");return s.replace(/\s*$/,"");}}
function getCookie(c_name){if(document.cookie.length>0){c_start=document.cookie.indexOf(c_name+"=")
if(c_start!=-1){c_start=c_start+c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if(c_end==-1){c_end=document.cookie.length}
return unescape(document.cookie.substring(c_start,c_end))}}
return"";}
function setCookie(c_name,value){var expiredays=30;var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString());}