//---------------------------------------------------------
// ドメイン検索画面のドメイン選択用のスクリプト
//---------------------------------------------------------
function selectDomainJS(frm, serchDomainName, domainType) {

	var serchDomainNameHidden = document.createElement("input");
	serchDomainNameHidden.type = "hidden";
	serchDomainNameHidden.id = "searchDomainName";
	serchDomainNameHidden.name = "data[Domain][searchDomainName]";
	serchDomainNameHidden.value = serchDomainName;
	frm.appendChild(serchDomainNameHidden);

	var domainTypeHidden = document.createElement("input");
	domainTypeHidden.type = "hidden";
	domainTypeHidden.id = "domainType";
	domainTypeHidden.name = "data[Domain][domainType]";
	domainTypeHidden.value = domainType;
	frm.appendChild(domainTypeHidden);

	frm.submit();
	// document.selectDomainForm.getElementById('DomainSearchDomainName').value
	// = serchDomainName;
}

//--------------------------------------------
// Formのアクション先を変更する
// --------------------------------------------
function changeFormAction(frm, actionStr) {
	frm.action = actionStr;
	frm.submit();
}

//------------------------------------------------------------------------------------------------
// 指定されたfNameの値がvalueと一致する場合は、checkedを付ける
// ------------------------------------------------------------------------------------------------
function chackedRadio(form, fName, value) {
	for (i = 0; i < form[fName].length; i++) {
		if (form[fName][i].value == value)
			form[fName][i].checked = true;
	}
}

//------------------------------------------------------------------------------------------------
// 指定されたfromNameリストのvalueを取得しtoNameに設定する。
// fromNameが配列の場合は、連結したvalueを設定する。
// ------------------------------------------------------------------------------------------------
function copyValue(form, fromName, toName) {

	form[toName].value = getValue(form, fromName);
}

//------------------------------------------------------------------------------------------------
//指定されたfNameのcheckedが設定されているvalueを取得し返す。
//------------------------------------------------------------------------------------------------
function getChackedRadio(form, fName) {
	for (i = 0; i < form[fName].length; i++) {
		if (form[fName][i].checked == true)
			return form[fName][i].value;
	}
	return '';
}


//------------------------------------------------------------------------------------------------
// 指定されたfromNameのvalueを取得し返す。
// ------------------------------------------------------------------------------------------------
function getValue(form, fromName) {
	var valu = '';
	if (_isArray(fromName)) {
		valu = getArrayValue(form, fromName);
	} else {
		valu = form[fromName].value;
	}
	return valu;
}
function _isArray(a) {
	return (a.constructor === Array);
}

//------------------------------------------------------------------------------------------------
// 指定されたnameリストのvalueを取得し連結して返す。
// ------------------------------------------------------------------------------------------------
function getArrayValue(form, nameList) {
	var str = "";

	for ( var i = 0; i < nameList.length; i++) {
		str += form[nameList[i]].value;
	}

	return str;
}

//---------------------------------------------------------------------------------------------------------------------------------------
//
//
//
// お客様情報をコピーする。
//
//
//
// ---------------------------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------
// お客様情報をgTLD申請情報にコピーする。
// ---------------------------------------------
function formCopyGtld(form, gtldName) {

	// 法人・個人
	var userAttribute = getValue(form, "data[Customer][userAttribute]");
	if ('法人/団体' == userAttribute) {
		// カテゴリ
		chackedRadio(form, "data[" + gtldName + "][category]", '法人');

		// 名義
		copyValue(form, "data[Customer][company]", "data[" + gtldName
				+ "][name]");
	} else {
		// カテゴリ
		chackedRadio(form, "data[" + gtldName + "][category]", '個人');

		// 名義
		copyValue(form, new Array('data[Customer][lastName]',
				'data[Customer][firstName]'), "data[" + gtldName + "][name]");

		// copyValue(form, getArrayValue(form, [ "data[Customer][lastName]",
		// "data[Customer][firstName]" ]), "data[" + gtldName + "][name]");
	}

	// 郵便番号
	copyValue(form, "data[Customer][postal]", "data[" + gtldName + "][postal]");
	// 都道府県
	copyValue(form, "data[Customer][pref]", "data[" + gtldName + "][pref]");
	// 市区郡
	copyValue(form, "data[Customer][city]", "data[" + gtldName + "][city]");

	// 町名・番地
	copyValue(form, "data[Customer][street]", "data[" + gtldName + "][street]");
	// ビル名
	copyValue(form, "data[Customer][building]", "data[" + gtldName + "][street2]");


	// 電話番号
	copyValue(form, "data[Customer][phone]", "data[" + gtldName + "][phone]");
	// ＦＡＸ
	copyValue(form, "data[Customer][fax]", "data[" + gtldName + "][fax]");
	// Mail
	//copyValue(form, "data[Customer][mail]", "data[" + gtldName + "][mail]");

	// getArrayValue(form, ["data[Customer][lastName]",
	// "data[Customer][category]"])

	// alert( );
}

