function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

var clinical = {
				common: {},
				login: {},
				pass: {},
				leftMenu: {},
				form: {},
				doc: {},
				search: {},
				news: {},
				cancel: {},
				mess: {
					USERNAME_AVAILABLE: '使用できます',
					USERNAME_UNAVAILABLE: '使用できません',
					USERNAME_CUR: 'このユーザー名は現在使用中です',
					PASS_NOT_MATCH: 'パスワードが一致しません',
					EMAIL_NOT_MATCH: 'メールアドレスが一致しません',
					EMAIL_INVALID: '不正なメールアドレスです',
					MOBILE_SENT: 'メールを送信しました',
					MOBILE_FAILED: '送信時にエラーが発生しました'
				},
				re: {
					zip: /\d{7}/,
					email: /^[A-Z0-9._%+\-]+@(?:[A-Z0-9\-]+\.)+[A-Z]{2,4}$/i
				},
				kidney: {},
				hostName: location.host
};

// imageのプリローダー
clinical.preloader = {
		loadedImages: [],
		load: function (url){
			var img = this.loadedImages;
			var l = img.length;
			img[l] = document.createElement('img');
			img[l].src = url;
		}
	};

clinical.common.init = function(){
	//:first-child, :last-childをクラスとして追加
	dojo.query(':first-child').addClass('firstChild');
	dojo.query(':last-child').addClass('lastChild');
	//css3の:emptyをクラスとして追加
	dojo.query(':empty').addClass('empty');
	
	//class="btn"はロールオーバーを設定（src属性を_on付きのものに差し替える）
	dojo.query('.btn').forEach(function(node){
		node.originalSrc = dojo.attr(node, 'src');
		node.rolloverSrc = node.originalSrc.replace(/(\.gif|\.jpg|\.png)/, "_on$1");
		clinical.preloader.load(node.rolloverSrc);
	}).connect('onmouseover', function(){
		dojo.attr(this, 'src', this.rolloverSrc);
	}).connect('onmouseout', function(){
		dojo.attr(this, 'src', this.originalSrc);
	});
	
	if (dojo.byId('tp_srch_btn')) {
		dojo.connect(dojo.byId('tp_srch_btn'), 'onmouseover', function(node){
			dojo.addClass('tp_srch_btn', 'btnHover');
		});
		dojo.connect(dojo.byId('tp_srch_btn'), 'onmouseout', function(node){
			dojo.removeClass('tp_srch_btn', 'btnHover');
		});
	}
};

clinical.login.init = function(){
	dojo.byId('id').focus();
};

clinical.loginEnter = function(e){
	if(e.keyCode === dojo.keys.ENTER){
		dojo.byId('loginForm').submit();
	}
	return false;
};

//form
clinical.form.init = function(){
	//set focus to first field

	if(dojo.byId('user') !== null && dojo.byId('user') !== undefined){
		dojo.byId('user').focus();
		//check username button
		dojo.connect(dojo.byId('usernameCheck'), 'onclick', clinical.form.usernameCheck);

		//check matching password
		dojo.connect(dojo.byId('password'), 'onblur', clinical.form.checkPass);
		dojo.connect(dojo.byId('confirm'), 'onblur', clinical.form.checkPass);
	}

	//check matching email
	if (dojo.byId('email1a') !== null && dojo.byId('email1a') !== undefined) {
		dojo.connect(dojo.byId('email1a'), 'onblur', clinical.form.checkEmail);
		dojo.connect(dojo.byId('email1b'), 'onblur', clinical.form.checkEmail);
	}
	if (dojo.byId('email2a') !== null && dojo.byId('email2a') !== undefined) {
		dojo.connect(dojo.byId('email2a'), 'onblur', clinical.form.checkEmail);
		dojo.connect(dojo.byId('email2b'), 'onblur', clinical.form.checkEmail);
	}

	if(dojo.byId('weight') !== null && dojo.byId('weight') !== undefined){
		//calculate bmi
		if(dojo.byId('weight').value !== '' && dojo.byId('height').value !== ''){
			clinical.form.calBmi();
		}
		dojo.connect(dojo.byId('weight'), 'onkeyup', clinical.form.calBmi);
		dojo.connect(dojo.byId('height'), 'onkeyup', clinical.form.calBmi);
	}

	//zip
	if (dojo.byId('zip1') !== null && dojo.byId('zip1') !== undefined) {
		dojo.connect(dojo.byId('zip1'), 'onkeyup', clinical.form.moveZip);
		dojo.connect(dojo.byId('zip2'), 'onkeyup', clinical.form.getAddress);
		clinical.form.oldZip1 = dojo.byId('zip1').value;
		clinical.form.oldZip2 = dojo.byId('zip2').value;
		clinical.form.oldZip = dojo.byId('zip1').value + dojo.byId('zip2').value;
	}

	//submit button
	if (dojo.byId('submitButton')){
		dojo.connect(dojo.byId('submitButton'), 'onclick', function(){
			if (dojo.byId('iAgree')) {
				if(dojo.attr('iAgree', 'checked')){
					document.myForm.submit();
				}
			}else {
				document.myForm.submit();
			}
		});
		dojo.query('#submitButton, #backButton').onmouseover(function(){
			dojo.addClass(this, 'hover');
		}).onmouseout(function(){
			dojo.removeClass(this, 'hover');
		});
	}
	
	//tiken agreement
	if(dojo.byId('iAgree')){
		clinical.form.agreeCheck();
		dojo.connect(dojo.byId('iAgree'), 'onclick', clinical.form.agreeCheck);
	}
};

