
//Ajaxエラーの発生時の強制誘導
function showResponseError(str){
//	var result=str.responseText;
//	alert(result);
	alert('エラーが発生しました。');
	window.location.href = "/";
}


//radioとcheckboxが空だったとき、空で出力させる自家製serialize
//要prototype.js  ver1.6でのみ確認済み
function serialize(elementForm) {
	var tmpHash = new Object();

	//radioの空要素を作る
	var nodes = Form.getInputs($(elementForm), 'radio');
	for (var i = 0; i < nodes.length; i++) {
		tmpHash[nodes[i].name]="";
	}

	//checkboxの空要素を作る
	var nodes = Form.getInputs($(elementForm), 'checkbox');
	for (var i = 0; i < nodes.length; i++) {
		tmpHash[nodes[i].name]="";
	}

	//prototypeでserializeを取得
	var tmpArray = new Array();
	tmpArray=Form.serialize(elementForm).split("&");

	//合体
    for(var i=0;i < tmpArray.length;i++){
		var tmpArray2 = new Array();
		tmpArray2=tmpArray[i].split("=");
		tmpHash[tmpArray2[0]]=tmpArray2[1];
	}

	//結合
	var tmpQuery="";
	for (var i in tmpHash)
	{
		tmpQuery += '&'+i+'='+tmpHash[i];
	}

	return tmpQuery.substr(1);
}

//reset()では初期値やキャッシュにしか戻らないので強制的にクリアする自家製reset
//hiddenとbuttonとsubmitは消さないです。
//radioはすべてのチェックを外し、selectは一番上が選択されます
function clearForm(elementForm){
	var nodes = Form.getElements(elementForm);
	for (var i = 0; i < nodes.length; i++){
		if(nodes[i].tagName == "INPUT"){
			if(nodes[i].getAttribute('type') == "checkbox"){
				nodes[i].checked = false;
			}else if(nodes[i].getAttribute('type') == "radio"){
				nodes[i].checked = false;
			}else if(nodes[i].getAttribute('type') == "text"){
				nodes[i].value = "";
			}else if(nodes[i].getAttribute('type') == "password"){
				nodes[i].value = "";
			}
		}else if(nodes[i].tagName == "SELECT"){
			nodes[i].selectedIndex=0;
		}else if(nodes[i].tagName == "TEXTAREA"){
			nodes[i].value="";
		}
	}
}



//コンマ区切り-----------------
function comma(num) {
	return num.toString().replace( /([0-9]+?)(?=(?:[0-9]{3})+$)/g , '$1,' );
} 





//ハッシュからフォームにイン----------------------------------------
function inForm(fid,inData){
	var form_obj = document.getElementById(fid);
	var form_input = form_obj.getElementsByTagName("input");
	var form_textarea = form_obj.getElementsByTagName("textarea");
	var form_select = form_obj.getElementsByTagName("select");

	for (var i = 0; i < form_input.length; i++) {
		if(inData[form_input[i].getAttribute("name")]){
			if(form_input[i].getAttribute("type") == "text" || form_input[i].getAttribute("type") == "hidden"){
				form_input[i].value=inData[form_input[i].getAttribute("name")];
			}else if(form_input[i].getAttribute("type") == "checkbox"){
				if(form_input[i].value == inData[form_input[i].getAttribute("name")]){
					form_input[i].checked=true;
				}else{
					form_input[i].checked=false;
				}
			}else if(form_input[i].getAttribute("type") == "radio"){
				if(form_input[i].value == inData[form_input[i].getAttribute("name")]){
					form_input[i].checked=true;
				}else{
					form_input[i].checked=false;
				}
			}
		}
	}
	for (var i = 0; i < form_select.length; i++) {
		if(inData[form_select[i].getAttribute("name")]){
			form_select[i].value=inData[form_select[i].getAttribute("name")];
		}
	}
	for (var i = 0; i < form_textarea.length; i++) {
		if(inData[form_textarea[i].getAttribute("name")]){
			form_textarea[i].value=inData[form_textarea[i].getAttribute("name")];
		}
	}
}