//---------------------------------------------
// お客様情報を汎用JP申請情報(公開連絡窓口情報)にコピーする。
// ---------------------------------------------
function formCopyGpJpCum(form) {

	// 郵便番号
	copyValue(form, "data[Customer][postal]", "data[DomainGpJpCum][postal]");
	// 都道府県
	copyValue(form, "data[Customer][pref]", "data[DomainGpJpCum][pref]");
	// 市区郡・町名・番地
	copyValue(form, new Array("data[Customer][city]",
	"data[Customer][street]"), "data[DomainGpJpCum][address1]");
	// 建物名
	copyValue(form, "data[Customer][building]", "data[DomainGpJpCum][address2]");
	// 電話番号1
	copyValue(form, "data[Customer][phone]", "data[DomainGpJpCum][phone1]");
	// ＦＡＸ
	copyValue(form, "data[Customer][fax]", "data[DomainGpJpCum][fax]");
	// E-mail1
	copyValue(form, "data[Customer][mail]", "data[DomainGpJpCum][mail1]");

}

//---------------------------------------------
// お客様情報を汎用JP申請情報(登録者情報)にコピーする。
// ---------------------------------------------
function formCopyGpJpReg(form) {
	// 登録者名(日本語)
	copyValue(form, "data[Customer][company]", "data[DomainGpJpReg][name]");
	// 部署名
	copyValue(form, "data[Customer][division]", "data[DomainGpJpReg][division]");
	// 登録担当者名
	copyValue(form, new Array("data[Customer][lastName]",
			"data[Customer][firstName]"), "data[DomainGpJpReg][chgName]");

	// 郵便番号
	copyValue(form, "data[Customer][postal]", "data[DomainGpJpReg][postal]");
	// 都道府県
	copyValue(form, "data[Customer][pref]", "data[DomainGpJpReg][pref]");
	// 市区郡・町名・番地
	copyValue(form, new Array("data[Customer][city]",
	"data[Customer][street]"), "data[DomainGpJpReg][address1]");
	// 建物名
	copyValue(form, "data[Customer][building]", "data[DomainGpJpReg][address2]");
	// 電話番号
	copyValue(form, "data[Customer][phone]", "data[DomainGpJpReg][phone]");
	// ＦＡＸ
	copyValue(form, "data[Customer][fax]", "data[DomainGpJpReg][fax]");
	// E-mail
	copyValue(form, "data[Customer][mail]", "data[DomainGpJpReg][mail]");

}

//---------------------------------------------
// お客様情報を属性JP申請情報(組織情報)にコピーする。
// ---------------------------------------------
function formCopyAttJpOrg(form) {
	// 組織名
	copyValue(form, "data[Customer][company]", "data[DomainAttJpOrg][name]");
	// 組織名（かな）
	copyValue(form, "data[Customer][companyKana]",
			"data[DomainAttJpOrg][nameKana]");

	// 郵便番号
	copyValue(form, "data[Customer][postal]", "data[DomainAttJpOrg][postal]");
	// 住所
	copyValue(form, new Array("data[Customer][pref]", "data[Customer][city]",
			"data[Customer][street]", "data[Customer][building]"), "data[DomainAttJpOrg][address]");
	// Mail
	copyValue(form, "data[Customer][mail]", "data[DomainAttJpOrg][mail]");

}

