var submited = false;
/**
 * ２重サブミットチェック
 * @param	f	: フォーム
 */
function checkAndSubmit (f) {
	if (submited == true) {
		return false;
	}
	else {
		submited = true;
		f.submit();
		return false;
	}
}

// 数値のチェック
function isNumeric(num){
    if (num.match(/[^0-9]/g)) {
        return false;
    }
    return true;
}

// 数値のチェック
function isNumericEx(num){
    if (num.match(/^[\-]?[0-9]+$/g)) {
	    return true;
	}
	else {
        return false;
    }
}
/**
 * ラジオでチェックされた値を取得する
 * @param	sel	: ラジオ
 * @param	val	: フォーム
 */
function getRadioValue(rd) {
	var val = "";
	if (rd.length) {
		for (i = 0; i < rd.length; i++) {
			if (rd[i].checked) {
				val = rd[i].value;
			}
		}
	}
	else {
		if (rd.checked) {
			val = rd.value;
		}
	}
	return val;
}

/**
 * セレクトボックスを指定した値で選択状態にする
 * @param	sel	: セレクトボックス
 * @param	val	: フォーム
 */
function setSelectValue(sel, val) {
	var i=0;
	for (i=0; i<sel.options.length; i++) {
		if (sel.options[i].value==val) {
			sel.selectedIndex = i;
		}
	}
}

/**
 * パスからファイル名を取得する。
 */
function getFileName(path) {
	var fileName = "";

	// unix or URL
	fileName = path.substring(path.lastIndexOf('/',path.length) +1,path.length);

	// windows系
	fileName = fileName.substring(fileName.lastIndexOf('\\',fileName.length) +1,fileName.length);
	return fileName;
}

/**
 * パス、ファイル名から拡張子を取得する。
 */
function getFileExt(fileName) {
	var ext = fileName.substring(fileName.lastIndexOf('.', fileName.length) + 1 , fileName.length);
	// 小文字にして返却
	return ext.toLowerCase();
}

/**
 * チェックボックスをすべてチェックする。
 * @param	name	: チェックボックス名
 * @param	v		: チェック状態(true or false)
 */
function doCheckAll (name, v) {
	var chk = document.getElementsByName(name);
	for (i=0; i<chk.length; i++) {
		chk.item(i).checked = v;
	}
}

/**
* チェックボックスのチェックされた数を返す
* @param	name	チェックボックス名
* return			チェックされた数
*/
function numChecked(name)
{
	var chk = document.getElementsByName(name);
	var count = 0;

	for (i=0; i<chk.length; i++)
	{
		if(chk.item(i).checked == true)
		{
			count++;
		}
	}

	return count;
}

/**
* ラジオボタンのチェックされた値を返す
* @param	name	ラジオボタン名
* return			チェックされた値
*/
function getCheckRadioValue(name)
{
	//ラジオボタンの名前を取得
	var rdo = document.getElementsByName(name);

	var i;

	if(rdo.length)
	{
		for(i=0; i<rdo.length;i++)
		{
			if(rdo[i].checked)
			{
				return rdo[i]=value;
			}
		}
	}
	else
	{
		if(rdo.checked)
		{
			return rdo.value;
		}
	}
}


/******************* エラー表示系 ************************/


/**	指定したエラーコードのメッセージを生成します。
 *	@param errCode      エラーコード
 *	@param p1           パラメータ１
 *	@param p2           パラメータ２
 *	@param p3           パラメータ３
 *	@return メッセージ
 */
function createMessage(errCode, p1, p2, p3) {

	var params = new Array(p1, p2, p3);
	var i = 0;

	if (p1) {
		params[i] = p1;
		i++;
	}

	if (p2) {
		params[i] = p2;
		i++;
	}

	if (p3) {
		params[i] = p3;
		i++;
	}

	return createMessage2(errCode, params);
}

/**	指定したエラーコードのメッセージを生成します。
 *	@param errCode      エラーコード
 *	@param params       パラメータ配列
 *	@return メッセージ
 */
function createMessage2(errCode, params) {
	var msg = errorMsgAry[errCode];

	if (msg == "") {
		return "メッセージが定義されていません。("+ errCode +")";
	}
	else {
		for (i=0; i<params.length; i++) {
			var reg = new RegExp("{\\$" + (i+1) + "}", "ig");
			msg = msg.replace(reg, params[i]);
		}
		return msg;
	}
}





