﻿/* Login */
var LOGIN_COOKIE = "M_Login";               // ログインクッキー名
/* Watch List */
var WATCHLIST_ELEMENT = 'WatchList';        // 一覧表示要素名
var WATCHLIST_COUNT   = 5;                  // 一覧数
var WATCHLIST_COOKIE = 'wList';             // Cookie名
var COK_EXPIRES = 90;                       // Cookie有効日数

/*------------------------------------------------------+/
/+  リスナー（イベントハンドラ）定義
/+      引　数：elem      - タグ(コントロール)TD
/+         　 ：eventName - イベント名
/+         　 ：func      - イベント発生時、実行関数名
/+         　 ：cap       - キャプチャする/しない
/+------------------------------------------------------*/
function addListener(elem, eventName, func, cap) {
    if(elem.addEventListener) {
        elem.addEventListener(eventName, func, cap);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventName, func);
    } else {
        // alert('ご利用のブラウザーはサポートされていません。');
        elem('on' + eventName)=func;
        return false;
    }
}

/*------------------------------------------------------+/
/+  Trim関数
/+------------------------------------------------------*/
function trim(argValue){
    return String(argValue).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
}
/*------------------------------------------------------+/
/+  全角スペースを半角に置き換え
/+------------------------------------------------------*/
function ToNarrowSpace(target) {
    return target.replace(/　/g," ");
}
/*------------------------------------------------------+/
/+  文字列バイト数カウント
/+------------------------------------------------------*/
function GetByteCount(str){
    count=0;
    for(i=0;i<str.length;i++)
        (str.charAt(i).match(/[ｱ-ﾝ]/) || escape(str.charAt(i)).length< 4)?count++:count+=2;
    return count;
}
/*------------------------------------------------------+/
/+  ページ引数取得
/+------------------------------------------------------*/
function GetQueryString(queryName) {
    var QS = new Array;
    if (location.search.length > 1) {
        var m_Array = location.search.substr(1).split("&"); 
        for (idx in m_Array) {
            QS.push(m_Array[idx].split("="));
            if (QS[idx][0]==queryName) {
                return QS[idx][1];
            }
        }
    }
    return "";
}

