//コントロールオブジェクト取得
if(typeof getElementObject == 'undefined'){
	function getElementObject(objWin, strID){
		if(objWin.document.getElementById){
			return objWin.document.getElementById(strID);
		}else{
			if(objWin.document.all){
				return objWin.document.all[strID];
			}
		}
		return null;
	}
}

//iフレームオブジェクト取得
if(typeof getIFrameDocument == 'undefined'){
	function getIFrameDocument(objWin, strID){
		var _iframe = getElementObject(objWin, strID);
		if(_iframe){
			if(_iframe.contentDocument){
				return _iframe.contentDocument;
			}else{
				return _iframe.contentWindow.document;
			}
		}else{
			return null;
		}
	}
}

//コントロールオブジェクト取得
if(typeof getElementObjectForDocument == 'undefined'){
	function getElementObjectForDocument(objDocument, strID){
		if(objDocument.getElementById){
			return objDocument.getElementById(strID);
		}else{
			if(objDocument.all){
				return objDocument.all[strID];
			}
		}
		return null;
	}
}

//ゼロ埋め
function formatZeroPadding(num, col){
	if(col <= 1) return num;
	var col_base = 10;
	var ret_str = '';
	for(var col_idx = 1; col_idx < col; col_idx++){
		col_base *= col_idx;
		if(num < col_base){
			ret_str += '0';
		}
	}
	ret_str += num;
	return ret_str;
}

//改行コードを<br>に変換(<table>対応
function convertNewlineToBR_TableTag(strData){

	var strDest = '';
	var arrData;
	var intTableNest = 0;

	if(strData != ''){
		//<検査
		arrData = strData.split('<');
		if(arrData.length > 1){
			//補正
			for(var loop_idx = 1; loop_idx < arrData.length; loop_idx++){
				arrData[loop_idx] = '<' + arrData[loop_idx];
			}
			//</検査
			intTableNest = 0;
			for(var loop_idx = 0; loop_idx < arrData.length; loop_idx++){
				var strWork = arrData[loop_idx].toLowerCase();
				if(strWork.substr(0, 7) == '</table'){
					intTableNest--;
				}else if(strWork.substr(0, 6) == '<table'){
					intTableNest++;
				}
				if(intTableNest > 0){
					strDest += arrData[loop_idx];
				}else{
					strDest += arrData[loop_idx].replace(/\x0D\x0A|\x0D|\x0A/g, '<br />');
				}
			}
		}else{
			//<なし
			strDest = strData.replace(/\x0D\x0A|\x0D|\x0A/g, '<br />');
		}
	}else{
		strDest = '';
	}

	return strDest;
}

//FFではinnerTextがつかえないのでtextContentで
function insertTextInTag(obj, txt){
	if(typeof obj.innerText == 'undefined'){
		obj.textContent = txt;
	}else{
		obj.innerText = txt;
	}
}
//FFではinnerTextがつかえないのでtextContentで
function getTextInTag(obj){
	if(typeof obj.innerText == 'undefined'){
		return obj.textContent;
	}else{
		return obj.innerText;
	}
}

//削除確認
function chkDeleteConfirm(){return confirm('削除してよろしいですか？');}