/**
 * 画像ファイル参照ダイアログを変更時に
 * 変更のラジオボタンに設定する。
 *
 */
function chgFileOptionSet(radio) {
	// 変更にオプションを設定する
	var i;
    for (i = 0; i < radio.length; i++) {
    	// 変更をチェックする
        if (radio[i].value==1) {
			radio[i].checked = true;
        }
        else {
			radio[i].checked = false;
		}
    }
}






/**
 * 選択された文字列にタグを設定する。
 * @param file     ファイル名入力フィールド
 * @param align    位置指定リスト
 * @param baseUrl  イメージが置かれるベースＵＲＬ
 * @param exts     アップロード可能拡張子(|区切り)
 */
//function setImageTag(num, baseUrl, exts, text) {
function setImageTag(num, exts, text) {
	var file = document.getElementsByName("btn_view[]");
	var align = document.getElementsByName("img_align[]");

	if (file.item(num).value == "") return;
	// 画像ファイルかどうか
	if (!isExtValid(file.item(num).value, exts)) {
		file.item(num).focus();
		var msg = createMessage("STE0016")
		alert(msg);
		return;
	}

	// ファイル名を切り出す
	var fileName = getFileName(file.item(num).value);

	var classTag = "";
	// 左
	if (align.item(num).value =="1") {
		classTag = 'img_left';
	}
	// 中央
	else if (align.item(num).value =="2") {
		classTag = 'img_center';
	}
	// 右
	else if (align.item(num).value =="3") {
		classTag = 'img_right';
	}
//	var str = '<img class="' + classTag + '" src="' + baseUrl + fileName +'" alt="' + fileName + '" border="0" />';
//	var str = '<img class="' + classTag + '" src="' + "[:file_name" + num + ":]" +'" alt="' + "[:file_name" + num + ":]" + '" border="0" />';
	var str = "[:file_name" + num + ":]";

//	text.value += str;
	formatString(text, str);
	text.focus();
}


/**
 * 日付のセレクトボックスで選択された日付を取り出す
 * @param		y		年
 *				m		月
 *				d		日
 * @return		日付データの配列
 **/
function getSelectboxDateArray(y, m, d)
{
	var day = new Array(3);

	//選択された年の取得
	for(i = 0; i < y.length; i++)
	{
		if(y.options[i].selected)
		{
			day[0] = y.options[i].value;
			break;
		}
	}
	//選択された月の取得
	for(i = 0; i < m.length; i++)
	{
		if(m.options[i].selected)
		{
			day[1] = m.options[i].value;
			break;
		}
	}
	//選択された日の取得
	for(i = 0; i < d.length; i++)
	{
		if(d.options[i].selected)
		{
			day[2] = d.options[i].value;
			break;
		}
	}

	return day;
}

/**
* パスワードが規定文字数ないかチェックする
* @params		password		パスワード
* @return		規定文字数以内	true
*				規定文字数以外	false
**/
function passwdNumCharValid(password, min_char, max_char)
{
	//パスワードの文字数を取得
	var char_num = getByteLen(password.value);

	if((char_num < min_char) || (char_num > max_char))
	{
		return false;
	}

	return true;
}

/**
* 削除確認メッセージを作成する
* @params		label	項目名
* @return				確認メッセージ
**/
function createDelConfMessage(label) {
	var msg = label + 'を削除します。よろしいですか？';

	return msg;
}



///

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Safari";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isSA = true;
    this.version = 1.0;
    return;
  }

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }

}
var browser = new Browser();


/**
 * 色を設定？
 *
 */
