var W3C = (document.getElementById) ? true : false; var IE4 = (document.all && !W3C) ? true : false; var IE5 = (document.all && W3C) ? true : false; var NS4 = (document.layers) ? true : false; var NS6 = (W3C && navigator.appName.indexOf("Netscape")>=0) ? true : false; var ENV = { ico: '/_ico/', lib: '/_lib/', spc: 'ico_spacer.gif', set: function(P){ setVar(this,P); } }; function CEvent(mC){ this.set = function(U,V){ if(U && typeof(V) == 'object' && typeof(V.fnc) == 'function'){ if(!this.G[U]){ var zG = this.G[U] = {}; this.k[U] = function(){ for(var X in zG){ var lD = zG[X]; lD.fnc(lD.arg); if(lD.flg){ delete zG[X]; } } }; } var YC = V.iid; if(YC == null){ YC = 'EVT_' + this.I++; } this.G[U][YC] = V; } }; this.del = function(U,A){ if(U){ if(A){ delete this.G[U][A]; } else { delete this.G[U]; this.k[U] = null; } } }; this.k = mC; this.G = {}; this.I = 0; }; var SYS = { get: function(AK,Z){ return getVar(this,AK,Z); }, set: function(H){ setVar(this,H); }, SDE: {}, sde: function(){ var KB = arguments[0]; switch(typeof(KB)){ case 'string': return this.get('SDE.' + KB,arguments[1]); break; case 'object': this.set({SDE:KB}); break; } }, sys: function() { var KB = arguments[0]; switch(typeof(KB)){ case 'string': return this.get('SDE.sys.' + KB,arguments[1]); break; case 'object': this.set({SDE:{sys:KB}}); break; } }, app: function(){ var KB = arguments[0]; switch(typeof(KB)){ case 'string': return this.get('SDE.app.' + KB,arguments[1]); break; case 'object': this.set({SDE:{app:KB}}); break; } }, cki: function(p_cki,H,Z){ if(p_cki){ p_cki = this.sys('sid') + '_' + p_cki; var PB = str2dat(unescape(get_cookie(p_cki,'{}'))); if(H==null || typeof(H)=='string'){ return getVar(PB,H,Z); } else if(typeof(H)=='object') { if(typeof(PB)=='object'){ setVar(PB,H); } else { PB = H } set_cookie(p_cki,dat2str(PB),'y',Z); } } }, evt: function(mC,U){ return window.event ? window.event : U; }, str: function(MB){ return dat2str(this.SDE,MB); }, sts: function(){ return this.IB; }, reg: function(p_fnc,H){ this.win.set('onload',{fnc:p_fnc,arg:H,flg:1}); }, etc: function(AK,P,MB){ var PB = {}; PB[AK] = P; this.cki('ETC',PB,1); if(MB){ window.location = self.location; } }, end: function(){ window.close(); }, prn: function(RB){ if(this.AH){ this.AH.close(); } this.AH = open('about:blank','SYSPRN','menubar=yes,resizable=yes,scrollbars=yes,fullscreen=no',true); var wD = this.AH.document; wD.open(); wD.write(RB); wD.close(); }, out: function(RB,A){ if(this.IB){ var _ = getElementById(A); if(_){ _.innerHTML = RB; } else { var O = document.createElement('div'); O.id = A; O.innerHTML = RB; document.body.appendChild(O); } } else { document.write(RB); } }, run: function(H){ if(H){ switch(H.flg){ case 4: window.open(H.dat,H.dst ? H.dst : '_blank'); break; case 5: eval(H.dat); break; case 3: default: var N = str2dat(H.dat); doAct(N,null,null,null,H.dst); break; } } }, win: new CEvent(window), doc: new CEvent(document), IB: 0, AH: null }; SYS.reg(function(){SYS.IB = 1;}); function winInit(MB){ self.opener = self; if(MB && window.name != 'WEB'){ window.open(window.location.href,'WEB',"resizable=yes,scrollbars=yes"); setTimeout("self.close()",100); } }; function debug(){ var NB = ''; for(var X = 0; X < arguments.length; X++){ NB += (NB ? ' - ' : '') + arguments[X]; } window.status = NB; }; function parse_int(P,Z){ var D = parseInt(P); Z = parseInt(Z); if(isNaN(D)) D = isNaN(Z) ? 0 : Z; return D; }; function getVar(OB,AK,Z){ var D = null; if(OB && typeof(OB) == 'object'){ D = OB; AK = AK.split('.'); for(var X = 0; D && X < AK.length; X++){ var b = AK[X]; var R = ''; if(b.match(/^([^\[]+)\[([^\]]*)\]/)){ b = RegExp.$1; R = RegExp.$2; } D = D[b]; if(D && R != ''){ D = D[R]; } } } return D != null ? D : Z; }; function setVar(OB,P){ if(typeof(OB) == 'object'){ if(typeof(P) == 'function'){ P = new P(); } if(typeof(P) == 'object'){ for(var b in P){ if(b.match(/^\//)) continue; var PB = P[b]; if(PB && PB.toString() == '[object Object]'){ if(PB.length){ OB[b] = []; for(var X in PB){ var c = PB[X]; if(c && c.toString() == '[object Object]'){ OB[b][X] = {}; setVar(OB[b][X],c); } else { OB[b][X] = c; } } } else { if(!OB[b]){ OB[b] = {}; } setVar(OB[b],PB); } } else { OB[b] = PB; } } } } }; function rightVal(P,Z){ return P != null ? P : (Z != null ? Z : ''); }; function rightNum(P,Z){ if(P == null || isNaN(P)){ P = (Z == null) || isNaN(Z) ? 0 : Z; } return P; }; function str2str(QB){ var D = QB ? QB : ''; D = D.replace(/\\/g,"\\\\"); D = D.replace(/\'/g,"\\\'"); D = D.replace(/\"/g,"\\\""); return D; }; function str2dat(QB){ try { eval('var D=' + QB); return D; } catch(e){ return null; } }; function js2perl(RB){ return dat2str(RB); }; function dat2str(RB,MB){ var D = null; switch(typeof(RB)){ case 'function': break; case 'string': D = "'" + str2str(RB.toString()) + "'"; break; case 'boolean': D = RB ? 1 : 0; break; case 'number': D = RB; break; case 'object': if(RB){ D = ''; if(typeof(RB.length) == 'undefined'){ for(var b in RB){ var P = dat2str(RB[b],MB); if(P != null){ D += (D ? "," : "") + ("'" + b + "'") + (MB ? "=>" : ":") + P; } } D = "{" + D + "}"; } else { for(var SB = 0; SB < RB.length; SB++){ var P = dat2str(RB[SB],MB); if(P != null) D += (D ? "," : "") + P; } D = "[" + D + "]"; } } break; } return D; }; function dat_xml(RB){ var D = null; if(RB != null){ switch(typeof(RB)){ case 'object': D = ''; if(typeof(RB.length) == 'undefined'){ for(var $ in RB){ D += '<' + $; var TB = null; var N = RB[$]; if(N != null){ var a = null; if(typeof(N) == 'object'){ if(N.length && typeof(N[0]) == 'object'){ a = N.shift(); } else { a = N; N = null; } } for(var b in a){ var PB = a[b]; switch(typeof(PB)){ case 'boolean': PB = PB ? b : null; break; case 'object': if(PB){ var c = ''; for(var F in PB){ if(PB[F]){ c += F + ':' + PB[F] + ';'; } } PB = c; } break; } if(PB != null){ D += ' ' + b + '="' + PB.toString().replace(/\"/g,'&quot;') + '"'; } } TB = dat_xml(N); } D += (TB != null) ? ('>' + TB + '</' + $ + '>') : '/>'; } } else { for(var X = 0; X < RB.length; X++){ var PB = dat_xml(RB[X]); if(PB){ D += PB; } } } break; case 'function': D = RB(); break; case 'boolean': case 'string': case 'number': case 'undefined': default: D = RB.toString(); break; } } return D; }; function dat2xml(H){ var D = null; if(H != null){ switch(typeof(H)){ case 'object': if(typeof(H.length) == 'undefined'){ var $ = H.tag ? H.tag : 'div'; D = '<' + $; var a = H.att; if(typeof(a) == 'object'){ for(var b in a){ var PB = a[b]; if(typeof(PB) == 'boolean'){ PB = PB ? b : null; } if(PB != null){ D += ' ' + b + '="' + PB.toString().replace(/\"/g,'&quot;') + '"'; } } } var TB = dat2xml(H.dat); D += (TB != null) ? ('>' + TB + '</' + $ + '>') : '/>'; } else { D = ''; for(var X = 0; X < H.length; X++){ var c = dat2xml(H[X]); if(c){ D += c; } } } break; case 'boolean': case 'string': case 'function': case 'number': case 'undefined': default: D = H.toString(); break; } } return D; }; function dat2dat(RB){ var D; if(RB && typeof(RB) == 'object'){ D = RB.length ? [] : {}; for(var b in RB){ D[b] = dat2dat(RB[b]); } } else { D = RB; } return D; }; function dtm2dat(BH,kB){ var D = null; if(BH){ BH = BH.toString().split(' '); var N = BH[0]; var CH = BH[1] ? BH[1] : '00:00:00'; N = N.replace(/\//g,'-'); N = N.split('-'); CH = CH.split(':'); if(N.length == 3){ if(kB){ kB = kB.toLowerCase(); kB = kB.replace(/[^ymd]/gi,''); } kB = (kB && kB.match(/^dmy|mdy|ymd|myd|ydm|dym$/i))? kB : 'ymd'; D = { y: N[kB.indexOf('y')], m: N[kB.indexOf('m')], d: N[kB.indexOf('d')], h: CH[0] ? CH[0] : 0, n: CH[1] ? CH[1] : 0, s: CH[2] ? CH[2] : 0 }; } } return D; }; function dtm2str(BH,kB,$H){ var D = null; if(typeof(BH) == 'string'){ BH = dtm2dat(BH,$H); } if(BH && typeof(BH) == 'object'){ D = kB ? kB : 'y-m-d h:i:s'; var zG = ['y','m','d','h','i','s']; for(var X in zG){ var b = zG[X]; var PB = BH[b] ? BH[b] : ''; if(b != 'y') PB = PB.toString().padLeft('0',2); D = D.replace(new RegExp(b,"g"),PB); } for(var X in zG){ var b = zG[X]; var PB = BH[b] ? BH[b] : ''; D = D.replace(new RegExp(b,"g"),PB); } } return D; }; function str2dtm(BH,kB){ var D = null; BH = dtm2dat(BH,kB); if(BH){ D = new Date(BH.y,BH.m,BH.d,BH.h,BH.i,BH.s); } return D; }; function filltmp(RB,DC){ var D = DC; if(D){ for(var b in RB){ var PB = RB[b]; if(PB != null){ var zB = new RegExp('<!--%' + b + '%-->','ig'); D = D.replace(zB,PB); } } } return D; } function getElementById(A){ var D = null; if(NS4) D = document.layers[A]; else if(IE4) D = document.all[A]; else D = document.getElementById(A); return D; }; function createElement(H){ var D = null; if(H != null){ var NB = H.toString(); switch(typeof(H)){ case 'object': if(typeof(H.length) == 'undefined'){ var $ = H.tag ? H.tag : 'div'; var a = H.att; var N = H.dat; if(NS6){ D = document.createElement($); if(D){ for(var b in a){ D.setAttribute(b,a[b]); } } } else if(IE4 || IE5){ var BB = '<' + $; for(var b in a){ var PB = a[b]; if(PB != null){ switch(typeof(PB)){ case 'undefined': break; case 'boolean': if(PB){ BB += ' ' + b; } break; default: BB += ' ' + b + '="' + PB + '"'; } } } BB += '>'; D = document.createElement(BB); } if(D && N){ if(typeof(N) == 'object' && N.length){ for(var X = 0; X < N.length; X++){ try { var _ = createElement(N[X]); if(_) D.appendChild(_); } catch(e){} } } else { try { var _ = createElement(N); if(_) D.appendChild(_); } catch(e){} } } } else { D = document.createTextNode(NB); } break; default: D = document.createTextNode(NB); } } return D; }; function removeElement(UB){ try { if(typeof(UB) != 'object') UB = getElementById(UB); if(UB){ var VB = UB.parentNode; if(VB) VB.removeChild(UB); else UB = null; } } catch(e){} }; function attachElement(UB,WB){ try { if(typeof(WB) == 'string'){ WB = getElementById(WB); } if(!WB) WB = document.body; WB.appendChild(UB); } catch(e){} }; function makeStyle(H){ var D = ''; for(var b in H){ var PB = H[b]; if(PB != null && typeof(PB) != 'undefined') D += b + ':' + PB + ';'; } return D; }; function createTag(){ var D = ''; var XB = arguments.length; if(XB){ var $ = arguments[0]; var KB = {}; KB[$] = []; var X = 1; if(typeof(arguments[1]) == 'object'){ KB[$].push(arguments[1]); X = 2; } for(;X < XB; X++){ KB[$].push(arguments[X]); } D = dat_xml(KB); } return D; }; function load_resource(RB){ for(var b in RB){ var F = RB[b]; if(F.url){ switch(F.toi){ case 'img': var YB = new Image(); YB.src = F.url; break; } } } }; function get_cookie(A,Z){ var D = ''; var PB = document.cookie; var ZB = new RegExp('\\b' + A + '=([^;]*)(;|$)',"i"); if(PB.match(ZB)){ D = unescape(RegExp.$1); } return (D != '' ? D : Z); } function set_cookie(A,P,B,C){ var _B = ''; if(C){ var $B = new Date(); switch(B){ case 'y': $B.setYear($B.getYear() + C); break; case 'm': $B.setMonth($B.getMonth() + C); break; case 'd': $B.setDate($B.getDate() + C); break; case 'h': $B.setHours($B.getHours() + C); break; case 'n': $B.setMinutes($B.getMinutes() + C); break; case 's': $B.setSeconds($B.getSeconds() + C); break; } _B = 'expires=' + $B.toGMTString(); } document.cookie = A + '=' + P + ';' + _B; } function del_cookie(A){ set_cookie(A,'','s',-1); } function doAct(H,bB,cB,dB,eB){ var D = false; var IC = getElementById('APP_FRM'); if(!IC){ IC = createElement({ tag:'FORM', att:{id:'APP_FRM',method:'POST'} }); document.body.appendChild(IC); } if(IC){ if(typeof(H) == 'string'){ window.open(H,eB ? eB : '_self'); } else { if(SYS && SYS.str){ H['sde'] = SYS.str(1); } for(var b in H){ if(H[b] != null){ if(!IC[b]){ var O = createElement({ tag:'input', att:{type:'hidden',name:b} }); if(O){ IC.appendChild(O); } } IC[b].value = H[b]; } } if((!cB || cB(IC)) && (!bB || chk_form(IC,bB)) && (!dB || dB(IC))){ if(eB) IC.target = eB; IC.submit(); D = true; } } } return D; } function chk_data(RB,bB){ var fB = true; if(bB != null){ for(var X = 0; X < bB.length && fB; X++){ var PB = getVar(RB,bB[X].f); var gB = bB[X].t; var hB = bB[X].r; var iB = bB[X].m; var jB = bB[X].o; gB = gB ? gB : ''; iB = iB ? iB : 'Invalid value !'; switch(gB.toLowerCase()){ case 'str': fB = (!hB || PB); break; case 'dtm': fB = !(hB || PB) || (PB && chk_date_time(PB,jB)); break; case 'num': fB = !(hB || PB) || (PB && !isNaN(PB)); break; case 'eml': fB = !(hB || PB) || (PB && chk_mail(PB)); break; case 'cbf': fB = !(hB || PB) || (PB && (!jB || jB(PB))); break; } if(!fB){ alert(iB); break; } } } return fB; } function chk_form(aB,bB){ var fB = true; if(bB != null){ for(var SB = 0; SB < bB.length && fB; SB++){ if(!bB[SB].f) continue; var O = aB[bB[SB].f]; if(O != null){ var PB = O.value; var gB = bB[SB].t; var hB = bB[SB].r; var iB = bB[SB].m; var jB = bB[SB].o; gB = gB ? gB : ''; iB = iB ? iB : 'Gia tri khong hop le !'; switch(gB.toLowerCase()){ case 'str': fB = (!hB || PB); break; case 'dtm': fB = !(hB || PB) || (PB && chk_date_time(PB,jB)); break; case 'num': fB = !(hB || PB) || (PB && !isNaN(PB)); break; case 'eml': fB = !(hB || PB) || (PB && chk_mail(PB)); break; case 'cbf': fB = !(hB || PB) || (PB && (!jB || jB(PB))); break; } if(!fB){ alert(iB); try { O.focus(); } catch (x){} break; } } } } return fB; } function chk_date_time(P,kB){ if(P == null || P == '') return false; P = P.split(' '); var XB = P.length; if(XB < 1 || XB > 2) return false; if(!chk_date(P[0],kB)) return false; if(XB == 2 && !chk_time(P[1])) return false; return true; } function chk_date(BH,kB){ var D = false; BH = dtm2dat(BH,kB); if(BH){ var $B = new Date(BH.y,BH.m - 1,BH.d); if(!isNaN($B) && $B.getDate() == BH.d && $B.getMonth() == BH.m - 1){ var NH = $B.getYear(); NH += NH < 100 ? 1900 : 0; D = (NH == BH.y); } } return D; } function chk_time(P){ if(P == null || P == '') return false; var oB = [24,60,60]; var pB = P.split(':'); var XB = pB.length; if(XB < 1 || XB > 3) return false; for(var SB = 0; SB < XB; SB++){ P = arr[SB]; if(P=='' || isNaN(P)) return false; P = parseInt(P); if(P < 0 || P > oB[SB]) return false; } return true; } function chk_mail(P){ P = P.match(/^(.+)@(.+)$/); if(P == null) return false; var qB = P[1]; var rB = P[2]; for(var SB=0; SB < qB.length; SB++) { if(qB.charCodeAt(SB)>127) return false; } for(var SB=0; SB < rB.length; SB++) { if(rB.charCodeAt(SB)>127) return false; } var sB = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; var tB = "\[^\\s" + sB + "\]"; var uB = "(\"[^\"]*\")"; var vB = tB + '+'; var wB = "(" + vB + "|" + uB + ")"; var xB = new RegExp("^" + wB + "(\\." + wB + ")*$"); var yB = new RegExp("^" + vB + "(\\." + vB +")+$"); if(qB.match(xB) == null) return false; if(rB.match(yB) == null) return false; return true; } function chk_eml(P){ var zB = /^\w(\.?[\w-])*@\w(\.?[-\w])*\.[a-z]{2,4}$/i; var D = reg.test(P); return D; } function cmp2dtm(FH,GH,kB){ var D = 0; FH = dtm2dat(FH,kB); GH = dtm2dat(GH,kB); if(FH || GH){ if(!FH){ D = 1; } else if(!GH){ D = -1; } else { D = GH.y - FH.y; if(D == 0){ D = GH.m - FH.m; if(D == 0){ D = GH.d - FH.d; } } } } return D; } function reqFor(AC,BC,CC,H,DC){ return js2perl({wca:AC,wci:BC,wce:CC,arg:H,tmp:DC}); } function fullDir(EC,FC){ var D = ''; EC = EC ? EC : ''; FC = FC ? FC : ''; EC = EC.replace(/\\/g,'/'); FC = FC.replace(/\\/g,'/'); if(!FC) { D = EC; } else if(FC.match(/^\//)){ D = FC; } else { var GC = ''; if(FC.match(/^([^\?]*)(\?.*)$/)){ FC = RegExp.$1; GC = RegExp.$2; } var TB = 0; FC = FC.split('/'); EC = EC.split('/'); for(; TB < FC.length; TB++){ if(FC[TB] != '..') break; } var XB = EC.length - TB - 1; if(XB > 0){ D = EC[0] ? EC[0] : '/'; for(var X = 1; X < XB; X++){ D += (D != '/' ? '/' : '') + EC[X]; } } for(; TB < FC.length; TB++){ D += (D ? '/' : '') + FC[TB]; } D += GC; } return D; }; function fullURL(FC){ var D = ''; FC = parseURL(FC); if(FC['protocol']){ D += FC['protocol'] + '//'; } else { D += location.protocol + '//'; } if(FC['hostname']){ D += FC['hostname']; } else { D += location.hostname; } if(FC['port']){ D += ':' + FC['port']; } else if(location.port){ D += ':' + location.port; } D += fullDir(location.pathname,FC['pathname']); if(FC['search']) D += FC['search']; if(FC['hash']) D += FC['hash']; return D; }; function parseURL(FC){ var D = new Array(); FC = FC ? FC : location.href; if(FC && FC.match(/^([^:]*:)(\/\/.*)/)){ D['protocol'] = RegExp.$1; FC = RegExp.$2; } if(FC && FC.match(/^\/\/([^\/]*)(.*)/)){ var NB = RegExp.$1; FC = RegExp.$2; if(NB.match(/^([^:]*)(:.*)/)){ D['hostname'] = RegExp.$1; D['port'] = RegExp.$2; } else { D['hostname'] = NB; } } if(FC){ if(FC.match(/^([^\?]*)(\?.*)/)){ D['pathname'] = RegExp.$1; FC = RegExp.$2; } else { D['pathname'] = FC; FC = null; } } if(FC){ if(FC.match(/^([^#]*)(#.*)/)){ D['search'] = RegExp.$1; D['hash'] = RegExp.$2; } else { D['search'] = FC; } } return D; }; function cboBox(H){ var D = ''; if(H.dat){ if(H.flg){ D = dat_xml({ option: [{value:''},''] }); } for(var X in H.dat){ var F = H.dat[X]; D += dat_xml({ option: [ {value:F.iid,selected:F.iid==H.def}, (H.inc ? F.iid + ' ' : '') + F.ttl ] }); } if(D){ D = dat_xml({ select: [H.att,D] }); } } return D; }; function num2str(eD,IK,JK,aD) { var D = ''; aD = aD ? aD : ','; JK = JK ? JK : '.'; eD = eD.toString(); if(eD.match(/^([+-]?[0-9]*)(.([0-9]*))?$/)){ var v_int = RegExp.$1; var KK = RegExp.$3; D = int2str(v_int,JK); if(IK > 0){ D = (D != '') ? D : '0'; D += aD + KK.padRight('0',IK).substr(0,IK); } } return D; }; function int2str(eD,aD) { aD = aD ? aD : '.'; var D = ''; eD = eD.toString(); if(eD.match(/^([+-]?)([0-9.]*)$/)){ var BK = RegExp.$1; eD = RegExp.$2; while(eD) { if(eD.match(/^(.*?)(\d{3})$/)){ D = RegExp.$2 + (D ? aD : '') + D; eD = RegExp.$1; } else { D = eD + (D ? aD : '') + D; eD = ''; } } D = BK + D; } return D; }; String.prototype.padLeft = function(jF,d){ var PB = this.toString(); if(jF){ jF = jF.substr(0,1); var XB = this.length; for(; d > XB; d--){ PB = jF + PB; } } return PB; }; String.prototype.padRight = function(jF,d){ var PB = this.toString(); if(jF){ jF = jF.substr(0,1); var XB = this.length; for(; d > XB; d--){ PB += jF; } } return PB; }; function CAPP(H){ this.pH = {}; if(H){ SYS.sde(H.sde); delete H.sde; for(var b in H){ var PB = H[b]; if(PB != null){ this.pH[b] = PB; } } if(this.pH.msg){ alert(this.pH.msg); delete this.pH.msg; } } this.pH.app = this.pH.app ? this.pH.app : 'APP'; if(typeof(this.beg) == 'function'){ this.beg(); } if(typeof(this.run) == 'function'){ var LK = this; SYS.reg(function(){LK.run()}); } }; CAPP.prototype.get = function(AK,Z){ return getVar(this.pH,AK,Z); }; CAPP.prototype.set = function(H){ setVar(this.pH,H); }; CAPP.prototype.sts = function(w){ if(w != null){ window.status = w; } }; CAPP.prototype.msg = function(w){ if(w != null){ alert(w); } }; CAPP.prototype.end = function(){ SYS.end(); }; 