/* ---------------------------------------------------------------------
JavaScript for central_sports
FileName: common.js
--------------------------------------------------------------------- */


// *** メソッドを短縮化
function DW(htmlSrc){document.write(htmlSrc);}
function DWL(htmlSrc){document.writeln(htmlSrc);}


// *** プリロード関連

	// 初期化
	var preLoadObj = new Array();

	// プリロードに追加
	function addPreLoad(imgObj){
		preLoadObj = preLoadObj.concat(imgObj);
	}

	// 画像をプリロードする
	function imgPreLoad(){
		preLoadImg = new Array();
		for(var i = 0; i < preLoadObj.length; i++){
			preLoadImg[i] = new Image();
			preLoadImg[i].src = preLoadObj[i];
		}
	}

	// *** 共通要素をプリロード候補に追加
	addPreLoad(new Array(
		'/common/image/common_order_btn_over.gif',
		'/common/image/pagetop_over.gif'
	));

	// onloadで実行
	window.onload = imgPreLoad;


// *** マウスオーバー時画像切り替え
function imgChange(imgObj){
	var imgSrc = imgObj.src;
	var imgStatus = imgSrc.indexOf("_over") != -1;
	if(!imgStatus){
		var P = imgSrc.lastIndexOf(".");
		imgSrc = imgSrc.substr(0, P) + '_over' + imgSrc.substring(P);
	} else {
		imgSrc = imgSrc.replace('_over', '');
	}
	imgObj.src = imgSrc;
}


// *** 文字列関連

	// 文字数をカウントして値を返す
	function checkMultiBite(text){
		var result = 0;
		for(var i = 0; i < text.length; i++){
			var C = text.charCodeAt(i);
			result += 1 + Number(!(C < 256 || (C >= 0xFF61 && C <= 0xFF9F)));
		}
		return result;
	}

	// 任意の文字列を返す
	function getTextByMultiBite(text, length){
		text = text.substr(0, length);
		while(length < checkMultiBite(text)){
			text = text.substr(0, text.length - 1);
		}
		return text;
	}


// *** アイウエオ順リスト
function eachPrefecture(anchorObj, targetID){
	var imgSrc = anchorObj.firstChild.src;
	var targetObj = document.getElementById(targetID);

	if(imgSrc.indexOf('minus.gif') != -1){
		anchorObj.firstChild.src = imgSrc.replace('minus.gif', 'plus.gif');
		targetObj.style.display = 'none';
	} else {
		anchorObj.firstChild.src = imgSrc.replace('plus.gif', 'minus.gif');
		targetObj.style.display = 'block';
	}

	return true;
}


// *** ページトップモーション
function pageTopScroll(){

	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = 0;

	if(document.documentElement){
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}

	if (document.body){
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}

	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3)); 
	window.scrollTo(Math.floor(x / 1.3), Math.floor(y / 1.3));

	if(x > 0 || y > 0){
		window.setTimeout("pageTopScroll()", 30);
	}
}


// *** タイトル文字省略
function abbreviate() {
	var maxLength = 29;
	var elements = document.getElementsByClassName('abbreviate', document);
	for (var i = 0; i < elements.length; i++) {
		var str = elements[i].firstChild.nodeValue;
		if (str.length > maxLength) {
		elements[i].innerHTML = str.substring(0, maxLength) + '…';
		}
	}
}

// *** タイトル文字省略②
function abbreviate2() {
	var maxLength = 21;
	var elements = document.getElementsByClassName('abbreviate', document);
	for (var i = 0; i < elements.length; i++) {
		var str = elements[i].firstChild.nodeValue;
		if (str.length > maxLength) {
		elements[i].innerHTML = str.substring(0, maxLength) + '…';
		}
	}
}


// *** 半角カナ⇒全角カナ変換
var zen_table = new Array(
    "。", "「", "」", "、", "・", "ヲ", "ァ", "ィ", "ゥ", "ェ",
    "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ウ", "エ",
    "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ",
    "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ",
    "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ",
    "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ",
    "ン", "゛", "゜");

function iskana(c)   { return (c >= 65377 && c <= 65439); }
function is_ka_to(c) { return (c >= 65398 && c <= 65412); }
function is_ha_ho(c) { return (c >= 65418 && c <= 65422); }

function h2z_kana(src) {
    var i, code, next;
    var str = new String;
    var len = src.length;
    for (i = 0; i < len; i++) {
        var c = src.charCodeAt(i);
        if (iskana(c)) {
            code = zen_table[c - 65377];
            if (i < len - 1) {
                next = src.charCodeAt(i+1);
                if (next == 65438 && c == 65395) {
                    code = "ヴ";
                    i++;
                } else if (next == 65438 && (is_ka_to(c) || is_ha_ho(c))) {
                    code = String.fromCharCode(code.charCodeAt(0)+1);
                    i++;
                } else if (next == 65439 && is_ha_ho(c)) {
                    code = String.fromCharCode(code.charCodeAt(0)+2);
                    i++;
                }
            }
            str += code;
        } else {
            str += src.charAt(i);
        } 
   }
   return str;
}

	function convert1(formname,num) {
	    var src = new String(document.forms[formname].elements[num].value);
	    document.forms[formname].elements[num].value = h2z_kana(src);
	}


// *** 全角英数字⇒半角英数字
function z2h_ascii(src) {
    var str = new String;
    var len = src.length;
    for (var i = 0; i < len; i++) {
        var c = src.charCodeAt(i);
        if (c >= 65281 && c <= 65374 && c != 65340) {
            str += String.fromCharCode(c - 65248);
        } else if (c == 8217) {
            str += String.fromCharCode(39);
        } else if (c == 8221) {
            str += String.fromCharCode(34);
        } else if (c == 12288) {
            str += String.fromCharCode(32);
        } else if (c == 65507) {
            str += String.fromCharCode(126);
        } else if (c == 65509) {
            str += String.fromCharCode(92);
        } else {
            str += src.charAt(i);
        } 
    }
    return str;
}

	function convert2(formname,num) {
	    var src = new String(document.forms[formname].elements[num].value);
	    document.forms[formname].elements[num].value = z2h_ascii(src);
	}

// *** 半角英数字記号類⇒全角英数字記号類
function h2z(han) {  // 半角英数字記号類を全角英数字記号類に変換
  // ASCII の 文字類 => 全角のそれら ( SP が含まれていないことに注意 )
  // [\u0021-\u007e] => [\uff01-\uff5e] 
  return han.replace(/[\u0021-\u007e]/g, function(c) {
    return String.fromCharCode(c.charCodeAt(0) + 0xff01 - 0x0021);
  });
}

	function convert4(formname,num) {
	    var han = new String(document.forms[formname].elements[num].value);
	    document.forms[formname].elements[num].value = h2z(han);
	}