function addColor(obj,color){

	//var tag='span style="color:'+color+'"';
	var startTag = '<span style="color:#'+color+'">';
	var endTag   = '</span>';
	//IE
	if (document.selection) {
		obj.focus();
		var str = document.selection.createRange().text;
		if(!str) {
			return;
		}
		document.selection.createRange().text = startTag + str + endTag;
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;


		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
}

/**
 * タグを設定する
 *
 *
 */
function addTag(obj, pStartTag, pEndTag, noSelectSetFlg) {

	var startTag = pStartTag;
	var endTag   = '';
	if (pEndTag) {
		endTag   = pEndTag;
	}
	
	//IE
	if (document.selection) {
		obj.focus();
		// 選択値を取得する
		var selection = document.selection.createRange();
		// 選択文字を取得
		var str = selection.text;
		// 選択されていない場合
		if(!str) {
			// 選択されていなくても値を設定する場合
			if (noSelectSetFlg) {
				var moved = selection.expand("character");
				selection.text = startTag + endTag +selection.text;
			}
			return;
		}
		document.selection.createRange().text = startTag + str + endTag;
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;


		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
}

/**
 * イメージ選択
 */
function addImg(obj) {

	addTag(obj, '<img src="" alt="" width="" height="" />', null, true);
}


/**
 * フォントサイズを設定する
 *
 */
function changeFontsize(obj, tag) {

	var startTag = '<span style=\"font-size:' + tag + '\;\">';
	var endTag   = '</span>';

	addTag(obj, startTag, endTag);
}

/**
 * リンクを設定する
 *
 */
function addLink(obj, propMsg, target) {
	if (!propMsg) {
		propMsg = 'リンクするサイトのURLを入力してください。';
	}
	var url = prompt(propMsg, 'http://');
	if (url == null) {
		return;
	}

	if (!target) {
		target = '_blank';
	}

	var startTag = '<a href="' + url + '" target="' + target + '">';
	var endTag   = '</a>';

	addTag(obj, startTag, endTag);
}

/**
 * style.disiplyの切り替え
 *
 */
function switchObj(id){
	var obj = document.getElementById(id);
	if(obj.style.display=='none'){
		obj.style.display='block';
	}else{
		obj.style.display='none';
	}

}


/**
 * ＵＲＬの妥当性チェック
 * 引数 argurl    - ＵＲＬテキストボックス
 */
function urlcheck(argurl, alertFlg){
	
	var chkUrl = "";
	// コントローラの場合
	if(argurl.value){
		chkUrl = argurl.value;
	}
	else {
		chkUrl = argurl;
	}
	if(chkUrl){
		//if(chkUrl.match(/(http|ftp|https):\/\/[!#-9A-~]+\.+[a-z0-9]/i)){
		if(chkUrl.match(/^(http|ftp|https):\/\/[!#-9A-~]+\.+[a-z0-9]/i)){
			return true;
		}else{
			if (alertFlg) {
				alert("入力されたURLは正しくありません");
			}
			return false;
		}
	}
}

/**
 * Enterキーが押されたかチェック
 * 引数 evt	イベントオブジェクト
 */
function checkEnterKey(evt) {

	//IEの場合
//	if(document.all) {
//		kc = event.keyCode;
//	}
//	//それ以外
//	else {
//		kc = evt.keyCode;
//	}

	if(getKeyCode(evt) == 13) {
		return true;
	}
	return false;
}

/**
 * キーコード取得
 *
 */
function getKeyCode(e){
	// IEの場合
	if(document.all) {
		return  event.keyCode;
	}
	else if(document.getElementById) {
		return (e.keyCode)? e.keyCode: e.charCode;
	}
	else if(document.layers) {
	    return  e.which;
	}
}

/**
 * QueryStringを受け取り連想配列で返却する
 */
function getQueryStringArray() {
	var qs = new Array;
	if (location.search.length > 1) {
		var m_Array = location.search.substr(1).split("&");
		for (idx in m_Array) {
			var keyValue = m_Array[idx].split("=");
			var name = keyValue[0];
			qs[name] = keyValue[1];
		}
	}
	return qs;
}


/**
 * 処理
 * 自動的に次のテキストへFocus
 */
autoForcus = function() {}
autoForcus.prev = {};
autoForcus.setNext = function(target,maxlen,nextName){

 	var prevflg = false;
 	var qura = target.value;
 	//前回と同じ値か判定
 	for(var i in autoForcus.prev){
 		//配列にあるか
 		if(target.name == i){
 			//前回と同じ
		 	//if(qura ==  autoForcus.prev[i]){
		 	//	//移動しない
		 	//	return;
		 	//}
		 	autoForcus.prev[i] = qura;
		 	prevflg = true;
		 	break;
 		}
 	}
 	
 	//配列になかったら追加
 	if(!prevflg){
 		autoForcus.prev[target.name] = qura;
 	}
 	
 	//max以上で次へ
 	 if( target.value.length >= maxlen){
 		var nextobj = document.getElementsByName(nextName);
 	 	nextobj.item(0).focus();
 	 }
}

//強制的に次のとこへ
autoForcus.Next = function(nextName){
 		var nextobj = document.getElementsByName(nextName);
 	 	nextobj.item(0).focus();
}

//前回値を初期設定
autoForcus.setprevdefult = function(arrtaborder){
	var obj;
	for(var i = 0; i < arrtaborder.length; i++){
		 obj = document.getElementsByName(arrtaborder[i]);
		 autoForcus.prev[arrtaborder[i]] = obj.item(0).value;
	}
}


/***********************
* バイト数を数える
* 引数 ： str 文字列
* 戻り値： バイト数
************************/
function CountLength(str) {
    var r = 0;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        // Shift_JIS: 0x0 ～ 0x80, 0xa0 , 0xa1 ～ 0xdf , 0xfd ～ 0xff
        // Unicode : 0x0 ～ 0x80, 0xf8f0, 0xff61 ～ 0xff9f, 0xf8f1 ～ 0xf8f3
        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
            r += 1;
        } else {
            r += 2;
        }
    }
    return r;
}

//検索条件クリア（Jquery専用)
function setclearsearch(clearareaid){
	$("#"+clearareaid+" input[type=text]").val("");
	$("#"+clearareaid+" select").val("");
	$("#"+clearareaid+" input[type=checkbox]").each(function(){this.checked = false;});
	$("#"+clearareaid+" input[type=radio]").each(function(){if(this.value==""){this.checked = true;}});
}


/*-------------------------------------------------------------------------------*/
/*フォームの機能拡張                                                                                               */
/*-------------------------------------------------------------------------------*/
inputExtension = function(){}

/************************
あと何文字設定
*************************/
inputExtension.setMaxTextLength = function(){
   
    //初期表示
    $(":input[maxlength]").each(function(){
        if(!$(this).is(":hidden") 
        && !$(this).is(":button")
        && !$(this).is(":checkbox")
        && !$(this).is(":radio")
        ){
            inputExtension.setmaxlen(this);
        }
    });
    
    //入力時
    $(":input[maxlength]").keyup(function(){
        if(!$(this).is(":hidden") 
        && !$(this).is(":button")
        && !$(this).is(":checkbox")
        && !$(this).is(":radio")
        ){
            inputExtension.setmaxlen(this);
        }
    });
}

inputExtension.setmaxlen = function(obj)
{
    var atolen;
    var strslice = "";
    //あと何文字設定
    if($("#"+$(obj).attr("name")+"String").attr("byteflg") == undefined){
        atolen = $(obj).attr("maxlength")-$(obj).val().length;
    }else if($("#"+$(obj).attr("name")+"String").attr("byteflg") == "false"){
        atolen = $(obj).attr("maxlength")-$(obj).val().length;
    }else{
        atolen = $(obj).attr("maxlength")-CountLength($(obj).val());
    }
    if(atolen < 0){
        //何文字表示
        $("#"+$(obj).attr("name")+"String span[name='defult']").hide();
        $("#"+$(obj).attr("name")+"String span[name='orver']").show();
    }else{
        //何文字表示
        $("#"+$(obj).attr("name")+"String span[name='defult']").show();
        $("#"+$(obj).attr("name")+"String span[name='orver']").hide();
    }
    $("#"+$(obj).attr("name")+"String span[name='len']").text(Math.abs(atolen));
}


/**
 * Stringクラスにtrimメソッドを追加
 */
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '');
}
/**
 * Stringクラスにrtrimメソッドを追加
 */
