//
function changeConsultantTab(id) {
    if (id == 'tanabe') {
        document.getElementById('tanabe').style.display  = 'block';
        document.getElementById('taya').style.display  = 'none';
    }
    else if (id == 'taya') {
        document.getElementById('tanabe').style.display  = 'none';
        document.getElementById('taya').style.display  = 'block';
    }
	else {
        document.getElementById('tanabe').style.display  = 'block';
        document.getElementById('taya').style.display  = 'none';
    }
}

function saveLanguageFilter(language, value){
	expiration = new Date();
	expiration.setTime(expiration.getTime() + (730 * 1000 * 60 * 60 * 24));
	expirationGMT = expiration.toGMTString();
	document.cookie = escape(language) + "=" + escape(value) + "; expires=" + expirationGMT + "; domain=.subio.jp; path=/";
}

function checkProductsDownloadFields() {
	var errorMessage = '';
	var fieldFirstName = Field.present('fieldFirstName');
	var fieldLastName = Field.present('fieldLastName');
	var fieldEmail = Field.present('fieldEmail');
	var fieldTelephone = Field.present('fieldTelephone');
	var fieldOrganization = Field.present('fieldOrganization');
	var fieldDepartment = Field.present('fieldDepartment');
	var fieldCountry = Field.present('fieldCountry');
	if (fieldFirstName) {
	} else {
		errorMessage = errorMessage + '- Enter First Name.\n';
	}
	if (fieldLastName) {
	} else {
		errorMessage = errorMessage + '- Enter Last Name.\n';
	}
	if (fieldEmail) {
	} else {
		errorMessage = errorMessage + '- Enter Email Address.\n';
	}
	if (fieldTelephone) {
	} else {
		errorMessage = errorMessage + '- Enter Telephone.\n';
	}
	if (fieldOrganization) {
	} else {
		errorMessage = errorMessage + '- Enter Organization.\n';
	}
	if (fieldDepartment) {
	} else {
		errorMessage = errorMessage + '- Enter Department.\n';
	}
	if (fieldCountry) {
	} else {
		errorMessage = errorMessage + '- Select Your Country.\n';
	}
	if (errorMessage != '') {
		alert (errorMessage);
		return false;
	} else {
		return true;
	}
}

function checkSeminarRegistrationFields() {
	var errorMessage = '';
	var fieldReceiptNumber = Field.present('fieldReceiptNumber');
	var fieldFirstName = Field.present('fieldFirstName');
	var fieldLastName = Field.present('fieldLastName');
	var fieldEmail = Field.present('fieldEmail');
	var fieldCountry = Field.present('fieldCountry');
	var fieldOrganization = Field.present('fieldOrganization');
	var fieldDepartment = Field.present('fieldDepartment');
	var fieldPhone = Field.present('fieldPhone');
	if (fieldReceiptNumber) {
	} else {
		errorMessage = errorMessage + '- Enter Receipt Number.\n';
	}
	if (fieldFirstName) {
	} else {
		errorMessage = errorMessage + '- Enter First Name.\n';
	}
	if (fieldLastName) {
	} else {
		errorMessage = errorMessage + '- Enter Last Name.\n';
	}
	if (fieldEmail) {
	} else {
		errorMessage = errorMessage + '- Enter Email Address.\n';
	}
	if (fieldCountry) {
	} else {
		errorMessage = errorMessage + '- Select Your Country.\n';
	}
	if (fieldOrganization) {
	} else {
		errorMessage = errorMessage + '- Enter Organization.\n';
	}
	if (fieldDepartment) {
	} else {
		errorMessage = errorMessage + '- Enter Department.\n';
	}
	if (fieldPhone) {
	} else {
		errorMessage = errorMessage + '- Enter Phone Number.\n';
	}
	if (errorMessage != '') {
		alert (errorMessage);
		return false;
	} else {
		return true;
	}
}

function showSubGlobalNavi(id) {
	$(id).style.display  = 'block';
}

function hideSubGlobalNavi(id) {
	$(id).style.display  = 'none';
}

/*
 * Downloadページ上でのプラットフォーム切り替え処理
 */
