/*
Movie Walker JavaScript - global common functions, plugins or classes
http://movie.walkerplus.com/
 *
Copyright (c) KADOKAWA MARKETING ALL RIGHTS RESERVED.
 *
Created: Yuya Amano - 2009-08-31 17:10
Revision: -
*/
//配列もしくはオブジェクトのキーが存在するか確認
function array_key_exists ( key, dataAry ) { if( !dataAry || (dataAry.constructor !== Array && dataAry.constructor !== Object) ){ return false; } return key in dataAry; }
//置換関数
function replace_strings(str, reg, target){ if(target == undefined || target == null){ target = "&nbsp;"; } result = str.replace(eval("/" + reg.replace(/\$/g, "\\$") + "/g"), target); return result; }
//JSONオブジェクト→シリアライズSTRING
(function($){$.toJSON=function(o)
{if(typeof(JSON)=='object'&&JSON.stringify)
return JSON.stringify(o);var type=typeof(o);if(o===null)
return"null";if(type=="undefined")
return undefined;if(type=="number"||type=="boolean")
return o+"";if(type=="string")
return $.quoteString(o);if(type=='object')
{if(typeof o.toJSON=="function")
return $.toJSON(o.toJSON());if(o.constructor===Date)
{var month=o.getUTCMonth()+1;if(month<10)month='0'+month;var day=o.getUTCDate();if(day<10)day='0'+day;var year=o.getUTCFullYear();var hours=o.getUTCHours();if(hours<10)hours='0'+hours;var minutes=o.getUTCMinutes();if(minutes<10)minutes='0'+minutes;var seconds=o.getUTCSeconds();if(seconds<10)seconds='0'+seconds;var milli=o.getUTCMilliseconds();if(milli<100)milli='0'+milli;if(milli<10)milli='0'+milli;return'"'+year+'-'+month+'-'+day+'T'+
hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
if(o.constructor===Array)
{var ret=[];for(var i=0;i<o.length;i++)
ret.push($.toJSON(o[i])||"null");return"["+ret.join(",")+"]";}
var pairs=[];for(var k in o){var name;var type=typeof k;if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;if(typeof o[k]=="function")
continue;var val=$.toJSON(o[k]);pairs.push(name+":"+val);}
return"{"+pairs.join(", ")+"}";}};$.evalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);return eval("("+src+")");};$.secureEvalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};$.quoteString=function(string)
{if(string.match(_escapeable))
{return'"'+string.replace(_escapeable,function(a)
{var c=_meta[a];if(typeof c==='string')return c;c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+string+'"';};var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var _meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};})(jQuery);

/*
Movie Walker JavaScript - jQuery jquery.cookie.js
http://movie.walkerplus.com/
 *
Copyright (c) KADOKAWA MARKETING ALL RIGHTS RESERVED.
 *
Created: Yuya Amano - 2009-08-31 17:10
Revision: -
*/
(function ($) {
$.fn.cookie = function(name, value, params) {
	var options = {
		'expires' : '',//日数(int)もしくはDateオブジェクトで指定
		'path' : '/',//デフォルトは、ドキュメントルート
		'domain' : '',//ない場合は省略(ブラウザデフォルト)
		'secure' : ''//基本設定したくないよね
	};
	//paramsから必要なデータを上書き
	if(typeof(params) == 'object'){
		for(option in params){
			if(array_key_exists(option, options)){
				//値をサニタイズしたいね
				options[option] = params[option];
			}
		}
	}
	//引数に何か指定されていた場合はクッキーを設定もしくは削除
	if (typeof(value) != 'undefined') {
		//nullが渡された場合は、クッキーを削除
		if (value === null) {
			value = '';
			options.expires = -1;
		}
		/*
		* 渡されたパラメーターからオプションをそれぞれのオプションを設定
		*/
		//有効期間の設定を日数か、UTCのDateオブジェクトで指定する
		var expires = '';
		if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
			var date;
			if (typeof options.expires == 'number') {
				date = new Date();
				date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
			} else {
				date = options.expires;
			}
			expires = '; expires=' + date.toUTCString();
		}
		//クッキーパス 指定がない時はドキュメントルート
		var path = options.path ? '; path=' + (options.path) : '';
		//クッキードメイン
		var domain = options.domain ? '; domain=' + (options.domain) : '';
		//クッキーセキュア設定
		var secure = options.secure ? '; secure' : '';
		//パス、ドメイン、セキュア設定がない場合はundefinedになる
		document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
	} else { 
		//引数が取得キーだけだった場合	
		var cookieValue = null;
		if (document.cookie && document.cookie != '') {
			var cookies = document.cookie.split(';');
			var cookie = '';
			var cookieName = ''
			for (var i = 0; i < cookies.length; i++) {
				cookie = jQuery.trim(cookies[i]);
				cookieName = cookie.substring(0, name.length + 1);
				//指定した名前であれば値を取得してループ終了
				if (cookieName == (name + '=')) {
					cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
					break;
				}
			}
		}
		return cookieValue;
	}
};
})(jQuery);

