YAHOO.namespace( "ME" ); 
var me = YAHOO.ME;
me.CANDIDATE_VIEW_COUNT_UP_SERVICE_LINK = unescape( getMetaValueOf( "cvcusl" ) ).replace( /&amp;/g, "&" );
me.FETCH_CANDIDATE_SERVICE_LINK = unescape( getMetaValueOf( "fcsl" ) ).replace( /&amp;/g, "&" );
me.SHOW_CANDIDATE_PAGE_LINK = unescape( getMetaValueOf( "scpl" ) ).replace( /&amp;/g, "&" );
//me.FETCH_CANDIDATE_AS_PDF_SERVICE_LINK = unescape( getMetaValueOf( "fbapsl" ) ).replace( /&amp;/g, "&" );
me.cdInitCallback = {
	success: function( response ){	
		var root = response.responseXML.documentElement;
		
		me.cdId.value = root.getElementsByTagName( "candidate_id" )[0].firstChild.nodeValue;
		me.cdCandidateId.innerHTML = me.cdId.value;
		me.cdAgeRange.innerHTML = root.getElementsByTagName( "age_range" )[0].firstChild.nodeValue;
		me.cdSex.innerHTML = root.getElementsByTagName( "sex" )[0].firstChild.nodeValue;
		me.cdEducation.innerHTML = root.getElementsByTagName( "education" )[0].firstChild.nodeValue;
		me.cdOccupation.innerHTML = root.getElementsByTagName( "occupation" )[0].firstChild.nodeValue;
	
		var qualification1 = root.getElementsByTagName( "qualification1" );
		var qualification2 = root.getElementsByTagName( "qualification2" );
		var qualification3 = root.getElementsByTagName( "qualification3" );
		var qualification = new String();
		if( qualification1.length > 0 || qualification2.length > 0 || qualification3.length > 0 ){
			if( qualification1.length > 0 ){
				qualification += qualification1[0].firstChild.nodeValue;
				
				var qualificationName = root.getElementsByTagName( "qualification_name1" );
				if( qualificationName.length > 0 ){
					qualification += ("&nbsp;（" +  qualificationName[0].firstChild.nodeValue + "）" );
				}
			}
			
			if( qualification2.length > 0 ){
				qualification += ("<br/>" + qualification2[0].firstChild.nodeValue);
				
				var qualificationName = root.getElementsByTagName( "qualification_name2" );
				if( qualificationName.length > 0 ){
					qualification += ("&nbsp;（" +  qualificationName[0].firstChild.nodeValue + "）" );
				}
			}
			
			if( qualification3.length > 0 ){
				qualification += ("<br/>" + qualification3[0].firstChild.nodeValue);
				
				var qualificationName = root.getElementsByTagName( "qualification_name3" );
				if( qualificationName.length > 0 ){
					qualification += ("&nbsp;（" +  qualificationName[0].firstChild.nodeValue + "）" );
				}
			}
		}else{
			qualification = "なし";
		}
		me.cdQualification.innerHTML = qualification;
			
		var experience1 = root.getElementsByTagName( "experience1" );
		var experience2 = root.getElementsByTagName( "experience2" );
		var experience3 = root.getElementsByTagName( "experience3" );
		var experience = new String();
		if( experience1.length > 0 || experience2.length > 0 || experience3.length > 0 ){
			if( experience1.length > 0 ){
				experience += experience1[0].firstChild.nodeValue
				
				var experienceRange = root.getElementsByTagName( "experience_range1" );
				if( experienceRange.length > 0 ){
					experience += ("&nbsp;（" +  experienceRange[0].firstChild.nodeValue + "）" );
				}
			}
			
			if( experience2.length > 0 ){
				experience += ("<br/>" + experience2[0].firstChild.nodeValue);
				
				experienceRange = root.getElementsByTagName( "experience_range2" );
				if( experienceRange.length > 0 ){
					experience += ("&nbsp;（" +  experienceRange[0].firstChild.nodeValue + "）" );
				}
			}
			
			if( experience3.length > 0 ){
				experience += ("<br/>" + experience3[0].firstChild.nodeValue);
				
				experienceRange = root.getElementsByTagName( "experience_range3" );
				if( experienceRange.length > 0 ){
					experience += ("&nbsp;（" +  experienceRange[0].firstChild.nodeValue + "）" );
				}
			}
		}else{
			experience = "なし";
		}
		me.cdExperience.innerHTML = experience;
		
		me.cdAddress.innerHTML = root.getElementsByTagName( "address" )[0].firstChild.nodeValue;
		me.cdMessage.innerHTML = root.getElementsByTagName( "message" )[0].firstChild.nodeValue.replace( /\r\n|\n|\r/g, "<br/>" );
		me.cdShowCandidatePageLink.href = me.SHOW_CANDIDATE_PAGE_LINK.replace( "S<:ID:>", me.cdId.value );
		me.cdOnCreated.innerHTML = root.getElementsByTagName( "on_created" )[0].firstChild.nodeValue;
		me.cdOnUpdated.innerHTML = root.getElementsByTagName( "on_updated" )[0].firstChild.nodeValue;
		//me.cdFetchCandidateAsPdfServiceLink.href = me.FETCH_CANDIDATE_AS_PDF_SERVICE_LINK.replace( "<:ID:>", me.cdId.value );
		
		me.cdYahooBookmark.href = "javascript:openYahooBookmarkWindow('キャンディデイト（ＩＤ:" + me.cdId.value + "）','" + me.cdShowCandidatePageLink.href + "');undefined;";
		
		urchinTracker( "/Candidate" );// Google Analytics
	},

	failure: function( response ){	
		me.cd.cancel();
		
		if( response.status == 404 ){
			alert( "存在しないページへアクセスしました。\n\n"
				+ "キャンディデイトはすでに削除されている可能性があります。\n"
				+ "お手数ですがトップページへ戻り手続きを最初からやり直してください。\n"
				+ "ERROR CODE=" + response.status );
		}else{
			alert( "正常に処理を進める事ができませんでした。\n\n"
				+ "ネットワークにトラブルが発生したか、もしくはシステム内でエラーが発生した可能性があります。\n"
				+ "お手数ですがしばらくしてから再度手続きを行ってください。\n"
				+ "ERROR CODE=" + response.status );
		}
	},
	
	timeout: 3000
};