//---------------------------------------------
// お客様情報を属性JP申請情報(登録担当者情報、技術連絡担当者情報)にコピーする。
// ---------------------------------------------
function formCopyAttJpRegTech(form, attJpName) {
	// 氏名
	copyValue(form, new Array("data[Customer][lastName]",
			"data[Customer][firstName]"), "data[" + attJpName + "][name]");
	// 電子メール
	copyValue(form, "data[Customer][mail]", "data[" + attJpName + "][mail]");
	// 組織名
	copyValue(form, "data[Customer][company]", "data[" + attJpName
			+ "][orgName]");

	// 郵便番号
	copyValue(form, "data[Customer][postal]", "data[" + attJpName + "][postal]");
	// 住所
	copyValue(form, new Array("data[Customer][pref]", "data[Customer][city]",
			"data[Customer][street]", "data[Customer][building]"), "data[" + attJpName + "][address]");
	// 部署名
	copyValue(form, "data[Customer][division]", "data[" + attJpName
			+ "][division]");
	// 電話番号
	copyValue(form, "data[Customer][phone]", "data[" + attJpName + "][phone]");
	// ＦＡＸ
	copyValue(form, "data[Customer][fax]", "data[" + attJpName + "][fax]");
	// 通知アドレス
	copyValue(form, "data[Customer][mail]", "data[" + attJpName
			+ "][noticeMail]");

}
//---------------------------------------------
//gTLDにて申請情報をコピーする。
//---------------------------------------------
function formCopyGtldToGtld(form, gtldNameFrom, gtldNameTo) {

	// 名義
	copyValue(form,"data[" + gtldNameFrom + "][name]", "data[" + gtldNameTo + "][name]");
	// 名義(英語)
	copyValue(form,"data[" + gtldNameFrom + "][nameEn]", "data[" + gtldNameTo + "][nameEn]");
	// カテゴリ
//	copyValue(form,"data[" + gtldNameFrom + "][category]", "data[" + gtldNameTo + "][category]");

	// カテゴリ
	chackedRadio(form, "data[" + gtldNameTo + "][category]", getChackedRadio(form, "data[" + gtldNameFrom + "][category]"));

	
	// 郵便番号
	copyValue(form, "data[" + gtldNameFrom + "][postal]", "data[" + gtldNameTo + "][postal]");
	// 都道府県
	copyValue(form, "data[" + gtldNameFrom + "][pref]", "data[" + gtldNameTo + "][pref]");
	// 市区郡
	copyValue(form, "data[" + gtldNameFrom + "][city]", "data[" + gtldNameTo + "][city]");
	// 町名・番地
	copyValue(form, "data[" + gtldNameFrom + "][street]", "data[" + gtldNameTo + "][street]");
	// ビル名など
	copyValue(form, "data[" + gtldNameFrom + "][street2]", "data[" + gtldNameTo + "][street2]");
	// 町名・番地(英語)
	copyValue(form, "data[" + gtldNameFrom + "][streetEn]", "data[" + gtldNameTo + "][streetEn]");
	// ビル名など(英語)
	copyValue(form, "data[" + gtldNameFrom + "][streetEn2]", "data[" + gtldNameTo + "][streetEn2]");
	// 市区郡(英語)
	copyValue(form, "data[" + gtldNameFrom + "][cityEn]", "data[" + gtldNameTo + "][cityEn]");

	// 都道府県(英語)
	copyValue(form, "data[" + gtldNameFrom + "][prefEn]", "data[" + gtldNameTo + "][prefEn]");
	// 電話番号
	copyValue(form, "data[" + gtldNameFrom + "][phone]", "data[" + gtldNameTo + "][phone]");
	// ＦＡＸ
	copyValue(form, "data[" + gtldNameFrom + "][fax]", "data[" + gtldNameTo + "][fax]");
	// Mail
	//copyValue(form, "data[" + gtldNameFrom + "][mail]", "data[" + gtldNameTo + "][mail]");

}	

//---------------------------------------------
//属性JPにて登録社情報を技術者情報にコピーする。
//---------------------------------------------
function formCopyAttJpRegToTech(form, gtldNameFrom, gtldNameTo) {
	// JPNICハンドル
	copyValue(form,"data[" + gtldNameFrom + "][jpnicHandle]", "data[" + gtldNameTo + "][jpnicHandle]");
	// 氏名
	copyValue(form,"data[" + gtldNameFrom + "][name]", "data[" + gtldNameTo + "][name]");
	// Last, First
	copyValue(form,"data[" + gtldNameFrom + "][nameEn]", "data[" + gtldNameTo + "][nameEn]");
	// 電子メール
	copyValue(form,"data[" + gtldNameFrom + "][mail]", "data[" + gtldNameTo + "][mail]");
	// 組織名
	copyValue(form,"data[" + gtldNameFrom + "][orgName]", "data[" + gtldNameTo + "][orgName]");
	// Organization
	copyValue(form,"data[" + gtldNameFrom + "][orgNameEn]", "data[" + gtldNameTo + "][orgNameEn]");
	// 郵便番号
	copyValue(form,"data[" + gtldNameFrom + "][postal]", "data[" + gtldNameTo + "][postal]");
	// 住所
	copyValue(form,"data[" + gtldNameFrom + "][address]", "data[" + gtldNameTo + "][address]");
	// Address
	copyValue(form,"data[" + gtldNameFrom + "][addressEn]", "data[" + gtldNameTo + "][addressEn]");
	// 部署名
	copyValue(form,"data[" + gtldNameFrom + "][division]", "data[" + gtldNameTo + "][division]");
	// Division
	copyValue(form,"data[" + gtldNameFrom + "][divisionEn]", "data[" + gtldNameTo + "][divisionEn]");
	// 肩書
	copyValue(form,"data[" + gtldNameFrom + "][title]", "data[" + gtldNameTo + "][title]");
	// Title
	copyValue(form,"data[" + gtldNameFrom + "][titleEn]", "data[" + gtldNameTo + "][titleEn]");
	// 電話番号
	copyValue(form,"data[" + gtldNameFrom + "][phone]", "data[" + gtldNameTo + "][phone]");
	// ＦＡＸ番号
	copyValue(form,"data[" + gtldNameFrom + "][fax]", "data[" + gtldNameTo + "][fax]");
	// 通知アドレス
	copyValue(form,"data[" + gtldNameFrom + "][noticeMail]", "data[" + gtldNameTo + "][noticeMail]");

}


