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;
}
}