// library load
document.write('<scr' + 'ipt language="javascript" type="text/javascript" src="/vote/js/voteload.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt language="javascript" type="text/javascript" charset="euc-jp" src="/vote/js/votecheck.js"></scr' + 'ipt>');


// スマートフォン対応(通常のscrTopが取得できないためタッチ場所で判別)
var _VOTE_touchPageY = 0;
var _VOTE_touchPageX = 0;
var _VOTE_touchScreenY = 0;
var _VOTE_touchScreenX = 0;
try{
	document.addEventListener("touchstart", touchStart, false);
}catch(e){}
function touchStart(e) {
	_VOTE_touchPageY = e.touches[0].pageY;
	_VOTE_touchPageX = e.touches[0].pageX;
	_VOTE_touchScreenY = e.touches[0].screenY;
	_VOTE_touchScreenX = e.touches[0].screenX;
}


// エレメント名称
var VOTE_win = 'votewin';
var VOTE_loader = 'voteloader';


// nops
var VOTE_nops = true;


// ロード済みの投票を保存する配列(2回以上呼び出しをしないため)
var VOTE_loaded = new Array();
var VOTE_shows = new Array();


// マウスオーバーの許容範囲
var VOTE_mox = 80;
var VOTE_moy = 60;


// window自動消去の設定
var VOTE_autohide = true;


// イベント定義(スクロール)
LIB_setOnScroll( function() {
	// 投票フォームが表示されていて、マウスがフォーム上にない場合は閉じる
	if( VOTE_autohide && VOTE_shows['show'] && _isOnVoteForm(80,60) == false && _VOTE_touchPageY == 0 ){
		closeVote();
	}
});

function _isOnVoteForm(move_posx, move_posy) {

	var flg = false;
	var scrtop = _VOTE_touchScreenY || LIB_scrtop;
	var scrleft = _VOTE_touchScreenX || LIB_scrleft;

	if( VOTE_shows['show'] && ! vote_submit ){
		height = VOTE_shows['win'].offsetHeight;
		if( height < 120 ) height = 120;
		if( LIB_mx >= VOTE_shows['win_x'] - scrleft - move_posx
			&& LIB_mx <= VOTE_shows['win_x'] + VOTE_shows['win'].offsetWidth + move_posx - scrleft
			&& LIB_my >= VOTE_shows['win_y'] - scrtop - move_posy
			&& LIB_my <= VOTE_shows['win_y'] + height + move_posy - scrtop
			){
			flg = true;
		}else{
//alert('mx:'+LIB_mx+',my:'+LIB_my+',wx:'+(VOTE_shows['win_x'] - scrleft)+'('+VOTE_shows['win'].offsetWidth+'px),wy:'+(VOTE_shows['win_y'] - scrtop)+'('+VOTE_shows['win'].offsetHeight+'px),movx:'+move_posx+',movy:'+move_posy);
		}
	}

	// スマートフォンは常にtrueに設定
	if( _VOTE_touchPageY ) flg = true;

	return flg;

}


// イベント定義(マウス移動)
LIB_setOnMouseMove( function() {
	// 投票がオープンしていた場合はマウス位置によって閉じる
//	if( VOTE_shows['show'] && ! _isOnVoteForm(VOTE_mox, VOTE_moy) ){
	if( VOTE_autohide && VOTE_shows['win'] && VOTE_shows['win'].style.display != 'none' && ! _isOnVoteForm(VOTE_mox, VOTE_moy) ){
		closeVote();
	}
});



