/*
* Created on 2006/06/23
*
* This file is basic javascript library.
*
* - this code for Dreamweaver
*/
/*
################################################################################################
- Basic libaray section
################################################################################################
*/
var ns4 = ( document.layers ) ? true : false;
var ie4 = ( document.all ) ? true : false;
function really(message) {
if ( confirm(message) ) {
return true;
}
else {
return false;
}
}
// Added 2004/05 by BlueSky
/*
Usage: toHankakuNum('123'); // 123
Return: 半角String
*/
function toHankakuNum(motoText)
{
han = "0123456789.,-+*= ";
zen = "0123456789.,-+*= ";
str = "";
for (i=0; i= 0) c = han.charAt(n);
str += c;
}
return str;
}
// Added 2004/08/03
// SUPPORT URL : http://melrose.jugem.cc/?eid=187
/*
Usage: checkFullStringOnly('あいうえお', '」');
Return: true / false
*/
function checkFullStringOnly(object, option){
var str = object.value;
var bace_len = "ア".length;
var str_length = str.length;
if (bace_len == 1) {
str_length = str_length * 2;
}
var code, count;
for (var i = 0; i < str_length; i++) {
count = 0;
code = str.charCodeAt(i);
if ((0 <= code && code <= 255) || (65382 <= code && code <= 65439)) {
count++;
}
/* オプション文字 */
if (!option == "" && option.indexOf(String.fromCharCode(code)) < 0) {
count++;
}
if (option == "" && count == 1) {
return false;
}
if (!option == "" && count == 2) {
return false;
}
}
return true;
}
// Added 2006/07/14 by Kim sora.
/*
全角カタコード : 30A0~30FF
Usage: f_valid_zenkaku("アイウ");
Return: integer
*/
function validZenkaku(a_str){
var code_start = parseInt("30A0",16); // 16真数を10真数に設定する
var code_end = parseInt("30FF",16);
var j = a_str.length;
var h = 0;
for (var i = 0; i < j; i++) {
if ( a_str.charCodeAt(i) < code_start || a_str.charCodeAt(i) > code_end ) {
h++;
}
}
return h;
}
// Added 2006/07/12 by Kim sora.
/*
変数に文字例があるかを調べる
Usage: emptyCheck('test'); // true
Return: true / false
*/
function emptyCheck(a_data) {
for (var i = 0; i < a_data.length; i++ ) {
if (a_data.substring(i, i + 1) != " ") {
return false;
}
}
return true;
}
// Added 2006/08/09 by Kim sora.
/*
@str2で@str1を調べる
Usage: stringMatch('rss', 'rssmga');
Return: true / false
*/
function stringMatch(str1, str2) {
if ( str2.indexOf(str1) == -1 ) {
return false;
}
else {
return true;
}
}
// Added 2006/07/12 by Kim sora.
/*
文字例が数字のみなのか調べる
Usage: integerNumberCheck('1234'); // true
Return: true / false
*/
function integerNumberCheck(a_num) {
numstr = "0123456789";
for ( var i = 0; i < a_num.length; i++ ) {
if ( numstr.indexOf(a_num.charAt(i)) == -1 ) {
return false;
}
}
return true;
}
// Added 2006/07/19 by Kim sora.
/*
URLの正しい入力形式チェック
Usage: f_valid_url('asdf.ccc');
Return: true / false
*/
function validURL(a_str)
{
var a_check1 = /^http\:\/\/+[\w\~\-\.]+(\.[\w\-\/]+)$/;
if ( a_str.length != "" ) {
if ( a_check1.test(a_str) ) {
return true;
}
}
return false;
}
// Added 2006/07/12 by Kim sora.
/*
Eメールの正しい入力形式チェック
Usage: validEmail('aaaa@bbb.ccc');
Return: true / false
*/
function validEmail(a_str)
{
var a_check1 = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
if ( a_str.length != "" ) {
if ( a_check1.test(a_str) ) {
return true;
}
}
return false;
}
// Added 2006/07/12 by Kim sora.
/*
Unicodeの文字例でも1バイトのlengthをreturn
つまり、Byte Length return
Usage: lenByte('あいう'); // 6
Return: integer
*/
function lenByte(a_str) {
var j = a_str.length;
var l = j;
for (var i = 0; i < l; i++) {
if (a_str.charCodeAt(i) > 255) j++;
}
return j;
}
// Added 2006/08/03 by Kim sora.
/*
event客体調べる
Usage: keyCodeGet(event);
Return: integer
*/
function keyCodeGet(e) {
if (window.event) {
e = window.event
}
var lkeycode = e.keyCode;
return lkeycode;
}
// Added 2006/08/03 by Kim sora.
/*
event客体調べる
Usage: charCodeGet(event);
Return: integer
*/
function charCodeGet(e) {
if (window.event) {
e = window.event
var lkeycode = e.keyCode;
}
else {
var lkeycode = e.charCode;
}
return lkeycode;
}
// Added 2006/08/03 by Kim sora.
/*
数字しか入力出来ない
HTML Usage: onkeypress="onlyNumber(event);"
Usage: onlyNumber(event);
*/
function onlyNumber(e) {
var var_keycode = charCodeGet(e);
if( !(48 <= var_keycode && var_keycode <=57) && var_keycode != 0 && var_keycode != 39 && var_keycode != 8 && var_keycode != 9 && var_keycode != 46) {
if (window.event){
window.event.keyCode = 0;
}else{
e.preventDefault();
}
}
}
// Added 2006/08/10 by Kim sora.
/*
入力出来ない
HTML Usage: onkeydown="writeInterdiction(event);"
Usage: writeInterdiction(event);
*/
function writeInterdiction(e) {
var var_keycode = keyCodeGet(e);
// BackSpace Key(8), Delete Key(46), Tab Key(9)
if (var_keycode != 8 && var_keycode != 9 && var_keycode != 46) {
if (window.event){
window.event.keyCode = 0;
}else{
e.preventDefault();
}
}
}
// Added 2006/07/27 by Kim sora.
/*
ブラウザー別オブジェクトにアクセス
Usage: formAccess("object_name");
return: object
*/
function objectAccess(obj_nm) {
var return_obj;
if ( ns4 ) {
return_obj = eval( "document." + obj_nm + ".document" );
}
else if ( ie4 ) {
return_obj = document.all[obj_nm];
}
else {
return_obj = document.getElementById(obj_nm);
}
return return_obj;
}
/*
################################################################################################
- Common function section
################################################################################################
*/
function valueContrast(value1, value2) {
var return_int;
if (value1 == "" || value2 == "") {
return_int = 0;
}
else {
// be all one
if (value1 == value2) {
return_int = 1;
}
else {
return_int = 2;
}
}
return return_int;
}
// Added 2006/07/31 by Kim sora.
/*
IE-6.0
auto : 自動(変更可能)
active : ひらがな(変更可能)
inactive : 英語だけ(変更不可能)
disabled : 英語(変更可能)
deactivated : ひらがな(変更可能)
Usage: imeSet(object, 'active');
*/
function imeSet(object, str) {
object.style.imeMode = str;
}
// Added 2006/07/31 by Kim sora.
/*
input box Set
Usage: inputBoxSet(object, 0);
*/
function inputBoxSet(obj_name, option) {
obj_name.style.paddingLeft = "1px";
obj_name.style.paddingTop = "0";
obj_name.style.paddingRight = "1px";
obj_name.style.paddingBottom = "4px";
obj_name.style.border = "1px";
obj_name.style.borderStyle = "solid";
obj_name.style.borderColor = "#7F9DB9";
if (option == 0) {
obj_name.style.backgroundImage = "url(/image/nyuryoku.gif)"
obj_name.style.backgroundRepeat = "no-repeat";
}
else if (option == 1) {
obj_name.style.backgroundImage = ""
}
else {
obj_name.style.backgroundImage = "url(/image/ataranai.gif)"
obj_name.style.backgroundRepeat = "repeat";
}
}
// Added 2006/08 by Kim sora.
/*
オブジェクトの内容有無チェック
Usage: nullInputBoxSet(object);
*/
function nullInputBoxSet(object) {
if (object.value != "") {
inputBoxSet(object, 1);
}
else {
inputBoxSet(object, 2);
}
}
// Added 2006/08 by Kim sora.
/*
オブジェクトの背景イメージ有無チェック
Usage: inputBoxGet(object);
return : true / false
*/
function inputBoxGet(object) {
var bg_image = object.style.backgroundImage;
if (bg_image != "") {
return false;
}
else {
return true;
}
}
// Added 2006/08 by Kim sora.
/*
DIV Visibility Check
Usage: errMsgGet(object);
return : true / false
*/
function errMsgGet(obj_nm) {
var object = objectAccess(obj_nm);
var obj_visibility = object.style.visibility;
if (obj_visibility != "hidden") {
return false;
}
else {
return true;
}
}
function layerDisplay(layerID, section) {
var opt_string;
layer_access = objectAccess(layerID);
if ( ns4 ) {
if (section == true) {
opt_string = "show";
}
else {
opt_string = "hide";
}
}
else {
if (section == true) {
opt_string = "visible";
}
else {
opt_string = "hidden";
}
}
layer_access.style.visibility = opt_string;
}
function toolTipBoxVisibility(layerID, msg, section) {
var layer_access = objectAccess(layerID);
layer_access.innerHTML = msg;
layerDisplay(layerID, section);
}
// Added 2006/08/09 by Kim sora.
/*
create div
Usage: createDiv_kim("errDiv");
*/
function createDiv_kim(div_name) {
if (objectAccess(div_name)) {
var obj = objectAccess(div_name);
}
else {
var obj = document.createElement("Div");
}
obj.id = div_name;
document.body.appendChild(obj);
layerDisplay(div_name, true);
}
function setXY(completeDiv, field, sec, vwidth) {
var i_width = field.offsetWidth;
// オブジェクトの右に位置させる
if (sec == "R") {
var left = calculateOffsetLeft(field) + i_width;
var top = calculateOffsetTop(field);
}
// オブジェクトの下左側に位置させる
else if (sec == "BL") {
var left = calculateOffsetLeft(field) - (vwidth-i_width) - (i_width/2);
var top = calculateOffsetTop(field) + field.offsetHeight;
if ( vwidth && vwidth > 0 ) {
i_width = vwidth;
}
}
// Center of Browser
else if (sec == "C") {
var left = document.body.clientWidth/2 + document.body.scrollLeft - vwidth/2;
var top = calculateOffsetTop(field);
i_width = vwidth;
}
// オブジェクトの下右側に位置させる
else {
var left = calculateOffsetLeft(field);
var top = calculateOffsetTop(field) + field.offsetHeight;
if ( vwidth && vwidth > 0 ) {
i_width = vwidth;
}
}
completeDiv.style.position = "absolute";
completeDiv.style.padding = "0px";
completeDiv.style.margin = "0px";
completeDiv.style.left = left + "px";
completeDiv.style.top = top + "px";
completeDiv.style.width = i_width + "px";
}
// Added 2006/08/09 by Kim sora.
/*
Divの位置設定
@sec : R - Right, B - Bottom
Usage: setOffsets(content, "err", "content_err_msg", "R");
*/
function setOffsets(field, text, div_name, sec) {
createDiv_kim(div_name);
var completeDiv = objectAccess(div_name);
setXY(completeDiv, field);
if (parseInt(text) >= 0) {
completeDiv.innerHTML = text;
}
else {
var rest_byte = (parseInt(text) * -1) % 2;
if (rest_byte == 0) {
var shar_length = ((parseInt(text) * -1) / 2);
completeDiv.innerHTML = "0";
}
else {
var shar_length = ((parseInt(text) * -1) / 2) + 0.5;
completeDiv.innerHTML = "1";
}
field.value = field.value.substring(0, field.value.length - shar_length);
}
completeDiv.style.color = "red";
completeDiv.style.textAlign = "left";
completeDiv.style.paddingLeft = "5px";
}
function calculateOffsetLeft(field) {
return calculateOffset(field, "offsetLeft");
}
function calculateOffsetTop(field) {
return calculateOffset(field, "offsetTop");
}
function calculateOffset(field, attr) {
var offset = 0;
while(field) {
offset += field[attr];
field = field.offsetParent;
}
return offset;
}