/*------------------------------------------------------+/
/+  COOKIE関数
/+      以下のcookie関数は下記URLからダウンロードしたものです 
/+      http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
/+------------------------------------------------------
/+  注意!!
/+      ASP.NET と Javascriptでは、同じCookieの名称でも別のものとして使用されるため
/+      両方からCookieの読み書きを行わない。
/+      どちらかで書くだけ、読むだけにする！！
/+------------------------------------------------------*/
function Get_Cookie(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 value = "";
   var end = 0;
   // 「&」で区切って抽出
   end = document.cookie.indexOf("&",len); 
   if (end == -1) end = document.cookie.length; 
   value = document.cookie.substring(len,end);
   // 「;」で区切って抽出
   start = 0;
   end = value.indexOf(';'); 
   if (end == -1) end = value.length; 
   value = value.substring(start,end);
    // 抽出結果
   return unescape(value);
} 
function Set_Cookie(name,value,expires,path,domain,secure) { 
	expires = expires * 60*60*24*1000;
	var today = new Date();
	var expires_date = new Date( today.getTime() + (expires) );
    var cookieString = name + "=" +escape(value) + 
       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
       ( (path) ? ";path=" + path : "") + 
       ( (domain) ? ";domain=" + domain : "") + 
       ( (secure) ? ";secure" : ""); 
/*
       ( (expires) ? "&expires=" + expires_date.toGMTString() : "") + 
       ( (path) ? "&path=" + path : "") + 
       ( (domain) ? "&domain=" + domain : "") + 
       ( (secure) ? "&secure" : ""); 
*/
    document.cookie = cookieString; 
}	
/*------------------------------------------------------+/
/+  選択された情報をCookieに読み/書き後、LightBox表示
/+------------------------------------------------------*/
function ShowBox(targetId){
    // 選択された商品情報Popup表示
    var contents = document.getElementById(targetId).innerHTML;
    jQuery.facebox(contents);

    // 選択された商品情報取得
    var lnkPath = document.getElementById('lnk' + targetId).getAttribute('href');
    var imgPath = document.getElementById('img' + targetId).getAttribute('src');
    
    var cokLnkPath = new Array(WATCHLIST_COUNT);            // Cookie読出しリンクデータ
    var cokImgPath = new Array(WATCHLIST_COUNT);            // Cookie読出し画像データ
    var setLnkPath = new Array(WATCHLIST_COUNT);            // Cookie書込みリンクデータ
    var setImgPath = new Array(WATCHLIST_COUNT);            // Cookie書込み画像データ
    var lstHtml    = new Array(WATCHLIST_COUNT);            // 表示リストHTML
    var flag = 0;                                           // 重複チェックフラグ
    // Cookieから呼び出し
    var cokData = '';
    for (i=0; i<WATCHLIST_COUNT; i++){
        try{
            cokData = Get_Cookie(WATCHLIST_COOKIE + i);
            tmpData = cokData.split(',');
            cokLnkPath[i] = tmpData[0];
            cokImgPath[i] = tmpData[1];
            if (cokLnkPath[i] == lnkPath) flag = 1;         // 重複チェック
        }catch(e){
        }
    }
    // Cookie書込みデータ・リストHTML 取得
    var cokI = 0;
    for (i=0; i<WATCHLIST_COUNT; i++){
        try{
            if (i == 0 && flag == 0) {                      // 重複なし & 1件目
                setLnkPath[0] = lnkPath;                    // 選択されたリンクを取得
                setImgPath[0] = imgPath;                    // 選択された画像を取得
                cokI = 1;                                   // 重複インデックスセット
            } else {                                        // 重複あり or 2件目以降
                setLnkPath[i] = cokLnkPath[i - cokI];
                setImgPath[i] = cokImgPath[i - cokI];
            }
            // リスト表示HTML作成
            if (setImgPath[i] != '' 
             && setImgPath[i] != 'null' && setImgPath[i] !== null
             && setImgPath[i] != 'undefined' && setImgPath[i] !== undefined) {
                lstHtml[i]  = '<a href="' + setLnkPath[i] + '" target="_blank" onmouseover="window.status=\'\';return true;">';
                lstHtml[i] += '<img src="' + setImgPath[i] + '" class="xImg" alt="" /></a>';
            } else {
                lstHtml[i]  = ''
            }
        }catch(e){
        }
    }
    // リスト表示
    // Cookieに書き込み
    var elmList = document.getElementById(WATCHLIST_ELEMENT);
    elmList.innerHTML = '';
    for (i=0; i<WATCHLIST_COUNT; i++){
        try{
            elmList.innerHTML += lstHtml[i];
            if (flag == 0) {
                Set_Cookie(WATCHLIST_COOKIE + i, setLnkPath[i] + ',' + setImgPath[i], COK_EXPIRES);
                //Set_Cookie(COK_NAME_LNK + i, setLnkPath[i], COK_EXPIRES);
                //Set_Cookie(COK_NAME_IMG + i, setImgPath[i], COK_EXPIRES);
            }
        }catch(e){
        }
    }
}
/*------------------------------------------------------+/
/+  Cookieからリスト情報を読出し、リスト作成
/+------------------------------------------------------*/
function ShowList(){
    var cokLnkPath = new Array(WATCHLIST_COUNT);            // Cookie読出しリンクデータ
    var cokImgPath = new Array(WATCHLIST_COUNT);            // Cookie読出し画像データ
    var lstHtml    = '';                                    // 表示リストHTML

    // Cookieから呼び出し
    var elmList = document.getElementById(WATCHLIST_ELEMENT);
    elmList.innerHTML = '';
    var cokData = '';
    for (i=0; i<WATCHLIST_COUNT; i++){
        try{
            cokData = Get_Cookie(WATCHLIST_COOKIE + i);
            tmpData = cokData.split(',');
            cokLnkPath[i] = tmpData[0];
            cokImgPath[i] = tmpData[1];
            // リスト表示HTML作成
            if (cokImgPath[i] != '' 
             && cokImgPath[i] != 'null' && cokImgPath[i] !== null
             && cokImgPath[i] != 'undefined' && cokImgPath[i] !== undefined) {
                lstHtml  = '<a href="' + cokLnkPath[i] + '" target="_blank" onmouseover="window.status=\'\';return true;">';
                lstHtml += '<img src="' + cokImgPath[i] + '" class="xImg" alt="" /></a>';
                elmList.innerHTML += lstHtml;
            }
        }catch(e){
        }
    }
}


