// JavaScript Document

var isCookie = false;

// cookieを保存したりするfunction（関数）：setck()の宣言。
function setcookie(){

	var ckary;
	ckary = new Array();
	
	// フォームに記入された値を配列ckaryに代入

	ckary[0] = document.forms['formman'].elements[4].value;		// 姓
	ckary[1] = document.forms['formman'].elements[3].value;		// メールアドレス

	// エラーチェック
	var check = false;
	name = ckary[0];
	
	if (name.length == 0) {
		alert("姓が入力されていません");
		return false;
	}
	
	if (name.match(/[a-zA-Z]/g)) check |= true;
	if (name.match(/[0-9 ]/g)) check |= true;
	if (IsNgword(name)) check |= true;
	
	if (check == true) {
		alert("姓は漢字で入力してください");
		document.forms['formman'].elements[4].value = "";
		return false;
	}
	
	if (ckary[1].length == 0) {
		alert("メールアドレスが入力されていません");
		return false;
	}

	if (IsMailAddress(ckary[1])) {
		alert("メールアドレスが正しくありません");
		document.forms['formman'].elements[3].value = "";
		return false;
	}
	
	// 動作テスト用alert
	//alert('◎フォームの内容\n'+ckary[0]+'　'+ckary[1]+'　'+ckary[2]+'　'+ckary[3]);

	// 新規Dateオブジェクトexpを作成。デフォルトでは現在時間を持つ
	var exp;
	exp = new Date();
	
	// 現在時間に、365日*3年分足したものを、Dateオブジェクトexpに設定する。
	exp.setTime(exp.getTime()+1000*60*60*24*365*3);

	// 変数ckstrに、配列ckaryの最初の値をESCAPEしたものを代入。
	ckstr = escape(ckary[0]);

	// 次のループのための準備
	var i;
	i = 1;

	/*
	ckaryの全要素について、ループ内の処理を実行する。
	このループで、変数ckstrに、%00とESCAPEされた配列ckaryの値を連結する。
	%00はヌル文字をESCAPEしたものであり、
	通常、フォームに入力された文字列をESCAPEしても出てくることはないので、
	区切り記号として利用している。
	結果として、
	ckstr = escape(ckary[0]) + "%00" + escape(ckary[1]) + "%00" + escape(ckary[2]);
	という処理を行ったことになるが、変数が配列なぶん、汎用性が高い。
	*/
	while (ckary[i]){
		ckstr += "%00" + escape(ckary[i]);
		i++;
	}

	// 動作テスト用
	//alert(ckstr);
	
	/* クッキー情報を書き込む、ASH_jscというのは単なる名前、
	呼び出す際に必要になる。勝手につけても問題ない。
	expires=で、cookieの賞味期限を設定している。
	ここではさっきexpに設定した現在の1日後になる。
	標準形式に変換する必要があるのでtoGMTstring()を用いている。
	*/
	document.cookie = "mreport=" + ckstr + "; expires=" + exp.toGMTString() + "; domain=sayadori.org; path=/";

	document.forms['formman'].submit();

}


function IsNgword(value) {
	
    var pat;                                   // ひらがな以外のパターン
    var regex = new RegExp();                 // RegExpオブジェクト
    pat = "[あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ";
    pat += "まみむめもやゆよらりるれろわゐゑをんがぎぐげござじずぜぞ";
    pat += "だぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉっゃゅょゎ・ー　";
    pat += "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホ";
    pat += "マミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾ";
    pat += "ダヂヅデドバビブベボパピプペポァィゥェォッャュョヮ";
    pat += "０１２３４５６７８９";
    pat += "ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ";
    pat += "ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ";
    pat += "！”＃＄％＆’（）〜＝−＾￥「」＋＊｛｝、。？・";
	pat += "!#$%&'()=-~^|\+*<>?,./]";
    regex.compile(pat);                        // コンパイル
    
	if (value.match(regex)) {
		return true;
	} else {
		return false;
	}
	
} 

function IsMailAddress(value) {
	
    var regex = /.+\..+/;                     // メールアドレス
    if (!value.match(regex)) {
		return true;
	} else {
		return false;
	}
	
}


function getcookie() {

	//alert('Cookie:\n'+document.cookie);

	var cklng;
	cklng = document.cookie.length;

	var ckary;
	ckary = document.cookie.split("; ");

	var ckstr;
	ckstr = "";

	i = 0;
	while (ckary[i]){
		if (ckary[i].substr(0,8) == "mreport="){
			ckstr = ckary[i].substr(8,ckary[i].length);
			break;
		}
		i++;
	}

	ckary = ckstr.split("%00");

	/*
	if (ckary[0]) document.forms[0].usr.value = unescape(ckary[0]);
	if (ckary[1]) document.forms[0].eml.value = unescape(ckary[1]);
	if (ckary[2]) document.forms[0].url.value = unescape(ckary[2]);
	*/
	
	/*
	alert(unescape(ckary[0]));
	alert(unescape(ckary[1]));
	alert(unescape(ckary[2]));
	alert(unescape(ckary[3]));
	*/	
	if (ckary[0] != "") {
	
		var docs;
		
		docs = document.body.innerHTML;
		docs = docs.replace(/あなた/g, unescape(ckary[0]) + "さん");
		//alert(docs.replace(orgstr, tostr));
		
		// 文字列の置き換え
		document.body.innerHTML = docs;
		
		isCookie = true;

	}
	
	//document.getElementById("container").style.visibility = "visible";
	
}

function initload() {

	getcookie();
	externalLinks();
	
	if (isCookie == false) {
		setTimeout("initbox()", 15000);
		//initbox();
	}
}
