源代码

common.js

*********************************************************************

if (!Array.prototype.contain) {
 Array.prototype.contain = function(item) {
  for (var a in this) {
      if (this[a] == item) return true;
  }
  return false;
 }
}

var Try = {
 these: function() {
  var returnValue;
  for (var i = 0; i < arguments.length; i++) {
   var lambda = arguments[i];
   try {
    returnValue = lambda();
    break;
   } catch (e) {}
  }
  return returnValue;
 }
}

function $() {
 var elements = new Array()
 for (var i = 0; i < arguments.length; i++) {
  var element = arguments[i]
  if (typeof(element) == 'string')
   element = findElement(element)
  if (arguments.length == 1)
   return element
  elements.push(element)
 }
 return elements
 
 function findElement(name) {
  var element = Try.these(
   function() { return document.getElementById(name) },  // IE5, NN6, DOM1
   function() { return document.all.item(name) }    // IE4
  )
  element = element || document.forms.item(name)
  if (element) return element

  for (var i = 0; i < document.forms.length; i++) {
   var f = document.forms[i]
   element = f.elements.item(name)
   if (element) return element
  }
 }
}

function Calendar(style) {
    var now = new Date();
    this.year = now.getFullYear();
    this.month = now.getMonth() + 1;
    this.style = style;
 
    this.build = function(year, month) {
        this.year = year || this.year;
        this.month = month || this.month;

        var daysInMonth=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        if (this.isLeapYear(this.year)) daysInMonth[1] = 29;
        var maxdays = daysInMonth[this.month-1];
       
        var firstDate = new Date(this.year, this.month-1, 1);
        var week = firstDate.getDay();
        var startDay = 1 - week;
       
        var ndays = maxdays + week;
        if (ndays > 35) ndays = 42;
        else if (ndays > 28) ndays = 35;

        var HTML = "";
        for (var i=0, n=startDay; i<ndays; i++, n++) {
            if (i % 7 == 0)
                HTML += this.style.line(this, true);
            var dayPos = (n<=0) ? -1 : (n>maxdays) ? 1: 0;
            HTML += this.style.day(this, _setDay(firstDate,n), dayPos);
            if (i % 7 == 6)
                HTML += this.style.line(this, false);
        }
        return HTML;
    };

    this.buildWeek = function (weekNames) {
         var HTML = "";
         HTML += this.style.line(this, true);
         for (var i=0; i<weekNames.length; i++) {
            HTML += this.style.week(this, weekNames[i]);
         }
         HTML += this.style.line(this, false);
         return HTML;
    };

    /**
     * prev year  : buildDiff(-1, 0)
     * next year  : buildDiff(1, 0)
     * prev month : buildDiff(0, -1)
     * next month : buildDiff(0, 1)
     */
    this.buildDiff = function (yeardiff, monthdiff) {
     this.year += yeardiff;
     this.month += monthdiff;
     return this.build();
    };

    this.isLeapYear = function (year) {
        year = year || this.year;
        return ((year%4==0) && (year%100!=0)) || (year%400==0);
    };
   
    // concat string
    this.sb = function () {
        var s = "";
        for (var i=0; i<arguments.length; i++) {
            s += arguments[i];
        }
        return s;
    };
   
    // "9" => "09"
    this.fullday = function (day) {
        return  (day<10) ? "0"+day : ""+day;
    };
    
    _setDay = function (d, day) {
        return new Date(d.getFullYear(), d.getMonth(), day);
    };
}


var SelectInput = {
    getValue: function (src) {
        var element = $(src)
        var value = ""
        if (element.type == 'select-one') {
            var index = element.selectedIndex
            if (index >= 0)
                value = element.options[index].value || element.options[index].text
        } else {
            value = new Array()
            for (var i = 0; i < element.length; i++) {
                var opt = element.options[i]
                if (opt.selected)
                    value.push(opt.value || opt.text)
            }
        }
        return value
    },
   
    setValue: function (src, value) {
        if (! value.join) value=[value]
        for (var i = 0; i < value.length; i++)
            _setValue_(src, value[i])

        function _setValue_ (src, value) {
            var element = $(src)
            for (var i = 0; i < element.length; i++) {
                var opt = element.options[i]
                if ((opt.value || opt.text) == value)
                    opt.selected = true
            }
        }
    },
   
    toString: function (src) {
        var s = "";
        var element = $(src)
        if (element.type == 'select-one') {
            s = element.value || element.text;
        } else {
            for (var i = 0; i < element.length; i++) {
                if (i > 0) s+= ",";
                var opt = element.options[i]
                s += opt.value || opt.text;
            }
        }
        return s;
    },
   
    selectAll: function (src) {
        var element = $(src)
        if (element.type == 'select-one') {
            return;
        } else {
            for (var i = 0; i < element.length; i++) {
                var opt = element.options[i]
                opt.selected = true
            }
        }
    }// end function
}

************************************************************************

fmtinf_entry.js

************************************************************************

/ data[][] = [ [no, name, uses], ... ]
function addToList(src, data) {
    src = $(src)
    for (var i=src.options.length-1; i>=0; i--) {
        src.options.remove(i);
    }
    for (var i=0; i<data.length; i++) {
        var opt = document.createElement("OPTION")
        opt.text = data[i][1]
        opt.value = data[i][0]
        if (data[i][2]) opt.setAttribute("uses", data[i][2] )
        src.options.add(opt)
    }
}

function swapList(src, dest) {
 alert("ddd");
    src = $(src)
    dest = $(dest)
    var optIndexs = []
    for (var i=0; i<src.options.length; i++) {
        if ( src.options[i].selected ) {
            if (src.options[i].getAttribute("uses") != "0") {
                var opt = document.createElement("OPTION")
                opt.text = src.options[i].text
                opt.value = src.options[i].value
                dest.options.add(opt)
            }
            optIndexs.push(i)
        }
    }
    for (var i=optIndexs.length-1; i>=0; i--) {
        src.options.remove(optIndexs[i])
    }
   
    sortList(dest);
}

function swapDisplay(no) {
    function display(show, src) {
        $(src).parentElement.parentElement.style.display = (show) ? "block" : "none"
    }
    display(no !=0, "applyid")
    display(no !=0, "applyname")
    display(no==2, "submitterm")
    display(no==2, "termpattern")
    display(no==1, "playid1")
    display(no==1, "playid2")
    display(no==1, "playid3")
    display(no==1, "memo")
    display(no==1, "checknote1")
    display(no==1, "checknote2")
    display(no==1, "checknote3")
    display(no==1, "checknote4")
    display(no==1, "checknote5")
}

function sortList(src) {
    var as = [];
    src = $(src);
    for (var i=src.options.length-1; i>=0; i--) {
        var opt = src.options[i];
        as.push([opt.value, opt.text, opt.getAttribute("uses")]);
    }
    as.sort(listSort);
    addToList(src, as);
   
    function listSort(a, b) {
        if (eval(a[0]) > eval(b[0])) return 1;
        if (eval(a[0]) < eval(b[0])) return -1;
        if (a[1] > b[1]) return 1;
        if (a[1] < b[1]) return -1;
        return 0;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值