function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function trim(inputString) {
    if (typeof inputString != "string"){
        return inputString;
    }

    var retValue = inputString;
    var ch = retValue.substring(0, 1);
    while (ch == " "){
        retValue = retValue.substring(1, retValue.length);
        ch = retValue.substring(0, 1);
    }
    ch = retValue.substring(retValue.length-1, retValue.length);
    while (ch == " "){
        retValue = retValue.substring(0, retValue.length-1);
    ch = retValue.substring(retValue.length-1, retValue.length);
    }
    while (retValue.indexOf("  ") != -1){
        retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
    }
    return retValue;
}

function isBlank(fromObj){
    var result = true;
    var str;
    var tempStr;
    var reg = new RegExp("\\r\\n", "gi");

    str = trim(fromObj.value);
    tempStr = str.replace(reg, "");

    if (tempStr != "") {
        fromObj.value = str;
        result = false;
    }
    else
        fromObj.value = "";

    return result;
}

function checkDate(dateStr){
    var errmsg = "";
    var dateReg = /^[\d]{4}-[01]{1}[\d]{1}-[0123]{1}[\d]{1}$/;
    
    if (!dateStr.match(dateReg)) {
        errmsg += "Invalid date format";
    }
    else {
        var year=dateStr.substring(0,4);
        var month=dateStr.substring(5,7);
        var day=dateStr.substring(8,10);        
        var dayAry = new Array(31,28,31,30,31,30,31,31,30,31,30,31) ;
        
        if (eval(year)%4==0){
            dayAry[1] = 29;
        }
        if (eval(month)>12 || eval(month)<=0){
            errmsg += "Invalid month";  
        }               
        if (eval(month)<=12 && eval(month)>0 && eval(day)>dayAry[(eval(month)-1)]){
            errmsg += "Invalid day";
        }
    }
    
    return errmsg;
}
/*
function toDateObj(dateStr) {
   var resultDate = null;
   
   if (checkDate(dateStr) == "") {
        var year = dateStr.substring(0,4);
        var month = dateStr.substring(5,7);
        var day = dateStr.substring(8,10);
        
        resultDate = new Date(year, month - 1, day, 0, 0, 0);
   }
   
   return resultDate;
}
*/
function toDateObj(dateStr, hour, minute, second) {
   var resultDate = null;
   
   if (checkDate(dateStr) == "") {
        var year = dateStr.substring(0,4);
        var month = dateStr.substring(5,7);
        var day = dateStr.substring(8,10);
        if (!hour) hour = 0;
        if (!minute) minute = 0;
        if (!second) second = 0;
        
        resultDate = new Date(year, month - 1, day, hour, minute, second);
   }

   return resultDate;
}

function setDate(date, month, year, formName, textName) {
    var frm = document.forms[formName];

    if (String(month).length == 1) {
        month = '0' + month;
    }

    if (String(date).length == 1) {
        date = '0' + date;
    }
    
    frm.elements[textName].value = year + '-' + month + '-' + date;
}

function checkEMail(mailStr) {
    var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    var result = true;
    
    if (!mailStr.match(reg)){
        result = false;
    }
    
    return result;
}

function checkPassword(passwordStr) {
    var reg = /^\w{8,15}$/;
    var result = true;
    
    if (!passwordStr.match(reg)){
        result = false;
    }
    
    return result;
}

function checkInteger(intStr) {
    var reg = /^[0-9]*$/;
    var result = true;
    
    if (!intStr.match(reg)){
        result = false;
    }
    
    return result;
}

function checkUnsignInteger(intStr) {
    var reg = /^[-0-9]*$/;
    var result = true;
    
    if (!intStr.match(reg)){
        result = false;
    }
    
    return result;
}

function checkFloat(floatStr) {
    var reg = /^[\.0-9]*$/;
    var result = true;
    var pointFound = 0;
    
    for (var i = 0; i < floatStr.length; i++) {
        if (floatStr.charAt(i) == ".") {
            pointFound++;
        }
    }
    
    if (pointFound > 1 || floatStr.indexOf(".") == 0 || !floatStr.match(reg) || isNaN(parseFloat(floatStr))){
        result = false;
    }
    
    return result;
}

function checkUnsignFloat(floatStr) {
    var reg = /^[-\.0-9]*$/;
    var result = true;
    var pointFound = 0;
    
    for (var i = 0; i < floatStr.length; i++) {
        if (floatStr.charAt(i) == ".") {
            pointFound++;
        }
    }
    
    if (pointFound > 1 || floatStr.indexOf(".") == 0 || (floatStr.indexOf("-") == 0 && floatStr.indexOf(".") == 1) || !floatStr.match(reg) || isNaN(parseFloat(floatStr))){
        result = false;
    }
    
    return result;
}

function checkDollar(dollarStr) {
    var reg = /^-{0,1}[0-9]{1,}.[0-9]{1}$/;
    var result = true;
    
    if (!checkFloat(dollarStr)) {
        result = false;
    }
    else if (!checkInteger(dollarStr) && !dollarStr.match(reg)){
        result = false;
    }
    
    return result;
}

function checkUnsignDollar(dollarStr) {
    var reg = /^-{0,1}[0-9]{1,}.[0-9]{1}$/;
    var result = true;
    
    if (!checkUnsignFloat(dollarStr)) {
        result = false;
    }
    else if (!checkUnsignInteger(dollarStr) && !dollarStr.match(reg)){
        result = false;
    }
    
    return result;
}

function findCheckedIndex(checkboxObj, length) {
    var result = -1;
    
    try {
        for (var i = 0; i < length; i++) {
            if (checkboxObj[i].checked) {
                result = i;
            }
        }
    }
    catch(e) {}
    
    return result;
}