//------------------------------------------------------------------------------------------------
// プラン・オプション選択画面
// プランによりオプションのdisabledを設定する。
//
// ------------------------------------------------------------------------------------------------
function changePlan(form) {
	// 選択されているオプションを取得
	var planValue = getCheckdValue(form, 'data[Order][planId]');

	// 携帯サイト作成プラン
	if ("11" == planValue) {
		form['data[Order][optionMemberCount]'].disabled = true;
		form['data[Order][optionItemsCount]'].disabled = true;
		form['data[Order][optionDataCount]'].disabled = true;
		form['data[Order][optionMailMagazineCount]'].disabled = true;
		setListDisabled(form, 'data[optionSettlement][]', true);
	}
	// 携帯ネットショッププラン
	if ("12" == planValue) {
		form['data[Order][optionMemberCount]'].disabled = false;
		form['data[Order][optionItemsCount]'].disabled = false;
		form['data[Order][optionDataCount]'].disabled = true;
		form['data[Order][optionMailMagazineCount]'].disabled = false;
		setListDisabled(form, 'data[optionSettlement][]', false);
	}
	// 携帯販促プラン
	if ("13" == planValue) {
		form['data[Order][optionMemberCount]'].disabled = false;
		form['data[Order][optionItemsCount]'].disabled = true;
		form['data[Order][optionDataCount]'].disabled = false;
		form['data[Order][optionMailMagazineCount]'].disabled = false;
		setListDisabled(form, 'data[optionSettlement][]', true);
	}
}

//------------------------------------------------------------------------------------------------
//ドメイン条件画面
//ドメイン条件により項目のdisabledを設定する。
//
//------------------------------------------------------------------------------------------------
function changeDomainOrder(form) {
	// 選択されているオプションを取得
	var orderType = getCheckdValue(form, 'data[Domain][orderType]');

	// 新規に独自ドメインを取得する
	if ("1" == orderType) {
		setListDisabled(form, 'data[Domain][domainShiftType]', true);
		form['data[Domain][shiftDomainName]'].disabled = true;
		form['data[Domain][subDomainNameSub]'].disabled = true;
		form['data[Domain][subDomainNameMain]'].disabled = true;
	}
	// 独自ドメインを使用しない
	if ("2" == orderType) {
		setListDisabled(form, 'data[Domain][domainShiftType]', true);
		form['data[Domain][shiftDomainName]'].disabled = true;
		form['data[Domain][subDomainNameSub]'].disabled = true;
		form['data[Domain][subDomainNameMain]'].disabled = true;
	}
	// 既に取得済みの独自ドメインを使用する
	if ("3" == orderType) {
		setListDisabled(form, 'data[Domain][domainShiftType]', false);
		form['data[Domain][shiftDomainName]'].disabled = false;
		form['data[Domain][subDomainNameSub]'].disabled = true;
		form['data[Domain][subDomainNameMain]'].disabled = true;
	}
	// 既に取得済みの独自ドメインのサブドメインを使用する
	if ("4" == orderType) {
		setListDisabled(form, 'data[Domain][domainShiftType]', true);
		form['data[Domain][shiftDomainName]'].disabled = true;
		form['data[Domain][subDomainNameSub]'].disabled = false;
		form['data[Domain][subDomainNameMain]'].disabled = false;
	}
}

//----------------------------------------------------------------------------------------------
//
// その他 共通
//
//----------------------------------------------------------------------------------------------
//指定された項目のdisabledを設定する。
// 項目がListの場合に設定可能。
function setListDisabled(form, name, bool) {
	for (i = 0; i < form[name].length; i++) {
		form[name][i].disabled = bool;
	}
}
//指定された項目(radio、checkbox)の
// チェックされているvalue値を返す。
function getCheckdValue(form, name) {
	for (i = 0; i < form[name].length; i++) {
		if (form[name][i].checked == true)
			return form[name][i].value;
	}
}