/**
* 共通js関数
*/
// システム全体の初期化処理
$(document).ready(function(){
// inputのtype='text'でEnterを効かなくする
$("input[type='text']").keydown(function(e) {
if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {
return false;
} else {
return true;
}
});
// Input[readonly] でBackSpaceを効かなくする(ページバックを防ぐ)
$('input').filter("[readonly]").keydown(function(e) {
if ((e.which && e.which === 8) || (e.keyCode && e.keyCode === 8)) {
return false;
} else {
return true;
}
});
// 後から設定された[readonly] でBackSpaceを効かなくする(ページバックを防ぐ)
$('input, textarea').on("keydown", function(e) {
var readonly = $(this).attr("readonly");
if (readonly != "readonly") {
return true;
}
if ((e.which && e.which === 8) || (e.keyCode && e.keyCode === 8)) {
return false;
} else {
return true;
}
});
});
/**
* blickUI
*/
var blockUI = {};
blockUI.intervalId = null;
/**
* UIブロック:通常
*/
blockUI.block = function(msg){
if (msg === undefined){
msg = 'お待ちください...';
}
// 画面ロック
$.blockUI({message:' ' + msg});
}
/**
* ダウンロード用画面ブロック
* ※サーバ側で、ダウンロード完了時にcookie COOKIE_DOWNLOADED を設定すること
*/
blockUI.blockDownloaded = function(interval){
if (interval === undefined || !$.isNumeric(interval) || interval < 1000){
interval = 1000;
}
// 画面ロック
blockUI.block();
// ダウンロード完了フラグ削除
$.removeCookie(COOKIE_DOWNLOADED, {path:'/'});
// ダウンロード開始時画面ロック解除タイマー
blockUI.intervalId = setInterval('blockUI.unblockDownloaded()', interval);
}
/**
* ダウンロード完了時に画面ブロックを解除
*/
blockUI.unblockDownloaded = function(){
// ダウンロード完了フラグ有り?
if ($.cookie(COOKIE_DOWNLOADED)){
// interval停止
clearInterval(blockUI.intervalId);
blockUI.intervalId = null;
// ダウンロード完了フラグ削除
$.removeCookie(COOKIE_DOWNLOADED, {path:'/'});
// 画面アンロック
$.unblockUI();
}
}
var commonLogic = {};
/**
* ログアウト
*/
commonLogic.logout = function(){
// 画面ロック
blockUI.block();
// ログアウト
location.href = rootAddress + "/member/logout/";
}
/**
* 管理者ログアウト
*/
commonLogic.adminLogout = function(){
// 画面ロック
blockUI.block();
// ログアウト
location.href = rootAddress + "/PSNakaiCrystalPrintAdmin/logout/";
}
/**
* ファイル要素クリア(ファイル要素を囲んでいるspanのIDを指定すること)
*/
commonLogic.fileCrear = function(id){
//var fileDiv = document.getElementById(id); //$('#' + id);
//var temp = fileDiv.innerHTML;
//fileDiv.innerHTML = temp;
$('#' + id).children('input [type=file]').replaceWith('input [type=file]').clone(true);
}
/**
* 指定TableDivID下のtbody要素の高さを設定する
*/
commonLogic.tableHeightResize = function(id, baseHeight){
var targetDiv = $('#' + id);
var targetTable = $('#' + id + ' tbody');
var windowHeight = $(window).height();
targetTable.height(windowHeight - baseHeight);
// 行が存在する場合のみdisplay-noneを解除する
var tr = targetTable.children('tr');
if (tr.length){
targetDiv.removeClass('display-none');
}
}
/**
* 指定TableDivID下のtbody指定行(rowNum)にスクロールする
* ※rowNum指定無し時は最下行
*/
commonLogic.tableScroll = function(id, rowNum){
var targetDiv = $('#' + id);
var targetTable = $('#' + id + ' tbody');
// 指定行無し時は最下行
if (rowNum === undefined){
rowNum = targetTable.children().length;
}
// 指定行が1より大きい場合のみスクロールする
if (rowNum > 1){
var baseRowPosition = targetTable.find('tr:eq(0)').position();
var targetRowPosition = targetTable.find('tr:eq(' + (rowNum - 1) + ')').position();
//targetTable.animate({scrollTop : targetRowPosition.top - baseRowPosition.top});
targetTable.scrollTop(targetRowPosition.top - baseRowPosition.top);
}
}
/**
* datepucker設定
*/
commonLogic.datepicker = function(){
var addClearButton = function(input) {
setTimeout(function() {
var buttonPanel = $(input).datepicker('widget').find('.ui-datepicker-buttonpane');
var btn = $('');
btn.unbind('click').bind('click', function() {
$.datepicker._clearDate(input);
});
btn.appendTo(buttonPanel);
}, 1);
};
$(".datepicker").datepicker( {
showOn : "focus",
dateFormat : 'yy-mm-dd',
changeYear : true,
changeMonth : true,
yearRange : 'c-5:c+5',
showButtonPanel : true,
beforeShow : function(input, inst){
$('#ui-datepicker-div').css( 'font-size', '12px' );
addClearButton(input);
},
onChangeMonthYear : function(){
addClearButton(this);
}
});
}
/**
* 数値から、3桁毎にカンマ区切りの文字列を取得
*/
commonLogic.addFigure = function(num) {
var str = new String(num).replace(/,/g, "");
while(str != (str = str.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
return str;
}
/**
* Shift-JISでsubmit
*/
commonLogic.shiftJisSubmit = function(objForm){
var orgChar = document.charset;
document.charset = "shift_jis";
objForm.submit();
document.charset = orgChar;
}