//編集値チェック
function chkEditData(input_chk_data)
{
	var ret = true;
	var chk = true;
	var ctrl;
	for(var loop_idx = 0; loop_idx < input_chk_data.length; loop_idx++){
		if(input_chk_data[loop_idx][0] > 0){
			ctrl = getElementObject(window, input_chk_data[loop_idx][1]);
			if(ctrl){
				if(input_chk_data[loop_idx][3] == 'eq'){
					chk = (ctrl.value == input_chk_data[loop_idx][2]);
				}else if(input_chk_data[loop_idx][3] == 'gt'){
					chk = (ctrl.value > input_chk_data[loop_idx][2]);
				}else if(input_chk_data[loop_idx][3] == 'ge'){
					chk = (ctrl.value >= input_chk_data[loop_idx][2]);
				}else if(input_chk_data[loop_idx][3] == 'lt'){
					chk = (ctrl.value < input_chk_data[loop_idx][2]);
				}else if(input_chk_data[loop_idx][3] == 'le'){
					chk = (ctrl.value <= input_chk_data[loop_idx][2]);
				}else if(input_chk_data[loop_idx][3] == 'ne'){
					chk = (ctrl.value != input_chk_data[loop_idx][2]);
				}else{
					chk = (ctrl.value == input_chk_data[loop_idx][2]);
				}
				if(chk){
					if(input_chk_data[loop_idx].length > 5){
						if(input_chk_data[loop_idx][5]) ctrl.style.backgroundColor = input_chk_data[loop_idx][5]; //要素を着色
						if(input_chk_data[loop_idx][6]) ctrl.parentNode.style.backgroundColor = input_chk_data[loop_idx][6]; //親要素を着色
						var notice = getElementObject(window, input_chk_data[loop_idx][7]);
						if(notice) notice.innerHTML = input_chk_data[loop_idx][4];
					}else{
						alert(input_chk_data[loop_idx][4]);
					}
					ctrl.focus();
					ret = false;
					break;
				}
			}
		}
	}
	return ret;
}

//要素および親要素の色を元に戻し、エラーメッセージを消す。
function resetBackground(elem) {
	elem.style.backgroundColor = '';
	elem.parentNode.style.backgroundColor = '';
	elem.nextSibling.nextSibling.innerHTML = '';
}


//**************************************************
//#N1 function correctionXMLString(objVal)
//#D1 共通
//#D2 ブラウザによっては、XMLデータの[text]が[textContent]
//#D3 に解釈される為、このファンクションで補正を行う。
//**************************************************
function correctionXMLString(objVal){
  var strRetVal = "";
  if (decodeURI(objVal.text) == "undefined")
  {
    strRetVal = decodeURI(objVal.textContent);
  } else {
    strRetVal = decodeURI(objVal.text);
  }
  //NN用[2006/07/06.追加]
  if (strRetVal == "undefined")
  {
    strRetVal = decodeURI(objVal.firstChild.nodeValue);
  }
  return strRetVal;
}
//**************************************************

//**************************************************
//#N1 Windowオープン
//**************************************************
function windowopen(url, name, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}
function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}

function openWindowToCenter(name, url, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  var toolbar_str   = toolbar ? 'yes' : 'no';
  var menubar_str   = menubar ? 'yes' : 'no';
  var statusbar_str = statusbar ? 'yes' : 'no';
  var scrollbar_str = scrollbar ? 'yes' : 'no';
  var resizable_str = resizable ? 'yes' : 'no';
  var features      = 'toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str;
  if(width){
    if(window.screen.width > width)
      features += ", left="+(window.screen.width-width)/2;
    else
      width = window.screen.width;
    features += ", width="+width;
  }
  if(height){
    if(window.screen.height > height)
      features += ", top="+(window.screen.height-height)/2;
    else
      height = window.screen.height;
    features += ", height="+height;
  }
  //features += ",personalbar=no,modal=yes,dependable=yes";
  return window.open(url, name, features);
}

function openWindowToCenterNoReturn(name, url, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  var toolbar_str   = toolbar ? 'yes' : 'no';
  var menubar_str   = menubar ? 'yes' : 'no';
  var statusbar_str = statusbar ? 'yes' : 'no';
  var scrollbar_str = scrollbar ? 'yes' : 'no';
  var resizable_str = resizable ? 'yes' : 'no';
  var features      = 'toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str;
  if(width){
    if(window.screen.width > width)
      features += ", left="+(window.screen.width-width)/2;
    else
      width = window.screen.width;
    features += ", width="+width;
  }
  if(height){
    if(window.screen.height > height)
      features += ", top="+(window.screen.height-height)/2;
    else
      height = window.screen.height;
    features += ", height="+height;
  }
  //features += ",personalbar=no,modal=yes,dependable=yes";
  var child_win = window.open(url, name, features);
  child_win.focus();
}

