/* ***************************************
 * グローバル変数の設定
 */

var global = {};


// サイトのドメインを抽出してsiteDomainに格納
var siteDomain = location.host.replace(/:[0-9]*/, '');
var urlParams = getParam();
var cookieOpt = { path:"/" };
var mmApiUrl = "https://drugdiscovery-job.com:2443/webapi/regist/mail_magazine_and_member";
//    mmApiUrl = "http://develop.drugdiscovery-job.com/webapi/regist/mail_magazine_and_member";
    
var loading = "<div class='loadingWrap'><img src='/img_cmn/loading.gif' /></div>";




/* ***************************************
 * 汎用関数１：コンテンツカテゴリーを取得（サイトトップの場合は'home'が返ります
 */

function getCategory(){
	var d, n;
	d = document.URL.replace(/http.*\-job\.com:?[0-9]*\//, '');
	d = d.replace(/;.*/, '');
	d = d.replace(/\?.*/, '');
	
	if(!d | d == 'index.html') return 'home';
	n = d.split('/');
	if( n[0] == 'develop' ){
		return n[1] ;
	}else if( n[0] == 'support' ){
		if( n[1] == '' || n[1] == 'index.html' ){
			return 'support';
		}else{
			return n[1].replace(".html","")
		}
	}else{
		if( n[0] == '#' ) n[0] = 'home';
		return n[0];
	}
}

/* ***************************************
 * 汎用関数：URLパラメーター解析
 */

function getParam(){
     var params = {};
     var url = document.URL;
     var str = url.match(/\?.*/) + "";
     str = str.replace(/\?/, '');
     var paras = str.split("&");
     for(var i = 0; i < paras.length; i++ ){
          var row = paras[i].split("=");
          if(row[0]){
               var key = row[0];
               params[key] = row[1];
          }
     }
     return params;
}


/* **************************************************
 * cookieを取得してオブジェクトに格納
 */

function getCookie(){
	var c = document.cookie;
	var d = c.split("; ");
	var n = d.length;
	
	var result = {};
	
	for( var i = 0; i < n; i++ ){
		var tmp = d[i].split("=");
		result[tmp[0]] = tmp[1];
	}
	
	return result;
}




/* ***************************************
 * 全文検索
 */

this.setTextSearch = function(){
	var setSearchWord, myUrl = document.URL;
	var st = $("#searchText");
	// 検索ボックスに検索キーワードをセットする
	if( myUrl.match(/jobsearch\/search\/(.*)/) ){
		setSearchWord = RegExp.$1;
		st.val(decodeURI(setSearchWord));
	}
	
	// 検索ボタンを押下したときに検索を実行
	$("#textSearchExe").click(function(){ exeSearch(); });
	
	// 検索ボックス内でEnterを押下したときに検索を実行
	st.keydown(function(e){
		// エンターキーが押され、なおかつ中身が空でない時、検索が実行される。
		if( e.keyCode == 13 && st.val() != "" ) exeSearch();
	});

	function exeSearch(){
		// 変数定義
		var str, myhost = location.host;
		
		// ローカル環境用の書き分け
		if( myUrl.match(/http:\/\/127\.0\.0\.1:[0-9]*\/([a-z]*)\/.*/) ) myhost = myhost + "/" + RegExp.$1;
		location.href = "http://" + myhost + "/jobsearch/search/" + encodeURI(st.val());
		return false;
	}
};


/* ******************************************
 * URLの日本語パラメーターをURLエンコードする
 */

this.encodeURLParamToUTF8 = function(){
	$("#wrap a").each(function(){
		var tarUrl = $(this).attr("href");
		if(tarUrl.indexOf('searchWord') != -1){
			tarUrl = encodeURI(tarUrl);
			$(this).attr("href", tarUrl);
		}
	});
}


/* ***************************************
 *   地図検索関連
 */
this.setSearchMap = function(){
	$("#mapSearch a").hover(function(){
		$(this).attr("class", "on");
	},function(){
		$(this).removeClass("on");
	});
	
	$("#mapSearchLeft table a").hover(function(){
		$(this).parents("tr").css("background-color", "#ffff96");

	}, function(){
		$(this).parents("tr").css("background-color", "#ffffff");

	});
};


/* ************************************
 * 検索ボックスの透かし
 */
this.setWatermark = function(){
	if( $("#searchText").val() == "" ){
		$("#watermark label").fadeIn(80);	
	}

	$("#searchText").click(function(){
		$("#watermark label").fadeOut(80);
	});
	
	$("#searchText").blur(function(){
		if( $("#searchText").val() == "" ){
			$("#watermark label").fadeIn(80);	
		}
	});
};

this.setEnterKey = function(){
	
	$("#searchText").keydown(function(e){
		var myUrl = document.URL;
		//エンターキーが押され、なおかつ中身が空でない時、検索が実行される。
		if( e.keyCode == 13 && $("#searchText").val() != "" ){
			// 変数定義
			var str, myhost;
			myhost = location.host;
			
			// ローカル環境用の書き分け
			if( myUrl.match(/http:\/\/127\.0\.0\.1:[0-9]*\/([a-z]*)\/.*/) ) myhost = myhost + "/" + RegExp.$1;
			location.href = "http://" + myhost + "/jobsearch/search/" + encodeURI($("#searchText").val());

		}
	})
}



/* ************************************
 * お問い合わせフォームのチェックボックス後の表示内容
 */

this.contactForm = function(){
	show();
	$(".contact").change(function() { show(); });
	
	function show(){
		var tid = "#" + $("input.contact:checked").val();
		if( $(tid).css("display") == "none" ){
			$(".response").css("display", "none");
			$(tid).fadeIn("100");
		}
	}
}

		
/* ************************************
 * gnavi現在見ているページに対応して画像が変わる
 */
 
this.setGnaviClass = function(){
	var str = getCategory();
	if( str == "qanda" || str == "casestudy" ) str = 'knowhow';
	if( str != null ){
		$("li." + str + " a").addClass("gnaviOn");
	}
}

/* ************************************
 * メインパネルを設定する
 */
 
this.setMainPanel = function(){
	var cat, str;
	cat = getCategory();
	if( cat == "support" ){
		str = document.URL.match(/flow/);
		if( str == "flow" ){
			$("#title img").attr("src","/original/imgs/flowPanel.png").attr("height","100");
		}else{
			$("#title img").attr("src","/original/imgs/supportPanel.png").attr("height","100");
		}
	}else if( cat == "contact" ){
		$("#title").css("display","none");
	}else if( cat.match(/jobdetail|joblist|search/) ){
		$("#title img").attr("src","/original/imgs/jobofferPanel.png").attr("height","200");
	}else if( cat == 'style') {
		$("#title img").attr("src","/original/imgs/stylePanel.png").attr("height","100");
	}else if( cat == 'success' ){
		$("#title img").attr("src","/original/imgs/successPanel.png").attr("height","100");
	}else if( cat == 'private' ){
		$("#title img").attr("src","/original/imgs/privatePanel.png").attr("height","100");
	}else if( cat == 'home' ){
		$("#title").css("display","none");
	}else{
		$("#title").css("display","none");
	};
	
}


/* ************************************
 * フッターのサイト内リンクを設定
 */
 
this.setFooterLink = function(){
	var cat = getCategory();
	if( cat.match(/home|joblist|search|jobdetail/)){
		$("#footerLink .pt2").css('display', 'none');
	}else if( cat.match(/private|support|success|style|flow|advice/)){
		$("#footerLink .pt1").css('display', 'none');
	}
	
	
	var obj = $("#fl" + cat);
	if(obj.length != 0){
		var str = $("a", obj).text();
		obj.empty();
		obj.text(str);
	}
};

/* ************************************
 * パンくずリストの場所を変更する
 */
 
this.translateTopicPath = function(){
	var dammy =  $("#dammyTopicPath");
	var h = dammy.html();
	dammy.remove();
	
	$("#topicPath").html(h);
};


/* *****************************************************
 *  ソーシャルブックマークURLを設定
 */

this.setBookmarkURL = function(){
	var url		= encodeURI(document.URL);
	var title	= encodeURI($("title").text());
	var str;
	
	str	= $("#hatebuAnchor").attr('href');
	$("#hatebuAnchor").attr('href', str + url);
	
	str = $("#hatebuEntry").attr('src');
	$("#hatebuEntry").attr('src' , str + url);
		
	str	= "http://bookmarks.yahoo.co.jp/action/bookmark?t=" + title + "&u=" + url;
	$("#yahooBMAnchor").attr('href', str);
	
	str	=  "http://www.google.com/bookmarks/mark?op=edit&hl=ja&bkmk="
			+ url + "&title=" + title;
	$("#googleBMAnchor").attr('href', str);
	
						
	$("#deliciousAnchor").click(function(){
		str	= 'http://delicious.com/save?v=5&noui&jump=close&url='
			 + url + "&title=" + title;
		window.open(str, 'delicious', 'toolbar=no,width=550,height=550');
	});
	
	str	=  "http://clip.livedoor.com/clip/add?link="
			 + url + "&title=" + title + "&jump=ref";
	$("#livedoorBMAnchor").attr('href', str );
	
	str =  "http://bookmark.fc2.com/user/post?url=" + url + "&title=" + title;
	$("#fc2BMAnchor").attr('href', str);
	
};




/* ************************************
 * 法務お仕事ナビ　フッターサイトリンクタイトルの置き換え
 */
this.setHoumuFooterLinkTtlReplace = function(){
	var str = "まだある！専門分野に特化した転職サイト";
	if( siteDomain.indexOf('houmu') != -1){
		$("#fSiteLink2 h3").html(str);
		$("#fSiteLink h3").html(str);
	}
};

/* ************************************
 * 心臓ペースメーカー・除細動期の置き換え
 */
this.setPacemakerBannerLinkReplace = function(){
	if( siteDomain.indexOf('pacemakers') != -1 || siteDomain.indexOf('medicalventilator') != -1  ){
		$("#index #companyList div a, #companyList div a, #fCntcompanyList a, #styleTbl #companyBanner a").attr("href", "http://" + siteDomain + "/private/index.html");
	}
};


/* ************************************
 * メールマガジン登録フォームの画像削除
 */

this.deleteFollowImgAtMailmagagineRegist = function(){
	if( document.URL.indexOf('mail_regist.html') != -1){
		$("#registTopOther").hide();
	}
};

/* ************************************
 * 追加コンテンツサイドバースクロールフォロー
 */
 
this.setScrollBox = function(){
 	$sidebar = $("#followContent"),
 	$window = $(window),
 	offset = $sidebar.offset();
 	
 	if( offset != null ){
	 	topPadding = 10;
	 	$window.scroll(function(){
	 		if ($window.scrollTop() > offset.top){
	 			$sidebar.stop().animate({
	 				marginTop:$window.scrollTop() - offset.top + topPadding }, 2600, 'quart');
 			} else {
 				$sidebar.stop().animate({
 					marginTop:0
 				});
 			}
 		});
	}
};


/* *************************************************
 * 成功者の声のサムネイルを差し替え 
 */

this.changeSuccessThumbnail = function(){
	var success = $("#success");
	var turl;
	
	if( success.size() != 0 ){
		success.find("dl").each(function(){
			var t = $(this);
			turl = t.find("dt").find("a").attr("href");
			
			turl = turl.replace(/.*detail\//, '');
			turl = turl.replace(/\.html/, '');
			turl = turl.replace(/\?.*/, '');
			
			var str = t.find("dd:eq(0)").find("p").html();
			
			var fname = turl + ".png";
			if( str.indexOf("男性") != -1 ){
				fname = "man" + fname;
			}else{
				fname = "woman" + fname;
			}
			
			t.find("img").attr("src", "/img_cmn/" + fname);
			
		});
	}
};


/* *************************************************
 * ロガー 
 * arg1 _LOGGER bool
 */

this.logger = function(str, instant){
	if( instant ) _LOGGER = true;
	if( _LOGGER ) console.log(getNow() + " DEBUG " + str);
	if( instant ) _LOGGER = false;
	
	function getNow(){
		var d   = new Date();
		var h   = d.getHours();
		var m   = d.getMinutes();
		var s   = d.getSeconds();
		var ms  = d.getMilliseconds();
		var str = h + ":" + m + ":" + s + "." + ms;
		return str;
	}
};





$(document).ready(function(){
	encodeURLParamToUTF8();
	setTextSearch();
	setSearchMap();
	setPacemakerBannerLinkReplace();
	setWatermark();
	setEnterKey();
	setFooterLink();
	setBookmarkURL();
	setHoumuFooterLinkTtlReplace();
	translateTopicPath();
	contactForm();
	setGnaviClass();
	setMainPanel();
	deleteFollowImgAtMailmagagineRegist();
	setScrollBox();
	changeSuccessThumbnail();
	
$(function(){

	//アニメーション速度設定
		var Speed = "30";

	//初期表示設定
		$("#gnav li ul").css("display","none");

	//ホバーイベント
		$("#gnav li").hover(
			function(){
				$(">ul:not(:animated)",this).css("visibility","visible").fadeIn(Speed);
				$(">ul >li:not(:animated)",this).css("display","none").slideDown(Speed);
				$(">ul >li ul",this).css("visibility","hidden");
			},
			function(){
				$(">ul",this).fadeOut(Speed,function(){
					$("ul",this).css("visibility","hidden");
				});
				$(">ul >li",this).slideUp(Speed);
			}
		);

	});

	
	jQuery.easing.quart = function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	};
});