/*------------------------------------------------------+/
/+  暗号化解除
/+------------------------------------------------------*/
function BreakCode(strSecretCode) {
    if (strSecretCode==null) return "";
    
    //暗号化文字列をDecode
    var strSecretID = strSecretCode;

    var strID = new Array();
    var intAsciiCode = 0;                       // メンバーコード2桁ごとの数値
    var intSecretNo = 0;                        // 暗号化の為の任意の数値(0～28)
　　var strWk = "";
　　
　　intCnt = 0;
　　do {
　　    if (strSecretID.substr(3 * intCnt, 3) < 200){
　　        intAsciiCode = strSecretID.substr(3 * intCnt, 3);
　　    } else {
　　        intAsciiCode = strSecretID.substr(3 * intCnt + 1, 2);
　　    }
        // 暗号化の為の数値取得
        switch(intCnt) {
            case 1: intSecretNo = 0; break;
            case 3: intSecretNo = 4; break;
            case 4: intSecretNo = 2; break;
            case 2: intSecretNo = 5; break;
            case 0: intSecretNo = 8; break;
        }
        // 暗号解除後、メンバーコード取得（2桁ごと）
        strWk = new String(intAsciiCode - intSecretNo);
        strWk = "00" + strWk;
        strID[intCnt] = strWk.substr(strWk.length - 2, 2);
　　    intCnt++;
　　} while(intCnt <= 4);

    return strID[1] + strID[3] + strID[4] + strID[2] + strID[0];
    //Return String.Format("{1}{3}{4}{2}{0}", strID[0], strID[1], strID[2], strID[3], strID[4])
}
/*
function BreakCode(strSecretCode) {
    if (strSecretCode==null) return "";
    
    //暗号化文字列をDecode
    var strSecretID = unescape(strSecretCode);  //CHR文字取得

    var strID = new Array();
    var intAsciiCode = 0;                       // メンバーコード2桁ごとの数値
    var intSecretNo = 0;                        // 暗号化の為の任意の数値(0～28)
　　var strWk = "";
　　
    for (intCnt=0; intCnt < strSecretID.length; intCnt++) {
        // 一文字取得
        intAsciiCode = strSecretID.charCodeAt(intCnt);      // ASCコード取得
        // 暗号化の為の数値取得
        switch(intCnt) {
            case 1: intSecretNo = 0; break;
            case 3: intSecretNo = 4; break;
            case 4: intSecretNo = 2; break;
            case 2: intSecretNo = 5; break;
            case 0: intSecretNo = 8; break;
        }
        // 暗号解除後、メンバーコード取得（2桁ごと）
        strWk = new String(intAsciiCode - intSecretNo);
        strWk = "00" + strWk;
        strID[intCnt] = strWk.substr(strWk.length-2,2);
    }
    return strID[1] + strID[3] + strID[4] + strID[2] + strID[0];
    //Return String.Format("{1}{3}{4}{2}{0}", strID[0], strID[1], strID[2], strID[3], strID[4])
}
*/
/*------------------------------------------------------+/
/+  ウィンドウ表示関連
/+------------------------------------------------------*/

/* サブウィンドウ表示 */
function OpenSubWin() {
    var subWin;
    subWin=window.open('sub.htm','Sample','width=240,height=160');
}

/* ドキュメントウィンドウ表示 */
function OpenDocWin(strHtml) {
    var subWin;
    subWin=window.open('sub.htm','Sample','width=240,height=160');
    subWin.document.open('text/html');
    subWin.document.write(strHtml)
    subWin.document.close;    
}

/*------------------------------------------------------+/
/+  コントロール関連
/+------------------------------------------------------*/

/* コントロール内クリア */
function ClearText(strId) {
    if (document.getElementById(strId).value=='入力してください') document.getElementById(strId).value='';
}