function openWindowToCenterEx(win, name, url, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  var toolbar_str   = toolbar ? 'yes' : 'no';
  var menubar_str   = menubar ? 'yes' : 'no';
  var statusbar_str = statusbar ? 'yes' : 'no';
  var scrollbar_str = scrollbar ? 'yes' : 'no';
  var resizable_str = resizable ? 'yes' : 'no';
  var features      = 'toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str;
  if(width){
    if(window.screen.width > width)
      features += ", left="+(window.screen.width-width)/2;
    else
      width = window.screen.width;
    features += ", width="+width;
  }
  if(height){
    if(window.screen.height > height)
      features += ", top="+(window.screen.height-height)/2;
    else
      height = window.screen.height;
    features += ", height="+height;
  }
  //features += ",personalbar=no,modal=yes,dependable=yes";
  return win.open(url, name, features);
}

function getOpener(){
	var o = opener;
	var p = null;
	while(o){
		p = o;
		o = o.opener;
	}
	return p;
}

//**************************************************
//#N1 印刷
//**************************************************
function is_print_out() {
   /* print() が使えるブラウザかどうかを判断 */
  if(navigator.userAgent.match(/msie (\d)/i))
    v = (eval(RegExp.$1) >= 5) ? 1 : 0;
  else if (self.innerWidth)
    v = (eval(navigator.appVersion.charAt(0)) >= 4) ? 1 : 0;
  else v = 0;
  return v;
}

function print_out() {
   /* print() が使えるブラウザかどうかを判断 */
//  if(navigator.userAgent.match(/msie (\d)/i))
//    v = (eval(RegExp.$1) >= 5) ? 1 : 0;
//  else if (self.innerWidth)
//    v = (eval(navigator.appVersion.charAt(0)) >= 4) ? 1 : 0;
//  else v = 0;

  /* print() が使えるブラウザなら印刷を実行 */
//  if(v) self.print();
  if(is_print_out()) self.print();
  else alert("お使いのブラウザではこの機能は利用できません.\n\nファイルメニューより印刷してください.");
}
/*
function print_preview() {
	var objIE = ActiveXObject("InternetExplorer.application");
	objIE.Visible = true;
	objIE.ExecWB(7, 0);
}
*/

//**************************************************
//#N1 XMLHttpRequestオブジェクト生成
//**************************************************
function createHttpRequest()
{
  if(window.ActiveXObject){ //Win ie用
    try {
      return new ActiveXObject("Msxml2.XMLHTTP"); //MSXML2以降用
    } catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP"); //旧MSXML用
      } catch (e2) {
        return null;
      }
    }
  }else{
    if(window.XMLHttpRequest){
      return new XMLHttpRequest(); //Win ie以外のXMLHttpRequestオブジェクト実装ブラウザ用
    } else {
      return null;
    }
  }
}
//**************************************************
//#N1 ファイルにアクセスし受信内容を確認します
//**************************************************
function callHttpRequest( strData , strMethod , strURL , boolAsync)
{
  var objHTTP = createHttpRequest(); //XMLHttpRequestオブジェクト生成
  if (objHTTP!=null){
    if (objHTTP.readyState == 0){
      objHTTP.open( strMethod , strURL , boolAsync ); //open メソッド
      objHTTP.onreadystatechange = function(){ //受信時に起動するイベント
        if (objHTTP.readyState==4){  //readyState値は4で受信完了
          getHttpRequestAddress(objHTTP,strData); //コールバック
        }
      }
      objHTTP.send( strData ); //send メソッド
    }
  }
}
//**************************************************
//**************************************************
function parseXml(xmlText)
{
  if (window.ActiveXObject) {
    var domDoc = new ActiveXObject('Microsoft.XMLDOM');
    domDoc.async = false;
    domDoc.loadXML(xmlText);
    return domDoc;
  } else if(window.DOMParser) {
    var domParser = new DOMParser();
    return domParser.parseFromString(xmlText, "application/xml");
  } else {
    return null;
  }
}
function getChildNodeValue(objElement)
{
	var strRetValue = '';
	if(objElement){
		if(objElement.firstChild){
			strRetValue = objElement.firstChild.nodeValue;
		}
	}
	return strRetValue;
}