clinical.form.usernameCheck = function (){
	dojo.xhrPost({
		url: 'https://' + clinical.hostName + '/common/backend.php',
		content: {
			action: 'usernameCheck',
			user: dojo.byId('user').value
		},
		load: function(data, ioArgs){
			if(data === 'true'){
				dojo.removeClass('user', 'textfieldInvalidFormatState');
				dojo.byId('usernameCheckMess').innerHTML = clinical.mess.USERNAME_AVAILABLE;
				dojo.byId('password').focus();
			}else{
				dojo.addClass('user', 'textfieldInvalidFormatState');
				dojo.byId('usernameCheckMess').innerHTML = clinical.mess.USERNAME_UNAVAILABLE;
				dojo.byId('user').select();
			}
		}
	});
};

clinical.form._checkPass = function(){
	if(dojo.byId('password').value !== dojo.byId('confirm').value){
		return false;
	}else{
		return true;
	}
};

clinical.form.checkPass = function(){
	if (dojo.byId('password').value !== '' && dojo.byId('confirm').value !== '') {
		var val = clinical.form._checkPass();
		if (val !== true) {
			dojo.addClass('password', 'textfieldInvalidFormatState');
			dojo.addClass('confirm', 'textfieldInvalidFormatState');
			dojo.byId('checkPassMess').innerHTML = clinical.mess.PASS_NOT_MATCH;
		}
		else {
			dojo.removeClass('password', 'textfieldInvalidFormatState');
			dojo.removeClass('confirm', 'textfieldInvalidFormatState');
			dojo.byId('checkPassMess').innerHTML = '';
		}
	}
};

clinical.form.checkEmail = function(){
	var a,
		b,
		mess;
	if(this.id === 'email1a' || this.id === 'email1b'){
		a = dojo.byId('email1a');
		b = dojo.byId('email1b');
		mess = dojo.byId('email1Mess');
	}else{
		a = dojo.byId('email2a');
		b = dojo.byId('email2b');
		mess = dojo.byId('email2Mess');
	}

	if(a.value !== '' && b.value !== ''){
		if(a.value !== b.value){
			dojo.addClass(a, 'textfieldInvalidFormatState');
			dojo.addClass(b, 'textfieldInvalidFormatState');
			mess.innerHTML = clinical.mess.EMAIL_NOT_MATCH;
		}else{
			dojo.removeClass(a, 'textfieldInvalidFormatState');
			dojo.removeClass(b, 'textfieldInvalidFormatState');
			mess.innerHTML = '';
		}
	}

};

clinical.form.calBmi = function(){
	var h = parseFloat(dojo.byId('height').value),
		w = parseFloat(dojo.byId('weight').value),
		bmi = dojo.byId('bmiScore'),
		num;

	if(isNaN(h) || isNaN(w)){
		bmi.innerHTML = '--.-';
	}else{
		h = h/100;
		num = w/Math.pow(h, 2);
		bmi.innerHTML = dojo.number.round(num, 1);
	}
};

clinical.form.submit = function(){
	document.myForm.submit();
};

