/*--------------------------------------------------------------------
サーバに蓄積されるデータをチェックするための仕組み
1.該当HTMLファイルのindispensableForm(formName),indispensableName(formTitle)のそれぞれの配列に該当項目を入れる
2.外部Javascriptファイル[form.js]を読み込む。
3.通常Formサブミットのtypeをbuttonとし、onClickイベントでsendData()を呼ぶ。
これで該当項目のチェックの有無、およびメールアドレス確認を行う。
当然クライアントサイドでJavaScriptが有効でないと働かない。
また、ラジオボタンやチェックボックスに対しては無効。
ポップアップはJavaScriptバグにより、IEのみ有効。
--------------------------------------------------------------------*/

// -----------------------------------------------------------------
// Function	 : IsEmailValid
// Language	 : JavaScript
// Description : Checks if given email address is of valid syntax
// Copyright	: (c) 1998 Shawn Dorman
// http://www.goodnet.com/~sdorman/web/IsEmailValid.html
// -----------------------------------------------------------------
// Ver	 Date	 Description of modification
// --- ---------- --------------------------------------------------
// 1.0 09/04/1996 Original write
// 1.1 09/30/1998 CHG: Use standard header format
// -----------------------------------------------------------------
// Source: Webmonkey Code Library
// (http://www.hotwired.com/webmonkey/javascript/code_library/)
// -----------------------------------------------------------------

function IsEmailValid(FormName,ElemName){
	var EmailOk = true;
	var Temp = eval('document.'+FormName+'.'+ElemName);
	if(Temp.value.match){//正規表現知っているブラウザなら
		var data = Temp.value.match(/^([\w\.\-]+)@([\w\-]+)\.([\w\.\-]*)[a-zA-Z][a-zA-Z]$/);
		if (!data){
			EmailOk = false;
			alert('正しいE-mailアドレスではありません');
		}
		Temp.focus();
	}
	else{//正規表現知らないブラウザなら
		var AtSym = Temp.value.indexOf('@');
		var Period = Temp.value.lastIndexOf('.');
		var Space = Temp.value.indexOf(' ');
		var Length = Temp.value.length - 1;	// Array is from 0 to length-1
	
		if ((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || (Space  != -1)){
			EmailOk = false;
			alert('正しいE-mailアドレスではありません');
			Temp.focus();
		}
	}
	return EmailOk;
}



// -----------------------------------------------------------------
// Function	 : IsFormComplete
// Language	 : JavaScript
// Description : Checks if all elements in a form have a non-blank value
// Copyright	: (c) 1998 Shawn Dorman
// http://www.goodnet.com/~sdorman/web/IsFormComplete.html
// -----------------------------------------------------------------
// Ver	 Date	 Description of modification
// --- ---------- --------------------------------------------------
// 1.0 08/31/1996 Original write
// 1.1 09/30/1998 CHG: Use standard header format
// -----------------------------------------------------------------
// Source: Webmonkey Code Library
// (http://www.hotwired.com/webmonkey/javascript/code_library/)
// -----------------------------------------------------------------

function IsFormComplete(FormName){
	var x = 0
	var FormOk= true
	while ((x < indispensableForm.length) && (FormOk)){
		var formObj=eval('document.'+FormName+'.'+indispensableForm[x]);
		if(formObj.options && document.all){
			var thisValue=formObj.options[formObj.selectedIndex].value;
			if(thisValue == 0 || thisValue == ''){
				alert('「'+indispensableName[x] +'」を選択してください');
				formObj.focus();
				FormOk = false;
			}
		}
		else{
			if(formObj.value == ''){ 
				alert('「'+indispensableName[x] +'」になにも入力されていません');
				formObj.focus();
				FormOk = false;
			}
		}
		x++
	}
	return FormOk
}

function IsProperLength(formElement,length){
	var isLengthOK = true;
	if(formElement.value.length > length){
		isLengthOK = false;
		formElement.focus();
		alert('規定の文字数をオーバーしました。');
	}
//	alert("formElement.value.length="+formElement.value.length);
	return isLengthOK;
}

var indispensableForm=new Array('e_mail','userName','os_version','computer_maker','computer_type','hd','peta_ver','gizmo_ver','question');
var indispensableName=new Array('メールアドレス','お名前（ニックネーム）','OSのバージョンとサービスパック','お使いのコンピューターのメーカー','お使いのコンピューターの型番','ハードディスクの空き容量','ペタろうのバージョン','GIZMOのバージョン','内容');

function sendData(formName){
	if(!formName) formName='forms[0]';
	var thisObj=eval('document.'+formName);
	var isEmailOK=true;
	if(thisObj.e_mail){
		if(thisObj.e_mail.value != ''){
			isEmailOK=IsEmailValid(formName,'e_mail');
		}
	}
	if(isEmailOK && IsFormComplete(formName) && IsProperLength(thisObj.question,300)){
		return true;//thisObj.submit();
	}else{
		return false;
	}
}