//**************************************************
//**************************************************
function changeImg(imgNumber,Icolor){
  document.getElementById("idIchimatsu").value = Icolor;
  //alert(document.getElementById("idIchimatsu").value);
  document.getElementById("imgSelected").setAttribute("src",document.getElementById("img" + imgNumber).getAttribute("src"));
}
//**************************************************
//**************************************************
function funcTreeMenu(tName)
{
  if ( document.getElementById ) {
    tMenu = document.getElementById(tName).style;
    if (tMenu.display == 'none') tMenu.display = "block"; else   tMenu.display = "none";
  }else{
    if ( document.all ) {
      tMenu = document.all[tName].style;
      if (tMenu.display == 'none') tMenu.display = "block"; else   tMenu.display = "none";
    }
  }
}
//**************************************************
//**************************************************
function checkCB(strIDName,intMaxNum)
  {
  var i
  i = 1
  for (i = 1 ; i < intMaxNum+1 ; i++){
  //alert('price' + i)
    if ( document.getElementById ) {
        var strCheckFlag = document.getElementById(strIDName + i).getAttribute("checked") 
        //alert(document.getElementById(strIDName + i).getAttribute("value") )
        //alert(strCheckFlag)
        if (strCheckFlag == false)
        {
          strCheckFlag = ! strCheckFlag
          document.getElementById(strIDName + i).setAttribute('checked', strCheckFlag); 
        }
      }else{
        if ( document.all ) {
          var strCheckFlag = document.all(strIDName + i).getAttribute("checked") 
          //alert(strCheckFlag)
          if (strCheckFlag == false)
          {
            strCheckFlag = ! strCheckFlag
            document.all(strIDName + i).setAttribute('checked', strCheckFlag); 
          }
        }
      }
    }
  }
//**************************************************
//#N1 function menuLink(linkLoc)
//#D1 外部サイトへリンク
//**************************************************
function menuLink(linkLoc){
  if(linkLoc != "") {
  self.open(linkLoc,"_top");
  }
}

//**************************************************
//#N1 function chkConfirm(msg)
//#D1 確認画面の表示
//#A1 msg:表示メッセージ
//#R1 true or false
//**************************************************
function chkConfirm(msg){
	return confirm(msg);
}

//**************************************************
//#N1 function chkDate(yy, mm, dd)
//#D1 日付の妥当性チェック
//#A1 yy:年
//#A2 mm:月
//#A3 dd:日
//#R1 true or false
//**************************************************
function chkDate(yy, mm, dd){
	var chk_y = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 29);
	var chk_m = mm;
	
	// 月の範囲検証
	if(!(mm >= 1 && mm <= 12)){
		return false;
	}
	// 閏年の判定
	if(!(yy % 4) && mm == 2){
		chk_m = 12;	// 閏年テーブル
		//if (!(!(wYear % 100) && (wYear % 400))){
		if(!(yy % 100)){
			if(yy % 400){
				chk_m = 1;	// non閏年テーブル
			}
		}
	}else{
		chk_m--;
	}
	// 日の範囲検証
	if(!(1 <= dd && chk_y[chk_m] >= dd)){
		return false;
	}
	return true;
}