me.cdSubmitCallback = {
	success: function( response ){
		hideCWD();
		
		var root = response.responseXML.documentElement;
		var emailAddress = root.getElementsByTagName( "requester_email_address" )[0].firstChild.nodeValue;
		alert( "「" + emailAddress + "」へメールを送信しました。\n\n"
				+ "メールの内容に従って、記事掲載者の返信先メールアドレスを取得してください。" );
	},
	
	failure: function( response ){		
		hideCWD();
		
		if( response.status == 404 ){
			alert( "存在しないページへアクセスしました。\n\n"
				+ "キャンディデイトはすでに削除されている可能性があります。\n"
				+ "ページを再度読み込み最新の情報を表示してください。\n"
				+ "ERROR CODE=" + response.status );
		}else{
			alert( "正常に処理を進める事ができませんでした。\n\n"
				+ "ネットワークにトラブルが発生したか、もしくはシステム内でエラーが発生した可能性があります。\n"
				+ "お手数ですがしばらくしてから再度手続きを行ってください。\n"
				+ "ERROR CODE=" + response.status );
		}
	},
	
	timeout: 10000
};
	
me.cdValicateCallback = function(){
	var emailAddress1 = trim( this.getData().cd_email_address1 );
	var emailAddress2 = trim( this.getData().cd_email_address2 );
	
	if( emailAddress1 == null || emailAddress1 == "" || emailAddress2 == null || emailAddress2 == "" ){
		alert( "メールアドレスが記入されていません。\n\n"
						+ "掲載者の返信先を受け取るメールアドレスをご記入ください。\n"
						+ "ご記入いただいたメールアドレスは非公開です。" );
		return false;
	}
	
	var emailAddress = emailAddress1 + '@' + emailAddress2;
	if( !isValidEmailAddress( emailAddress ) ){
		alert( "不適当なメールアドレスが記入されています。\n\n"
						+ "掲載者さまへの返信先を受け取るメールアドレスをご記入ください。\n"
						+ "ご記入いただいたメールアドレスは非公開です。" );
		return false;
		
	}else if( isKeitaiEmailAddress( emailAddress ) ){
		alert( "携帯電話のメールアドレスをご記入いただく事はできません。" );
		return false;
	}
	
	var url = unescape( getMetaValueOf( "rceasl" ) ).replace( /&amp;/g, "&" )
		.replace( "<:ID:>", me.cdId.value ).replace( "<:EMAIL_ADDRESS:>", emailAddress );
	document.getElementById( "cd_form" ).action = url;

	showCWD();
	
	return true;
};
	
me.cdViewCountUpCallBack = {
	success: function( response ){
		var id = response.responseXML.documentElement.getElementsByTagName( "id" )[0].firstChild.nodeValue;
		var viewCount = response.responseXML.documentElement.getElementsByTagName( "view_count" )[0].firstChild.nodeValue;
		
		var viewCountNew = document.getElementById( "candidate_view_count_new" + id );
		if( viewCountNew != null ){
			viewCountNew.innerHTML = viewCount;
		}
		//var viewCountTop = document.getElementById( "view_count_top" + id );
		//if( viewCountTop != null ){
		//	viewCountTop.innerHTML = viewCount;
		//}
		var viewCountSearch = document.getElementById( "candidate_view_count_search" + id );
		if( viewCountSearch != null ){
			viewCountSearch.innerHTML = viewCount;
		}
	},
	
	failure: function( response ){
	},
	
	timeout: 1500
}

