<!--

/**
 *
 */
function Alerter( msg, item ) {
	if ( ! msg )
		return false;
	alert ( msg );
	if ( item )
		item.focus();
	return false;
}

/**
 *
 */
function getElementArray( form ) {
	if ( ! form )
		return null;
	var items	= form.elements;
	if ( ! items )
		return null;
	return items;
}

/**
 *
 */
function isEmptyValue( value ) {
	if ( value == null
	  || value == ''
	  || value.length == 0
	)
		return true;
	return false;
}

/**
 *
 */
function trimText( form ) {
	var items	= getElementArray( form );
	if ( ! items )
		return false;

	for ( var i = 0; i < items.length; i++ ) {
		if ( isEmptyValue( items[i].value ) )
			continue;
		if ( items[i].type == 'text'
		  || items[i].type == 'password'
		) {
			items[i].value	= items[i].value.replace( /(\x0d?\x0a)+/, '' );
			items[i].value	= items[i].value.replace( /(\x09|\x0b|\x0c|\x20|\u3000)+/g, ' ' );
			items[i].value	= items[i].value.replace( /(^ +| +$)/, '' );
		}
		if ( items[i].type == 'textarea' ) {
		//	items[i].value	= items[i].value.replace( /(^ +| +$)/, '' );
			items[i].value	= items[i].value.replace( /(\x0d?\x0a)/g, '\x0a' );
			items[i].value	= items[i].value.replace( /(\x0a)+$/, '' );
			var textValues	= items[i].value.split( '\x0a' );
			var textValue	= '';
			for ( var n = 0; n < textValues.length; n++ ) {
				textValues[n]	= textValues[n].replace( /(\x09|\x0b|\x0c|\x20|\u3000)+$/, '' );
				if ( textValues[n].length != 0 )
					textValue	+= textValues[n] + '\x0a';
			}
			items[i].value	= textValue.replace( /(\x0a)+$/, '' );
		}
	}
	return true;
}

/*
 *
 */
function checkNumber( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( ! value.toString().match( /^[0-9]+$/ ) )
		return false;
	return true;
}

/**
 *
 */
function getValueLength( value ) {
	if ( ! value )
		return 0;
	if ( isEmptyValue( value ) )
		return 0;
	var str		= escape( value );
	var len		= str.length;
	for ( var i; ( i = str.indexOf( '%', i ) ) > -1; i++ )
		len	-= str.charAt( i + 1 ) == 'u' ? 5 : 2;
	return len;
}

/**
 *
 */
function checkAscii( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( ! value.match( /^[\x20-\x7E]+$/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkMailAddr( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( ! value.match( /^[\x20-\x7E]+\@([\da-zA-Z][\w\-]+\.)+[a-zA-Z]{2,4}$/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkURLAddr( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( ! checkAscii( value ) )
		return false;
	if ( value.match( / / ) )
		return false;
	if ( ! value.match( /^http(s)?:\/{2}/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkHiragana( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( ! value.match( /^[\u3041-\u3093]+$/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkKatakana( value ) {
	if ( isEmptyValue( value ) )
		return true;
	if ( ! value.match( /^[\u30a1-\u30f6]+$/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkTelNumber( value ) {
	if ( isEmptyValue( value ) )
		return false;
	if ( value.lentgh < 12 || value.length > 13 )
		return false;
	if ( ! value.match( /^[0-9]{2,4}-[0-9]{2,4}-[0-9]{4}$/ ) )
		return false;
	return true;
}

/**
 *
 */
function checkSpecialCharacter( value ) {
	// ignore: `_', `-', `+', `@', `.', `!', `?'.
	var strings	= new Array ( ',', '<', '>', '[', ']', '{', '}', '(', ')', '&', '`', '"', '\'', ';', ':', '=', '~', '|', '/', '#', '*', '%', '$', '\\' );

	for ( var i = 0; i < strings.length; i++ )
		if ( value.indexOf( strings[i] ) >= 0 )
			return false;

	return true;
}

/*
 *
 */
function isYear( year ) {
	if ( ! checkNumber( year ) )
		return false;
	year	= new Number( year );
	if ( year < 1900 || year >= 3000 )
		return false;

	return true;
}

/*
 *
 */
function isMonth( mon ) {
	if ( ! checkNumber( mon ) )
		return false;
	mon	= new Number( mon );
	if ( mon < 1 || mon > 12 )
		return false;

	return true;
}

/*
 *
 */
function isDaysOfMonth( day ) {
	if ( ! checkNumber( day ) )
		return false;
	day	= new Number( day );
	if ( day < 1 || day > 31 )
		return false;

	return true;
}

/*
 *
 */
function checkExistsDate( day, mon, year ) {
	if ( ! isDaysOfMonth( day ) )
		return false;
	day	= new Number( day );

	if ( typeof mon != 'undefined' ) {
		if ( ! isMonth( mon ) )
			return false;
		if ( typeof year != 'undefined'
		  && ! isYear( year )
		)
			return false;
		if ( day > getMaximumDayOfMonth( mon, year ) )
			return false;
	}

	return true;
}

/*
 *
 */
function getLeastYear( year ) {
	if ( ! isYear( year ) )
		return false;

	return ( ( year % 4 == 0 ) && ( year % 100 != 0 ) || ( year % 400 == 0 ) ) ? true : false;
}

/*
 *
 */
function getMaximumDayOfMonth( mon, year ) {
	if ( ! isMonth( mon ) )
		return false;
	if ( typeof year != 'undefined'
	  && ! isYear
	)
		return false;

	mon	= new Number( mon );
	var maxOfDay	= 31 - 1;
	if ( mon == 2 ) {
		maxOfDay	-= 1;
		if ( typeof year != 'undefined' && ! getLeastYear( year ) )
			return maxOfDay - 1;
		return maxOfDay;
	}
	if ( mon < 8 ) {
		if ( mon % 2 != 0 )
			return maxOfDay + 1;
		return maxOfDay;
	}
	if ( mon % 2 == 0 )
		return maxOfDay + 1;
	return maxOfDay;
}

/**
 *
 */
function concatDate( day, mon, year, separate ) {
	var date	= new Date();
	if ( isEmptyValue( day ) || parseInt( day ) == 0 )
		day	= date.getDate();
	if ( isEmptyValue( mon ) || parseInt( mon ) == 0 )
		mon	= date.getMonth() + 1;
	if ( isEmptyValue( year ) || parseInt( year ) == 0 )
		year	= date.getFullYear();
	if ( ! checkExistsDate( day, mon, year ) )
		return false;

	var ret	= year.toString();
	if ( ! isEmptyValue( separate ) )
		ret	+= separate;
	if ( mon < 10 )
		mon	= '0' + mon.toString();
	ret	+= mon.toString();
	if ( ! isEmptyValue( separate ) )
		ret	+= separate;
	if ( day < 10 )
		day	= '0' + day.toString();
	ret	+= day.toString();

	return ret;
}

/**
 *
 */
function formSubmit( form ) {
	var items	= getElementArray( form );
	if ( ! items )
		return false;

	return true;
}

//-->