//**************************************************
//#N1 function chkDateCompare(yy, mm, dd, base_dt)
//#D1 日付比較チェック
//#A1 yy:年
//#A2 mm:月
//#A3 dd:日
//#A4 base_dt:チェック基準日付
//#R1 Dateオブジェクトの差(対象年月日-基準年月日)
//**************************************************
function chkDateCompare(yy, mm, dd, base_dt){

//	var now_dt;
//	if(base_dt && base_dt.length > 0){
//		now_dt = new Date(base_dt);
//	}else{
//		now_dt = new Date();
//	}
	var now_dt = new Date(base_dt);
	var cmp_dt = new Date(yy, mm - 1, dd);
//alert('now_dt:'+now_dt);
//alert('cmp_dt:'+cmp_dt);
	return (cmp_dt - now_dt);

/*
	var now_yy = now_dt.getYear();
	if(now_yy < 2000) now_yy += 1900;
	var now_mm = now_dt.getMonth() + 1;
	var now_dd = now_dt.getDay();
	if(base_dt){
		
	}
	
	if(yy < now_yy){
		return false;
	}else if(yy == now_yy){
		if(mm < now_mm){
			return false;
		}else if(mm == now_mm){
			if(dd < now_dd){
				return false;
			}
		}
	}
	return true;
*/
}

//**************************************************
//#N1 function checkNull(obj)
//#D1 空白チェック関数
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkNull(obj){
  if(trim(obj.value)==''){
    return false;
  }
  return true;
}

//**************************************************
//#N1 function checkAlphabet(obj)
//#D1 半角英文字チェック
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkAlphabet(obj){
  var str = obj.value;
  if(str.match(/[^A-Za-z\s.-]+/)){
    return false;
  }
  return true;
}

//**************************************************
//#N1 function checkNumber(obj)
//#D1 半角数字チェック
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkNumber(obj){
  var str = obj.value;
  if(str.match(/[^0-9]+/)){
    return false;
  }
  return true;
}

//**************************************************
//#N1 function checkAlphaNum(obj)
//#D1 半角英数字チェック
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkAlphaNum(obj){
  var str = obj.value;
  if(str.match(/[^A-Za-z0-9\s.-]+/)){
    return false;
  }
  return true;
}

//**************************************************
//#N1 function checkEmail(obj)
//#D1 メールアドレスチェック
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkEmail(obj){
  var str = obj.value;
  if(!str.match(/([0-9A-Za-z]+[\-\.\w\/]*)\@([0-9A-Za-z]+[\-\w]*\.){1,4}([0-9A-Za-z]+)/)){
    return false;
  }
  return true;
}

//**************************************************
//#N1 function checkEmailEx(obj)
//#D1 メールアドレスチェック
//#A1 obj:チェック対象オブジェクト
//#R1 true or false
//**************************************************
function checkEmailEx(obj){
  var str = obj.value;
  if(!str.match(/^([\w\.\-\/]+)@([\w_\-]+)\.([\w_\.\-]*)[a-z][a-z]$/i)){
    return false;
  }
  return true;
}


//**************************************************
//#N1 function checkFileSize(fn, maxsize)
//#D1 ファイルサイズチェック
//#D2 ※IEのみ。チェックできない環境であれば何もしない。
//#A1 fn:チェック対象ファイル
//#A2 maxsize:最大サイズ
//#R1 true or false
//**************************************************
function checkFileSize(fn, maxsize, item)
{
  var fso, size;
  if(window.ActiveXObject){ //Win ie用
    try {
	  fso = new ActiveXObject("Scripting.FileSystemObject");
    } catch (e) {
      fso = null;
    }
  }
  if(fso){
    size = fso.GetFile(fn).size;
    if(size > maxsize){
      alert(item+"に設定されたファイルサイズは"+size+"バイトです。\n"+maxsize+"バイトを超えているので登録できません.");
      return false;
    }else{
      return true;
    }
  }
  return true;
}

//**************************************************
//#N1 function numberFormat(cols, num, ch)
//#D1 数値整形
//#A1 cols:桁数
//#A2 num :対象数値
//#A3 ch  :埋める文字
//#R1 なし
//**************************************************
function numberFormat(cols, num, ch){

	var numstr = new String(num);
	var numcnt = cols - numstr.length;
	if(numcnt > 0){
		while(numcnt-- > 0){
			numstr = ch + numstr;
		}
	}
	return numstr;
}

