String.prototype.engMonthConvert=function(){if(top.operator_.e_chs)return this.toString();var a=$$cm.b.split("|"),b=this;for(var i=0;i<a.length;i++)b=b.replace((new RegExp(a[i],"gi")),i+1);return b};function c_calender(){var J=frameElement;var K,L;var M=new Date();var N=$("mm1_"),O=$("mm2_");var P=$("mt1_"),Q=$("mt2_");var R=__.body.getElementsByTagName("th");for(var i=0;i<R.length;i++)if(i%8>0)R[i].firstChild.nodeValue=top.$$ba.a.charAt(i%8-1);function _m_init(){function _c_calender(u){var v=0,w=1,x,y=$fixWindow(u);var z=u.getAttribute("focusnext");z=z&&z.match(/^(1|true)$/i);var A=u.getAttribute("range_start");A=(!A)?null:A.parseDate().dateValue();var B=u.getAttribute("range_end");B=(!B)?null:B.parseDate().dateValue();var C=u.getAttribute("permit");var D=u.getAttribute("weekday")||"1234567";C=(!C)?null:C.replace(/-0?/gi,"_").split(",");var E=u.getAttribute("prohibit");E=(!E)?null:E.replace(/-0?/gi,"_").split(",");var F=u.getAttribute("reference");F=(!F)?null:$fixWindow(u).$(F);var G=new x_config(A,B,D,C,E);var H={};(u.getAttribute("hook")||"").replace(/([^;:]+):([^;]+)/gi,function(a,b,c){H[b]=c});function _m_focus(){u.unnotice=true;if(u==L&&!w){J.style.display="";if(K)K.className=K.className.replace(/selected_day/gi,"");K=$("d_"+u.value.engMonthConvert().replace(/-0?/gi,"_").replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/,"$2_$1"));if(K)K.className+=" selected_day";return}w=0;L=u;J.style.display="";$("mlast_").onmousedown=$("mnext_").onmousedown=function(){w=1;x=new Date(x.getFullYear(),x.getMonth()+(this.id.substr(1,1)=="l"?-2:2),1)};$set_position(J,u);var a,b;if(!x){a=u.value.engMonthConvert();if(a.isDateTime())x=a.parseDate();else if(F){b=F.value.engMonthConvert();if(b.isDateTime())x=b.parseDate()}if(!x)x=G.absStart()}_m_show();__.body.onmousedown=function(){v=1};if(H["onfocus"])try{y[H["onfocus"]](u)}catch(e){}}function _m_bulid(h,j,k){function _m_query(a,b,c,d){var e=b?b.getDate():"",f=e?"d_"+h+"_"+(j+1)+"_"+e:"",g=d&&b?(D.indexOf(b.getDay()||7)!=-1):1;a=a.firstChild;if(a.lastChild)a.lastChild.nodeValue=e;else a.appendChild(__.createTextNode(e));a.date=b;a.id=f;a.className=g?c:"limit_day";a.onmousedown=d&&g?_m_mousedown:null;if(a.replaceNode){a.bak=null;a.bak=a.cloneNode(true)}}var l=k.getElementsByTagName("td");k.rows[1].className=h==M.getFullYear()&&j==M.getMonth()?"currentmonth01":"";var m=new Date(h,j,1),n=new Date(h,j+1,0),o=n.getDate(),p=m.getDay(),q,r,s,t;for(var i=0;i<p;i++)_m_query(l[i],null,"blank_day",0);s=F&&(r=F.value.engMonthConvert()).isDateTime()?r.parseDate():null;for(var i=0;i<o;i++){q=new Date(h,j,i+1);t=(!A||q>=A)&&(!B||q<=B);_m_query(l[i+p],q,t?(s&&q<=s?"cue_day":"enable_day"):"over_day",t)}for(var i=o+p;i<42;i++)_m_query(l[i],null,"blank_day",0)}function _m_show(){var a=new Date(x.getFullYear(),x.getMonth()+1,1),b;var c=x.getFullYear(),d=x.getMonth(),e=a.getFullYear(),f=a.getMonth();N.innerHTML=top.operator_.e_chs?(c+$$cm.a+(d+1)+$$cm.b):($$cm.b.split("|")[d]+" "+c);O.innerHTML=top.operator_.e_chs?(e+$$cm.a+(f+1)+$$cm.b):($$cm.b.split("|")[f]+" "+e);_m_bulid(c,d,P);_m_bulid(e,f,Q);if(C)for(var i=0;i<C.length;i++)if(b=$("d_"+C[i])){b.className="enable_day";b.onmousedown=_m_mousedown}if(E)for(var i=0;i<E.length;i++)if(b=$("d_"+E[i])){b.className="limit_day";b.onmousedown=null}if(b=$("d_"+M.getFullYear()+"_"+(M.getMonth()+1)+"_"+M.getDate()))b.className+=" current_day";if(K)K.className=K.className.replace(/selected_day/gi,"");if(b=$("d_"+u.value.engMonthConvert().replace(/-0?/gi,"_").replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/,"$2_$1"))){b.className+=" selected_day";K=b}_m_resize()}function _m_mousedown(e){u.value=top.operator_.e_chs?(this.date.getFullYear()+"-"+(this.date.getMonth()+1)+"-"+this.date.getDate()):($$cm.b.split("|")[this.date.getMonth()]+"-"+this.date.getDate()+"-"+this.date.getFullYear());w=1;if(this.replaceNode)this.replaceNode(this.bak);u.blur();$stopevent(e);if(H["onchange"])try{y[H["onchange"]](u)}catch(e){};if(z)setTimeout(function(){$next_focus(u)},10)}function _m_resize(){J.style.height=__.documentElement.scrollHeight+"px";J.style.width=__.documentElement.scrollWidth+"px"}function _m_blur(){if(v){v=0;setTimeout(function(){u.focus()},0);return true}u.unnotice=false;J.style.display="none";if(z)setTimeout(function(){$next_focus(u)},0)}$r(u,"onfocus",_m_focus);$r(u,"onblur",_m_blur);if(H["onload"])try{y[H["onload"]](u)}catch(e){}}var I;while((I=J.list.shift())!=null)new _c_calender(I)}top.$rinit(_m_init);_m_init();try{top.__.body.focus()}catch(e){}}$r(_,"onload",c_calender);function x_config(c,d,e,f,g){this.start=c;this.end=d;this.permits={};this.prohibits={};this.weekdays={};this.abstart=new Date().dateValue();arrToObj(e.match(/[1234567]/g),this.weekdays);arrToObj(f,this.permits);arrToObj(g,this.prohibits);if(c&&f&&f.length){var x,h=0;for(var i=0;i<f.length;i++){x=f[i].parseDate().dateValue();if(x<this.abstart)continue;if(!h||x<h)h=x}this.abstart=h||this.abstart}function arrToObj(a,b){if(!a||!a.length)return;for(var i=0;i<a.length;i++)b[a[i]]=true}}x_config.prototype.absGray=function(c,e){var d=new Date(c,e,1);var a=['0'],b=[c,e+1,0],s;for(var i=1;i<=31;i++){d.setDate(i);if(d.getMonth()!=e||this.end&&d>this.end)break;b[2]=i,s=b.join('_');if(this.permits[s])return false;if(this.prohibits[s]||(this.start&&d<this.start)||(!this.weekdays[d.getDay()||7]))continue;return false}return true};x_config.prototype.absStart=function(){var a=this.abstart.getFullYear();var b=this.abstart.getMonth();for(var i=0,t=new Date(a,b,1);i<6;i++){var y=t.getFullYear();var m=t.getMonth();if(this.absGray(y,m))t.setMonth(m+1);else{a=y;b=m;break}}return new Date(a,b,1)};
这个是加密了吗,如果是.怎么解密呢

