function isValidUserID( str ) {
    var i ;
    if( isEmptyString( str ) ) {
        return false;
    }
    for( i = 0 ; i < str.length ; i++ ) {
        var c = str.charAt( i );
        if ( ! ( ( c >= 'A' && c <= 'Z' ) || ( c >= 'a' && c <= 'z' ) ||
                     ( c >= '0' && c <= '9' ) || c == '_' ) ) {
                return false;
        }
    }
    return true;
}

function isValidEmailAddress( str ) {
    var i ;
    var at_found = false;
    var dot_found = false;
    if( isEmptyString( str ) ) {
        return false;
    }
    if( str.length >= 48 ) {
        return false;
    }
    for( i = 0 ; i < str.length ; i++ ) {
        var c = str.charAt( i );
        if( c == '@' ) {
            at_found = true;
        }
    }
    if( at_found == false ) {
        return false;
    }
    for( i = 0 ; i < str.length ; i++ ) {
        var c = str.charAt( i );
        if( c == '.' ) {
            dot_found = true;
        }
    }
    if( dot_found == false ) {
        return false;
    }
    return true;
}


function isInteger( str ) {
    if( isEmptyString( str ) ) {
        return false;
    }
	var np = new RegExp( "^\\d*$" );
	return np.test( str );
}



function isEmptyString( str ) {
    var i ;
    for( i = 0 ; i < str.length ; i++ ) {
        if( str.charAt( i ) != ' '  &&
            str.charAt( i ) != '\r' &&
            str.charAt( i ) != '\n' ) {
                return false;
        }
    }
    return true;
}


function isFloat( str ) {
    if( isEmptyString( str ) ) {
        return false;
    }
    var len = str.length;
    var i;
    for( i = 0 ; i < len ; i++ ) {
        if( !( ( str.charAt( i ) <= '9' && str.charAt( i ) >= '0' ) || str.charAt( i ) == '.' ) ) {
            return false;
        }
    }
    var np0 = new RegExp( "^\\d*$" );
    var np1 = new RegExp( "^\\d+.\\d+$" );
    var np2 = new RegExp( "^.\\d+$" );
    return np0.test( str ) || np1.test( str ) || np2.test( str );
}

function getDay( dstr ) {
    var y_m_d = dstr.split( "-" );
    return y_m_d[2];
}

function getMonth( dstr ) {
    var y_m_d = dstr.split( "-" );
    return y_m_d[1];
}

function getYear( dstr ) {
    var y_m_d = dstr.split( "-" );
    return y_m_d[0];
}

function laterThan( dstr1 , dstr2 ) {
    var year1 = parseInt( getYear( dstr1 ) );
    var year2 = parseInt( getYear( dstr2 ) );
    var month1 = parseInt( getMonth( dstr1 ) );
    var month2 = parseInt( getMonth( dstr2 ) );
    var day1   = parseInt( getDay( dstr1 ) );
    var day2   = parseInt( getDay( dstr2 ) );
    if( year1 > year2 ) {
        return true;
    } else if( year1 < year2 ) {
        return false;
    }
    if( month1 > month2 ) {
        return true;
    } else if( month1 < month2 ) {
        return false;
    }
    if( day1 > day2 ) {
        return true;
    }
    return false;
}

function isDate( bstr ) {
    if( isEmptyString( bstr ) ) {
        alert( "日期字符不能为空" );
        return false;
    }
    var y_m_d = bstr.split( "-" );
    if( y_m_d.length != 3 ) {
        alert( "日期格式错误,请重新输入[yyyy-mm-dd]" );
        return false;
    }
    if( ! ( y_m_d[ 0 ] >= 1900 && y_m_d[ 0 ] <= 2100 ) ) {
        alert( "日期格式错误--年错误,请重新输入[yyyy-mm-dd]" );
        return false;
    }
    if( ! ( y_m_d[ 1 ] >= 1 && y_m_d[ 1 ] <= 12 ) ) {
        alert( "日期格式错误--月错误,请重新输入[yyyy-mm-dd]" );
        return false;
    }

    switch( parseInt(y_m_d[ 1 ]) ) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            last = 31;
            break;
        default:
            last = 30;
    }
    var y;
    if( parseInt( y_m_d[ 1 ] ) == 2 ) {
        y = parseInt( y_m_d[ 0 ] );
        if( ( y % 4 == 0 ) && ( y % 100 != 0 ) ||
            ( y % 100 == 0 ) && ( y % 400 == 0 ) ) {
                last = 29;
        } else {
            last = 28;
        }
    }
    if( !( parseInt( y_m_d[ 2 ] ) >=1 && parseInt( y_m_d[ 2 ] ) <=last ) ) {
        alert( "日期格式错误--日错误,请重新输入[yyyy-mm-dd]" );
        return false;
    }
    return true;
}