//************************************************************************
//#N1 Public Function GetCutStr(target, col, dotstr)
//#D1 文字列カット
//#A1 [I]target：変換対象文字列
//#A2 [I]col   ：桁数
//#A3 [I]dotstr：桁数以上の場合に付加する記号や文字
//#R1 変換後文字列
//************************************************************************
function getCutStr(target, col, dotstr){
	if(target.length > col){
		return target.substr(0, col) + dotstr;
	}else{
		return target;
	}
}

function clearDateCtrl(objwin, id_prefix, id_yy, id_mm, id_dd){
	var dt_yy = getElementObject(objwin, (id_prefix ? id_prefix + 'year' : id_yy));
	var dt_mm = getElementObject(objwin, (id_prefix ? id_prefix + 'month' : id_mm));
	var dt_dd = getElementObject(objwin, (id_prefix ? id_prefix + 'day' : id_dd));
	if(dt_yy) dt_yy.value = '';
	if(dt_mm) dt_mm.selectedIndex = 0;
	if(dt_dd) dt_dd.selectedIndex = 0;
}

function copyDateCtrl(objwin, id_prefix_f, id_prefix_t, id_yy_f, id_yy_t, id_mm_f, id_mm_t, id_dd_f, id_dd_t){
	var dt_yy_f = getElementObject(objwin, (id_prefix_f ? id_prefix_f + 'year' : id_yy_f));
	var dt_mm_f = getElementObject(objwin, (id_prefix_f ? id_prefix_f + 'month' : id_mm_f));
	var dt_dd_f = getElementObject(objwin, (id_prefix_f ? id_prefix_f + 'day' : id_dd_f));
	var dt_yy_t = getElementObject(objwin, (id_prefix_t ? id_prefix_t + 'year' : id_yy_t));
	var dt_mm_t = getElementObject(objwin, (id_prefix_t ? id_prefix_t + 'month' : id_mm_t));
	var dt_dd_t = getElementObject(objwin, (id_prefix_t ? id_prefix_t + 'day' : id_dd_t));
	if(dt_yy_f && dt_yy_t) dt_yy_t.value = dt_yy_f.value;
	if(dt_mm_f && dt_mm_t) dt_mm_t.selectedIndex = dt_mm_f.selectedIndex;
	if(dt_dd_f && dt_dd_t) dt_dd_t.selectedIndex = dt_dd_f.selectedIndex;
}

function write_cookie(key, value, path)
{
  var strX;
  strX = escape(value);
  strX = key + '=' + strX + ';';
  if(!arguments[2]){}else{
    strX += ' path=' + path + ';';
  }
  document.cookie = strX;
  return;
}

function read_cookie(key)
{
  var i, str, tmp;
  str  = document.cookie;
  str  = str.split(';');
  key += '=';
  for(i = 0; i < str.length; i++){
    if(str[i].indexOf(key) >= 0){
      tmp = str[i];
      tmp = tmp.split(key);  tmp=tmp[1];
      tmp = tmp.split(';');  tmp=tmp[0];
      tmp = unescape(tmp); 
      //---alert(tmp);
      return(tmp);
    }
  }
  //return('Error');
  return('');
}

if(!Array.prototype.contains){
	/**
	* @access public
	* @param value mixed 検索するオブジェクト
	* @return boolean 対象配列に既にオブジェクトが存在していれば true, そうでなければ false
	* 配列の値の重複チェックなどに使用。
	*/
	Array.prototype.contains = function(value){
		for(var i = 0; i < this.length; i++){
			//if(this.hasOwnProperty(i) && this[i] === value){
			if(this[i] === value){
				return true;
			}
		}
		return false;
	}
}

if(!Array.prototype.remove){
	/**
	* @access public
	* @param value mixed 削除するオブジェクト
	* @return none
	* 配列の要素削除などに使用。
	*/
	Array.prototype.remove = function(value){
		for(var i = 0; i < this.length; i++){
			if(this[i] === value){
				this.splice(i, 1);
				i--;
			}
		}
	}
}