clinical.form.getInput = function(){
	return {
		user: dojo.byId('user').value,
		password: dojo.byId('password').value,
		confirm: dojo.byId('confirm').value
	};
};

clinical.form.getAddress = function(){
	var zip1 = dojo.byId('zip1').value,
		zip2 = dojo.byId('zip2').value,
		pref = dojo.byId('pref'),
		city = dojo.byId('city'),
		rest = dojo.byId('rest');
	if (clinical.form.oldZip !== (zip1 + zip2)) {
		if (clinical.re.zip.test(zip1 + zip2)) {
			dojo.xhrPost({
				url: '/common/backend.php',
				handleAs: 'json-comment-filtered',
				content: {
					action: 'getAddress',
					post: zip1 + zip2
				},
				load: function(data, ioArgs){
					if (data !== null) {
						pref.value = data.fuken;
						if (city !== null && city !== undefined) {
							city.value = data.si;
						}
						if (rest !== null && rest !== undefined) {
							rest.value = data.mati;
							rest.focus();
						}
						else {
							dojo.byId('email1a').focus();
						}
						clinical.form.oldZip1 = zip1;
						clinical.form.oldZip2 = zip2;
						clinical.form.oldZip = zip1 + zip2;
					}
				}
			});
		}
	}
};

clinical.form.moveZip = function(){
	if (clinical.form.oldZip1 !== dojo.byId('zip1').value) {
		if (/\d{3}/.test(dojo.byId('zip1').value)) {
			dojo.byId('zip2').focus();
		}
	}
};

clinical.form.agreeCheck = function(){
	if(!dojo.attr('iAgree', 'checked')){
		dojo.addClass('submitButton', 'disabled');
	}else{
		dojo.removeClass('submitButton', 'disabled');
	}
};

clinical.doc.init = function(){
	var sendMail = dojo.byId('sendMail'),
		mobileForm = dojo.byId('mobileForm'),
		inquiryConfirm = dojo.byId('inquiryConfirm'),
		iAgree = dojo.byId('iAgree');
	
	if (sendMail) {
		dojo.connect(dojo.byId('sendMail'), 'onclick', clinical.doc.sendMail);
		dojo.connect(dojo.byId('mobileForm'), 'onkeypress', clinical.doc.catchEnter);
	}
	
	if(inquiryConfirm){
		dojo.connect(inquiryConfirm, 'onclick', clinical.doc.confirmClick);
		dojo.connect(dojo.byId('inquiryClear'), 'onclick', function(e){
			dojo.stopEvent(e);
			document.myForm.reset();
		});
		dojo.query('#inquiryClear, #inquiryConfirm').onmouseover(function(){
			dojo.addClass(this, 'hover');
		}).onmouseout(function(){
			dojo.removeClass(this, 'hover');
		});
	}
	
	//agreement
	if(iAgree){
		clinical.doc.agreeCheck();
		dojo.connect(iAgree, 'onclick', clinical.doc.agreeCheck);
	}
};

clinical.doc.agreeCheck = function(){
	if(!dojo.attr('iAgree', 'checked')){
		dojo.addClass('inquiryConfirm', 'disabled');
	}else{
		dojo.removeClass('inquiryConfirm', 'disabled');
	}
};

clinical.doc.confirmClick = function(){
	if(dojo.attr('iAgree', 'checked')){
		document.myForm.submit();
	}
};

clinical.doc.catchEnter = function(e){
	if(e.keyCode === dojo.keys.ENTER){
		clinical.doc.sendMail(e);
	}
};

clinical.doc.sendMail = function(e){
	dojo.stopEvent(e);

	if(clinical.re.email.test(dojo.byId('mobileEmail').value)){
		//clear error mess
		dojo.byId('mobileMess').innerHTML = '';

		dojo.xhrPost({
			url: '/common/backend.php',
			content: {
				action: 'sendMobileEmail',
				email: dojo.byId('mobileEmail').value
			},
			load: function(data, ioArgs){
				if(data === 'OK'){
					//show ok mess
					dojo.byId('mobileMess').innerHTML = clinical.mess.MOBILE_SENT;
				}else{
					//show error mess
					dojo.byId('mobileMess').innerHTML = clinical.mess.MOBILE_FAILED;
				}
			}
		});
	}else{
		//show error mess
		dojo.byId('mobileMess').innerHTML = clinical.mess.EMAIL_INVALID;
	}
};