//空値入力チェック
function chkNull(str){
	if(str == ""){
		return true;
	}else{
		return false;
	}
}
//文字数チェック
function chkStr(str,tmpCnt){
	if(str.length > tmpCnt){
		return true;
	}else{
		return false;
	}
}
//数値チェック
function chkNum(str,tmpCnt){
	if(str.match(/[^0-9]/)){
		return true;
	}else if(tmpCnt){
		if(str.length > tmpCnt){
			return true;
		}else{
			return false;
		}
	}
}
//小数数値チェック
function chkFloat(str,tmpCnt){
	if(str.match(/[^0-9\-\.]/)){
		return true;
	}else if(tmpCnt){
		if(str.length > tmpCnt){
			return true;
		}else{
			return false;
		}
	}
}


//電話番号チェック
function chkTel(str){
	if(str.match(/[^0-9\-]/)){
		return true;
	}else{
		return false;
	}
}
//郵便番号チェック
function chkPost(str){
	if(str.match(/^[0-9]{3}-[0-9]{4}$/) || str ==""){
		return false;
	}else{
		return true;
	}

/*
◆str.match( /[^ぁ-んァ-ン　\s]+/ )
◆str.match( /[^A-Za-z\s.-]+/ )
◆str.match( /[^0-9]+/ )
*/
}






function chkDate(datestr) { 
    // 正規表現による書式チェック 
    if(!datestr.match(/^\d{4}\/\d{2}\/\d{2}$/)){ 
        return false; 
    } 
    var vYear = datestr.substr(0, 4) - 0; 
    var vMonth = datestr.substr(5, 2) - 1; // Javascriptは、0-11で表現 
    var vDay = datestr.substr(8, 2) - 0; 
    // 月,日の妥当性チェック 
    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){ 
        var vDt = new Date(vYear, vMonth, vDay); 
        if(isNaN(vDt)){ 
            return false; 
        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){ 
            return true; 
        }else{ 
            return false; 
        } 
    }else{ 
        return false; 
    } 
}







function displayNone(id){
	new Effect.Fade(id, {
		from:1.0, // 開始時透明度
		to:0.0, // 終了時透明度
		// delay:0, // 開始までの秒数
		fps:60, // フレームレート
		duration: 0.6, // アニメーションする時間(秒)
		beforeStartInternal: function(effect) {
			//alert('start');
		},
		afterFinishInternal: function(effect) {
			$(id).style.display="none";
		}
	});
}
function displayBlock(id){
	new Effect.Fade(id, {
		from:0.0, // 開始時透明度
		to:1.0, // 終了時透明度
		// delay:0, // 開始までの秒数
		fps:60, // フレームレート
		duration: 0.6, // アニメーションする時間(秒)
		beforeStartInternal: function(effect) {
			$(id).style.display="block";
		},
		afterFinishInternal: function(effect) {
			//alert('end');
		}
	});
}


//今日の日付を帰す
function toDate(){
	var date = new Date();
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	var d = date.getDate();

	if (m < 10) {
		m = "0" + m;
	} 
	if (d < 10) {
		d = "0" + d;
	}

	return y + "/" + m + "/" + d;
}




