js

来源:互联网 发布:两种方法创建数据库 编辑:程序博客网 时间:2024/05/21 22:51

/*
 * My97 DatePicker 4.6
 * SITE: http://dp.my97.net
 * BLOG: http://my97.cnblogs.com
 * MAIL: smallcarrot@163.com
 */
var $dp, WdatePicker;
(function() {
 var _ = {
  $wdate : true,
  $dpPath : "",
  $crossFrame : true,
  doubleCalendar : false,
  position : {},
  lang : "auto",
  skin : "default",
  dateFmt : "yyyy-MM-dd",
  realDateFmt : "yyyy-MM-dd",
  realTimeFmt : "HH:mm:ss",
  realFullFmt : "%Date %Time",
  minDate : "1900-01-01 00:00:00",
  maxDate : "2099-12-31 23:59:59",
  startDate : "",
  alwaysUseStartDate : false,
  yearOffset : 1911,
  firstDayOfWeek : 0,
  isShowWeek : false,
  highLineWeekDay : true,
  isShowClear : true,
  isShowToday : true,
  isShowOthers : true,
  readOnly : false,
  errDealMode : 0,
  autoPickDate : null,
  qsEnabled : true,

  specialDates : null,
  specialDays : null,
  disabledDates : null,
  disabledDays : null,
  opposite : false,
  onpicking : null,
  onpicked : null,
  onclearing : null,
  oncleared : null,
  ychanging : null,
  ychanged : null,
  Mchanging : null,
  Mchanged : null,
  dchanging : null,
  dchanged : null,
  Hchanging : null,
  Hchanged : null,
  mchanging : null,
  mchanged : null,
  schanging : null,
  schanged : null,
  eCont : null,
  vel : null,
  errMsg : "",
  quickSel : [],
  has : {}
 };
 WdatePicker = U;
 var X = window, O = "document", J = "documentElement", C = "getElementsByTagName", V, A, T, I, b;
 switch (navigator.appName) {
 case "Microsoft Internet Explorer":
  T = true;
  break;
 case "Opera":
  b = true;
  break;
 default:
  I = true;
  break
 }
 A = L();
 if (_.$wdate)
  M(A + "skin/WdatePicker.css");
 V = X;
 if (_.$crossFrame) {
  try {
   while (V.parent[O] != V[O]
     && V.parent[O][C]("frameset").length == 0)
    V = V.parent
  } catch (P) {
  }
 }
 if (!V.$dp)
  V.$dp = {
   ff : I,
   ie : T,
   opera : b,
   el : null,
   win : X,
   status : 0,
   defMinDate : _.minDate,
   defMaxDate : _.maxDate,
   flatCfgs : []
  };
 B();
 if ($dp.status == 0)
  Z(X, function() {
   U(null, true)
  });
 if (!X[O].docMD) {
  E(X[O], "onmousedown", D);
  X[O].docMD = true
 }
 if (!V[O].docMD) {
  E(V[O], "onmousedown", D);
  V[O].docMD = true
 }
 E(X, "onunload", function() {
  if ($dp.dd)
   Q($dp.dd, "none")
 });
 function B() {
  V.$dp = V.$dp || {};
  obj = {
   $ : function($) {
    return (typeof $ == "string") ? this.win[O].getElementById($)
      : $
   },
   $D : function($, _) {
    return this.$DV(this.$($).value, _)
   },
   $DV : function(_, $) {
    if (_ != "") {
     this.dt = $dp.cal.splitDate(_, $dp.cal.dateFmt);
     if ($)
      for ( var A in $) {
       if (this.dt[A] === undefined)
        this.errMsg = "invalid property:" + A;
       this.dt[A] += $[A]
      }
     if (this.dt.refresh())
      return this.dt
    }
    return ""
   },
   show : function() {
    Q(this.dd, "block")
   },
   hide : function() {
    Q(this.dd, "none")
   },
   attachEvent : E
  };
  for ( var $ in obj)
   V.$dp[$] = obj[$];
  $dp = V.$dp
 }
 function E(A, $, _) {
  if (T)
   A.attachEvent($, _);
  else {
   var B = $.replace(/on/, "");
   _._ieEmuEventHandler = function($) {
    return _($)
   };
   A.addEventListener(B, _._ieEmuEventHandler, false)
  }
 }
 function L() {
  var _, A, $ = X[O][C]("script");
  for ( var B = 0; B < $.length; B++) {
   _ = $[B].src.substring(0, $[B].src.toLowerCase().indexOf(
     "wdatepicker.js"));
   A = _.lastIndexOf("/");
   if (A > 0)
    _ = _.substring(0, A + 1);
   if (_)
    break
  }
  return _
 }
 function F(F) {
  var E, C;
  if (F.substring(0, 1) != "/" && F.indexOf("://") == -1) {
   E = V.location.href;
   C = location.href;
   if (E.indexOf("?") > -1)
    E = E.substring(0, E.indexOf("?"));
   if (C.indexOf("?") > -1)
    C = C.substring(0, C.indexOf("?"));
   var G, I, $ = "", D = "", A = "", J, H, B = "";
   for (J = 0; J < Math.max(E.length, C.length); J++) {
    G = E.charAt(J).toLowerCase();
    I = C.charAt(J).toLowerCase();
    if (G == I) {
     if (G == "/")
      H = J
    } else {
     $ = E.substring(H + 1, E.length);
     $ = $.substring(0, $.lastIndexOf("/"));
     D = C.substring(H + 1, C.length);
     D = D.substring(0, D.lastIndexOf("/"));
     break
    }
   }
   if ($ != "")
    for (J = 0; J < $.split("/").length; J++)
     B += "../";
   if (D != "")
    B += D + "/";
   F = E.substring(0, E.lastIndexOf("/") + 1) + B + F
  }
  _.$dpPath = F
 }
 function M(A, $, B) {
  var D = X[O][C]("HEAD").item(0), _ = X[O].createElement("link");
  if (D) {
   _.href = A;
   _.rel = "stylesheet";
   _.type = "text/css";
   if ($)
    _.title = $;
   if (B)
    _.charset = B;
   D.appendChild(_)
  }
 }
 function Z($, _) {
  E($, "onload", _)
 }
 function G($) {
  $ = $ || V;
  var A = 0, _ = 0;
  while ($ != V) {
   var D = $.parent[O][C]("iframe");
   for ( var F = 0; F < D.length; F++) {
    try {
     if (D[F].contentWindow == $) {
      var E = W(D[F]);
      A += E.left;
      _ += E.top;
      break
     }
    } catch (B) {
    }
   }
   $ = $.parent
  }
  return {
   "leftM" : A,
   "topM" : _
  }
 }
 function W(E) {
  if (T)
   return E.getBoundingClientRect();
  else {
   var A = {
    ROOT_TAG : /^body|html$/i,
    OP_SCROLL : /^(?:inline|table-row)$/i
   }, G = null, _ = E.offsetTop, F = E.offsetLeft, D = E.offsetWidth, B = E.offsetHeight, C = E.offsetParent;
   if (C != E)
    while (C) {
     F += C.offsetLeft;
     _ += C.offsetTop;
     if (C.tagName.toLowerCase() == "body")
      G = C.ownerDocument.defaultView;
     C = C.offsetParent
    }
   C = E.parentNode;
   while (C.tagName && !A.ROOT_TAG.test(C.tagName)) {
    if (C.scrollTop || C.scrollLeft)
     if (!A.OP_SCROLL.test(Q(C)))
      if (!b || C.style.overflow !== "visible") {
       F -= C.scrollLeft;
       _ -= C.scrollTop
      }
    C = C.parentNode
   }
   var $ = a(G);
   F -= $.left;
   _ -= $.top;
   D += F;
   B += _;
   return {
    "left" : F,
    "top" : _,
    "right" : D,
    "bottom" : B
   }
  }
 }
 function N($) {
  $ = $ || V;
  var _ = $[O];
  _ = _[J] && _[J].clientHeight
    && _[J].clientHeight <= _.body.clientHeight ? _[J] : _.body;
  return {
   "width" : _.clientWidth,
   "height" : _.clientHeight
  }
 }
 function a($) {
  $ = $ || V;
  var B = $[O], A = B[J], _ = B.body;
  B = (A && A.scrollTop != null && (A.scrollTop > _.scrollLeft || A.scrollLeft > _.scrollLeft)) ? A
    : _;
  return {
   "top" : B.scrollTop,
   "left" : B.scrollLeft
  }
 }
 function D($) {
  src = $ ? ($.srcElement || $.target) : null;
  if ($dp && $dp.cal && !$dp.eCont && $dp.dd && Q($dp.dd) == "block"
    && src != $dp.el)
   $dp.cal.close()
 }
 function Y() {
  $dp.status = 2;
  H()
 }
 function H() {
  if ($dp.flatCfgs.length > 0) {
   var $ = $dp.flatCfgs.shift();
   $.el = {
    innerHTML : ""
   };
   $.autoPickDate = true;
   $.qsEnabled = false;
   K($)
  }
 }
 var R, $;
 function U(E, _) {
  $dp.win = X;
  B();
  E = E || {};
  if (_) {
   if (!D()) {
    $ = $ || setInterval(function() {
     if (V[O].readyState == "complete")
      clearInterval($);
     U(null, true)
    }, 50);
    return
   }
   if ($dp.status == 0) {
    $dp.status = 1;
    K({
     el : {
      innerHTML : ""
     }
    }, true)
   } else
    return
  } else if (E.eCont) {
   E.eCont = $dp.$(E.eCont);
   $dp.flatCfgs.push(E);
   if ($dp.status == 2)
    H()
  } else {
   if ($dp.status == 0) {
    U(null, true);
    return
   }
   if ($dp.status != 2)
    return;
   var C = A();
   if (C) {
    $dp.srcEl = C.srcElement || C.target;
    C.cancelBubble = true
   }
   E.el = $dp.$(E.el || $dp.srcEl);
   if (!E.el
     || E.el.disabled
     || (E.el == $dp.el && Q($dp.dd) != "none" && $dp.dd.style.left != "-1970px"))
    return;
   K(E)
  }
  function D() {
   if (T && V != X && V[O].readyState != "complete")
    return false;
   return true
  }
  function A() {
   if (I) {
    func = A.caller;
    while (func != null) {
     var $ = func.arguments[0];
     if ($ && ($ + "").indexOf("Event") >= 0)
      return $;
     func = func.caller
    }
    return null
   }
   return event
  }
 }
 function S(_, $) {
  return _.currentStyle ? _.currentStyle[$] : document.defaultView
    .getComputedStyle(_, false)[$]
 }
 function Q(_, $) {
  if (_)
   if ($ != null)
    _.style.display = $;
   else
    return S(_, "display")
 }
 function K(H, $) {
  for ( var D in _)
   if (D.substring(0, 1) != "$")
    $dp[D] = _[D];
  for (D in H)
   if ($dp[D] !== undefined)
    $dp[D] = H[D];
  var E = $dp.el ? $dp.el.nodeName : "INPUT";
  if ($ || $dp.eCont
    || new RegExp(/input|textarea|div|span|p|a/ig).test(E))
   $dp.elProp = E == "INPUT" ? "value" : "innerHTML";
  else
   return;
  if ($dp.lang == "auto")
   $dp.lang = T ? navigator.browserLanguage.toLowerCase()
     : navigator.language.toLowerCase();
  if (!$dp.dd
    || $dp.eCont
    || ($dp.lang && $dp.realLang && $dp.realLang.name != $dp.lang
      && $dp.getLangIndex && $dp.getLangIndex($dp.lang) >= 0)) {
   if ($dp.dd && !$dp.eCont)
    V[O].body.removeChild($dp.dd);
   if (_.$dpPath == "")
    F(A);
   var B = "<iframe src=\""
     + _.$dpPath
     + "My97DatePicker.htm\" frameborder=\"0\" border=\"0\" scrolling=\"no\"></iframe>";
   if ($dp.eCont) {
    $dp.eCont.innerHTML = B;
    Z($dp.eCont.childNodes[0], Y)
   } else {
    $dp.dd = V[O].createElement("DIV");
    $dp.dd.style.cssText = "position:absolute;z-index:19700";
    $dp.dd.innerHTML = B;
    V[O].body.insertBefore($dp.dd, V[O].body.firstChild);
    Z($dp.dd.childNodes[0], Y);
    if ($)
     $dp.dd.style.left = $dp.dd.style.top = "-1970px";
    else {
     $dp.show();
     C()
    }
   }
  } else if ($dp.cal) {
   $dp.show();
   $dp.cal.init();
   if (!$dp.eCont)
    C()
  }
  function C() {
   var F = $dp.position.left, B = $dp.position.top, C = $dp.el;
   if (C != $dp.srcEl && (Q(C) == "none" || C.type == "hidden"))
    C = $dp.srcEl;
   var H = W(C), $ = G(X), D = N(V), A = a(V), E = $dp.dd.offsetHeight, _ = $dp.dd.offsetWidth;
   if (isNaN(B)) {
    if (B == "above"
      || (B != "under" && (($.topM + H.bottom + E > D.height) && ($.topM
        + H.top - E > 0))))
     B = A.top + $.topM + H.top - E - 3;
    else
     B = A.top + $.topM + H.bottom;
    B += T ? -1 : 1
   } else
    B += A.top + $.topM;
   if (isNaN(F))
    F = A.left + Math.min($.leftM + H.left, D.width - _ - 5)
      - (T ? 2 : 0);
   else
    F += A.left + $.leftM;
   $dp.dd.style.top = B + "px";
   $dp.dd.style.left = F + "px"
  }
 }
})()

 

0 0