String.prototype.rtrim = function() {
	return this.replace(/\s+$/g, '');
}
/**
 * Stringクラスにltrimメソッドを追加
 */
String.prototype.ltrim = function() {
	return this.replace(/^\s+/g, '');
}


/**
 * クライアント表示領域を取得
 */
function getClietnRect(ovrEvt) {
	var x;
	var y;
	// IEの場合
	if (document.all) {
		x = event.clientX;
		y = event.clientY;
	}
	// IE以外
	else {
		x = ovrEvt.pageX;
		y = ovrEvt.pageY;
	}
	
	return new Array(x, y);
}


/**
 * 画面サイズを取得
 */
function getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
	arrayPageSize = new Array(w,h) 
	return arrayPageSize;
}

/**
 * スクロール領域を取得
 */
function getPageScrollTop(){
	var yScrolltop;
	var xScrollleft;
	if (self.pageYOffset || self.pageXOffset) {
		yScrolltop = self.pageYOffset;
		xScrollleft = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){	 // Explorer 6 Strict
		yScrolltop = document.documentElement.scrollTop;
		xScrollleft = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScrolltop = document.body.scrollTop;
		xScrollleft = document.body.scrollLeft;
	}
	arrayPageScroll = new Array(xScrollleft,yScrolltop) 
	return arrayPageScroll;
}

