//共通JavaScript

/*@cc_on _d=document;eval('var document=_d')@*/

//--------------------------------------------------------------------
//	定数として宣言
//--------------------------------------------------------------------

//販売種別（売買・賃貸）
	BUYSEL_MODE = "1";
	RENT_MODE = "2";

//入力種別（戸建・集合住宅・土地その他）
	HOUSE_MODE = "1";
	MANSION_MODE = "2";
	ETC_MODE = "3";

//画面遷移状態(edit_mode)
	NEWLY = 1;					//新規入力
	MODIFY = 2;					//編集
	CHECK = 3;					//確認
	ENTRY = 4;					//登録

//入力モード(entry_mode)
	NEW_INPUT = "1";			//新規登録（Insert)
	EDIT_INPUT = "2";			//編集		（Update)
	COPY_INPUT = "3";			//引用新規（Update)
	DELETION = "4";				//削除		（Delete)

//画像
	MAKE = 1;					//登録
	NOCHANGE = 2;			//変更無し
	DEL = 3;					//削除

//特記項目
	SPECIAL_ENTRY_MAX = 6;		//最大登録数
	SPECIAL_ATYPE_ENTRY_MAX = 3;//Aタイプの最大登録数
	SPECIAL_MAX = 20;			//全項目数

//エラーチェック用
	NUM_ONLY = 1;				//数値のみ
	NUM_DOT_ONLY = 2;		//数値とドット(小数点)のみ
	ALPHABET_ONLY = 3;	//半角英数のみ
	STRING_DATA = 4;		//文字チェック
	MAIL_DATA = 5;			//メールチェック
	URL_DATA = 6;				//URLデータチェック


//********************************************************************
// StringクラスにTrimメソッドの追加(両端のスペースを削除)
//********************************************************************
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
}

//********************************************************************
//	任意文字数での0詰め
//********************************************************************
function padding(str_pad,int_pad){

	//念の為文字に変換
	str_pad = str_pad + "";

	//変換する文字列が、指定文字数以上の場合は処理せずそのまま返す
	if(str_pad.length >= int_pad){
		return str_pad;
	}

	var str_zero = "";
	var rtn_string;

	for(i=0;i<int_pad;i++){
		str_zero += "0";
	}

	rtn_string = ( str_zero + str_pad ).slice( - int_pad )

	return rtn_string;

}

//********************************************************************
//	入力値エラーチェック
//********************************************************************
function chkData(chk_data,chk_mode){

	//チェック文字が空なら無条件でtrueを返す
	if(chk_data.length == 0){
		return true;
	}

	chk_mode_index = parseInt(chk_mode);

	var match_mode = new Array(6)
	
	match_mode[NUM_ONLY] = /^\d+$/;										//数値のみ
	match_mode[NUM_DOT_ONLY] = /^([1-9][\d]*)?[\d](\.[\d]*[1-9])?$/;	//少数値のみ
	match_mode[ALPHABET_ONLY] = /^[0-9a-zA-Z]+$/;			//半角英数のみ
	match_mode[MAIL_DATA] = /^[^.\-~][\w\-.~]+[^.\-_~]@[^.\-_~\d][\w\-.~]+[^.\-_~\d]$/;		//メールチェック
	match_mode[URL_DATA] = /^https?:[/][/][\w.,;:$&=?!*~@#_()/\-]+$/;		//URLデータチェック

	//パターンにマッチした場合はTrueを返す
	if(match_mode[chk_mode].test(chk_data)){
		return true;
	}else{
		return false;
	}
}

//********************************************************************
//	空白チェック
//********************************************************************
function chkEmpty(chk_data){

	//空白かどうか
	if(chk_data.length == 0){
		return true;
	}else{
		return false;
	}

}

//********************************************************************
//	選択範囲の文字位置座標を取得する
//********************************************************************
function getAreaRange(obj) { 
	var pos = new Object(); 
	var isIE = (navigator.appName.toLowerCase().indexOf('internet explorer')+1?1:0); 
		
	if (isIE) { 
		obj.focus(); 
		var range = document.selection.createRange(); 
		var clone = range.duplicate(); 
			
		clone.moveToElementText(obj); 
		clone.setEndPoint( 'EndToEnd', range ); 
			
		pos.start = clone.text.length - range.text.length; 
		pos.end = clone.text.length - range.text.length + range.text.length; 
	}else if(window.getSelection()) { 
		pos.start = obj.selectionStart; 
		pos.end = obj.selectionEnd; 
	} 
		
	return pos; 
	// alert(pos.start + "," + pos.end); 
} 


//********************************************************************
//	選択された文字列の両端にタグを追加する
//********************************************************************
function surroundHTML(tag, obj) { 
	var target = document.getElementById(obj); 
	var pos = getAreaRange(target); 

	var val = target.value; 
	var range = val.slice(pos.start, pos.end); 
	var beforeNode = val.slice(0, pos.start); 
	var afterNode = val.slice(pos.end); 
	var insertNode; 

	if (range || pos.start != pos.end) { 
		insertNode = '<' + tag + '>' + range + '</' + tag + '>'; 
		target.value = beforeNode + insertNode + afterNode; 

	}else if (pos.start == pos.end) { 
		insertNode = '<' + tag + '>' + '</' + tag + '>'; 
		target.value = beforeNode + insertNode + afterNode; 
	}
	target.focus();
}