function encode_euc(str){
    str=base64encode(_to_euc(str));

	str=str.replace(/\//g,"@");
	str=str.replace(/\+/g,"-");
	str=str.replace(/=/g,"_");

	return str;
}
function decode_euc(str){
	str=str.replace(/\@/g,"/");
	str=str.replace(/\-/g,"+");
	str=str.replace(/_/g,"=");

	str=_from_euc(base64decode(str));

	return str;
}
function encode_utf(str){
    str=base64encode(utf16to8(str));

	str=str.replace(/\//g,"@");
	str=str.replace(/\+/g,"-");
	str=str.replace(/=/g,"_");

	return str;
}
function decode_utf(str){
	str=str.replace(/\@/g,"/");
	str=str.replace(/\-/g,"+");
	str=str.replace(/_/g,"=");

	str=utf8to16(base64decode(str));

	return str;
}

function sanitize(str) { 
	str = str.replace(/\&/g,'&amp;'); 
	str = str.replace(/\</g,'&lt;'); 
	str = str.replace(/\>/g,'&gt;'); 
	str = str.replace(/\"/g,'&quot;'); 
	str = str.replace(/\'/g,'&#39;'); 
	str = str.replace(/\n/g,'<br />\n'); 
	return str;
}

//クッキーにフォームの値を保存する
//hiddenとbuttonとsubmitはセットしません。
//要json.js
function saveCookieForm(cid){
	var eles;
	var ary = new Array;
	var frm=document.getElementById(cid);

	for(var i=0;i<frm.elements.length;i++){
		//チェック系はチェックの有無を保存
		if(frm.elements[i].type =='checkbox' || frm.elements[i].type =='radio'){
			ary[i]  = frm.elements[i].checked;
		//テキストとテキストエリアとドロップダウンリストは値を保存
		}else if(frm.elements[i].type =='text' || frm.elements[i].type =='textarea' || frm.elements[i].type =='select-one' ){
			ary[i] = frm.elements[i].value;
		}else{
			ary[i] = '';
		}
	}
	setCookie(cid,JSON.stringify(ary));
}
//クッキーから値を取り出してfrmにセットする
//hiddenとbuttonとsubmitはセットしません。
function readCookieForm(cid){
	var ary;
	var frm=document.getElementById(cid);

	if(getCookie(cid)){
		ary = JSON.parse(getCookie(cid));
	}else{
		return;
	}

	for(var i=0;i<frm.elements.length;i++){
		//チェック系はチェックの有無を保存
		if(frm.elements[i].type =='checkbox' || frm.elements[i].type =='radio'){
			frm.elements[i].checked = ary[i];
		//テキストとテキストエリアとドロップダウンリストは値を保存
		}else if(frm.elements[i].type =='text' || frm.elements[i].type =='textarea' || frm.elements[i].type =='select-one' ){
			frm.elements[i].value = ary[i];
		}else{
		//	ary[i] = '';
		}
	}


}


//クッキーにフォームの値を保存する
function saveValue(cid){
	var eles;
	var ary = new Array;
	var frm=document.getElementById(cid);

	for(var i=0;i<frm.elements.length;i++){
		//チェック系はチェックの有無を保存
		if(frm.elements[i].type =='checkbox' || frm.elements[i].type =='radio'){
			ary[i]  = frm.elements[i].checked;
		//テキストとテキストエリアとドロップダウンリストは値を保存
		}else if(frm.elements[i].type =='text' || frm.elements[i].type =='textarea' || frm.elements[i].type =='select-one' ){
			ary[i] = frm.elements[i].value;
		}else{
			ary[i] = '';
		}
	}
	setCookie(frm.name,JSON.stringify(ary));
}
//クッキーから値を取り出してfrmにセットする
function restoreValue(cid){
	var ary;
	var frm=document.getElementById(cid);

	if(getCookie(frm.name)){
		ary = JSON.parse(getCookie(frm.name));
	}else{
		return;
	}
	for(var i=0;i<frm.elements.length;i++){
		//チェック系はチェックの有無を保存
		if(frm.elements[i].type =='checkbox' || frm.elements[i].type =='radio'){
			frm.elements[i].checked = ary[i];
		//テキストとテキストエリアとドロップダウンリストは値を保存
		}else if(frm.elements[i].type =='text' || frm.elements[i].type =='textarea' || frm.elements[i].type =='select-one' ){
			frm.elements[i].value = ary[i];
		}else{
		//	ary[i] = '';
		}
	}
}

function setCookie(key,val){
	var tmp = key + "=" + escape(val) + ";";
	tmp += "expires=Fri, 31-Dec-2030 23:59:59;";
	document.cookie = tmp;
}

function getCookie(key){
	var tmp = document.cookie+";";
	var tmp1 = tmp.indexOf(key,0);
	if(tmp1 != -1){
		tmp = tmp.substring(tmp1,tmp.length);
		start = tmp.indexOf("=",0);
		end = tmp.indexOf(";",start);
		return(unescape(tmp.substring(start+1,end)));
	}
	return("");
}

function delCookie(key){
	var expiredate = new Date();
	expiredate.setYear(expiredate.getYear()-1);
	var tmp = key+"=;";
	tmp += "expires="+expiredate.toGMTString();
	document.cookie = tmp;
}


