if(!LBS)var LBS={};LBS.GUI={};
LBS.GUI.GuiItem=function(j,i,b){function a(){var p=function(t){if(!t)t=window.event;t.cancelBubble=true;t.stopPropagation&&t.stopPropagation()};r.onclick=function(t){if(m===true)for(var u in g)g[u](o);p(t)};r.onmousedown=function(t){var u=c.GuiItem.MOUSE_STATE;if(s!==u.MOUSE_DOWN){s=u.MOUSE_DOWN;if(m===true){for(var w in k)k[w](o);d()}}p(t)};r.onmouseup=function(t){s=c.GuiItem.MOUSE_STATE.MOUSE_OVER;if(m===true){e();for(var u in q)q[u](o)}p(t)};r.onmouseover=function(t){var u=c.GuiItem.MOUSE_STATE;
if(s!==u.MOUSE_OVER){s=u.MOUSE_OVER;if(m===true)for(var w in l)l[w](o)}p(t)};r.onmouseout=function(t){s=c.GuiItem.MOUSE_STATE.NO_MOUSE;if(m===true){for(var u in n)n[u](o);e()}p(t)}}var c=LBS.GUI;this.enableEvents=function(){m=true};this.disableEvents=function(){m=false;e()};this.getData=function(){return v};this.setData=function(p){v=p};this.getDomNode=function(){return r};this.getMouseState=function(){return s};this.addMouseClickCBF=function(p){g.push(p)};this.addMouseEnterCBF=function(p){l.push(p)};
this.addMouseLeaveCBF=function(p){n.push(p)};this.addMousePressCBF=function(p){k.push(p)};this.addMouseReleaseCBF=function(p){q.push(p)};this.addMouseDownCBF=function(p,t){h.push({CBF:p,interval:t,timer:null})};var f=function(p,t){return function(){p(t)}},d=function(){for(var p in h)h[p].timer=window.setInterval(new f(h[p].CBF,o),h[p].interval)},e=function(){for(var p in h)if(h[p].timer!==null){window.clearInterval(h[p].timer);h[p].timer=null}},g=[],h=[],l=[],n=[],k=[],q=[],r=j,v=i,m=b,o=this,s=c.GuiItem.MOUSE_STATE.NO_MOUSE;
r&&a()};LBS.GUI.GuiItem.MOUSE_STATE={NO_MOUSE:0,MOUSE_OVER:1,MOUSE_DOWN:2};LBS.GUI.Frame=function(j,i,b){LBS.GUI.GuiItem.call(this,j,b,false);this.getState=function(){return c};this.setState=function(d){if(c!==d){c=d;for(var e in a)a[e](f)}};this.addStateChangeCBF=function(d){a.push(d)};var a=[],c=i,f=this};LBS.GUI.Frame.STATE={VISIBLE:1,INVISIBLE:2};
LBS.GUI.Button=function(j,i,b){var a=LBS.GUI;a.GuiItem.call(this,j,b,i==a.Button.STATE.ENABLED?true:false);this.getState=function(){return f};this.setState=function(e){e===a.Button.STATE.ENABLED?d.enableEvents():d.disableEvents();if(f!==e){f=e;for(var g in c)c[g](d)}};this.addStateChangeCBF=function(e){c.push(e)};var c=[],f=i,d=this};LBS.GUI.Button.STATE={ENABLED:1,DISABLED:2,INVISIBLE:3};
LBS.GUI.RadioButton=function(j,i,b,a){var c=LBS.GUI;c.Button.call(this,j,i,a);this.getSelectionState=function(){return d};this.setSelectionState=function(g){if(g!==d){d=g;for(var h in f)f[h](e)}};this.addSelectionStateChangeCBF=function(g){f.push(g)};var f=[],d=b,e=this;e.addMouseClickCBF(function(){var g=c.RadioButton.SELECTION_STATE;d===g.UNSELECTED&&e.setSelectionState(g.SELECTED)})};LBS.GUI.RadioButton.SELECTION_STATE={SELECTED:1,UNSELECTED:2};
LBS.GUI.RadioButtonGroup=function(){var j=LBS.GUI.RadioButton.SELECTION_STATE;this.addRadioButton=function(e){f.push(e);e.addSelectionStateChangeCBF(i);e.getSelectionState()===j.SELECTED&&b(e)};this.getSelectedRadioButton=function(){return c};this.addSelectionChangeCBF=function(e){d.push(e)};var i=function(e){e.getSelectionState()===j.SELECTED&&b(e)},b=function(e){c=e;for(g in f)f[g]!==e&&f[g].setSelectionState(j.UNSELECTED);for(var g in d)d[g](a)},a=this,c=null,f=[],d=[]};
LBS.GUI.ToggleButton=function(j,i,b,a){var c=LBS.GUI;c.Button.call(this,j,i,a);this.getToggleState=function(){return d};this.setToggleState=function(g){if(g!==d){d=g;for(var h in f)f[h](e)}};this.addToggleStateChangeCBF=function(g){f.push(g)};var f=[],d=b,e=this;e.addMouseClickCBF(function(){var g=c.ToggleButton.TOGGLE_STATE;d===g.TOGGLED?e.setToggleState(g.UNTOGGLED):e.setToggleState(g.TOGGLED)})};LBS.GUI.ToggleButton.TOGGLE_STATE={TOGGLED:1,UNTOGGLED:2};
LBS.GUI.GuiItemStyleManager=function(j){this.addGuiItem=function(c){i.push(c);a.updateStyle(c);c.addMouseEnterCBF(a.updateStyle);c.addMouseLeaveCBF(a.updateStyle);c.addMousePressCBF(a.updateStyle);c.addMouseReleaseCBF(a.updateStyle)};this.updateStyle=function(c){c.getDomNode().className=b[c.getMouseState()]};var i=[],b=j,a=this};
LBS.GUI.FrameStyleManager=function(j){var i=LBS.GUI;i=[[i.Frame.STATE.VISIBLE,"visible"],[i.Frame.STATE.INVISIBLE,"invisible"]];var b=[];for(var a in i)b[i[a][0]]=j[i[a][1]];this.addFrame=function(f){f.addStateChangeCBF(c.updateStyle);c.updateStyle(f)};this.updateStyle=function(f){var d=f.getDomNode();f=f.getState();d.className=b[f]};var c=this};
LBS.GUI.ButtonStyleManager=function(j){var i=LBS.GUI,b=i.Button.STATE,a=i.GuiItem.MOUSE_STATE;b=[[b.ENABLED,"enabled"],[b.DISABLED,"disabled"],[b.INVISIBLE,"invisible"]];a=[[a.NO_MOUSE,"noMouse"],[a.MOUSE_OVER,"mouseOver"],[a.MOUSE_DOWN,"mouseDown"]];var c=[];for(var f in b){c[b[f][0]]=[];var d;if(typeof j[b[f][1]]=="object")for(d in a)c[b[f][0]][a[d][0]]=j[b[f][1]][a[d][1]];else if(typeof j[b[f][1]]=="string")for(d in a)c[b[f][0]][a[d][0]]=j[b[f][1]];else for(d in a)c[b[f][0]][a[d][0]]=""}i.GuiItemStyleManager.call(this,
c);this.addButton=function(h){e(h);h.addStateChangeCBF(g.updateStyle)};var e=this.addGuiItem;this.addGuiItem=null;this.updateStyle=function(h){h.getDomNode().className=c[h.getState()][h.getMouseState()]};var g=this};
LBS.GUI.RadioButtonStyleManager=function(j){var i=LBS.GUI,b=i.Button.STATE,a=i.RadioButton.SELECTION_STATE,c=i.GuiItem.MOUSE_STATE;b=[[b.ENABLED,"enabled"],[b.DISABLED,"disabled"],[b.INVISIBLE,"invisible"]];a=[[a.SELECTED,"selected"],[a.UNSELECTED,"unSelected"]];c=[[c.NO_MOUSE,"noMouse"],[c.MOUSE_OVER,"mouseOver"],[c.MOUSE_DOWN,"mouseDown"]];var f=[];for(var d in b){f[b[d][0]]=[];var e,g;if(typeof j[b[d][1]]=="object")for(e in a){f[b[d][0]][a[e][0]]=[];if(typeof j[b[d][1]][a[e][1]]=="object")for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=
j[b[d][1]][a[e][1]][c[g][1]];else if(typeof j[b[d][1]][a[e][1]]=="string")for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=j[b[d][1]][a[e][1]];else for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=""}else if(typeof j[b[d][1]]=="string")for(e in a){f[b[d][0]][a[e][0]]=[];for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=j[b[d][1]]}else for(e in a){f[b[d][0]][a[e][0]]=[];for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=""}}i.GuiItemStyleManager.call(this,f);this.addRadioButton=function(n){h(n);n.addStateChangeCBF(l.updateStyle);n.addSelectionStateChangeCBF(l.updateStyle)};
var h=this.addGuiItem;this.addGuiItem=null;this.updateStyle=function(n){n.getDomNode().className=f[n.getState()][n.getSelectionState()][n.getMouseState()]};var l=this};
LBS.GUI.ToggleButtonStyleManager=function(j){var i=LBS.GUI,b=i.Button.STATE,a=i.ToggleButton.TOGGLE_STATE,c=i.GuiItem.MOUSE_STATE;b=[[b.ENABLED,"enabled"],[b.DISABLED,"disabled"],[b.INVISIBLE,"invisible"]];a=[[a.TOGGLED,"toggled"],[a.UNTOGGLED,"unToggled"]];c=[[c.NO_MOUSE,"noMouse"],[c.MOUSE_OVER,"mouseOver"],[c.MOUSE_DOWN,"mouseDown"]];var f=[];for(var d in b){f[b[d][0]]=[];var e,g;if(typeof j[b[d][1]]=="object")for(e in a){f[b[d][0]][a[e][0]]=[];if(typeof j[b[d][1]][a[e][1]]=="object")for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=
j[b[d][1]][a[e][1]][c[g][1]];else if(typeof j[b[d][1]][a[e][1]]=="string")for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=j[b[d][1]][a[e][1]];else for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=""}else if(typeof j[b[d][1]]=="string")for(e in a){f[b[d][0]][a[e][0]]=[];for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=j[b[d][1]]}else for(e in a){f[b[d][0]][a[e][0]]=[];for(g in c)f[b[d][0]][a[e][0]][c[g][0]]=""}}i.GuiItemStyleManager.call(this,f);this.addToggleButton=function(n){h(n);n.addStateChangeCBF(l.updateStyle);n.addToggleStateChangeCBF(l.updateStyle)};
var h=this.addGuiItem;this.addGuiItem=null;this.updateStyle=function(n){n.getDomNode().className=f[n.getState()][n.getToggleState()][n.getMouseState()]};var l=this};
LBS.GUI.InputField=function(j,i,b){var a=LBS.GUI,c=a.InputField.STATE;a.GuiItem.call(this,j,b,i===c.ENABLED||i===c.VALIDATING||i===c.VALID||i===c.INVALID?true:false);this.getState=function(){return k};this.setState=function(m){m===c.ENABLED||m===c.VALIDATING||m===c.VALID||m===c.INVALID?q.enableEvents():q.disableEvents();if(k!==m){k=m;for(var o in e)e[o](q)}};this.getInput=function(){return v};this.setInput=function(m){r.value=m;d()};this.addStateChangeCBF=function(m){e.push(m)};this.addInputChangeCBF=
function(m,o){g.push({CBF:m,delay:o?o:null,timer:null})};this.addKeyPressCBF=function(m,o){h.push({CBF:m,keyCodes:o})};this.addKeyReleaseCBF=function(m,o){l.push({CBF:m,keyCodes:o})};this.addKeyDownCBF=function(m,o,s){n.push({CBF:m,keyCodes:o,interval:s,timer:null})};var f=function(m){return function(){m(q)}},d=function(){if(r.value!=v){v=r.value;for(var m in g){var o=g[m];if(o.CBF!=null)if(o.delay===null||o.delay<1)o.CBF(q);else{if(o.timer!==null){window.clearTimeout(o.timer);o.timer=null}o.timer=
window.setTimeout(new f(o.CBF),o.delay)}}}},e=[],g=[],h=[],l=[],n=[],k=i,q=this,r=j,v=j.value;this.addMousePressCBF(d);this.addMouseReleaseCBF(d);this.addMouseEnterCBF(d);this.addMouseLeaveCBF(d);r.onkeydown=function(m){var o=null;m=m?m:window.event;if(m.keyCode)o=m.keyCode;else if(m.which)o=m.which;for(var s in h)if(h[s]!=null)if(h[s].keyCodes==null)h[s].CBF(q,o);else for(var p in h[s].keyCodes)if(h[s].keyCodes[p]==o){h[s].CBF(q,o);break}d()};r.onkeyup=function(m){var o=null;m=m?m:window.event;if(m.keyCode)o=
m.keyCode;else if(m.which)o=m.which;for(var s in l)if(l[s]!=null)if(l[s].keyCodes==null)l[s].CBF(q,o);else for(var p in l[s].keyCodes)if(l[s].keyCodes[p]==o){l[s].CBF(q,o);break}d()};r.onfocus=function(){d()};r.onblur=function(){d()}};LBS.GUI.InputField.STATE={ENABLED:1,VALIDATING:2,VALID:3,INVALID:4,DISABLED:5,INVISIBLE:6};
LBS.GUI.InputFieldStyleManager=function(j){var i=LBS.GUI,b=i.InputField.STATE,a=i.GuiItem.MOUSE_STATE;b=[[b.ENABLED,"enabled"],[b.VALIDATING,"validating"],[b.VALID,"valid"],[b.INVALID,"invalid"],[b.DISABLED,"disabled"],[b.INVISIBLE,"invisible"]];a=[[a.NO_MOUSE,"noMouse"],[a.MOUSE_OVER,"mouseOver"],[a.MOUSE_DOWN,"mouseDown"]];var c=[];for(var f in b){c[b[f][0]]=[];var d;if(typeof j[b[f][1]]=="object")for(d in a)c[b[f][0]][a[d][0]]=j[b[f][1]][a[d][1]];else if(typeof j[b[f][1]]=="string")for(d in a)c[b[f][0]][a[d][0]]=
j[b[f][1]];else for(d in a)c[b[f][0]][a[d][0]]=""}i.GuiItemStyleManager.call(this,c);this.addInputField=function(h){e(h);h.addStateChangeCBF(g.updateStyle)};var e=this.addGuiItem;this.addGuiItem=null;this.updateStyle=function(h){h.getDomNode().className=c[h.getState()][h.getMouseState()]};var g=this};
LBS.GUI.TimeInputArea=function(j,i){this.getHours=function(){var l=g.getInput();if(b(l,0,23)!==true)return null;return l*1};this.setHours=function(l){g.setInput(l);a()};this.getMinutes=function(){var l=h.getInput();if(b(l,0,59)!==true)return null;return l*1};this.setMinutes=function(l){h.setInput(l);c()};this.validateTime=function(){if(d.getHours()===null||d.getMinutes()===null)return false;return true};this.addTimeChangeCBF=function(l){e.push(l)};var b=function(l,n,k){if(/[\s]*[\d]+[\s]*/.test(l)!==
true)return false;if(l*1>=n&&l*1<=k)return true;return false},a=function(){var l=LBS.GUI.InputField.STATE;g.setState(l.VALIDATING);b(g.getInput(),0,23)===true?g.setState(l.VALID):g.setState(l.INVALID);f()},c=function(){var l=LBS.GUI.InputField.STATE;h.setState(l.VALIDATING);b(h.getInput(),0,59)===true?h.setState(l.VALID):h.setState(l.INVALID);f()},f=function(){for(var l in e)e[l]!=null&&e[l](d)},d=this,e=[],g=j,h=i;g.addInputChangeCBF(a);h.addInputChangeCBF(c);a();c()};
LBS.GUI.DateInputArea=function(j,i,b){this.getDay=function(){var k=h.getInput();if(a(k,1,31)!==true)return null;return k*1};this.setDay=function(k){h.setInput(k);f()};this.getMonth=function(){var k=l.getInput();if(a(k,1,12)!==true)return null;return k*1};this.setMonth=function(k){l.setInput(k);f()};this.getYear=function(){var k=n.getInput();if(a(k,1970,2027)!==true)return null;return k*1};this.setYear=function(k){n.setInput(k);f()};this.validateDate=function(){var k=e.getYear(),q=e.getMonth(),r=e.getDay();
if(k===null||q===null||r===null)return false;k=[0,31,c(k)?29:28,31,30,31,30,31,31,30,31,30,31];if(r>k[q])return false;return true};this.addDateChangeCBF=function(k){g.push(k)};var a=function(k,q,r){if(!/[\s]*[\d]+[\s]*/.test(k))return false;if(k*1>=q&&k*1<=r)return true;return false},c=function(k){k=k*1;return k%400==0?true:k%100==0?false:k%4==0?true:false},f=function(){var k=LBS.GUI.InputField.STATE,q=true;h.setState(k.VALIDATING);if(a(h.getInput(),1,31)===true)h.setState(k.VALID);else{h.setState(k.INVALID);
q=false}l.setState(k.VALIDATING);if(a(l.getInput(),1,12)===true)l.setState(k.VALID);else{l.setState(k.INVALID);q=false}n.setState(k.VALIDATING);if(a(n.getInput(),1970,2027)===true)n.setState(k.VALID);else{n.setState(k.INVALID);q=false}if(q===true){q=1*n.getInput();var r=1*l.getInput(),v=1*h.getInput(),m=[0,31,c(q)?29:28,31,30,31,30,31,31,30,31,30,31];if(v>m[r]){l.setState(k.INVALID);h.setState(k.INVALID);c(q)==false&&r==2&&v==29&&n.setState(k.INVALID)}}d()},d=function(){for(var k in g)g[k]!=null&&
g[k](e)},e=this,g=[],h=b,l=i,n=j;h.addInputChangeCBF(f);l.addInputChangeCBF(f);n.addInputChangeCBF(f);f()};
LBS.GUI.MenuFrame=function(j,i,b){var a=LBS.GUI,c=a.MenuItem.STATE;a.Frame.call(this,j,i,b);var f=this.setState;this.setState=function(g){if(g===a.Frame.STATE.INVISIBLE)for(var h=0;h<e.length;h++)e[h].getState()===c.SELECTED&&e[h].setState(c.ENABLED);f(g)};this.addMenuItem=function(g){e.push(g);g.addMouseEnterCBF(d)};var d=function(g){for(var h=0;h<e.length;h++)e[h]!==g&&e[h].getState()===c.SELECTED&&e[h].setState(c.ENABLED);g.setState(c.SELECTED)},e=[]};
LBS.GUI.MenuItem=function(j,i,b){var a=LBS.GUI;a.GuiItem.call(this,j,b,i==a.MenuItem.STATE.ENABLED||i==a.MenuItem.STATE.SELECTED?true:false);this.getState=function(){return c};this.setState=function(g){if(c!==g){if(d!==null)g===a.MenuItem.STATE.SELECTED?d.setState(a.Frame.STATE.VISIBLE):d.setState(a.Frame.STATE.INVISIBLE);g==a.MenuItem.STATE.ENABLED||g==a.MenuItem.STATE.SELECTED?e.enableEvents():e.disableEvents();c=g;for(var h in f)f[h](e)}};this.setSubMenu=function(g){d=g;c===a.MenuItem.STATE.SELECTED?
d.setState(a.Frame.STATE.VISIBLE):d.setState(a.Frame.STATE.INVISIBLE)};this.addStateChangeCBF=function(g){f.push(g)};var c=i,f=[],d=null,e=this};LBS.GUI.MenuItem.STATE={SELECTED:1,ENABLED:2,DISABLED:3,INVISIBLE:4};
LBS.GUI.MenuItemStyleManager=function(j){var i=LBS.GUI,b=i.MenuItem.STATE,a=i.GuiItem.MOUSE_STATE;b=[[b.SELECTED,"selected"],[b.ENABLED,"enabled"],[b.DISABLED,"disabled"],[b.INVISIBLE,"invisible"]];a=[[a.NO_MOUSE,"noMouse"],[a.MOUSE_OVER,"mouseOver"],[a.MOUSE_DOWN,"mouseDown"]];var c=[];for(var f in b){c[b[f][0]]=[];var d;if(typeof j[b[f][1]]=="object")for(d in a)c[b[f][0]][a[d][0]]=j[b[f][1]][a[d][1]];else if(typeof j[b[f][1]]=="string")for(d in a)c[b[f][0]][a[d][0]]=j[b[f][1]];else for(d in a)c[b[f][0]][a[d][0]]=
""}i.GuiItemStyleManager.call(this,c);this.addMenuItem=function(h){e(h);h.addStateChangeCBF(g.updateStyle)};var e=this.addGuiItem;this.addGuiItem=null;this.updateStyle=function(h){h.getDomNode().className=c[h.getState()][h.getMouseState()]};var g=this};
LBS.GUI.ToggleFrame=function(j,i,b,a,c){var f=LBS.GUI;f.Frame.call(this,j,b,c);this.getToggleState=function(){return e};this.setToggleState=function(n){d(n)};this.addToggleStateChangeCBF=function(n){g.push(n)};var d=function(n){if(n!==e){e=n;e===f.ToggleFrame.TOGGLE_STATE.TOGGLED?l.setToggleState(f.ToggleButton.TOGGLE_STATE.TOGGLED):l.setToggleState(f.ToggleButton.TOGGLE_STATE.UNTOGGLED);for(var k in g)g[k](h)}},e=a,g=[],h=this,l=i;l.addMouseClickCBF(function(n){n=n.getToggleState();var k=f.ToggleFrame.TOGGLE_STATE;
n===f.ToggleButton.TOGGLE_STATE.TOGGLED?d(k.TOGGLED):d(k.UNTOGGLED)});d(a)};LBS.GUI.ToggleFrame.TOGGLE_STATE={TOGGLED:1,UNTOGGLED:2};
LBS.GUI.ToggleFrameStyleManager=function(j){var i=LBS.GUI,b=i.Frame.STATE;i=i.ToggleFrame.TOGGLE_STATE;b=[[b.VISIBLE,"visible"],[b.INVISIBLE,"invisible"]];i=[[i.TOGGLED,"toggled"],[i.UNTOGGLED,"unToggled"]];var a=[];for(var c in b){a[b[c][0]]=[];var f;if(typeof j[b[c][1]]=="object")for(f in i)a[b[c][0]][i[f][0]]=j[b[c][1]][i[f][1]];else if(typeof j[b[c][1]]=="string")for(f in i)a[b[c][0]][i[f][0]]=j[b[c][1]];else for(f in i)a[b[c][0]][i[f][0]]=""}this.addToggleFrame=function(e){e.addStateChangeCBF(d.updateStyle);
e.addToggleStateChangeCBF(d.updateStyle);d.updateStyle(e)};this.updateStyle=function(e){var g=e.getDomNode(),h=e.getState();e=e.getToggleState();g.className=a[h][e]};var d=this};