function crearCheckCtrlStatus(target_form, target_ctrl)
{
	eval('var tform  = document.' + target_form + ';');
	eval('var target = tform.' + target_ctrl + ';');
	if(target.length > 0){
		for(var chk_loop = 0; chk_loop < target.length; chk_loop++){
			target[chk_loop].checked = false;
		}
	}else{
		target.checked = false;
	}
}


var g_IdViser = new Array(); // 監視タイマーのID
var g_NumViser = 0;      // 監視器のの数
var g_i = 0;        // グローバルカウンタ
function setViser(cond, funcCall, timeVise)
{
	// 条件が満たされれば、タイマーをクリアして関数を呼び出す
	strFunc = "" +
			"if(" + cond +"){ " + 
			"clearInterval(g_IdViser[" + g_NumViser + "]);" 
			+ funcCall + ";" + 
			"}";
	// 監視タイマーをセット ( setInterval)
	g_IdViser[g_NumViser] = setInterval(strFunc , timeVise);
	g_NumViser++;
}

function delViser()
{
	for(var loop_idx = 0; loop_idx < g_IdViser.length; loop_idx++){
		clearInterval(g_IdViser[loop_idx]);
	}
	g_NumViser = 0;
}

/* 
 * FlashPlayerのバージョンを取得します
 * @param	isMejorVersion:Boolean メジャーバージョンだけ取得する場合trueとしてください
 * @return	FlashPlayerのバージョンを返します。引数でtrueを渡していた場合（メジャーバージョンを取得するようにしていた場合）は、9、10などメジャーバージョン単体、そうでない場合は、9.0.45.0や、10.0 d536など、リビジョンを含めたバージョン情報を返します。
 */
function getFlashPlayerVersion(isMejorVersion)
{
	var flash = "application/x-shockwave-flash";
	var ver = 0;
	if (navigator.mimeTypes && navigator.mimeTypes[flash] && navigator.mimeTypes[flash].enabledPlugin)
	{
		for (var i=0; i<navigator.plugins.length; i++)
		{
			var pluginDescription = navigator.plugins[i].description;
			var flashIndex = pluginDescription.indexOf("Flash");
			if(flashIndex >= 0)
			{
				if(!isMejorVersion)
				{
					ver = pluginDescription.substring(flashIndex + 6);
				} else {
					ver = eval(pluginDescription.substring(flashIndex + 6, flashIndex + 9));
				}
			}
		}
	}
	return ver;
}


function addHeader(objWin, target){
	var head = objWin.document.getElementsByTagName('head');
	head[0].appendChild(target);
}
function addCSS(objWin, value){
	var target = objWin.document.createElement('link');
	target.href = value;
	target.type = 'text/css';
	target.rel  = 'stylesheet';
	addHeader(objWin, target);
}
function addJS(objWin, value){
	var target = objWin.document.createElement('script');
	target.src      = value;
	target.type     = 'text/javascript';
	target.language = 'javascript';
	addHeader(objWin, target);
}
function addMeta(objWin, equiv, value){
	var target = objWin.document.createElement('meta');
	target.httpEquiv = equiv;
	target.content   = value;
	addHeader(objWin, target);
}
function addTitle(objWin, value){
	var target = objWin.document.createElement('title');
	target.innerHTML = value;
	addHeader(objWin, target);
}
function addBodyAttribute(objWin, name, value){
	var body = objWin.document.getElementsByTagName('body');
	body[0].setAttribute(name, value);
}
function addBodyHTML(objWin, value){
	var body = objWin.document.getElementsByTagName('body');
	body[0].innerHTML = value;
}

// Stringクラスにtrimメソッドを追加
if(!String.prototype.trim){
	String.prototype.trim = function(){
		return this.replace(/^\s+|\s+$/g, '');
	}
}
// Stringクラスにrtrimメソッドを追加
if(!String.prototype.rtrim){
	String.prototype.rtrim = function(){
		return this.replace(/\s+$/g, '');
	}
}
// Stringクラスにltrimメソッドを追加
if(!String.prototype.ltrim){
	String.prototype.ltrim = function(){
		return this.replace(/^\s+/g, '');
	}
}


