<!--
/*
 * @(#)ChJSearchUtil.js
 * USK  hiroshi_ueki
 *
 * <ul>
 *	<li>正数値判定
 *	<li>Dateオブジェクト判定
 *	<li>文字列操作
 *	<li>新規ウインドウオープン
 * </ul>
 * @author		Nihon Unisys Software Kaisha, Ltd.
 * @version	1.0 2000/11/
 */

	/**
	 * 日付用、正の整数をチェックする関数。
	 * 頭に'0'がついても可
	 * @param val チェック対象の値
	 * @return valが整数ならばtrue。そうでなければfalse。
	 */
	function isInt(val) {
		var i = parseInt(val);
		var twoDigit  =  "0" + i.toString();

		if (( i.toString() != val ) && ( twoDigit  != val )) {
			/*parseInt()は8進数として計算してしまうため、'08'と'09'に関して計算し直す */
			if( (val.charAt(0) == '0') && ((val.charAt(1) == '8')||(val.charAt(1) == '9')) ) {
				return true;
			}
			return false;			
		}
	
		/* 正の整数をチェック */
		if (i < 0) {
			return false;
		}
		return true;
	}

	/**
	 * 正の整数をチェックする関数。
	 *
	 * @param val チェック対象の値
	 * @return valが整数ならばtrue。そうでなければfalse。
	 */
	function isPositiveInt(val) {
		var i = parseInt(val);

		if (( i.toString() != val )) {
			return false;
		}
	
		/* 正の整数をチェック */
		if (i < 0) {
			return false;
		}
		return true;
	}

	/**
	 * 年、月、日、時、分、秒からDateオブジェクトを作成する関数。
	 *
	 * @param y 年
	 * @param m 月
	 * @param d 日
	 * @param hh 時
	 * @param mm 分
	 * @param ss 秒
	 * @return Dateオブジェクト。作成に失敗した場合はnull。
	 */
	function createDate(y,m,d,hh,mm,ss) {
		if (!isInt(y) || !isInt(m) || !isInt(d) ||
					!isInt(hh) || !isInt(mm) || !isInt(ss)) {
			return null;
		}
		var date = new Date(y,eval(m) - 1,d,hh,mm,ss);
		date.setFullYear(y);

		if (date.getFullYear() != y || date.getMonth() != eval(m) - 1 || date.getDate() != d
				|| date.getHours() != hh || date.getMinutes() != mm || date.getSeconds() != ss) {
			return null;
		}
		return date;
	}

	/**
	 * 与えられた年、月、日、時、分が正当な日付かどうかチェックする関数。
	 *
	 * @param y 年
	 * @param m 月
	 * @param d 日
	 * @param hh 時
	 * @param mm 分
	 * @return 正当な日付ならばtrue。そうでなければfalse。
	 */
	function isDateTime(y,m,d,hh,mm) {
		if (!isInt(y) || !isInt(m) || !isInt(d) || !isInt(hh) || !isInt(mm)) {
			return false;
		}
		var date = createDate(y,m,d,hh,mm,0);
		if (date == null) {
			return false;
		}
		return true;
	}

	/**
	 * 与えられた年、月、日が正当な日付かどうかチェックする関数。
	 *
	 * @param y 年
	 * @param m 月
	 * @param d 日
	 * @return 正当な日付ならばtrue。そうでなければfalse。
	 */
	function isDate(y,m,d) {
		return isDateTime(y,m,d,0,0);

	}

	/**
	 * 日時FROM-TOの大小をチェックする関数。
	 *
	 * @param yFrom 年
	 * @param mFrom 月
	 * @param dFrom 日
	 * @param hhFrom 時
	 * @param mmFrom 分
	 * @param yTo   年
	 * @param mTo   月
	 * @param dTo   日
	 * @param hhTo  時
	 * @param mmTo  分
	 * @return 大小関係が正しければtrue。そうでなければfalse。
	 */
	function compareDateTime(yFrom,mFrom,dFrom,hhFrom,mmFrom,yTo,mTo,dTo,hhTo,mmTo) {
		if (!isInt(yFrom) || !isInt(mFrom) || !isInt(dFrom) || !isInt(hhFrom) || !isInt(mmFrom) ||
						!isInt(yTo) || !isInt(mTo) || !isInt(dTo) || !isInt(hhTo) || !isInt(mmTo) ) {
			return false;
		}
		
		// FROM年月日をDate型に
		var dateFrom = createDate(yFrom,mFrom,dFrom,hhFrom,mmFrom,0);
		// TO年月日をDate型に
		var dateTo = createDate(yTo,mTo,dTo,hhTo,mmTo,0);
		// 大小チェック
		if ( dateFrom > dateTo ) {
			return false;
		}
		
		return true;
	}

	/**
	 * 日付FROM-TOの大小をチェックする関数。
	 *
	 * @param yFrom 年
	 * @param mFrom 月
	 * @param dFrom 日
	 * @param yTo   年
	 * @param mTo   月
	 * @param dTo   日
	 * @return 大小関係が正しければtrue。そうでなければfalse。
	 */
	function compareDate(yFrom,mFrom,dFrom,yTo,mTo,dTo) {
		return compareDateTime(yFrom,mFrom,dFrom,0,0,yTo,mTo,dTo,0,0);
	}

	/**
	 * 年、月、からDateオブジェクトを作成し、
	 * 月末日を返す関数
	 *
	 * @param y 年
	 * @param m 月
	 * @return Stringオブジェクト。月末日
	 */
	function getDayOfMonthend(y,m) {
		if (!isInt(y) || !isInt(m)) {
			return null;
		}
		/* 翌月の0日は、当該月の月末 */
		var date = new Date(y,eval(m),0);
		var MonthEnd = date.getDate();//月末日の取り出し  

		return MonthEnd;
	}

	/**
	 * 引数strの頭に0を追加し長さをnumにするメソッド。
	 * @param str  処理対象文字
	 * @param num  追加する0の数
	 * @return  引数strに0を追加して長さnumにフォーマットされた文字列。
	 * 		    ただしstrの長さがnum以上の場合はstr。(作成に失敗した場合はnull)
	 */
	function addZeroToHeader(str,num) {
		/* 引数の整数値チェック */
		if( ! isInt(str) || !! isInt(num)) {
			return null;
		}
		var strTemp = eval(str).toString();
		var zeroLen = eval(num) - strTemp.length;
		var strAdd  = new String();
		/* strの長さと、numの差分だけ'0'を追加 */
		for (i=0; i < zeroLen ; i++) {
			strAdd = strAdd.concat('0');
		}
		return strAdd.concat(strTemp);
	}

	/**
	 * ヘルプ画面を開く
	 * 
	 */
	function openWindow(address,title) {
		window.open(address,title,
		"scrollbars=yes,toolbar=no,location=no,directories=no,status=yes,menubar=no,resizable=yes,width=650,height=550,left=50,top=50");
	}


//-->