/* コントロールフォーカス取得 */
function GetFocus_Control(strId) {
    document.getElementById(strId).style.color='black';             //文字色変更
    document.getElementById(strId).style.backgroundColor='#FFFACC'; //背景色変更
}

/* コントロールフォーカス損失 */
function LostFocus_Control(strId) {
    document.getElementById(strId).style.backgroundColor='#FFFFFF'; //背景色変更
}

/*
/+ コントロール表示/非表示
/+  引　数：target_id - 表示/非表示切替えコントロールID
/+        ：button_id - 表示/非表示切替えボタンID
*/
function CollapsControlDisp(target_id,button_id){
    CollapsControlDisp_Image(target_id,button_id);  // 表示/非表示イメージを更新
    CollapsControlSetCookie(target_id);             // 表示/非表示をクッキーにセット
    ControlDispOnOff(target_id);                    // 表示/非表示実行
}
/* タイトル用 */
function CollapsControlDisp_Title(target_id,button_id){
    CollapsControlDisp_TitleImage(target_id,button_id);  // 表示/非表示イメージを更新
    CollapsControlSetCookie(target_id);             // 表示/非表示をクッキーにセット
    ControlDispOnOff(target_id);                    // 表示/非表示実行
}

/* コントロール表示/非表示 */
function ControlDispOnOff(target_id){
    var elemTarget = document.getElementById(target_id);
    
    if (elemTarget.style.display == "none") {
        elemTarget.style.visibility = "visible";
        elemTarget.style.display = "block";
    }else{
        elemTarget.style.visibility = "hidden";
        elemTarget.style.display = "none";
    }
}
/* 表示/非表示イメージ更新 */
function CollapsControlDisp_Image(target_id,button_id){
    var elemTarget = document.getElementById(target_id);
    
    if (elemTarget.style.display == 'none') {
        document.images[button_id+"Image"].src="./image/common/window_minimum.gif";
    }else{
        document.images[button_id+"Image"].src="./image/common/window_maximum.gif";
    }
}
/* 表示/非表示イメージ更新（タイトル用） */
function CollapsControlDisp_TitleImage(target_id,button_id){
    var elemTarget = document.getElementById(target_id);
    
    if (elemTarget.style.display == 'none') {
        document.images[button_id+"Image"].src="./image/common/bgTitleMinButton.gif";
    }else{
        document.images[button_id+"Image"].src="./image/common/bgTitleMaxButton.gif";
    }
}
/* 表示/非表示をクッキーにセット */
function CollapsControlSetCookie(target_id){
    var elemTarget = document.getElementById(target_id);
    
    if (elemTarget.style.display == 'none') {
        Set_Cookie('memotta_collaps_' + target_id,'block',100);
    }else{
        Set_Cookie('memotta_collaps_' + target_id,'none',100);
    }
}

/*
/+ 指定コントロールに値をセットし、フォーカスを移す
/+  引　数：target - 値・フォーカス移動先コントロールID
/+        ：id     - フォーカス移動元コントロールID
/+        ：str    - セット値
*/
function SelPopup(target,id,str) {
    if (document.getElementById(target).disabled == false) {
        var inputTxt= document.getElementById(target).value;
        var trimTxt = String(inputTxt).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
        var addTxt  = String(str).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
        if (trimTxt == '') {
            document.getElementById(target).value = addTxt;
        } else {
            document.getElementById(target).value = trimTxt + ' ' + addTxt;
        }
        document.getElementById(id).blur();
        document.getElementById(target).focus();
    }
}

/*
/+ ロールオーバー
/+  引　数：strId-マウスON/OFF タグID
*/
function RollOn(TargetName,TargetImg){
    document.images[TargetName].src=TargetImg;
}

function RollOff(TargetName,TargetImg){
    document.images[TargetName].src=TargetImg;
}

/*
/+ 位置取得
/+  引　数：prop - 位置文字列 'Left'/'Top'
/+        ：el   - エレメント
/+  戻り値：位置情報値
*/
function getPosition(prop, el) {
  if(!el.offsetParent || el.offsetParent.tagName.toLowerCase() == 'body') {
     return el['offset'+prop];
  } else {
     return el['offset'+prop]+ this.getPosition(prop, el.offsetParent);
  }
}

