//========================================================================= // INCOM-WEB JavaScript //========================================================================= var tempImg = null; var imageFolder = "/kisekae/image/"; var changeImageArray = new Array(6); changeImageArray[0] = new Image(90, 71); changeImageArray[0].src = imageFolder + "search_t_roll.gif"; changeImageArray[1] = new Image(90, 71); changeImageArray[1].src = imageFolder + "simulation_t_roll.gif"; changeImageArray[2] = new Image(90, 71); changeImageArray[2].src = imageFolder + "estimate_t_roll.gif"; changeImageArray[3] = new Image(90, 71); changeImageArray[3].src = imageFolder + "download_t_roll.gif"; changeImageArray[4] = new Image(90, 71); changeImageArray[4].src = imageFolder + "howto_t_roll.gif"; changeImageArray[5] = new Image(90, 36); changeImageArray[5].src = imageFolder + "sincol_t_roll.gif"; //-------------------------------------------------------------- // 関数名 :createRandomString // 機能 :現在日付を文字列にしランダムな文字列を作成する // 引数 :なし // 戻り値 :文字列 // 備考 :キャッシュ対策。 URLの後ろに付加する。 // 注意事項 : //-------------------------------------------------------------- function createRandomString() { return Date.parse(Date()); } function alertRetry() { alert("ページがすべて表示されてから、やり直してください"); } //-------------------------------------------------------------- // 関数名 :forwardPage // 機能 :ページを呼ぶ(キャッシュ対策文字列を付加して) // 引数 :なし // 戻り値 :なし // 備考 : // 注意事項 : //-------------------------------------------------------------- function forwardPage(page) { page += (page.indexOf("?") == -1) ? "?" : "&"; page += createRandomString(); location.href = page; } //-------------------------------------------------------------- // 関数名 :changeClass // 機能 :指定したオブジェクトのCLASSを変更する // 引数 :obj オブジェクト className クラス名 // 戻り値 :なし // 備考 : // 注意事項 : //-------------------------------------------------------------- function changeClass(obj, className) { obj.className = className; } //-------------------------------------------------------------- // 関数名 :changeMenuTab // 機能 :各画面の左部 の メニューへ遷移するタブのスタイル変更用 // 引数 :obj TAB自身(TABLEのTD) className クラス名(各機能に割り当てられたスタイル) // 戻り値 :なし // 備考 : // 注意事項 : //-------------------------------------------------------------- function changeMenuTab(obj, tabNo, flag) { if(flag) { tempImg = new Image(90, 71); tempImg.src = obj.src; obj.src = changeImageArray[tabNo - 1].src; } else { obj.src = (tempImg != null) ? tempImg.src : changeImageArray[tabNo - 1].src.replace("_roll", "_off"); tempImg = null; } } var tempContImg = null; var tempSrc = null; //-------------------------------------------------------------- // 関数名 :changeImage // 機能 :各画面の操作画像をロールオーバーする // 引数 :obj 変更前画像,newObj 変更後画像 // 戻り値 :なし // 備考 : // 注意事項 : //-------------------------------------------------------------- function changeImage(obj, newObj, flag) { if(flag) { tempContImg = new Image(obj.width, obj.height); tempContImg.src = obj.src; tempSrc = newObj.src; obj.src = newObj.src; } else { if(tempContImg != null && obj.src == tempSrc) { obj.src = tempContImg.src; tempContImg = null; } } } //-------------------------------------------------------------- // 関数名 :openShowModalDialog // 機能 :モーダルダイアログを開きます。 // 引数 :src 開きたいページ win - windowオブジェクト, width - ダイアログ幅 height - ダイアログ高さ // 戻り値 :daialog // 備考 : // 注意事項 : //-------------------------------------------------------------- function openShowModalDialog(src, win, obj, width, height) { var w = window; if(win != null) { w = win; } var jspPath = encodeRedirectURL(getJSPRoot() + "/Frame.jsp") + "?src=" + encodeURL(src) + "&"; jspPath += createRandomString(); var style = "resizable:yes; status:no;"; style += "dialogheight:" + height + "px; dialogwidth:" + width + "px;" return w.showModalDialog(jspPath, obj, style); } //-------------------------------------------------------------- // 関数名 :getJSPRoot() // 機能 :現在URLからJSPのルートを返す(コンテキストパス) // 引数 : // 戻り値 :文字列 // 備考 : // 注意事項 :現在URLがincom-web内のサイトでない場合は正しい文字列を返しません //-------------------------------------------------------------- function getJSPRoot() { return "/kisekae"; } var win; //-------------------------------------------------------------- // 関数名 :openDetail // 機能 :生地詳細画面を開く // 引数 :colorNo:色番,makerId:メーカーID // 戻り値 :なし // 備考 : // 注意事項 : //-------------------------------------------------------------- function openDetail(colorNo, makerId) { openDetail(colorNo, makerId, window); } function openDetail(colorNo, makerId, win1) { if(win != null && !win.closed) { win.focus(); } win1 = (win1 != null) ? win1 : window; win = win1.open("/kisekae/servlet/jp.co.sara.incom.servlet.ClothDetailServlet?color_no=" + colorNo + '&maker_id=' + makerId , 'ClothDetail', 'toolbar=no,menubar=no,status=no,resizable=yes,width=765px,height=600px'); } //-------------------------------------------------------------- // 関数名 :encodeURL // 機能 :文字列をURL用にエンコードする // 引数 : // 戻り値 :エンコード済み文字列 // 備考 : // 注意事項 : //-------------------------------------------------------------- function encodeURL(str) { var i, s, u; var encodeStr = ""; // エンコード文字列格納用 for (i = 0; i < str.length; i++) { // scan the source s = str.charAt(i); u = str.charCodeAt(i); // 文字コード取得 // スペース(ブランク)を "+" に変換 if (s == " ") { encodeStr += "+"; } else { // エスケープが必要かどうか判断する if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))) { encodeStr = encodeStr + s; // エスケープは必要なし } else { // エスケープ if ((u >= 0x0) && (u <= 0x7f)) { // single byte format s = "0"+u.toString(16); encodeStr += "%"+ s.substr(s.length-2); } else if (u > 0x1fffff) { // quaternary byte format (extended) encodeStr += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16); encodeStr += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16); encodeStr += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16); encodeStr += "%" + (0x80 + (u & 0x3f)).toString(16); } else if (u > 0x7ff) { // triple byte format encodeStr += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16); encodeStr += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16); encodeStr += "%" + (0x80 + (u & 0x3f)).toString(16); } else { // double byte format encodeStr += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16); encodeStr += "%" + (0x80 + (u & 0x3f)).toString(16); } } } } return encodeStr; } function encodeRedirectURL(page) { return page; } //数値チェック function isNumeric(obj, message) { var value = obj.value; var val = value; if(value.indexOf(',') != -1) { val = ""; var token = value.split(','); val += token[0]; if(token[0].length == 0 || token[0].length > 3 || token[0].indexOf('0') == 0) { alert(message + + 'には整数値を入力してください'); return false; } for(i = 1; i < token.length;i++) { val += token[i]; if(token[i].length != 3) { alert(message + 'には整数値を入力してください'); return false; } } } if(isNaN(val) || value.indexOf('.') != -1) { alert(message + 'には整数値を入力してください'); return false; } if(value - 0 < 0) { alert(message + 'には0以上を入力してください'); return false; } obj.value = val; return true; } function isNumCheck(obj, message, min, max) { var value = obj.value; var val = value; if(value.indexOf(',') != -1) { val = ""; var token = value.split(','); val += token[0]; if(token[0].length == 0 || token[0].length > 3 || token[0].indexOf('0') == 0) { alert(message + + 'には整数値を入力してください'); return false; } for(i = 1; i < token.length;i++) { val += token[i]; if(token[i].length != 3) { alert(message + 'には整数値を入力してください'); return false; } } } if(isNaN(val) || value.indexOf('.') != -1) { alert(message + 'には整数値を入力してください'); return false; } if(value - 0 < min) { alert(message + 'には' + min + '以上を入力してください'); return false; } if(value - 0 > max) { alert(message + 'には' + max + '以下を入力してください'); return false; } obj.value = val; return true; } function byteCheck(obj, max, itemName) { var i, work2; var count = 0; var work1 = obj.value; for(i = 0; i < work1.length; i++) { work2 = work1.charAt(i); count += (work2 >= " " && work2 <= "?") ? 2 : 1; } if(count > max) { alert(itemName + "は 全角" + (max / 2) + "文字、" + "半角" + max + "文字以内 にしてください"); obj.focus(); obj.select(); return false; } return true; }