/**
 * オーバーレイのサイズの取得
 *
 */
function getOverlaySize(){
	if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {
		yScroll = window.innerHeight + window.scrollMaxY;
		xScroll = window.innerWidth + window.scrollMaxX;
		var deff = document.documentElement;
		var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
		var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
		xScroll -= (window.innerWidth - wff);
		yScroll -= (window.innerHeight - hff);
	}
	else if (document.body.scrollHeight > document.body.offsetHeight
		 ||  document.body.scrollWidth > document.body.offsetWidth)   { // all but Explorer Mac
		yScroll = document.body.scrollHeight;
		xScroll = document.body.scrollWidth;
	}
	else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
		xScroll = document.body.offsetWidth;
	}

	arrayPageScroll = new Array(yScroll,xScroll) 
	return arrayPageScroll;
}

/**
 * 検索クッキーを削除する
 *
 *
 */
function bindClick4ClearCookie(id) {
	
	if (!id) {
		id = "#left-menu a";
	}
	
	$(id).click(function(){
       var cookies = document.cookie.split(';');
		arr = $.grep(cookies,function(coname){ return coname.indexOf("srcitem_",0) > 0});
		$.each(arr,function(){
			cokiename = this.split('=');
			$.cookie(cokiename[0],'', { expires: -1 });
		});
	});
}


/**
 * 開閉処理を行うためのクリックイベントを設定
 *
 */
 var openFlg = true;
function setClickToggle(btnId, areaId, imgId, openImg, closeImg) {
	
	$("#" + btnId).click(function () {
		// オープンを切り替える
		if (openFlg==true) {
			openFlg=false;
			if (imgId) {
				// 個要素のイメージを変更する
				$("#" + imgId).attr("src",openImg);
			}
		}
		else {
			openFlg=true;
			if (imgId) {
				// 個要素のイメージを変更する
				$("#" + imgId).attr("src",closeImg);
			}
		}
		$("#" + areaId).toggle(openFlg);
	});
}

/**
 * イメージ先読み
 */
function preloadImage(imgs) { 
	for(var i = 0; i < imgs.length; i++) {
		 var imgObj = new Image(); imgObj.src = imgs[i]; 
	}
}

/**
 * 実際のサイズを取得して、イメージサイズの配列を返却する
 * @param imgPath 画像パス
 */
function getImageSizeList(imgPath) {
	var tmpImg = new Image();
	tmpImg.src = imgPath;
	var	w = tmpImg.width;
	var h = tmpImg.height ;

	var sizeList = null;
	if (tmpImg.complete) {
		if ( typeof(tmpImg.naturalWidth) != 'undefined' ) {	// for Firefox, Safari, Chrome
			w = tmpImg.naturalWidth;
			h = tmpImg.naturalHeight;
		}
		else if ( typeof(tmpImg.runtimeStyle) != 'undefined' ) {	 // for IE
			var run = tmpImg.runtimeStyle;
			var mem = { w: run.width, h: run.height };	// keep runtimeStyle
			run.width  = "auto";
			run.height = "auto";
			w = tmpImg.width;
			h = tmpImg.height;
		}
		else {		 // for Opera
			var mem = { w: tmpImg.width, h: tmpImg.height };	// keep original style
			tmpImg.removeAttribute("width");
			tmpImg.removeAttribute("height");
			w = tmpImg.width;
			h = tmpImg.height;
		}
		sizeList = new Array(w, h);
	}
	else {
		// 再帰的に実行
		sizeList = getImageSizeList(imgPath);
	}
	return sizeList;
}

