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