/*
 * Created on 2006/06/23
 * 
 * This file is basic javascript library.
 * 
 * <meta http-equiv="Content-type" content="text/html; charset=utf-8"> - 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
	Return: 半角String
*/
function toHankakuNum(motoText)
{
        han = "0123456789.,-+*= ";
        zen = "０１２３４５６７８９．，－＋＊＝　";
        str = "";
        for (i=0; i<motoText.length; i++)
        {
                c = motoText.charAt(i);
                n = zen.indexOf(c,0);
                if (n >= 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/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();
	Return: integer
*/
function keyCodeGet(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.
/*
	数字しか入力出来ない
	
	Usage: onlyNumber(event);
*/
function onlyNumber(e) { 

	var var_keycode = keyCodeGet(e); 

    if( !(48 <= var_keycode && var_keycode <=57) && var_keycode != 0 &&  var_keycode != 32) { 
	
        if( window.event ){ 
		
            e.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(/images/common/nyuryoku.gif)"
		obj_name.style.backgroundRepeat = "no-repeat";
	}
	else if (option == 1) {
		
		obj_name.style.backgroundImage = ""
	}
	else {
		
		obj_name.style.backgroundImage = "url(/images/common/ataranai.gif)"
		obj_name.style.backgroundRepeat = "repeat";
	}
}

function nullInputBoxSet(object) {
	
	if (object.value != "") {
	
		inputBoxSet(object, 1);
	}
	else {

		inputBoxSet(object, 2);
	}
}

function inputBoxGet(object) {
	
	var bg_image = object.style.backgroundImage;
	
	if (bg_image != "") {
		
		return false;
	}
	else {
		
		return true;
	}
}

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 layerVisibleGet(obj_nm) {
	
	var object = objectAccess(obj_nm);
	var layer_visible = object.style.visibility;
	
	if (layer_visible == "visible") {
		
		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) {
	
	layer_access = objectAccess(layerID);
	
	layer_access.innerHTML = msg;
	layerDisplay(layerID, section);
}