解决方案 »

  1.   

    这代码长得这是prototype框架吧,没加密
      

  2.   

    加密就没有.就是做了替换变量名和去注释换行的优化整理.减少JS文件大小String.prototype.engMonthConvert = function() {
    if (top.operator_.e_chs)
    return this.toString();
    var a = $$cm.b.split("|"), b = this;
    for ( var i = 0; i < a.length; i++)
    b = b.replace((new RegExp(a[i], "gi")), i + 1);
    return b
    };
    function c_calender() {
    var J = frameElement;
    var K, L;
    var M = new Date();
    var N = $("mm1_"), O = $("mm2_");
    var P = $("mt1_"), Q = $("mt2_");
    var R = __.body.getElementsByTagName("th");
    for ( var i = 0; i < R.length; i++)
    if (i % 8 > 0)
    R[i].firstChild.nodeValue = top.$$ba.a.charAt(i % 8 - 1);
    function _m_init() {
    function _c_calender(u) {
    var v = 0, w = 1, x, y = $fixWindow(u);
    var z = u.getAttribute("focusnext");
    z = z && z.match(/^(1|true)$/i);
    var A = u.getAttribute("range_start");
    A = (!A) ? null : A.parseDate().dateValue();
    var B = u.getAttribute("range_end");
    B = (!B) ? null : B.parseDate().dateValue();
    var C = u.getAttribute("permit");
    var D = u.getAttribute("weekday") || "1234567";
    C = (!C) ? null : C.replace(/-0?/gi, "_").split(",");
    var E = u.getAttribute("prohibit");
    E = (!E) ? null : E.replace(/-0?/gi, "_").split(",");
    var F = u.getAttribute("reference");
    F = (!F) ? null : $fixWindow(u).$(F);
    var G = new x_config(A, B, D, C, E);
    var H = {};
    (u.getAttribute("hook") || "").replace(/([^;:]+):([^;]+)/gi,
    function(a, b, c) {
    H[b] = c
    });
    function _m_focus() {
    u.unnotice = true;
    if (u == L && !w) {
    J.style.display = "";
    if (K)
    K.className = K.className.replace(/selected_day/gi, "");
    K = $("d_"
    + u.value.engMonthConvert().replace(/-0?/gi, "_")
    .replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/,
    "$2_$1"));
    if (K)
    K.className += " selected_day";
    return
    }
    w = 0;
    L = u;
    J.style.display = "";
    $("mlast_").onmousedown = $("mnext_").onmousedown = function() {
    w = 1;
    x = new Date(x.getFullYear(), x.getMonth()
    + (this.id.substr(1, 1) == "l" ? -2 : 2), 1)
    };
    $set_position(J, u);
    var a, b;
    if (!x) {
    a = u.value.engMonthConvert();
    if (a.isDateTime())
    x = a.parseDate();
    else if (F) {
    b = F.value.engMonthConvert();
    if (b.isDateTime())
    x = b.parseDate()
    }
    if (!x)
    x = G.absStart()
    }
    _m_show();
    __.body.onmousedown = function() {
    v = 1
    };
    if (H["onfocus"])
    try {
    y[H["onfocus"]](u)
    } catch (e) {
    }
    }
    function _m_bulid(h, j, k) {
    function _m_query(a, b, c, d) {
    var e = b ? b.getDate() : "", f = e ? "d_" + h + "_"
    + (j + 1) + "_" + e : "", g = d && b ? (D.indexOf(b
    .getDay() || 7) != -1) : 1;
    a = a.firstChild;
    if (a.lastChild)
    a.lastChild.nodeValue = e;
    else
    a.appendChild(__.createTextNode(e));
    a.date = b;
    a.id = f;
    a.className = g ? c : "limit_day";
    a.onmousedown = d && g ? _m_mousedown : null;
    if (a.replaceNode) {
    a.bak = null;
    a.bak = a.cloneNode(true)
    }
    }
    var l = k.getElementsByTagName("td");
    k.rows[1].className = h == M.getFullYear() && j == M.getMonth() ? "currentmonth01"
    : "";
    var m = new Date(h, j, 1), n = new Date(h, j + 1, 0), o = n
    .getDate(), p = m.getDay(), q, r, s, t;
    for ( var i = 0; i < p; i++)
    _m_query(l[i], null, "blank_day", 0);
    s = F && (r = F.value.engMonthConvert()).isDateTime() ? r
    .parseDate() : null;
    for ( var i = 0; i < o; i++) {
    q = new Date(h, j, i + 1);
    t = (!A || q >= A) && (!B || q <= B);
    _m_query(l[i + p], q, t ? (s && q <= s ? "cue_day"
    : "enable_day") : "over_day", t)
    }
    for ( var i = o + p; i < 42; i++)
    _m_query(l[i], null, "blank_day", 0)
    }
    function _m_show() {
    var a = new Date(x.getFullYear(), x.getMonth() + 1, 1), b;
    var c = x.getFullYear(), d = x.getMonth(), e = a.getFullYear(), f = a
    .getMonth();
    N.innerHTML = top.operator_.e_chs ? (c + $$cm.a + (d + 1) + $$cm.b)
    : ($$cm.b.split("|")[d] + " " + c);
    O.innerHTML = top.operator_.e_chs ? (e + $$cm.a + (f + 1) + $$cm.b)
    : ($$cm.b.split("|")[f] + " " + e);
    _m_bulid(c, d, P);
    _m_bulid(e, f, Q);
    if (C)
    for ( var i = 0; i < C.length; i++)
    if (b = $("d_" + C[i])) {
    b.className = "enable_day";
    b.onmousedown = _m_mousedown
    }
    if (E)
    for ( var i = 0; i < E.length; i++)
    if (b = $("d_" + E[i])) {
    b.className = "limit_day";
    b.onmousedown = null
    }
    if (b = $("d_" + M.getFullYear() + "_" + (M.getMonth() + 1)
    + "_" + M.getDate()))
    b.className += " current_day";
    if (K)
    K.className = K.className.replace(/selected_day/gi, "");
    if (b = $("d_"
    + u.value
    .engMonthConvert()
    .replace(/-0?/gi, "_")
    .replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/, "$2_$1"))) {
    b.className += " selected_day";
    K = b
    }
    _m_resize()
    }
    function _m_mousedown(e) {
    u.value = top.operator_.e_chs ? (this.date.getFullYear() + "-"
    + (this.date.getMonth() + 1) + "-" + this.date
    .getDate()) : ($$cm.b.split("|")[this.date.getMonth()]
    + "-" + this.date.getDate() + "-" + this.date
    .getFullYear());
    w = 1;
    if (this.replaceNode)
    this.replaceNode(this.bak);
    u.blur();
    $stopevent(e);
    if (H["onchange"])
    try {
    y[H["onchange"]](u)
    } catch (e) {
    }
    ;
    if (z)
    setTimeout( function() {
    $next_focus(u)
    }, 10)
    }
    function _m_resize() {
    J.style.height = __.documentElement.scrollHeight + "px";
    J.style.width = __.documentElement.scrollWidth + "px"
    }
    function _m_blur() {
    if (v) {
    v = 0;
    setTimeout( function() {
    u.focus()
    }, 0);
    return true
    }
    u.unnotice = false;
    J.style.display = "none";
    if (z)
    setTimeout( function() {
    $next_focus(u)
    }, 0)
    }
    $r(u, "onfocus", _m_focus);
    $r(u, "onblur", _m_blur);
    if (H["onload"])
    try {
    y[H["onload"]](u)
    } catch (e) {
    }
    }
    var I;
    while ((I = J.list.shift()) != null)
    new _c_calender(I)
    }
    top.$rinit(_m_init);
    _m_init();
    try {
    top.__.body.focus()
    } catch (e) {
    }
    }
    $r(_, "onload", c_calender);
    function x_config(c, d, e, f, g) {
    this.start = c;
    this.end = d;
    this.permits = {};
    this.prohibits = {};
    this.weekdays = {};
    this.abstart = new Date().dateValue();
    arrToObj(e.match(/[1234567]/g), this.weekdays);
    arrToObj(f, this.permits);
    arrToObj(g, this.prohibits);
    if (c && f && f.length) {
    var x, h = 0;
    for ( var i = 0; i < f.length; i++) {
    x = f[i].parseDate().dateValue();
    if (x < this.abstart)
    continue;
    if (!h || x < h)
    h = x
    }
    this.abstart = h || this.abstart
    }
    function arrToObj(a, b) {
    if (!a || !a.length)
    return;
    for ( var i = 0; i < a.length; i++)
    b[a[i]] = true
    }
    }
    x_config.prototype.absGray = function(c, e) {
    var d = new Date(c, e, 1);
    var a = [ '0' ], b = [ c, e + 1, 0 ], s;
    for ( var i = 1; i <= 31; i++) {
    d.setDate(i);
    if (d.getMonth() != e || this.end && d > this.end)
    break;
    b[2] = i, s = b.join('_');
    if (this.permits[s])
    return false;
    if (this.prohibits[s] || (this.start && d < this.start)
    || (!this.weekdays[d.getDay() || 7]))
    continue;
    return false
    }
    return true
    };
    x_config.prototype.absStart = function() {
    var a = this.abstart.getFullYear();
    var b = this.abstart.getMonth();
    for ( var i = 0, t = new Date(a, b, 1); i < 6; i++) {
    var y = t.getFullYear();
    var m = t.getMonth();
    if (this.absGray(y, m))
    t.setMonth(m + 1);
    else {
    a = y;
    b = m;
    break
    }
    }
    return new Date(a, b, 1)
    };
      

  3.   


    格式化后
    String.prototype.engMonthConvert=function(){
    if(top.operator_.e_chs)return this.toString();
    var a=$$cm.b.split("|"),b=this;
    for(var i=0;i<a.length;i++)b=b.replace((new RegExp(a[i],"gi")),i+1);return b
    } ;
    function c_calender(){
    var J=frameElement;
    var K,L;
    var M=new Date();
    var N=$("mm1_"),O=$("mm2_");
    var P=$("mt1_"),Q=$("mt2_");
    var R=__.body.getElementsByTagName("th");
    for(var i=0;i<R.length;i++)if(i%8>0)R[i].firstChild.nodeValue=top.$$ba.a.charAt(i%8-1);function _m_init(){
    function _c_calender(u){
    var v=0,w=1,x,y=$fixWindow(u);
    var z=u.getAttribute("focusnext");
    z=z&&z.match(/^(1|true)$/i);
    var A=u.getAttribute("range_start");
    A=(!A)?null:A.parseDate().dateValue();
    var B=u.getAttribute("range_end");
    B=(!B)?null:B.parseDate().dateValue();
    var C=u.getAttribute("permit");
    var D=u.getAttribute("weekday")||"1234567";
    C=(!C)?null:C.replace(/-0?/gi,"_").split(",");
    var E=u.getAttribute("prohibit");
    E=(!E)?null:E.replace(/-0?/gi,"_").split(",");
    var F=u.getAttribute("reference");
    F=(!F)?null:$fixWindow(u).$(F);
    var G=new x_config(A,B,D,C,E);
    var H={ } ;
    (u.getAttribute("hook")||"").replace(/([^;:]+):([^;]+)/gi,function(a,b,c){
    H[b]=c
    } );
    function _m_focus(){
    u.unnotice=true;
    if(u==L&&!w){
    J.style.display="";
    if(K)K.className=K.className.replace(/selected_day/gi,"");
    K=$("d_"+u.value.engMonthConvert().replace(/-0?/gi,"_").replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/,"$2_$1"));
    if(K)K.className+=" selected_day";
    return
    } w=0;
    L=u;
    J.style.display="";
    $("mlast_").onmousedown=$("mnext_").onmousedown=function(){
    w=1;
    x=new Date(x.getFullYear(),x.getMonth()+(this.id.substr(1,1)=="l"?-2:2),1)
    } ;
    $set_position(J,u);
    var a,b;
    if(!x){
    a=u.value.engMonthConvert();
    if(a.isDateTime())x=a.parseDate();
    else if(F){
    b=F.value.engMonthConvert();
    if(b.isDateTime())x=b.parseDate()
    } if(!x)x=G.absStart()
    } _m_show();
    __.body.onmousedown=function(){
    v=1
    } ;
    if(H["onfocus"])try{
    y[H["onfocus"]](u)
    } catch(e){ } 
    } function _m_bulid(h,j,k){
    function _m_query(a,b,c,d){
    var e=b?b.getDate():"",f=e?"d_"+h+"_"+(j+1)+"_"+e:"",g=d&&b?(D.indexOf(b.getDay()||7)!=-1):1;
    a=a.firstChild;
    if(a.lastChild)a.lastChild.nodeValue=e;
    else a.appendChild(__.createTextNode(e));
    a.date=b;
    a.id=f;
    a.className=g?c:"limit_day";
    a.onmousedown=d&&g?_m_mousedown:null;
    if(a.replaceNode){
    a.bak=null;
    a.bak=a.cloneNode(true)
    }
    } var l=k.getElementsByTagName("td");
    k.rows[1].className=h==M.getFullYear()&&j==M.getMonth()?"currentmonth01":"";
    var m=new Date(h,j,1),n=new Date(h,j+1,0),o=n.getDate(),p=m.getDay(),q,r,s,t;
    for(var i=0;i<p;i++)_m_query(l[i],null,"blank_day",0);s=F&&(r=F.value.engMonthConvert()).isDateTime()?r.parseDate():null;for(var i=0;i<o;i++){
    q=new Date(h,j,i+1);
    t=(!A||q>=A)&&(!B||q<=B);
    _m_query(l[i+p],q,t?(s&&q<=s?"cue_day":"enable_day"):"over_day",t)
    } for(var i=o+p;i<42;i++)_m_query(l[i],null,"blank_day",0)
    } function _m_show(){
    var a=new Date(x.getFullYear(),x.getMonth()+1,1),b;
    var c=x.getFullYear(),d=x.getMonth(),e=a.getFullYear(),f=a.getMonth();
    N.innerHTML=top.operator_.e_chs?(c+$$cm.a+(d+1)+$$cm.b):($$cm.b.split("|")[d]+" "+c);
    O.innerHTML=top.operator_.e_chs?(e+$$cm.a+(f+1)+$$cm.b):($$cm.b.split("|")[f]+" "+e);
    _m_bulid(c,d,P);
    _m_bulid(e,f,Q);
    if(C)for(var i=0;i<C.length;i++)if(b=$("d_"+C[i])){
    b.className="enable_day";
    b.onmousedown=_m_mousedown
    } if(E)for(var i=0;i<E.length;i++)if(b=$("d_"+E[i])){
    b.className="limit_day";
    b.onmousedown=null
    } if(b=$("d_"+M.getFullYear()+"_"+(M.getMonth()+1)+"_"+M.getDate()))b.className+=" current_day";
    if(K)K.className=K.className.replace(/selected_day/gi,"");
    if(b=$("d_"+u.value.engMonthConvert().replace(/-0?/gi,"_").replace(/^(\d{1,2}_\d{1,2})_(\d{4})$/,"$2_$1"))){
    b.className+=" selected_day";
    K=b
    } _m_resize()
    } function _m_mousedown(e){
    u.value=top.operator_.e_chs?(this.date.getFullYear()+"-"+(this.date.getMonth()+1)+"-"+this.date.getDate()):($$cm.b.split("|")[this.date.getMonth()]+"-"+this.date.getDate()+"-"+this.date.getFullYear());
    w=1;
    if(this.replaceNode)this.replaceNode(this.bak);
    u.blur();
    $stopevent(e);
    if(H["onchange"])try{
    y[H["onchange"]](u)
    } catch(e){ } ;
    if(z)setTimeout(function(){
    $next_focus(u)
    } ,10)
    } function _m_resize(){
    J.style.height=__.documentElement.scrollHeight+"px";
    J.style.width=__.documentElement.scrollWidth+"px"
    } function _m_blur(){
    if(v){
    v=0;
    setTimeout(function(){
    u.focus()
    } ,0);
    return true
    } u.unnotice=false;
    J.style.display="none";
    if(z)setTimeout(function(){
    $next_focus(u)
    } ,0)
    } $r(u,"onfocus",_m_focus);
    $r(u,"onblur",_m_blur);
    if(H["onload"])try{
    y[H["onload"]](u)
    } catch(e){ } 
    } var I;
    while((I=J.list.shift())!=null)new _c_calender(I)
    } top.$rinit(_m_init);
    _m_init();
    try{
    top.__.body.focus()
    } catch(e){ } 
    } $r(_,"onload",c_calender);
    function x_config(c,d,e,f,g){
    this.start=c;
    this.end=d;
    this.permits={ } ;
    this.prohibits={ } ;
    this.weekdays={ } ;
    this.abstart=new Date().dateValue();
    arrToObj(e.match(/[1234567]/g),this.weekdays);
    arrToObj(f,this.permits);
    arrToObj(g,this.prohibits);
    if(c&&f&&f.length){
    var x,h=0;
    for(var i=0;i<f.length;i++){
    x=f[i].parseDate().dateValue();
    if(x<this.abstart)continue;
    if(!h||x<h)h=x
    } this.abstart=h||this.abstart
    } function arrToObj(a,b){
    if(!a||!a.length)return;
    for(var i=0;i<a.length;i++)b[a[i]]=true
    }
    } x_config.prototype.absGray=function(c,e){
    var d=new Date(c,e,1);
    var a=['0'],b=[c,e+1,0],s;
    for(var i=1;i<=31;i++){
    d.setDate(i);
    if(d.getMonth()!=e||this.end&&d>this.end)break;
    b[2]=i,s=b.join('_');
    if(this.permits[s])return false;
    if(this.prohibits[s]||(this.start&&d<this.start)||(!this.weekdays[d.getDay()||7]))continue;
    return false
    } return true
    } ;
    x_config.prototype.absStart=function(){
    var a=this.abstart.getFullYear();
    var b=this.abstart.getMonth();
    for(var i=0,t=new Date(a,b,1);i<6;i++){
    var y=t.getFullYear();
    var m=t.getMonth();
    if(this.absGray(y,m))t.setMonth(m+1);
    else{
    a=y;
    b=m;
    break
    }
    } return new Date(a,b,1)
    } ;