var java_banner1= '
'; var java_banner3= '
'; var ROOT_URL = 'https://www.woopz.jp'; /** * Dispatch Base Stored Functions * * @author Shinya Chitose * @copyright Dispatch Base Sole Proprietorship. */ var EXEC_FUNC_ON_CLICK_DATE = ''; // マウスがクリックされた時の座標を定数とする(KeyNavi使用) var MOUSE_X, MOUSE_Y; function kl_onmousedown_ex(e){ MOUSE_X = kl_mousex(e); MOUSE_Y = kl_mousey(e); } /** * 初期フォーカス */ function sjfFirstFocus() { var elements = document.forms[0].elements; for (var i = 0; i < elements.length; i++) { if (! elements[i].disabled && ! elements[i].type.match(/submit|button|file|hidden/g) ) { elements[i].focus(); break; } } } /** * ログアウト */ function sjfLogout() { var logout = ROOT_URL + '/dsa/knob/'; if (confirm('本当にログアウトしますか?')) { if (typeof(parent) == 'object') { parent.location.href= logout; } else { location.href = logout; } } } /** * ローダー * * @param integer 1:ON / 2: OFF */ function sjfLoader(onOff) { if (onOff) { var top = ((kl_elem_y('loading')) ? kl_elem_y('loading') : 80) - ((KL_IE4) ? 30 : 0) + kl_sly(); top = ((! KL_IE4) && top > 80) ? 80 : top; document.getElementById('loading').style.top = top + 'px'; document.getElementById('disabledBody').style.display = 'block'; } else { document.getElementById('disabledBody').style.display = 'none'; // アンカータグにローダー起動を自動追加 var anchors = document.getElementsByTagName('a'); for (var i = 0; i < anchors.length; i++) { // 既にJavaScirptが記述されているもの・TARGET属性があるものは除く if (! anchors[i].href.match(/javascript|mailto/) && ! anchors[i].target && ! anchors[i].title.match(/CSVダウン\n?ロード/) ) { /** * IF文内にCSVダウンロードを省く記述がある理由 * * CSVダウンロードPHPにリンクを貼った時sjfLoaderが起動すると、 * 「読み込み中です...」が消えなくなる。 * * しかしながら、ただのリンクではダウンロード処理の経過が見えないので、 * anchors[i].href = "javascript:openSmallWin4Download('" + anchors[i].href + "');"; * のようなプログラムで小ウィンドウを起動したかったのだが、 * IEに限り、JavaScript で window.open したウィンドウオブジェクトでは * 「Ineternet Explorerでは、servername - filename をダウンロードできません。」 * となり、ダウンロードできなくなる。 * * これはIEのバグだが、現在解決策が見当たらない。 * * ちなみに * var newWin = window.open('dummyUrl'); // 空ウィンドウを開く * newWin.location.href = downloadUrl; // ダウンロードURLへリダイレクト * で誤魔化せるかと思ったが、ダメだった。 * * なので、CSVダウンロードの場合は何もせずPHPでリダイレクトさせることにした。 */ anchors[i].onclick = function v() { sjfLoader(1) }; } } // ツールチップJavaScript初期化 enableTooltips(); } } /** * メニュー説明文 * * @param string 説明文 */ function sjfMenuDescript(str) { var win = (window.name == 'menu') ? window : parent.menu.window; var target = win.document.getElementById('help'); // innerText は NN などが対応していないので、innerHTML を使う if (typeof(target) == 'object') { target.innerHTML = str; } } /** * ブロック表示・非表示 * * @param string OnOffターゲットオブジェクトID * @param object 呼び出し元オブジェクト */ function sjfBlockOnOff(target, caller) { var target = document.getElementById(target); if (typeof(target) == 'object') { if (caller.src.indexOf('Up', 0) !== -1) { target.style.display = 'none'; caller.src = caller.src.replace("Up", 'Down'); caller.title = 'グループを開く'; } else { target.style.display = 'block'; caller.src = caller.src.replace("Down", 'Up'); caller.title = 'グループを閉じる'; } } } /** * ロールオーバー * * @param object 呼び出し元オブジェクト */ function sjfRollOver(obj) { if (obj.src.indexOf('Up', 0) !== -1) { obj.src = obj.src.replace('Up', 'Down'); } else { obj.src = obj.src.replace('Down', 'Up'); } } /** * 全チェックボックスをON/OFFする * * @param string 対象フォーム名 * @param object 呼び出し元オブジェクト */ function sjfCheckboxAllSelect(formName, caller) { var targets = document.getElementsByTagName('input'); for (var i = 0; i < targets.length; i++) { if (targets[i].name == formName) { targets[i].checked = caller.checked; // 選択セル色を元に戻すなどの関数がある場合 if (targets[i].onclick) { targets[i].onclick(); } } } } /** * 並び替えテーブルで選択された行の色を変更する * * @param object 呼び出し元オブジェクト * @param string 対象TRのID * @param string 通常のCSSクラス */ function sjfSortTblTrColorChange(obj, targetId, realClassName) { if (obj.checked) { document.getElementById(targetId).className = 'Selected'; } else { document.getElementById(targetId).className = realClassName; } } /** * データの enabled を設定する * * @param string 更新対象のカラム * @param integer 更新値 * @param integer 対象プライマリキー * @param integer リバースフラグ */ function sjfEnabledStatus(columnName, newValue, id, rev) { var msg; switch (columnName) { case 'enabled': msg = (newValue) ? '有効' : '無効'; break; case 'test_account': msg = (newValue) ? 'テストアカウント' : 'リアルアカウント'; break; default: // msg = (rev) ? ((newValue) ? 'OFF' : 'ON') : ((newValue) ? 'ON' : 'OFF'); msg = (newValue) ? 'ON' : 'OFF'; } if (confirm('本当に' + msg + 'にしても宜しいですか?')) { var form = document.sortTblDataDeleteForm; form.execType.value = 'enabledStatus'; form.columnName.value = columnName; form.newValue.value = newValue; form.id.value = id; form.submit(); sjfLoader(1); } } /** * 並び替えテーブルからデータを削除する */ function sjfSortTblDelete() { var elements = document.getElementsByTagName('input'); var newValue = ''; for (var i = 0; i < elements.length; i++) { if (elements[i].name == 'delete[]' && elements[i].checked) { newValue += elements[i].value + ','; } } if (newValue) { if (confirm("「削除」すると復元はできません。\n" + "本当に選択対象を削除して宜しいですか?" )) { var form = document.sortTblDataDeleteForm; form.execType.value = 'deleteDatas'; form.newValue.value = newValue; form.submit(); sjfLoader(1); } else { var caller = document.getElementById('deleteCheckboxControl'); caller.checked = false; sjfCheckboxAllSelect('delete[]', caller); } } else { alert('削除対象が選択されていません。'); } } /** * メニュー説明文 onblur一括設定 * * -- 説明 -- * * multipart/form-data では、forms[0].elements[0] のプロパティが * language しか無い為、getElementsByTagName でアクセスしなければならない。 * * @param string 説明文 */ function sjfInitFormOnblur(str) { sjfMenuDescript(str); var elements, i, focusTarget; elements = document.getElementsByTagName('input'); for (i = 0; i < elements.length; i++) { if (elements[i].type == 'file') { continue; } if (elements[i].type == 'text' && ! focusTarget) { focusTarget = elements[i]; } elements[i].onblur = function () { sjfMenuDescript(str); }; } elements = document.getElementsByTagName('select'); for (i = 0; i < elements.length; i++) { elements[i].onblur = function () { sjfMenuDescript(str); }; } sjfLoader(0); if (typeof(focusTarget) == 'object') { focusTarget.focus(); } } /** * 画像フォームと、プレビューウィンドウを初期化 * * @param string オリジナル画像イメージ * @param integer 画像ID */ function sjfImgInitFormAndPrevWin(defaultImg, imgNo) { // 画像フォームを初期化 var obj = document.getElementById('img' + imgNo + '_form'); var src = obj.innerHTML; // Windows IE if (KL_IE4W) { src = src.replace(/value=.* name=/, 'name='); } else { src = src.replace(/value=.* class=/, 'class='); } obj.innerHTML = src; // プレビューウィンドウを初期化 obj = document.getElementById('img' + imgNo + '_preview'); obj.innerHTML = ''; } /** * 画像削除確認アラート * * @param string オリジナル画像イメージ * @param object 呼び出し元オブジェクト */ function sjfImgDelAlert(defaultImg, caller) { if (caller.checked) { if (confirm("画像" + caller.value + "を削除が選択されました。\n" + "保存処理時に、WEBサーバから完全に削除されます。\n" + "この操作を行うと、画像の復元はできません。\n\n" + "削除しても宜しいですか?" )) { // プレビューウィンドウ+画像選択初期化 sjfImgInitFormAndPrevWin(defaultImg, caller.value); } else { caller.checked = false; } } } /** * リアルタイム画像プレビュー * * @param string オリジナル画像イメージ * @param object 呼び出し元オブジェクト * @param integer 許可拡張子タイプ(1:jpeg/gif 2:jpeg/gif/swf) */ function sjfImgPreview(defaultImg, caller, allowExtensionType) { if (! caller.value) { return false; } if (typeof(allowExtensionType) == 'undefined') { var allowExtensionType = 1; } var imgNo = caller.name.replace('img', ''); var errMsg = ''; switch(allowExtensionType) { case 1: if (! caller.value.match(/\.(jpg|jpeg|gif)/i)) { errMsg = "画像" + imgNo + "は\nJPEG・GIF形式の画像しか選択できません。"; } break; case 2: if (! caller.value.match(/\.(jpg|jpeg|gif|swf)/i)) { errMsg = "画像" + imgNo + "は\nJPEG・GIF・SWF形式の画像しか選択できません。"; } break; } if (errMsg) { // プレビューウィンドウ+画像選択初期化 sjfImgInitFormAndPrevWin(defaultImg, imgNo); alert(errMsg); } else { if (caller.value.match(/\.swf/)) { alert("FLASHはアップロードできますが、リアルタイムプレビューはできません。"); } else { var fileName = caller.value; // バックスラッシュをスラッシュに変換 while (fileName.indexOf('\\') != -1) { fileName = fileName.replace('\\','/'); } // MacIEの場合のみ file:/ としないとクラッシュする fileName = (KL_IE4M) ? 'file:/' + fileName : 'file://' + fileName; // プレビューウィンドウを初期化 var obj = document.getElementById('img' + imgNo + '_preview'); obj.innerHTML = ''; document.getElementById('imgdel' + imgNo).checked = false; } } } /** * フリーテーブル追加関数 * * @param string 処理タイプ */ function sjfAddRowCol(type) { form.add.value = type; form.submit(); } /** * カレンダーバグ退避関数 * * -- 説明 -- * * 元々配布されているものだと、NN/Safari で動作がおかしい。 * レイアウト版とサブウィンドウ版を組み合わせることで対応させる。 * * @param object 値挿入ターゲット */ function sjfCalendar(obj) { wrtWinCalendar(obj); /* // WinIE、MacIEの場合 if (KL_IE4) { // レイアウト版を使用 wrtCalendarLay(obj, event); // NN / Safari の場合 } else { // サブウィンドウ版を使用 wrtWinCalendar(obj); } */ } /** * 現在の時刻取得 * * @param string (date|datetime|time) * @return string yyyy/mm/dd | yyyy/mm/dd H:i:s | H:i:s */ function sjfNow(type) { var date = new Date(); var y = date.getYear(); var m = date.getMonth() + 1; var d = date.getDate(); var H = date.getHours(); var i = date.getMinutes(); var s = date.getSeconds(); y = (y < 2000) ? y + 1900 : y; m = m < 10 ? '0' + m : m; d = d < 10 ? '0' + d : d; H = H < 10 ? '0' + H : H; i = i < 10 ? '0' + i : i; s = s < 10 ? '0' + s : s; var ret; switch (type) { case 'datetime': ret = y + '/' + m + '/' + d + ' ' + H + ':' + i + ':' + s; break; case 'time': ret = H + ':' + i + ':' + s; break; case 'timestamp': ret = y + m + d + H + i + s; break; default: ret = y + '/' + m + '/' + d; } return ret; } /** * メーラー起動 * * @param string HTMLメーラーのURL */ function sjfOpenMailer(url) { var width = 480; var height = 530; var status = 'width=' + width + ', height=' + height; var cw = (screen.width / 2) - (width / 2); var ch = (screen.height / 2) - (height / 2); if (navigator.userAgent.indexOf('MSIE') != -1) { status += ', left=' + cw + ', top=' + ch; } else if (navigator.userAgent.indexOf('Mozilla') != -1) { status += ', screenX=' + cw + ', screenY=' + ch; } var winName = 'dsaMailer' + sjfNow('timestamp'); var newWin = window.open(url, winName, status); newWin.focus(); // 後でメインウィンドウからコントロールする可能性がある為、オブジェクトを返す return newWin; } /** * FLASHタグを置換 * * -- 説明 -- * * 2006年4月からのWinIEパッチにより、普通にHTMLにFLASHを書き出すと、 * 一旦FLASHオブジェクトをクリックしてからアクションを * アクティブ化しないといけなくなった。 * * また、MacIE以外ではFLASHのオブジェクトの上にレイヤを配置することができない * (FLASHをアンカータグで囲んでも無効になる)ので、 * まずは タグで出力し、この関数でタグ置換を行う。 * * -- 使い方 -- * * * [中略] * * * だけで動作する。 */ function sjfReplaceFlashTag() { var html, aryFlashInfo, newHtml; // タグの情報を全て取得 var elements = document.getElementsByTagName('u'); for (var i = 0; i < elements.length; i++) { html = elements[i].innerHTML; // タグの中が 「FlashObject」 で始まっている場合 if (html.match(/^FlashObject/)) { aryFlashInfo = html.split('::'); // 下線を削除 elements[i].style.textDecoration = 'none'; // FLASHタグ生成 newHtml = '' + '' + '' // 透明化することでDIVを全面に押し出すことができる + '' + '' + ''; // リンク指定がある場合 if (aryFlashInfo[4]) { // MacIE の場合はアンカータグで囲むだけでOK if (aryFlashInfo[6] == 1) { newHtml = '' + newHtml + ''; // IE, NN 系はトリックが必要 } else { newHtml = '
' + '
' + newHtml + '
' + '' + '
'; } } // タグの中身を置換して終了 elements[i].innerHTML = newHtml; elements[i].style.display = 'block'; } } } /** * クロスブラウザ対応の window.onload などを上書きせずに追加する関数 * * @param object オブジェクト * @param string 処理タイプ * @param object ファンクションオブジェクト */ function sjfAddEvent(obj, type, func){ if (obj.attachEvent) { obj.attachEvent(type, func); } else if(obj.addEventListener) { obj.addEventListener(type.replace(/^on/, ''), func, true); } else { obj[type] = func; } } /** * PHP風in_array * * @param string 検索文字列 * @param array 検索対象配列 * @param boolean 成否 */ function in_array(str, arr) { for (var i = 0; i < arr.length; i++) { if (str == arr[i]) { return true; } } return false; } /** * セレクトメニューからジャンプ * * @param string 基盤URL * @param object セレクトフォーム (this) */ function sjfSelectJump(obj, url) { url = (url == undefined) ? ((window.location.href.indexOf('?', 0) > 0) ? window.location.href : window.location.href + '?') : url; url = url + '&' + obj.name + '=' + urlencode(obj.options[obj.selectedIndex].value); location.href = url; } /** * スワップイメージ * * @param object オブジェクト * @param string 画像名 */ function sjfSwapImg(obj, value) { obj.src = value; } /** * オブジェクトデバッグ * * @param object デバッグオブジェクト */ function sjfVarInfo(obj) { for (var i in obj){ document.write(i +"="+obj[i] + "
"); } } window.onload = function () { _anchorTargetRewrite(); sjfReplaceFlashTag(); _dispSiteBanner(); } function _dispSiteBanner() { if (document.getElementById('ban1') && typeof(java_banner1) != 'undefined') { document.getElementById('ban1').innerHTML = java_banner1; } if (document.getElementById('ban2') && typeof(java_banner2) != 'undefined') { document.getElementById('ban2').innerHTML = java_banner2; } if (document.getElementById('ban3') && typeof(java_banner3) != 'undefined') { document.getElementById('ban3').innerHTML = java_banner3; } if (document.getElementById('ban4') && typeof(java_banner4) != 'undefined') { document.getElementById('ban4').innerHTML = java_banner4; } if (document.getElementById('ban5') && typeof(java_banner5) != 'undefined') { document.getElementById('ban5').innerHTML = java_banner5; } } /** * アンカーのrel属性でページの表示方法を変更する * * @param object ドキュメントオブジェクト * @param string 関数呼び出しのプレフィックス(opener or parent) */ function _anchorTargetRewrite(obj, funcPrefix) { if (! funcPrefix) { var funcPrefix = ''; } // フレームから呼び出した場合 if (obj) { funcPrefix = (funcPrefix == 'document') ? '' : 'parent.'; } else { obj = document; } obj = (obj) ? obj : document; var anchors = obj.getElementsByTagName('a'); var i, anchor; for (i = 0; i < anchors.length; i++) { anchor = anchors[i]; /** * yyy... が * xxxxx となるバグがあるので、 * blank の場合はシングルクォートのサニタイズをしない。 */ if (anchor.rel != 'blank') { anchor.href = anchor.href.replace("'", '’'); } if (anchor.rel == 'blank') { anchor.target = '_blank'; } else if (anchor.rel == 'parent') { anchor.target = '_parent'; } else if (anchor.rel == 'gravure') { anchor.href = 'javascript:' + funcPrefix + 'openGravure(\'' + anchor.href + '\');'; } else if (anchor.rel == 'girl') { anchor.href = 'javascript:' + funcPrefix + 'openDetailGirl(\'' + anchor.href + '\');'; } else if (anchor.rel == 'gmap') { anchor.href = 'javascript:' + funcPrefix + 'openGoogleMaps(\'' + anchor.href + '\');'; } else if (anchor.rel == 'coupon') { anchor.href = 'javascript:' + funcPrefix + 'openCoupon(\'' + anchor.href + '\');'; } } } function openGravure(url) { var win = window.open( url, 'winGnGravure', 'scrollbars=no,width=1050,height=780,resizable=no' ); win.focus(); } function openDetailGirl(url) { var win = window.open( url, 'winGnGirlDetail', 'scrollbars=yes,width=920,height=600,resizable=no' ); win.focus(); } function openGoogleMaps(url) { var win = window.open( url, 'winGnGoogleMaps', 'scrollbars=no,width=500,height=400,resizable=no' ); win.focus(); } function openCoupon(url) { var win = window.open( url, 'winGnCoupon', 'scrollbars=no,width=650,height=450,resizable=no' ); win.focus(); } /** * エリアメニューのオープンクローズ * * @param string 開く
タグのID */ function openChildArea(openDdId) { var aryDD = document.getElementsByTagName('dd'); var i; for (i = 0; i < aryDD.length; i++) { if (aryDD[i].id.indexOf('arm') !== -1) { aryDD[i].style.display = 'none'; } } document.getElementById('arm' + openDdId).style.display = 'block'; }