/*
/+ 重ね順変更（前面に移動）
/+  引　数：target - 重ね順変更コントロールID
/+  備　考：使用例 onMousedown="SetZIndex(target_id)"
*/
var top_zindex=10000;
function SetZIndex(target_id) {
    document.getElementById(target_id).style.zIndex = currentZIndex++;
}

// 一定期間New/Upマークを表示する
function newUp(y, m, d) {
    oldDay = new Date(y + "/" + m + "/" +d);
    newDay = new Date();
    d =(newDay - oldDay) / (1000 * 24 * 3600);

    delDay = 7;                       // 何日後に削除するか
    if(d <= delDay) {
        document.write('<span class="FontBold">');
    } else {
        document.write('<span>');
    }
    
    delDay = 3;                       // 何日後に削除するか
    if(d <= delDay) {
        document.write('<img src="img/common/icon/new.gif" alt="" />');
    } else {
        document.write('');
    }
}

/*
/+ 時間によりトップ画像切り替え
*/
function getSignboard()　{
    try{
        datetoday = new Date();
        timenow=datetoday.getTime();
        datetoday.setTime(timenow);
        thehour = datetoday.getHours();
        var imgName;
        if      (thehour >= 20) {imgName = "signboard_Twilight.gif";}
        else if (thehour >= 17) {imgName = "signboard_Sunset.gif";}
        else if (thehour >= 14) {imgName = "signboard_Afternoon.gif";}
        else if (thehour >= 11) {imgName = "signboard_Noon.gif";}
        else if (thehour >=  8) {imgName = "signboard_Morning.gif";}
        else if (thehour >=  5) {imgName = "signboard_Sunrise.gif";}
        else if (thehour >=  0) {imgName = "signboard_Twilight.gif";}
        else                    {imgName = "signboard_Noon.gif";}
        document.images["imgSignboard"].src="image/common/signboard/" + imgName;
    } catch(e) {
    }
}

/*
/+ 画像をランダムに表示
/+  備　考：プリロードなし
*/
function RandomImage() {
    var intValue,intImgNo
    var img = new Array();
    img[0]="image/common/one_point_balloon/balloon_28.gif";
    img[1]="image/common/one_point_balloon/balloon_29.gif";
    img[2]="image/common/one_point_balloon/balloon_34.gif";
    img[3]="image/common/one_point_balloon/balloon_35.gif";
    img[4]="image/common/one_point_balloon/balloon_36.gif";
    img[5]="image/common/one_point_balloon/balloon_39.gif";
    img[6]="image/common/one_point_balloon/balloon_41.gif";
    img[7]="image/common/one_point_balloon/balloon_42.gif";
    img[8]="image/common/one_point_balloon/balloon_43.gif";
    img[9]="image/common/one_point_balloon/balloon_44.gif";

    intValue = Math.random() * 10;
    intImgNo = Math.ceil(intValue) - 1;
    if (intImgNo<=0) intImgNo = 0;
    document.images["MemoPostImage"].src = eval("img[" + intImgNo + "]");
}

/*------------------------------------------------------+/
/+ 伏字変換
/+------------------------------------------------------*/
function HideString(target) {
    var strPrcTarget = target;
    var strRepTarget = "";
    var intCnt = 0;
    var getChar = "";
    var intHideFlag = 0;
    
    while (intCnt < target.length) {
        getChar = strPrcTarget.substr(intCnt,1);
        if (getChar == "*") {
            if (intHideFlag == 0) {
                intHideFlag = 1;                // 伏字開始
            } else {
                intHideFlag = 2;                // 伏字終了
            }
        } else {
            if (intHideFlag == 1) {             // 伏字処理中
                strRepTarget += "*";
            } else if (intHideFlag == 2) {      // 伏字終了
                strRepTarget += getChar;
                intHideFlag = 0;                // 伏字フラグ初期化
            } else {                            // 伏字なし
                strRepTarget += getChar;
            }
        }
        intCnt += 1;
    }
    return strRepTarget;
} 

/*------------------------------------------------------+/
/+  入力値チェック
/+      出力メッセージはUnicode escape変換する。
/+      →< http://www.shuwasystem.co.jp/books/gremon/escape.html >
/+------------------------------------------------------*/

