/*---------------------------------------------------------------------------*/
/*                                                                           */
/*    DSL javascript common library                                          */
/*                                                                           */
/*---------------------------------------------------------------------------*/
/*   Digital Sheep Learning, Inc All Rights Reserved.                        */
/*---------------------------------------------------------------------------*/

/*********************************************************/
/*  ユーティリティ 
/*********************************************************/
/* オンマウスで画像を変えるリンクを作成する */
function imgChgLink(href, img_src, idx, img_w, img_h){
	var img_name = "/" + img_src.substring(0, img_src.lastIndexOf("."));
	img_name = img_name.substring(img_name.lastIndexOf("/"), img_name.length) + idx;
	var img_ext = img_src.substring(img_src.lastIndexOf(".")+1, img_src.length);
	
	var doc = '<a href="'+href+'" onmouseover="imgChg(\''+img_name+'\',1);" onmouseout="imgChg(\''+img_name+'\',0);">'
			+ '<img id="'+img_name+'" src="'+img_src+'" width="'+img_w+'" height="'+img_h+'" border="0">'
			+ '</a>';
	return doc;
}

/* オンマウスで画像を変える */
function imgChg(id, on_off){
	try {
		var img_src = document.getElementById(id).src;
		var img_name = img_src.substring(0, img_src.lastIndexOf("."));
		var img_ext = img_src.substring(img_src.lastIndexOf(".")+1, img_src.length);
		if (on_off == 1 && img_name.indexOf('now',0) == -1){
			img_src = img_name + "-up." + img_ext;
		} else if (on_off == 0 && img_name.indexOf('now',0) == -1){
		 	img_src = img_name.substring(0, img_name.length -3) + "." + img_ext;
		}
		document.getElementById(id).src = img_src;
	} catch (e){}
}

/* Flashコンテンツ */
function writeFlash(src, w, h, vars, bg){
	var swf_bgcolor		= (bg == undefined) ? "#FFFFFF" : bg;
	var swf_w			= w;
	var swf_h			= h;
	var swf_name = src;
	var flashvars = vars;
	swf_name += "?" +new Date().getTime();
	var res = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+location.protocol+'//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="SheepTown" width="'+swf_w+'" height="'+swf_h+'" align="middle" >\n';
	res += '<param name="allowScriptAccess" value="sameDomain" />\n';
	res += '<param name="movie" value="'+swf_name+'" />\n';
	res += '<param name="quality" value="high" />\n';
	res += '<param name="bgcolor" value="'+swf_bgcolor+'" />\n';
	res += '<param name="flashvars" value="'+flashvars+'"/>';
	res += '<embed src="'+swf_name+'" quality="high" bgcolor="'+swf_bgcolor+'" width="'+swf_w+'" height="'+swf_h+'" name="SheepTown" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'"/>\n';
	res += '</object>\n';
	document.write(res);
}

/* ドキュメントへ書き込み */
function dw(input){
	document.write(input);
}

/*********************************************************/
/*  文字列操作系 
/*********************************************************/
// 前後の空白削除して返す
function trim(input){
	var strRet, strFinal;
	strRet = LTrim(input);
	strFinal = RTrim(strRet);
	return strFinal
}

// 数値へ変換して返す
function toInt(s, def){
	if (def == undefined) def = -1;
	if (isNaN(s)) return def;
	return Number(s);
}

// バイト数を返す
function getByte(str){
	if (str=="" || !str || str==null) return 0;
	str=trashGomi(str);
	var strS=str.replace(/[^0-9a-zｱ-ﾝ\!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_]/ig,"##");
	return strS.length;
}

// 長さを返す
function getLength(str){
	if (str=="" || !str || str==null) return 0;
	str=trashGomi(str);
	var strS=str.replace(/[^0-9a-zｱ-ﾝ\!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_]/ig,"#");
	return strS.length;
}

/*********************************************************/
/*  文字列チェック関係 
/*********************************************************/
// 入力値がメール形式か
function checkMail(str){
	var ck =/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
	return str.match(ck) && getByte(str)==str.length;
}

// 入力値が数値か
function checkNumber(str){
	var ck =/[0-9]$/i;
	return str.match(ck);
}

// 入力値が電話番号形式か
function checkTel(str){
	var ck =/[0-9]$/i;
	var len = (str.length >= 10 && str.length <= 11);
	return str.match(ck) && len;
}

// 入力値が日付(yyyy/mm/dd)か
function checkDate(str){
	var ck = /^\d{4}\/\d{2}\/\d{2}$/;
	var chkdYear;
	var chkdMonth;
	var chkdDay

	if (str.match(ck) == null)
		return false;

	chkdYear = str.substr(0, 4);
	chkdMonth = str.substr(5, 2) - 1; // javascriptで月は0..11
	chkdDay = str.substr(8, 2);

	if (0 <= chkdMonth && chkdMonth <= 11
	    && 1 <= chkdDay && chkdDay <= 31) {
		var chkdDate = new Date(chkdYear, chkdMonth, chkdDay);

		if (isNaN(chkdDate)) {
			return false;
		} else if (chkdDate.getFullYear() == chkdYear
				   && chkdDate.getMonth() == chkdMonth
				   && chkdDate.getDate() == chkdDay) {
			return true;
		}
	}
	return false;
}

/*********************************************************/
/*  form操作
/*********************************************************/
// チェックのついたチェックボックスの値をseparatorで結合
function getCheckboxValue(name, separator) {
	var checkBoxList = document.getElementsByName(name);
	var value = "";
	
	if (checkBoxList == null)
		return;
	
	for (var i = 0; i < checkBoxList.length; i++) {
		if (checkBoxList[i].checked) {
			value += checkBoxList[i].value;
			value += separator;
		}
	}
	return value;
}

// values[]と一致する値を持つチェックボックスにチェックを入れる
function setCheckboxValue(name, values) {
	var checkBoxList = document.getElementsByName(name);
	var index = 0;

	if (checkBoxList == null)
		return;

	if (values != null && values.length != 0) {
		for (var i = 0; i < checkBoxList.length; i++) {
			if (checkBoxList[i].value == values[index]) {
				checkBoxList[i].checked = "checked";
				index++;
			}
		}
	}
}

/*********************************************************/
/*  cookie 操作
/*********************************************************/
// 取得する
function getCookie(key) {
    var tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    var len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        var tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        }
        xx1 = xx2 + 1;
    }
    return("");
}
// 設定する
function setCookie(key, val) {
    tmp = key + "=" + escape(val) + "; ";
    // tmp += "path=" + location.pathname + "; ";
    document.cookie = tmp;
}
/*********************************************************/
/*  private
/*********************************************************/
function trashGomi(s){
	s=unescape(escape(s).split("%00")[0]);
	return s;
}

function RTrim(strTemp){
	var nLoop = 0;
	var strReturn = strTemp;
	while (nLoop < strTemp.length)	{
		if (strReturn.substring(strReturn.length - 1, strReturn.length) == " "){
			strReturn = strTemp.substring(0, strTemp.length - (nLoop + 1));
		} else {
			break;
		}
		nLoop++;
	}
	return strReturn;
}

function LTrim(strTemp){
	var nLoop = 0;
	var strReturn = strTemp;
	while (nLoop < strTemp.length) {
		if (strReturn.substring(0, 1) == " ") {
			strReturn = strTemp.substring(nLoop + 1, strTemp.length);
		} else {
			break;
		}
		nLoop++;
	}
	return strReturn;
}
