/* ---------------------------------------- *
 * フーチューぶ用一覧方式プレーヤー
 * kansai.futube.player.js
 *   Version 1.0
 *      created W.Masuda 2010-02-16
 * ---------------------------------------- */
var futubeParamsDefault = {
	ParamsFileName	: 'kansai.futube.player.params.js',
	ShopConfigBase	: 'http://kansai2.futube.net/ftv/api/shopconfig.php',
	SkinBase		: 'http://kansai.futube.net/',
	PlayerBase		: 'http://kansai.futube.net/',
	PlayListBase	: 'http://kansai2.futube.net/ftv/api/index.php',
	Shop		: {
		Id				: '',
		Ipp				: '5',
		Player			: 'player-licensed.swf',
		Skin			: 'stylish.swf'
	},
	Navi		: {
		TopDisable		: false,
		TopText			: '&lt;&lt;',
		TopTitle		: '先頭ページ',
		PrevDisable		: false,
		PrevText		: '&lt;',
		PrevTitle		: '前ページ',
		LastDisable		: false,
		LastText		: '&gt;&gt;',
		LastTitle		: '最終ページ',
		NextDisable		: false,
		NextText		: '&gt;',
		NextTitle		: '最終ページ',
		NumberDisable	: false,
		FontSize		: '12px',
		TextColor		: 'black',
		LinkColor		: 'blue',
		LinkDecoration	: 'none',
		Css				: {
							'font-size'	: '12px',
							'color'		: 'black'
						},
		LinkCss			: {
							'color'				: 'blue',
							'text-decoration'	: 'none',
							'padding-left'		: '3px',
							'padding-right'		: '3px'
						}
	},
	SWF			: {
		Width			: '621',
		Height			: '300'
	}
}
var shopConfigDefault = {
	TotalCount	: 0,
	TotalPage	: 0,
	Ipp			: 5
}
var futubeParams;
var shopConfig;
var playerVars;
var player;
var futubePage;
var page = 1;
var skin_base = "http://kansai.futube.net/";

function sleep_busy(wait) {
	var start = (new Date()).getTime();
	while (true) {
		if ((new Date()).getTime() >= start + wait * 1) break;
	}
}

function playerReady(obj) {
//	alert('the videoplayer '+obj['id']+' has been instantiated');
	player = document.getElementById(obj['id']);
}

function setPageNavi() {
	if (page <= 1) {
		$('#pageNavi_top').html(futubeParams.Navi.TopText);
		$('#pageNavi_prev').html(futubeParams.Navi.PrevText);
	}
	else {
		if (futubeParams.Navi.TopDisable) $('#pageNavi_top').html('');
		else $('#pageNavi_top').html('<a href="javascript:void(loadPage(1, 0));" title="' + futubeParams.Navi.TopTitle + '">' + futubeParams.Navi.TopText + '</a>');
		if (futubeParams.Navi.PrevDisable == 'true') $('#pageNavi_prev').html('');
		else $('#pageNavi_prev').html('<a href="javascript:void(prevPage());" title="' + futubeParams.Navi.PrevTitle + '">' + futubeParams.Navi.PrevText +'</a>');
	}
	if (page >=shopConfig.TotalPage) {
		$('#pageNavi_next').html(futubeParams.Navi.NextText);
		$('#pageNavi_last').html(futubeParams.Navi.LastText);
	}
	else {
		if (futubeParams.Navi.NextDisable) $('#pageNavi_next').html('');
		else $('#pageNavi_next').html('<a href="javascript:void(nextPage());" title="' + futubeParams.Navi.NextTitle + '">' + futubeParams.Navi.NextText + '</a>');
		if (futubeParams.Navi.LastDisable == 'true') $('#pageNavi_last').html('');
		else $('#pageNavi_last').html('<a href="javascript:void(loadPage(' + shopConfig.TotalPage + ', 0));" title="' + futubeParams.Navi.LastTitle + '">' + futubeParams.Navi.LastText + '</a>');
	}
	if (!futubeParams.Navi.NumberDisable) {
		for(var i = 1; i <= shopConfig.TotalPage; i++) {
			if (i == page) $('#pageNavi_' + i).html('&nbsp;' + i + '&nbsp;');
			else $('#pageNavi_' + i).html('<a href="javascript:void(loadPage(' + i + ', 0));" title="' + i + 'ページ">' + i + '</a>');
		}
	}
	if (futubeParams.Navi.LinkCss) $('#pageNavi a').css(futubeParams.Navi.LinkCss);
}

function setInitialPageNavi() {
	var pagenation = '<span id="pageNavi_top"></span>&nbsp;<span id="pageNavi_prev"></span>';
	if (!futubeParams.Navi.NumberDisable) {
		for(var i = 1; i <= shopConfig.TotalPage; i++) {
			pagenation += '&nbsp;<span id="pageNavi_' + i + '"></span>';
		}
	}
	pagenation += '&nbsp;<span id="pageNavi_next"></span>&nbsp;<span id="pageNavi_last"></span>';
	$('#pageNavi').html(pagenation);
	if (futubeParams.Navi.Css) $('#pageNavi').css(futubeParams.Navi.Css);
	setPageNavi();
}