// 場所の定義
function getOpenXY() {

	var pos = new Array();
	var win = LIB_getElement(VOTE_win);
	var offW = VOTELOAD_query['s_wd'] ? VOTELOAD_query['s_wd'] : 200;
	if( win.offsetWidth > 100 ) offW = win.offsetWidth;
	var offH = win.offsetHeight;
 	var scrtop = _VOTE_touchScreenY || LIB_scrtop;
	var scrleft = _VOTE_touchScreenX || LIB_scrleft;

	// ポジションの指定(投票フォーム)
	win_width = (document.all) ? document.documentElement.clientWidth : window.innerWidth;
	win_height = (document.all) ? document.documentElement.clientHeight : window.innerHeight;
	win_xm = Math.round(VOTE_mox / 4);
	win_ym = 60;
	if( win_width - LIB_mx < offW + win_xm ){
		if( LIB_mx < offW ){
			win_x = scrleft;
		}else{
			win_x = LIB_mx - offW + scrleft;
		}
	}else{
		win_x = LIB_mx + win_xm + scrleft;
	}
	if( LIB_my < win_ym ){
		win_y = scrtop - 1;
	}else{
		win_y = LIB_my - win_ym + scrtop;
	}
	if( win_y + offH > scrtop + win_height ){
		p = scrtop + win_height - offH;
		if( p < scrtop ) p = scrtop;
		win_y = p;
	}

	pos['X'] = win_x;
	pos['Y'] = win_y;

	// スマートフォン対応
	if( _VOTE_touchPageY > 0 ){
		pos['X'] = _VOTE_touchPageX + 20;
		pos['Y'] = _VOTE_touchPageY - 100;
	}
//alert("ww="+win_width+", wh="+win_height+", libmx="+LIB_mx+", libmy="+LIB_my+", scrtop="+scrtop+", scrleft="+scrleft+", pos x="+win_x+", y="+win_y);

	return pos;

}


// 投票を開く
function showVote(id) {
	if( ! DOM ) return false;
	if( VOTE_shows['show'] ) return true;

	var win = LIB_getElement(VOTE_win);
	var offW = VOTELOAD_query['s_wd'] ? VOTELOAD_query['s_wd'] : 200;
	var scrtop = _VOTE_touchScreenY || LIB_scrtop;
	var scrleft = _VOTE_touchScreenX || LIB_scrleft;

	// ポジションの指定(投票フォーム)
	pos = getOpenXY();
	VOTE_shows['win_x'] = pos['X'];
	VOTE_shows['win_y'] = pos['Y'];
	VOTE_shows['win'] = win;
	VOTE_shows['win'].style.left = VOTE_shows['win_x'] + 'px';
	VOTE_shows['win'].style.top  = VOTE_shows['win_y'] + 'px';


	// ポジションの指定(loader)
	var loader = LIB_getElement(VOTE_loader);
	if( loader ){
		//alert("scrleft:"+scrleft+", pos_x:"+pos['X']+", mx:"+LIB_mx);
		if( pos['X'] < scrleft + LIB_mx ){
			loader.style.left = (pos['X'] + 100) + 'px';
		}else{
			loader.style.left = (pos['X'] - 0) + 'px';
		}
		loader.style.top = (scrtop + LIB_my + 5) + 'px';
		if( _VOTE_touchPageY ){
			loader.style.left = pos['X'] + 'px';
			loader.style.top = (pos['Y'] + 60) + 'px';
		}
	}


	// 投票をロード
	if( VOTE_loaded['id'] != id ){
		VOTELOAD_callback = VOTE_loadedrun;
		VOTELOAD_win = VOTE_win;
		VOTELOAD_loader = VOTE_loader;
		if( VOTE_nops ) VOTELOAD_query['nops'] = 'Y';
		VOTELOAD_query['nocheck'] = 'Y';
		VOTELOAD_run(id);
		VOTE_loaded['id'] = id;
	}else{
		LIB_execFadeIn(VOTE_win, id);
		VOTE_shows['win'].style.display = 'block';
		VOTE_shows['show'] = true;
		VOTE_loadedrun();
	}

}


// ロード後のコールバック
function VOTE_loadedrun() {

	pos = getOpenXY();
	VOTE_shows['win_x'] = pos['X'];
	VOTE_shows['win_y'] = pos['Y'];
	VOTE_shows['win'].style.left = pos['X'] + 'px';
	VOTE_shows['win'].style.top  = pos['Y'] + 'px';
	VOTE_shows['show'] = true;

}


// 投票を閉じる
function closeVote() {
	if( ! DOM ) return false;
	LIB_execFadeOut(VOTE_win, VOTE_loaded['id']);
	VOTE_shows['show'] = false;
	VOTE_shows['closetime'] = new Date().getTime();
}