/**
 * ソートデータ削除
 * 一覧から異なる一覧に遷移する際に
 * 同一のpostデータのためおかしくなる可能性があるので
 *
 */
function clearSortData() {
	if ($("input[name='s_o']")) {
		$("input[name='s_o']").val('');
	}
	if ($("input[name='s_c_id']")) {
		$("input[name='s_c_id']").val('');
	}
}


/**
 * textareaにmaxlengthが設定されていたら設定する
 */
function setMaxlength4Textarea() {
	// テキストエリアにキーアップイベントを割り当てる
	$("textarea").each(function() {
		$(this).keydown(function(e){
			// maxlengthを取得
			var maxlength = $(this).attr("maxlength");
			// 設定されていて、maxlengthより大きい場合は縮める
			if (maxlength && $(this).val().length > maxlength) {
				//$(this).val($(this).val().substring(0,maxlength));
				var keyCodes = getKeyCode(e);
				$(this).val($(this).val().substring(0,maxlength));
				
				/*
				alert(keyCodes);
				if ((keyCodes == 32)
				||  (keyCodes >= 48 && keyCodes <= 57) 
				||  (keyCodes >= 65 && keyCodes <= 90) 
				||  (keyCodes >= 96 && keyCodes <= 105) 
				||  (keyCodes == 197) 
				||  (keyCodes == 229) 
				){
					if(e != null) {
				    	// イベントの上位伝播を防止 
						event.preventDefault();
						event.stopPropagation();
        			}
					// IEの場合
					else {
				    	// イベントの上位伝播を防止 
				        event.returnValue = false; 
				        event.cancelBubble = true; 
					}
				}
				*/
			}
		});
	});
}

/** すくパラのカラーパレット用に追加したメソッド ******/

/**
 * 呼び元のファンクションを呼び出しタグを設定する。
 * @param カラーコード
 */
function setMainText(no, strText){
	
	mode = '1';
	var oWin = window.opener;
	
	oWin.setFontColorTag(no, strText);
	
	oWin.focus();
	window.close();
}

/**
 * 文字選択画面で値をセットする際に呼ばれるメソッド
 * このファンクションは色選択画面から呼ばれます。
 */
function setFontColorTag(no, strText) {
	var text = eval(strText);
	formatString(text, '<font color="' + no + '">', '</font>');
}


/**
 * 選択している文字列を取得する。
 * @param	text	: テキストボックス
 */
function getSelection (text) {
	if (document.selection != null) {
		return document.selection.createRange().text;
	}
	else if(text.selectionStart || text.selectionStart == '0') {
		var start = text.selectionStart;
		var end = text.selectionEnd;
		var str2 = text.value.substring(start,end);
		return str2;
	}
}

/**
 * 文字列をフォーマットする。
 * @param	text	: テキストボックス
 * @param	openTag : 開始タグ
 * @param	closeTag : 終了タグ
 */
function formatString (text, openTag, closeTag, $alternative) {
	var str = getSelection(text);
	// 終了タグが入っていない場合(undefined)
	if (!closeTag) {
		setSelection(text, openTag);
	}
	else {
		// ネットスケープ以外の場合
		if(!window.navigator.userAgent.toLowerCase().indexOf("netscape") > -1) {
//		if (window.navigator.appName != 'Netscape') {	
		
			// 選択文字がある場合(これがあるとネスケで動かない)
			if (str) {
				setSelection(text, openTag + str  + closeTag);
			}
		}
		else {
			if ($alternative==null) {
				$alternative = "";
			}
			setSelection(text, openTag + $alternative + closeTag);
		}
	}
	return false;
}

/**
 * 選択範囲にタグを適用する。
 * @param	text	: テキストボックス
 * @param	v	: 選択する値
 */
function setSelection (text, v) {
	// フォーカスを当てる
	text.focus();

	// 選択状態の場合
	if (document.selection != null) {
		document.selection.createRange().text = v;
	}
	else if (text.selectionStart || text.selectionStart == '0') {
		var start = text.selectionStart;
		var end = text.selectionEnd;
		var length = text.value.length;
		text.value = text.value.substring(0, start) + v + text.value.substr(end, length);
	}
	else {
		text.value += v;
	}
}

/** すくパラのカラーパレット用に追加したメソッド ******/