(function() {
	
	/**
	 * プラットフォームの種類。
	 */
	var Platforms = {
		WIN32: "Win32",
		WIN64: "Win64",
		MAC: "Mac"
	};
	
	/**
	 * プラットフォーム毎の動作環境。
	 */
	var SystemRequirementInformation = {
		"Win32": {
			"OS": "Windows XP, Vista, 7",
			"RAM": "2GB or more",
			"CPU": "2.0GHz or faster",
			"Free Disk Space": "5GB or more",
			"Screen Size": "1024 x 768 or more"},
		"Win64": {
			"OS": "Windows XP, Vista, 7",
			"RAM": "4GB or more",
			"CPU": "2.0GHz or faster",
			"Free Disk Space": "5GB or more",
			"Screen Size": "1024 x 768 or more"},
		"Mac": {
			"OS": "Mac OS 10.5 or later",
			"RAM": "2GB or more",
			"CPU": "Intel processor",
			"Free Disk Space": "5GB or more",
			"Screen Size": "1024 x 768 or more",
			"Java": "Java SE 6. See Java Preferences.app."}
	};
	
	/**
	 * プラットフォーム毎のSalesforceからの戻りURL。
	 */
	var ReturnURLs = {
		"Win32": "http://www.subio.jp/products/download.downloading",
		"Win64": "http://www.subio.jp/products/download.downloading64",
		"Mac":   "http://www.subio.jp/products/download.downloading.mac"
	};
	
	/**
	 * プラットフォーム毎のSalesforceへ送るパラメータ。
	 */
	var SalesforcePlatformIdParameters = {
		"Win32": "00N10000000bK1u",
		"Win64": "00N10000000dDaP",
		"Mac": "00N10000000dDaU"
	};
	
	/**
	 * ユーザによるプラットフォーム選択に応じてビューを変更するクラス。
	 * 変更対象は、プラットフォーム選択のタブ、動作環境、Salesforceへ送るパラメータ、Salesforceからの戻りURLの4箇所。
	 * 
	 */
	var PlatformSelector = Class.create({
		PLATFORM_PREFIX: "platform",
		SYSTEM_REQUIREMENTS_PREFIX: "systemRequirements",
		selectedPlatform: Platforms.WIN32,
		
		/**
		 * コンストラクタ。
		 */
		initialize: function() {
			$$("ul.platformTab li a").each(function(anchor) {
				anchor.observe("click", this._onClick.bind(this));
			}.bind(this));

			this._updateTabs();
			this._updateSystemRequirements();
			this._updateSalesforcePlatformIdParameter();
			this._updateReturnURL();
		},

		/**
		 * 指定したplatformを選択状態にする。
		 * 
		 * @param {Platforms} platform
		 */		
		select: function(platform) {
			if (this.selectedPlatform == platform) {
				return;
			}
			for (var id in Platforms) {
				if (platform == Platforms[id]) {
					this.selectedPlatform = platform;
					break;
				}
			}
			this._updateTabs();
			this._updateSystemRequirements();
			this._updateSalesforcePlatformIdParameter();
			this._updateReturnURL();
		},
		
		/**
		 * タブがクリックされた場合の処理を記述する。
		 * 
		 * @param {MouseEvent} event マウスイベント
		 * @private
		 */
		_onClick: function(event) {
			this.select(Event.element(event).id.substring(this.PLATFORM_PREFIX.length));
		},
		
		/**
		 * タブの表示を更新する。
		 * プラットフォームが変更された際に呼び出される。
		 * 
		 * @private
		 */
		_updateTabs: function() {
			$$("ul.platformTab li").each(function(listItem) {
				var anchor = listItem.getElementsByTagName("a")[0];
				var id = anchor.id;
				var selectedPlatform = this.selectedPlatform;
				if (id.endsWith(selectedPlatform)) {
					listItem.addClassName("self");
				} else {
					listItem.removeClassName("self");
				}
				
				var anchorToTreat = $(this.PLATFORM_PREFIX + Platforms.WIN64);
				["leftEdgeTab", "rightEdgeTab"].each(function(className) {
					anchorToTreat.removeClassName(className);
				});
				if (selectedPlatform == Platforms.WIN32) {
					anchorToTreat.addClassName("rightEdgeTab");
				} else if (selectedPlatform == Platforms.MAC) {
					anchorToTreat.addClassName("leftEdgeTab");
				}
			}.bind(this));
		},
		
		/**
		 * 動作環境の表示を更新する。
		 * プラットフォームが変更された際に呼び出される。
		 * 
		 * @private
		 */
		_updateSystemRequirements: function() {
			var requirements = SystemRequirementInformation[this.selectedPlatform];
			if (!requirements) {
				return;
			}
			var html = "";
			for (var name in requirements) {
				html += "<li>";
				html += name;
				html += ": ";
				html += requirements[name];
				html += "</li>";
			}
			$$("div.products div.content ul.list")[0].update(html);
		},
		
		/**
		 * Salesforceに送るPlatformを表すパラメータ名を変更する。
		 * プラットフォームが変更された際に呼び出される。
		 * 
		 * @private
		 */
		_updateSalesforcePlatformIdParameter: function() {
			var parameter = SalesforcePlatformIdParameters[this.selectedPlatform];
			if (!parameter) {
				return;
			}
			$("salesforcePlatformIdParameter").setAttribute("name", parameter);
		},

		/**
		 * Salesforceからの戻りURLを更新する。
		 * プラットフォームが変更された際に呼び出される。
		 * 
		 * @private
		 */		
		_updateReturnURL: function() {
			var url = ReturnURLs[this.selectedPlatform];
			if (!url) {
				return;
			}
			Form.Element.setValue("retURL", url);
		}
	});
	
	// ドキュメントロード時に発動。
	document.observe("dom:loaded", function() {
		if (document.body.id == "download") {
			new PlatformSelector();
		}
	});
})();