function loadPage(num, itm) {
	if (num > shopConfig.TotalPage) return false;
	if (num <= 0) return false;
	page = num;
	player.sendEvent("STOP");
	player.sendEvent("LOAD", {file: futubeParams.PlayListBase + '%26' + 'page' + '%3D' + page});
	player.sendEvent("STOP");
	sleep_busy(1000);
	var p_state = player.getConfig().state;
//	alert(player.getConfig().state)
	player.sendEvent("ITEM", '0');
	player.sendEvent("STOP");
	setPageNavi();
	return false;
}

function prevPage() {
	return loadPage(page - 1, 0);
}

function nextPage() {
	return loadPage(page + 1, 0);
}

function initialClear() {
	$('#pageNavi').html('');
	$('#futubeplayer').html('<font color="#FFFFFF">Ｎｏｗ　Ｌｏａｄｉｎｇ...</font>');
	futubeParams = futubeParamsDefault;
	shopConfig = shopConfigDefault;
	page = 1;
}

function futubeInitialize(configFile) {
	initialClear();
	if (configFile) futubeParams.ParamsFileName = configFile;
	$.getJSON(futubeParams.ParamsFileName, function(params){
		if (params.SkinBase) futubeParams.SkinBase = params.SkinBase;
		if (params.Shop.Id) futubeParams.Shop.Id = params.Shop.Id;
		if (params.Shop.Ipp) futubeParams.Shop.Ipp = params.Shop.Ipp;
		if (params.Shop.Skin) futubeParams.Shop.Skin = params.Shop.Skin;
		if (params.Navi.TopDisable) futubeParams.Navi.TopDisable = (params.Navi.TopDisable == 'true') ? true : false;
		if (params.Navi.TopText) futubeParams.Navi.TopText = params.Navi.TopText;
		if (params.Navi.TopTitle) futubeParams.Navi.TopTitle = params.Navi.TopTitle;
		if (params.Navi.PrevDisable) futubeParams.Navi.PrevDisable = (params.Navi.PrevDisable == 'true') ? true : false;
		if (params.Navi.PrevText) futubeParams.Navi.PrevText = params.Navi.PrevText;
		if (params.Navi.PrevTitle) futubeParams.Navi.PrevTitle = params.Navi.PrevTitle;
		if (params.Navi.LastDisable) futubeParams.Navi.LastDisable = (params.Navi.LastDisable == 'true') ? true : false;
		if (params.Navi.LastText) futubeParams.Navi.LastText = params.Navi.LastText;
		if (params.Navi.LastTitle) futubeParams.Navi.LastTitle = params.Navi.LastTitle;
		if (params.Navi.NextDisable) futubeParams.Navi.NextDisable = (params.Navi.NextDisable == 'true') ? true : false;
		if (params.Navi.NextText) futubeParams.Navi.NextText = params.Navi.NextText;
		if (params.Navi.NextTitle) futubeParams.Navi.NextTitle = params.Navi.NextTitle;
		if (params.Navi.NumberDisable) futubeParams.Navi.NumberDisable = (params.Navi.NumberDisable == 'true') ? true : false;
		if (params.Navi.Css) futubeParams.Navi.Css = params.Navi.Css;
		if (params.Navi.LinkCss) futubeParams.Navi.LinkCss = params.Navi.LinkCss;
		if (params.SWF.Width) futubeParams.SWF.Width = params.SWF.Width;
		if (params.SWF.Height) futubeParams.SWF.Height = params.SWF.Height;
		playerVars = 'skin=' + futubeParams.SkinBase + futubeParams.Shop.Skin;
		$.each(params.FlashVars, function (key, val) {
			playerVars += '&' + key + '=' + val;
		});
		if (futubeParams.Navi.TopDisable) futubeParams.Navi.TopText = '';
		if (futubeParams.Navi.PrevDisable) futubeParams.Navi.PrevText = '';
		if (futubeParams.Navi.LastDisable) futubeParams.Navi.LastText = '';
		if (futubeParams.Navi.NextDisable) futubeParams.Navi.NextText = '';
		shopConfig.Ipp = futubeParams.Shop.Ipp;
		futubeParams.PlayListBase += '%3F'+'format'+'%3D'+'PLAYLIST'+'%26'+'off'+'%3D'+'1'+'%26'+'shop'+'%3D'+futubeParams.Shop.Id+'%26'+'ipp'+'%3D'+futubeParams.Shop.Ipp;
		var ShopConfigFile = futubeParams.ShopConfigBase + '?shop=' + futubeParams.Shop.Id + '&ipp=' + futubeParams.Shop.Ipp + '&format=JSONP&callback=?';
		$.getJSON(ShopConfigFile, function(configs){
			if (configs.TotalCount) shopConfig.TotalCount = configs.TotalCount;
			if (configs.TotalPage) shopConfig.TotalPage = configs.TotalPage;
			if (configs.Ipp) shopConfig.Ipp = configs.Ipp;
			var s1 = new SWFObject(futubeParams.PlayerBase+futubeParams.Shop.Player, futubeParams.Shop.Id+'_movie', futubeParams.SWF.Width, futubeParams.SWF.Height, '9', '#');
			s1.addParam('allowfullscreen','true');
			s1.addParam('allowscriptaccess','always');
			s1.addParam('wmode','opaque');
			s1.addParam('flashvars', 'file=' + futubeParams.PlayListBase+'%26'+'page'+'%3D'+page+'&'+playerVars);
			s1.write('futubeplayer');
			setInitialPageNavi();
		});
	});
}

