var trBlockStr = "block";

if(getBrow().indexOf("IE") < 0){
	trBlockStr = "table-row";
}

// StringクラスにTrimメソッドの追加
String.prototype.trim = function() {
    return this.replace(/^[ ]+|[ ]+$/g, '');
}

//数字のチェック
function chkNumber(asNumber){

	if(asNumber.length > 0){
		if(asNumber.match(/[^0-9]+/)){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}

//全角カナのチェック
function chkZenKana(asKana){
	if(asKana.length > 0){
		if(asKana.match(/[^ァ-ンー]+/)){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}
//英語チェック
function chkAlpha(asAlpha){
	if(asAlpha.length > 0){
		if(asAlpha.match(/[^a-zA-Z]+/)){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}
//大文字英語チェック
function chkUpperAlpha(asAlpha){
	if(asAlpha.length > 0){
		if(asAlpha.match(/[^A-Z]+/)){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}
//英数チェック
function chkEiSuu(asValue){
	if(asValue.length > 0){
		if(asValue.match(/[^a-zA-Z0-9]+/)){
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
}

//日付の作成
//yyyyMMddより日付を作成
function createDate(sDate){
	var date = new Date(sDate.substring(0,4),sDate.substring(4,6) - 1,sDate.substring(6,8),0,0,0,0);

	return date;
}

//二つの日付の比較
function getBetweenDate(oldDate,newDate){
	return (newDate.getTime() - oldDate.getTime()) / 24 / 60 / 60 / 1000;
}

//日付計算
function addDate(Date,iTerm){
	Date.setTime(Date.getTime() + (iTerm * 24 * 60 * 60 * 1000));
	return Date;
}
//日付フォーマット
function getMdJ(Date){
	return Date.getMonth() + 1 + "月" + Date.getDate() + "日";
}

//ウィンドウオープン(基本はプレーンウィンドウ)
function windowOpen(sUrl,iWidth,iHeight){
	window.open(sUrl,"","resizable=yes,scrollbars=yes,width=" + iWidth + ",height=" + iHeight + ",top=0,statusbar=no");
}

//数字限定
function SetNum(Input){
	if(!chkNumber(Input.value)){
		Input.value = 0;
	}
	return parseInt(Input.value);
}

//yyyyMMdd形式で返す
function getYMD(Date){

	var iYear  = "";
	var iMonth = "";
	var iDate  = "";

	iYear  += Date.getFullYear();
	iMonth += Date.getMonth() + 1;
	iDate  += Date.getDate();

	if(iMonth < 10){iMonth = "0" + iMonth;}
	if(iDate < 10){iDate  = "0" + iDate;}

	return iYear + iMonth + iDate;

}

//月日から年を計算し日付を作成
function getYear_md(month, day){
	//日付計算 月と日付で今年か来年かを変更
	var date1 = new Date();
	var date2 = new Date(date1.getFullYear(), month-1, day,0,0,0,0);
	
	//同日の場合に比較が正常に行われるように時間を設定
	date2.setHours(23);
	date2.setMinutes(59);
	date2.setSeconds(59);
	date2.setMilliseconds(999);

	if(date1.getTime() > date2.getTime()){
		//本日が入力月より後の場合、来年となるので年を加算
		date2.setYear(date2.getFullYear()+1);
	}

	return date2;
}


//誕生日から年齢を求める
function getAge(yyyy, mm, dd){
	
	if(chkNumber(yyyy)&&chkNumber(mm)&&chkNumber(dd)){
		var date1 = new Date();
		var iNowYear = date1.getFullYear();  //今年
		
		var iAge = iNowYear - yyyy;

		var iBirthMD = (Number(mm) * 100) + Number(dd);
		var iNowMD = ((Number(date1.getMonth()) + 1) * 100) + Number(date1.getDate());

		if(iBirthMD > iNowMD){
			iAge -= 1;
		}

		return iAge;
	}else{
		return "0";
	}
}


//selectボックスの値からリストインデックスを返す
function getListIndex(select,sValue){

	var iIndex = 0;

	for(var i = 0 ; i < select.options.length ; i++){
		if(select.options[i].value == sValue){
			iIndex = i;
			break;
		}
	}
	
	return iIndex;
}

//selectボックスの値からリストインデックスを返す
function getListIndexText(select,sValue){

	var iIndex = 0;

	for(var i = 0 ; i < select.options.length ; i++){
		if(select.options[i].text == sValue){
			iIndex = i;
			break;
		}
	}
	
	return iIndex;
}

//クロスブラウザ対応スクロールX軸取得
function getScrX(){

	if(getIe()){
		//宣言によってJavascriptが変わるため
		if(document.body.scrollLeft == 0){
			return document.documentElement.scrollLeft;
		}else{
			return document.body.scrollLeft;
		}

	}else{
		return self.pageXOffset;
	}

}

//クロスブラウザ対応スクロールY軸取得
function getScrY(){

	var brow = getBrow();

	if(getIe()){

		//宣言によってJavascriptが変わるため
		if(document.body.scrollTop == 0){
			return document.documentElement.scrollTop;
		}else{
			return document.body.scrollTop;
		}

	}else{
		return self.pageYOffset;
	}
}

//画面の幅の取得
function getWindowHeight() {
	if(window.innerHeight){ return window.innerHeight; }
	if(document.documentElement.clientHeight){return document.documentElement.clientHeight;}
	if(document.body){return document.body.clientHeight;}
}
function getWindowWidth() {
	if (window.innerWidth) { return window.innerWidth; }
	if(document.documentElement.innerWidth){return document.documentElement.innerWidth;}
	if (document.body){ return document.body.clientWidth; }
}

//ブラウザの判定（バージョンは無視）
function getBrow(){

	var userAgent = navigator.userAgent;
	var os = navigator.platform;

	var brow = "";

	if(os.indexOf("Win") >= 0){
		brow = "WIN";
	}else if(os.indexOf("Mac") >= 0){
		brow = "MAC";
	}else if(os.indexOf("iPad") >= 0){
		brow = "IPAD";
	}else if(os.indexOf("iPod") >= 0){
		brow = "IPAD";
	}else if(os.indexOf("iPhone") >= 0){
		brow = "IPHONE";
	}else{
		brow = "OTHER";
	}

	if(userAgent.indexOf("MSIE 7") >= 0){
		brow += "IE7";
	}else if(userAgent.indexOf("MSIE 8") >= 0){
		brow += "IE8";
	}else if(userAgent.indexOf("MSIE 8") >= 0){
		brow += "IE8";
	}else if(userAgent.indexOf("MSIE") >= 0){
		brow += "IE";
	}else if(userAgent.indexOf("Netscape") >= 0){
		brow += "NETSCAPE";
	}else if(userAgent.indexOf("Opera") >= 0){
		brow += "OPERA";
	}else if(userAgent.indexOf("Safari") >= 0){
		brow += "SAFARI";
	}else if(userAgent.indexOf("Firefox") >= 0){
		brow += "FIREFOX";
	}else if(userAgent.indexOf("Chrome") >= 0){
		brow += "CHROME";
	}

	return brow;

}

//IEかどうか
function getIe(){
	if(getBrow().indexOf("IE") >= 0){
		return true;
	}else{
		return false;
	}
}


function chkTrueDate(asValue){
		    
	//入力日付を年月日で取得
    var vYear = asValue.substr(0, 4) - 0; 
    var vMonth = asValue.substr(4, 2) - 1; 
    var vDay = asValue.substr(6, 2) - 0; 
    
   	//入力日付チェック
   	if(vMonth >= 0 && vMonth <=11 && vDay >= 1 && vDay <= 31){
    	var vDt = new Date(vYear, vMonth, vDay);
        if(isNaN(vDt)){
            return false;
        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){             
		    return true;
        }else{              
	        return false;
        } 
        
    }else{
	    return false; 
    } 

}


//日付（年月）の末日を取得
function getMonthEndDay(year, month) {
    var endDay = new Date(year, month, 0);
    return endDay.getDate();
}


//メールアドレスチェック
function chkMail(asMail) {
  if(!asMail.match(/.+@.+\..+/)) {
    return false;
  } else {
    return true;
  }
}


function decodecNumberTome(asValue){

	var sReturn = "";

	for(var i = 0 ; i < asValue.length ; i++){
		var sAlpha = asValue.charAt(i);
		var sData = 0;
		switch(sAlpha){
			case "A":
				sData = 1;
				break;
			case "B":
				sData = 2;
				break;
			case "C":
				sData = 3;
				break;
			case "D":
				sData = 4;
				break;
			case "E":
				sData = 5;
				break;
			case "F":
				sData = 6;
				break;
			case "G":
				sData = 7;
				break;
			case "H":
				sData = 8;
				break;
			case "I":
				sData = 9;
				break;
			case "J":
				sData = 0;
				break;
		}

		sReturn += String(sData);

	}

	return Number(sReturn);

}

function getMoneyFormat(num){

	var str = String(num);
	var retStr, tmp;
	var length, nMod, i, nSub;
	length = str.length;
	retStr = "";
	if(length > 3){
		nMod = length % 3;
		if(nMod > 0){
			retStr = str.substring(0, nMod);
		}
		for(i = 0 ; i < Math.floor(length / 3); i++){
			tmp = str.substring(nMod + 3 * i, nMod + 3 * i + 3);
			if ((nMod == 0) && (i == 0)){
				retStr += tmp;
			}else{
				retStr+= ',' + tmp;
			}
		}
	}else{
		retStr = str;
	}
	return retStr;
}


//指定桁数での繰り上げ繰り下げ
//引数
//fee:値
//mark:繰上げ下げ桁数
//round:true 繰上げ fales 繰り下げ
function getRoundUD(fee,comm,mark,round){

	var newFee = fee / (1 - comm / 100) / mark;

	if(round){
		return Math.ceil(newFee) * mark;
	}else{
		return Math.floor(newFee) * mark;
	}

}




//クッキー取得
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}
 
//クッキー作製
function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) +
		( ( path ) ? ';path=' + path : '' ) + 
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}
 
//クッキー削除
function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}



//クッキー要素を配列として作製(valueに対してescape関数を使用しない)
function setCookieList( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name+'='+ value +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) +
		( ( path ) ? ';path=' + path : '' ) + 
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

//クッキー要素を配列として取得
function getCookieList( name , splitname ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ){
		return null;
	}
	
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ){
		end = document.cookie.length;
	}
	
	var arrCookei = new Array();
	arrCookei = document.cookie.substring( len, end ).split(splitname);

	var rtnCookei = new Array();
	for (i=0; i<arrCookei.length; i++){
		rtnCookei[i] = unescape( arrCookei[i] );
	}
	
	return rtnCookei;
}

//クッキー要素を配列,配列として取得
function getCookieList2( name  , splitname1 , splitname2) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ){
		return null;
	}
	
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ){
		end = document.cookie.length;
	}
	
	var arrCookeiList = new Array();
	arrCookeiList = document.cookie.substring( len, end ).split(splitname1);

	var rtnCookeiList = new Array();
	var arrCookei = new Array();
	for (i=1; i<arrCookeiList.length; i++){
		arrCookei = arrCookeiList[i].split(splitname2);
		
		var rtnCookei = new Array();
		for (i2=1; i2<arrCookei.length; i2++){
			rtnCookei[i2] = unescape( arrCookei[i2] );
		}
		
		rtnCookeiList[i] = rtnCookei;
	}

	
	return rtnCookeiList;
}

//チェックボックスのNameを渡して、チェックされている数を返す
function getChkBoxNum(asNm){
	var num = 0;
	for(i =0; i < document.getElementsByName(asNm).length; i++){
		if(document.getElementsByName(asNm)[i].checked){
			num++;
		}
	}

	return num;

}

//ラジオボタンのNameを渡して、チェックされているオブジェクトを返す
function getRadioChecked(asNm){

	if(document.getElementsByName(asNm).length > 0){
		for(i =0; i < document.getElementsByName(asNm).length; i++){
			if(document.getElementsByName(asNm)[i].checked){
				return document.getElementsByName(asNm)[i];
			}
		}
	}
	return null;

}

//連想配列の灰列数を取得
function countArrayElements(array){
	var cnt = 0;
	for(key in array){ cnt++; }
	return cnt;
}

//配列とオブジェクトからコンボ作製
function createOptions(obj,arr,defaultStr){

	if((obj != null) && (obj.options != null)){

		obj.options.length = countArrayElements(arr);

		var i = 0;
		for(var key in arr){
			obj.options[i].value = key;
			obj.options[i].text = arr[key];

			if(defaultStr == key){
				obj.options[i].selected = true;
			}

			i++;

		}
	}
}

//ハイフンが含まれるか
function haifunchk(str) {
	if( str.match( /[-]+/ ) ) {
		return true;
	}
	return false;
}


//配列の値からリストインデックスを返す
function getTagNameIndex2Value(asIdStr,asValue){

	var iLength = document.getElementsByName(asIdStr).length;
	var iIndex = 0;

	for(var i = 0 ; i < iLength ; i++){
		if(document.getElementsByName(asIdStr)[i].value == asValue){
			iIndex = i;
			break;
		}
	}
	
	return iIndex;
}