function initCD(){
	me.cdId = document.getElementById( "cd_id" );
	me.cdCandidateId = document.getElementById( "cd_candidate_id" );
	me.cdAgeRange = document.getElementById( "cd_age_range" );
	me.cdSex = document.getElementById( "cd_sex" );
	me.cdEducation = document.getElementById( "cd_education" );
	me.cdQualification = document.getElementById( "cd_qualification" );
	me.cdOccupation = document.getElementById( "cd_occupation" );
	me.cdExperience = document.getElementById( "cd_experience" );
	me.cdAddress = document.getElementById( "cd_address" );
	me.cdMessage = document.getElementById( "cd_message" );
	me.cdShowCandidatePageLink = document.getElementById( "show_candidate_page_link" );
	me.cdOnCreated = document.getElementById( "cd_on_created" );
	me.cdOnUpdated = document.getElementById( "cd_on_updated" );
	me.cdYahooBookmark = document.getElementById( "cd_yahoo_bookmark" );
	
	var cd = new YAHOO.widget.Dialog( "candidate_dialog" );
	cd.cfg.queueProperty( "visible", false );
	cd.cfg.queueProperty( "monitorresize", true ); 
	cd.cfg.queueProperty( "width", "700px" );
	cd.cfg.queueProperty( "xy", [0,0] );
	cd.cfg.queueProperty( "fixedcenter", false );
	cd.cfg.queueProperty( "constraintoviewport", false );
	cd.cfg.queueProperty( "close", false );
	cd.cfg.queueProperty( "modal", true );
	cd.cfg.queueProperty( "underlay", "none" );
	cd.cfg.queueProperty( "draggable", true );
	var effects = [ {effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25} ];
	cd.cfg.queueProperty( "effect", effects );
	var kl = new YAHOO.util.KeyListener( document, {keys:27}, {fn:cancelCD,scope:cd, correctScope:true} );
	cd.cfg.queueProperty( "keylisteners", kl );
	
	cd.callback = me.cdSubmitCallback; 	
	cd.validate = me.cdValicateCallback;
	cd.hideEvent.subscribe( clearCD, null, true );
	cd.render();
	me.cd = cd;
}

function showCD( id ){	
	var url = me.FETCH_CANDIDATE_SERVICE_LINK.replace( "<:ID:>", id );
	YAHOO.util.Connect.asyncRequest( "POST", url, me.cdInitCallback, null ); 
	
	me.cd.center();
	me.cd.show();
		
	url = me.CANDIDATE_VIEW_COUNT_UP_SERVICE_LINK.replace( "<:ID:>", id );
	YAHOO.util.Connect.asyncRequest( "POST", url, me.cdViewCountUpCallBack, null );
}

function submitCD(){	
	me.cd.submit();
}

function cancelCD(){
	me.cd.cancel();
}

function clearCD(){
	me.cdId.value = "";
	me.cdCandidateId.innerHTML = "";
	me.cdAgeRange.innerHTML = "";
	me.cdSex.innerHTML = "";
	me.cdEducation.innerHTML = "";
	me.cdQualification.innerHTML = "";
	me.cdOccupation.innerHTML = "";
	me.cdExperience.innerHTML = "";
	me.cdAddress.innerHTML ="";
	me.cdMessage.innerHTML = "";
	me.cdShowCandidatePageLink.href = "";
	me.cdOnCreated = "";
	me.cdOnUpdated = "";
	me.cdYahooBookmark.href = "";
}

function initCWD(){
	var cwd = new YAHOO.widget.Panel( "cd_wait_dialog" );
	cwd.cfg.queueProperty( "width", "280px" );
	cwd.cfg.queueProperty( "fixedcenter", true );
	cwd.cfg.queueProperty( "close", false );
	cwd.cfg.queueProperty( "draggable", false );
	cwd.cfg.queueProperty( "modal", true );
	cwd.cfg.queueProperty( "visible", false );
	cwd.cfg.queueProperty( "underlay", "none" );
	cwd.setHeader( "処理中です。しばらくお待ちください。" );
	cwd.setBody( "<img src='http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif'/>" );
	cwd.render( document.body );
	me.cwd = cwd;
}

function showCWD(){
	me.cwd.center();
	me.cwd.show();
}

function hideCWD(){
	me.cwd.hide();
}