/*
    入力チェック
        引　数：str - チェック文字列
        戻り値：エラーの場合、エラーメッセージ
*/
function IsInput(str) {
    var msg = '';
    // 入力して下さい。
    if (str == "") msg = '\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002'
    return msg;
}
/*
/+  入力バイトチェック
/+      引　数：range - バイト範囲（n文字:n、n文字以上:"n-0"、n～m文字:n-m、n文字以下:0-n）
/+      　　　　str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsRange(range, str) {
    if(!range) return '';

    var msg = '';
    var c = (" "+range).split(/\-/);
    var min = parseInt(c[0]) || 0;
    var max = parseInt(c[1]) || 0;
    var value = GetByteCount(str);      // 文字列バイト取得

    if(value != min && /^\d+$/.test(range))
        // 全角n(半角n)文字で入力して下さい。
        msg = '\u5168\u89D2'+min/2+'(\u534A\u89D2'+min+')\u6587\u5B57\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(min == 0 && value > max)
        // 全角m(半角m)文字以内で入力して下さい。
        //msg = '\u5168\u89D2'+max/2+'(\u534A\u89D2'+max+')\u6587\u5B57\u4EE5\u5185\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
        // 長すぎるみたいです。
        msg='\u9577\u3059\u304E\u308B\u307F\u305F\u3044\u3067\u3059\u3002'
    else if(max == 0 && value < min)
        // 全角n(半角n)文字以上入力して下さい。
        msg = '\u5168\u89D2'+min/2+'(\u534A\u89D2'+min+')\u6587\u5B57\u4EE5\u4E0A\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(min > 0 && max > 0 && (value < min || value > max))
        // 全角n(半角n)から全角m(半角m)文字で入力して下さい。
        msg = '\u5168\u89D2'+min/2+'(\u534A\u89D2'+min+')\u304B\u3089'+'\u5168\u89D2'+max/2+'(\u534A\u89D2'+max+')\u6587\u5B57\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';

    return msg;
};
/*
/+ メール形式チェック
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsMail(str) {
    if (str=='') return '';
    var msg = '';
    if(!str.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/))
        // 正しいメールアドレスを入力して下さい。
        msg = '\u6B63\u3057\u3044\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    return msg;
}
/*
/+ 日付形式チェック(YYYY/MM/DD)
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
/+      備　考：1900年～2099年まで
*/
function IsDate(str) {
    if (str=='') return '';
    var msg = '';
    if(!str.match(/^(19|20)[0-9]{2}[/](0?[1-9]|1[0-2])[/](0?[1-9]|[12][0-9]|3[01])$/))
        // 正しい日付を入力して下さい。
        msg = '\u6B63\u3057\u3044\u65E5\u4ED8\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    return msg;
}
/*
/+ 時刻形式チェック(YYYY/MM/DD)
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
/+      備　考：1900年～2099年まで
*/
function IsTime(str) {
    if (str=='') return '';
    var msg = '';
    if(!str.match(/^([01]?[0-9]|2[0-3]):([0-5][0-9])$/))
        // 正しい時刻を入力して下さい。
        msg = '\u6B63\u3057\u3044\u6642\u523B\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    return msg;
}
/*
/+ URL形式チェック(http/https/ftp)
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
/+      備　考：1900年～2099年まで
*/
function IsUrl(str) {
    if (str=='') return '';
    var msg = '';
    if(!str.match(/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/))
        // 正しいURLを入力して下さい。
        msg = '\u6B63\u3057\u3044URL\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    return msg;
}
/*
/+ 同一内容入力チェック
/+      引　数：str - チェック文字列
/+              compar_str - 比較文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsEqual(str,compar_str) {
    if (str=='') return '';
    var msg = '';
    if(str != compar_str)
        // 入力内容が違います。
        msg = '\u5165\u529B\u5185\u5BB9\u304C\u9055\u3044\u307E\u3059\u3002';
    return msg;
}
/*
/+ アルファベット入力チェック
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsAlphabet(str) {
    if (str=='') return '';
    var msg = '';
    if(!str.match(/^[a-zA-Z\-\d]+$/))
        // 半角英数で入力して下さい。
        msg = '\u534A\u89D2\u82F1\u6570\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    return msg;
}
/*
/+ カナ入力チェック
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsKana(str) {
    if (str=='') return '';
    var msg = '';
    for(var i = 0;i < this.value.length;i++) {
        if(this.value.charAt(i) == ' ' || this.value.charAt(i) == '\u3000') continue;
        if(this.value.charAt(i) < '\u30A1' || this.value.charAt(i) > '\u30F6')
            // 全角カタカナで入力して下さい。
            msg = '\u5168\u89D2\u30AB\u30BF\u30AB\u30CA\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    }
    return msg;
}
/*
/+ 数値入力チェック
/+      引　数：range - バイト範囲（n:n、n以上:"n-0"、n～m:n-m、n以下:0-n）
/+      　　　　str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsNumber(range,str) {
    if (str=='') return '';
    if (!range) return '';

    var msg = '';
    var c = (" "+range).split(/\-/);
    var min = parseInt(c[0]) || 0;
    var max = parseInt(c[1]) || 0;
    var value = GetByteCount(str);      // 文字列バイト取得

    if(!this.value.match(/^[\d]+$/))
        // 半角数字で入力して下さい。
        msg = '\u534A\u89D2\u6570\u5B57\u3067\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(value != min && /^\d+$/.test(range))
        // %1と入力して下さい。
        msg = '%1'+'\u3068\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(min == 0 && value > max)
        // %2以下の値を入力して下さい。
        msg = '%2'+'\u4EE5\u4E0B\u306E\u5024\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(max == 0 && value < min)
        // %1以上の値を入力して下さい。
        msg = '%1'+'\u4EE5\u4E0A\u306E\u5024\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';
    else if(min > 0 && max > 0 && (value < min || value > max))
        // %1から%2の値を入力して下さい。
        msg = '%1'+'\u304B\u3089'+'%2'+'\u306E\u5024\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044\u3002';

    return msg.replace(/%1/g, min).replace(/%2/g, max);
}
/*
/+ 入力不可記号チェック
/+      引　数：str - チェック文字列
/+      戻り値：エラーの場合、エラーメッセージ
*/
function IsProtectedChara(str) {
    if (str=='') return '';
    var msg = '';
    if(str.match(/^.*[(\\|;|\*|\"|'|<|>|\|)].*$/))
        // 使用できない文字が含まれています。
        msg = '\u4F7F\u7528\u3067\u304D\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002';
    return msg;
}

/*------------------------------------------------------+/
/+  ポップアップ・ツールチップ関連
/+------------------------------------------------------*/

/*
/+  ポップアップHTML作成
/+      引　数：target  - 対象コントロール
/+      　　　　msg_str - 表示文字列
*/
function CreateBaloon(target,msg_str) {
    // ポップアップ作成
    var box = document.createElement('div');
    box.style.position = 'absolute';
    box.className = 'baloon';
    var top  = getPosition('Top', target) - 25;
    var left = getPosition('Left', target) - 10 + target.offsetWidth;
    box.style.top  = top +'px';
    box.style.left = left+'px';

    var bindClose = function() { CloseBaloon(box); };

    addListener(box, "click", bindClose, false);

    // 閉じるボタン作成
    var link = document.createElement('a');
    link.appendChild(document.createTextNode('X'));
    link.setAttribute('href', 'javascript:void(0);');
    addListener(link, "click", bindClose, false);
    addListener(target, "focus", bindClose, false);

    var msg = document.createElement('span');
    var div = document.createElement('div');
    div.appendChild(msg);
    div.appendChild(link);
    box.appendChild(div);
    document.body.appendChild(box);

    target.box = box;
    target.msg = msg;

    target.msg.innerHTML  = msg_str;
    
    target.box.style.display = '';
    target.box.style.zIndex = ++ target.index;

    if(target.type != 'radio' && target.type != 'checkbox') {
        var colors = new Array('#FF8888', '#FFBBBB', '#FF8888', '#FFBBBB');
        window.setTimeout(function() {
            if(colors.length > 0) {
                target.style.backgroundColor = colors.shift();
                window.setTimeout(arguments.callee, 70);
            }
        }, 10);
    }
}

/*
/+  ポップアップ消去
/+      引　数：obj - 対象ポップアップ
*/
function CloseBaloon(obj) {
    obj.style.display = 'none';
    obj.style.backgroundColor = '';
}

/*
/+ ツールチップ表示
/+  引　数：strId    - ツールチップ表示タグID
/+        ：showFlag - 表示フラグ（表示:visible、非表示：hidden）
/+        ：x        - マウスX座標
/+        ：y        - y-マウスY座標
/+  備　考：使用例）
/+          <A HREF='test.html' onMouseover='chipHelp('help1','visible',event.x,event.y)' 
/+              onMouseout='chipHelp('help1','hidden',0,0)'>ツールチップを表示します。</A>
/+          <DIV STYLE='position:absolute;visibility:hidden;' ID='help1'>ツールチップ</DIV>
*/
function chipHelp(strId,strShowFlag,x,y) {
    var dispStr;
    if (strShowFlag=="visible") dispStr="block"; else dispStr="none"
    
    if (document.layers) {
        document.layers[strId].x = x;
        document.layers[strId].y = y;
        document.layers[strId].visibility = strShowFlag;
        document.layers[strId].display = dispStr;
    } else if (document.all) {
        document.all(strId).style.pixelLeft = x;
        document.all(strId).style.pixelTop = y;
        document.all(strId).style.visibility = strShowFlag;
        document.all(strId).style.display = dispStr;
     } else {
        document.getElementById(strId).style.left = x + "px";
        document.getElementById(strId).style.top = y + "px";
        document.getElementById(strId).style.visibility = strShowFlag;
        document.getElementById(strId).style.display = dispStr;
    }
}
/*
/+  モーダルボックス表示
*/	
function ShowModalBox(targetID) {
    // レイヤーサイズ設定・表示
	var docH = (document.documentElement.scrollHeight < document.body.scrollHeight) ? document.body.scrollHeight : docH = document.documentElement.scrollHeight;
	var docW = (document.documentElement.scrollWidth < document.body.scrollWidth) ? document.body.scrollWidth : document.documentElement.scrollWidth;
    var elmLayer=document.getElementById("ModalLayer");
    elmLayer.style.zIndex = 1000;
    elmLayer.style.height = docH + "px";
    elmLayer.style.width  = docW + "px";
    elmLayer.style.visibility = 'visible';
    elmLayer.style.display = 'block';
    // ボックス表示
    var elemBox=document.getElementById(targetID);
    elemBox.style.zIndex = 1001;
    elemBox.style.visibility = 'visible';
    elemBox.style.display = 'block';
}
/* モーダルボックス非表示 */
function HideModalBox(targetID) {
	var elmBox=document.getElementById(targetID);
    elmBox.style.visibility = 'hidden';
    elmBox.style.display = 'none';
	var elmTarget=document.getElementById("ModalLayer");
    elmTarget.style.visibility = 'hidden';
    elmTarget.style.display = 'none';
}

/*
/+  外部ファイル読込み
/+      requestFile([外部ファイル名],[応答HTML表示エレメントID])
*/
/* XMLHttpRequestオブジェクト生成 */
function createHttpRequest(){
    try {
        if(window.XMLHttpRequest) {
            return new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            return null;
        }
    } catch(e) {
        return null;
    }
}
/* ファイルにアクセスし受信内容を確認 */
function requestFile(fileName, targetId) {
    var imgLoading = 'img/common/loading_flower.gif';
    document.getElementById(targetId).innerHTML = '<img src="' + imgLoading + '" alt="" />';

    var httpObj = createHttpRequest();          // XMLHttpRequestオブジェクト生成
    httpObj.open("GET", fileName , true);       // open メソッド
    httpObj.onreadystatechange = function() {   // 受信時に起動するイベント
        if (httpObj.readyState==4 && httpObj.status == 200 ) { 
            on_loaded( httpObj, targetId);
        }
    }
    httpObj.send('');                           // send メソッド
}
/* コールバック関数 (受信時に実行) */
function on_loaded( oj, targetId) {
    res  = oj.responseText;                     //レスポンスを取得
    var target = document.getElementById(targetId);
    target.innerHTML = res;
}