(function ($) {
$.fn.sideHistory = function() {
	var thCookieName = '_MW_hisTh';
	var mvCookieName = '_MW_hisMv';
	var thHistoryData = new Array();//映画館の履歴
	var mvHistoryData = new Array();//映画の履歴
	var param = false;//システムから引き渡されるデータ
	if(typeof(jsonData) == 'object'){
		//値が渡されたらデータをコピー(falseを上書き)
		param = jsonData;
	}
	//保存されているクッキーデータを取得
	thHistoryData = eval($.fn.cookie(thCookieName));
	mvHistoryData = eval($.fn.cookie(mvCookieName));
	//クッキーがない、もしくはevalの結果が配列でない場合
	if(!thHistoryData || thHistoryData.constructor !== Array){
		thHistoryData = new Array();
	}
	//クッキーがない、もしくはevalの結果が配列でない場合
	if(!mvHistoryData || mvHistoryData.constructor !== Array){
		mvHistoryData = new Array();
	}
	//paramデータがある場合にのみ
	if(param){
		if(param.type == 'th'){
			var index = 0;
			var flag = false
			//重複データがあるか確認
			while(thHistoryData[index]){ if(param.url == thHistoryData[index]['url']){ flag = true; } index++; }
			//重複データがない場合にのみ
			if(!flag){ 
				if(thHistoryData.length > 2){
					thHistoryData.pop();
				}
				thHistoryData.unshift(param);
			}
		}else if(param.type == 'mo'){
			var index = 0;
			var flag = false
			//重複データがあるか確認
			while(mvHistoryData[index]){ if(param.url == mvHistoryData[index]['url']){ flag = true; } index++; }
			//重複データがない場合にのみ
			if(!flag){ 
				if(mvHistoryData.length > 2){
					mvHistoryData.pop();
				}
				mvHistoryData.unshift(param);
			}
		}
	}
	//クッキーに新しいデータを保存(シリアライズしてから)※保存日数は90日
	$.fn.cookie(thCookieName, $.toJSON(thHistoryData), { 'expires' : 90 });
	$.fn.cookie(mvCookieName, $.toJSON(mvHistoryData), { 'expires' : 90 });
	//DOMを生成
	var thHistory = $('#historyTheater');
	var mvHistory = $('#historyMovie');
	
	var index = 0;
	while(thHistoryData[index]){
		thHistory.append('<dd><a href="' + thHistoryData[index]['url'] +'">' +thHistoryData[index]['name']+ '</a></dd>');
		index++;
	}
	if(index > 0){ thHistory.show(); }
	
	var index = 0;
	while(mvHistoryData[index]){
		mvHistory.append('<dd><a href="' + mvHistoryData[index]['url'] +'">' +mvHistoryData[index]['name']+ '</a></dd>');
		index++;
	}
	if(index > 0){ mvHistory.show(); }
};
})(jQuery);


/*
Movie Walker JavaScript - jQuery global.js
http://movie.walkerplus.com/
 *
Copyright (c) KADOKAWA MARKETING ALL RIGHTS RESERVED.
 *
Created: Yuya Amano - 2009-07-10 20:20
Revision: 2009-07-22 20:35
*/
//ヘッダー：グローバル|ローカルテキストサーチアクション
(function ($) {

	$.fn.globalSearch = function(){
		var inputtedStr = '';
		var selected = 'eiga';
		var dfObj = {
			'movie':'映画のタイトル',
			'news':'監督/俳優/女優/美術/字幕 等々'
		};
		var idObj = {
			'movie':'#radioType_Movie',
			'news':'#radioType_CastStaff',
			'text':'#searchFieldText'
		}
		$('#searchField input[name^=comkind]').click(function(){
			inputtedStr = getInputted();
			selected = this.value;
			fillTextField();
			for(i in idObj){
				$(idObj[i]).removeClass('selected');
			}
			for(i in dfObj){
				if(i == selected){
					$(idObj[i]).addClass('selected');
					$(idObj['text']).removeClass();
					$(idObj['text']).addClass('wait');
					break;
				}
			}
		});
		$('#searchFieldText').focus(function(){
			inputtedStr = getInputted();
			fillTextField('focus');
			$(idObj['text']).removeClass();
			$(idObj['text']).addClass('ready');
		}).blur(function(){
			inputtedStr = getInputted();
			fillTextField();
			$(idObj['text']).removeClass();
			$(idObj['text']).addClass('wait');
		});

		//状況に応じて、テキストフィールド内のテキストを変更
		function fillTextField(type){
			var str = '';
			if(inputtedStr != ''){
				str = inputtedStr;
			}else{
				for(i in dfObj){ if(i == selected){ (type == 'focus') ? str = '' : str = dfObj[i]; } }
			}
			$('#searchFieldText').attr('value',str);
		}

		//入力されているテキストのみを取得
		function getInputted(){
			var str = $(idObj['text']).attr('value');
			//入力テキストが空でない場合
			if(str != ''){
				var f = false;
				for(i in dfObj){ if(dfObj[i] == str){ f = true; } }
				//入力テキストが初期入力値でない場合
				if(!f){ return str; }
			}
			return '';
		}
	}
})(jQuery);



$(document).ready(function(){
	$('#globalSearch').globalSearch();
	$('#history').sideHistory();
});