clinical.news.init = function(){
	dojo.query('dt,dt a', 'news').onclick(clinical.news.showNews);
};

clinical.news.showNews = function(e){
	dojo.stopEvent(e);
	var node = clinical.findDD(this),
		ease = dojo.fx.easing.quadOut,
		ani = null;

	//close news
	if (dojo.hasClass(node, 'openNews')) {
		dojo.removeClass(node, 'openNews');
		ani = dojo.fx.wipeOut({
			node: node,
			duration: 500,
			easing: ease
		});
	}else{
		//open news
		dojo.addClass(node, 'openNews');
		ani = dojo.fx.wipeIn({
			node: node,
			duration: 500,
			easing: ease
		});
	}
	ani.play();
};

clinical.findDD = function(node){
	if(node.tagName === 'A'){
		node = node.parentNode;
	}
	while(node.tagName !== 'DD'){
		node = node.nextSibling;
	}
	return node;
};

clinical.pass.init = function(){
	if (dojo.byId('email') !== null && dojo.byId('email') !== undefined) {
		dojo.byId('email').focus();
	}

	if(dojo.byId('submitButton') !== null && dojo.byId('submitButton') !== undefined){
		dojo.connect(dojo.byId('submitButton'), 'onclick', function(){
			document.myForm.submit();
		});
	}

	if(dojo.byId('newName') !== null && dojo.byId('newName') !== undefined){
		dojo.byId('newName').focus();
		//check username button
		dojo.connect(dojo.byId('usernameCheck'), 'onclick', clinical.pass.checkUsername);

		//check matching password
		dojo.connect(dojo.byId('password'), 'onblur', clinical.form.checkPass);
		dojo.connect(dojo.byId('confirm'), 'onblur', clinical.form.checkPass);
	}
};

clinical.pass.checkUsername = function(){
	if(dojo.byId('newName').value === dojo.byId('curName').value){
		dojo.byId('usernameCheckMess').innerHTML = clinical.mess.USERNAME_CUR;
	}else{
		dojo.xhrPost({
			url: '/common/backend.php',
			content: {
				action: 'usernameCheck',
				user: dojo.byId('newName').value
			},
			load: function(data, ioArgs){
				if(data === 'true'){
					dojo.removeClass('newName', 'textfieldInvalidFormatState');
					dojo.byId('usernameCheckMess').innerHTML = clinical.mess.USERNAME_AVAILABLE;
					dojo.byId('password').focus();
				}else{
					dojo.addClass('newName', 'textfieldInvalidFormatState');
					dojo.byId('usernameCheckMess').innerHTML = clinical.mess.USERNAME_UNAVAILABLE;
					dojo.byId('newName').select();
				}
			}
		});
	}
};

clinical.cancel.init = function(){
	dojo.connect(dojo.byId('subButton'), 'onclick', function(e){
		dojo.stopEvent(e);
		document.myForm.submit();
	});
};

clinical.search.init = function(){
	dojo.connect(dojo.byId('searchSub'), 'onclick', clinical.search.submit);
	dojo.connect(dojo.byId('searchForm'), 'onkeypress', function(e){
		if(e.keyCode === dojo.keys.ENTER){
			clinical.search.submit();
		}
	});
};

clinical.search.submit = function(){
	dojo.byId('searchForm').submit();
};

clinical.kidney.init = function(){
	dojo.connect(dojo.byId('gfrForm'), 'onsubmit', clinical.kidney.cal);
	dojo.connect(dojo.byId('gfrForm'), 'onkeypress', function(e){
		if(e.keyCode === dojo.keys.ENTER){
			clinical.kidney.cal(e);
		}
	});
};

clinical.kidney.cal = function(e){
	dojo.stopEvent(e);
	
	//sanatize data
	var gfr,
		sex = dojo.byId('sex').value,
		age = dojo.byId('age').value,
		cr = dojo.byId('cr').value;
	
	//calulate value
	if(sex === '0'){
		gfr = 0.741 * 175 * Math.pow(age, -0.203) * Math.pow(cr, -1.154);
	}else{
		gfr = 0.742 * 0.741 * 175 * Math.pow(age, -0.203) * Math.pow(cr, -1.154);
	}
	dojo.byId('gfr').innerHTML = Math.round(gfr);
};
