////指定divフレームを固定表示するjavascript
var g_nff_iframe_data_group = new Array();
g_nff_iframe_data_group[0] = null;
var g_disp_setting_ary = new Array();
//---------------------------------------------------------------------------
//// ↓↓設定(変更可能)↓↓
//---------------------------------------------------------------------------
//移動
var g_nff_move_cfc = 0.3;			//フレーム移動係数
var g_nff_move_interval_ms = 30;	//フレーム移動処理間隔ミリ秒
var g_nff_chk_interval_ms = 300;	//ウィンドウ変化調査間隔ミリ秒
var g_nff_start_delay_ms = 0;		//フレーム表示開始までの遅延ミリ秒

//クッキー
var g_nff_cookie_enable = true;	//クッキーを使用して表示制限をするか(falseで毎回フレーム表示)
var g_nff_cookie_name = "nan_float_ad_nantvx2";	//クッキー名称
var g_nff_cookie_live = [1,0,0,0];	//クッキーの有効期間(加算日、加算時、加算分、加算秒)

var g_nff_cookie_valid_domain_name = "nantv.com";	//セットする適用範囲としてのドメイン名
var g_nff_cookie_valid_domain_cut_num = 0;	//↑が""の場合、実行ページドメイン名要素取捨数
//↑2つを上から "", 0 と設定すると実行ドメイン名がセットされる。
//(例:http://bbs01.nan-net.com/system/log/1/ → "bbs01.nan-net.com"がセットされる)

var g_nff_cookie_valid_path_name = "/";		//セットする適用範囲としてのパス名
var g_nff_cookie_valid_path_cut_num = 0;	//↑が""の場合、実行ページパス名要素取捨数
//↑2つを上から "", 0 と設定すると実行パス名がセットされる。
//(例:http://bbs01.nan-net.com/system/log/1/ → "/system/log/1/"がセットされる)


//閉じるボタン
var g_nff_close_btn_img_path = "http://img01.nantv.com/topfloat/btn_close.gif";

// 閉じるボタン 縦、横方向の固定表示位置
// 縦方向  上:"top" 下:"bottom"
var g_nff_btn_v_fix_align = "top";
// 横方向  左:"left" 右:"right"
var g_nff_btn_h_fix_align = "left";

// 閉じるボタンの親iframe上での中央寄り方向へのマージン(px)
var g_nff_btn_v_margin = 0;	//垂直方向
var g_nff_btn_h_margin = 0;	//水平方向

//※インラインフレーム内に表示するページデータの設定
//nffAddFrameDate(1, "http://www.nantv.com/topifad.html", 241, 401);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01a.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01b.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01c.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01d.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01e.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/topifad01f.html", 161, 497);
//nffAddFrameDate(1, "http://www.nantv.com/info.html", 660, 76);
//nffAddFrameDate(1, "http://id.nan-net.jp/system/bbslogincheck.cgi?ret=http://newbbs.nan-net.com/system&num=2", 241, 401);
//nffAddFrameDate(2, "http://www.nantv.com/newad/sponnew.html", 490, 104);
nffAddFrameDate(1, "http://banner2.nan-net.com/publicity/index1.php", 160, 469);
//このjsファイルを読み込んだ時点で表示するフレームの設定
//(グループ番号、水平基準位置、垂直基準位置、水平マージン、垂直マージン) 複数可能
nffAddDispFloatFrameSetting(1, "left", "top", 0, 0);
//nffAddDispFloatFrameSetting(2, "left", "top", 10, 10);
//nffAddDispFloatFrameSetting(1, "right", "top", 0, 0);
//---------------------------------------------------------------------------
//// ↑↑設定(変更可能)↑↑ ここまで
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
var g_nff_floatframe_ary = new Array();
var g_nff_create_frame_num = 0;
var g_nff_close_frame_num = 0;
var g_nff_start_flg = false;

var g_nff_now_c_w = 0;
var g_nff_now_c_h = 0;
var g_nff_now_sc_left = 0;
var g_nff_now_sc_top = 0;

var g_nff_set_sc_top = 0;
var g_nff_set_sc_left = 0;
var g_nff_set_c_w = 0;
var g_nff_set_c_h = 0;

var g_nff_isIE    = (navigator.appName.toLowerCase().indexOf('internet explorer')!= -1) ? true : false;
var g_nff_isFx = (navigator.userAgent.toLowerCase().indexOf("firefox")          != -1) ? true : false;
var g_nff_isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")          != -1) ? true : false;
if (g_nff_isOpera) g_nff_isIE = g_nff_isFx = false;
var g_nff_isSafari = (navigator.appVersion.toLowerCase().indexOf("safari")       != -1) ? true : false;

//後方互換かチェック
var g_nff_isBC = (document.compatMode && document.compatMode != "BackCompat") ? false : true;

var g_nff_timerID = 0;
var g_nff_move_prg = 0;
var g_nff_sc_top_dif = 0;
var g_nff_sc_left_dif = 0;
var g_nff_c_w_dif = 0;
var g_nff_c_h_dif = 0;

var g_nff_enable = true;
//---------------------------------------------------------------------------
function NffFloatFrame(a_disp_g_no, a_h_align, a_v_align, a_h_margin, a_v_margin, a_name){
	
this.frame_height = 0;
this.frame_width = 0;
this.btn_pos_h_str = "";
this.btn_pos_v_str = "";

this.ifrm_idx = 0;
this.visible_flg = false;

this.frame_id_name = a_name;
this.frame_child_id_name = this.frame_id_name + "_child";

// 縦方向  上:"top" 下:"bottom"
this.v_fix_align = "top";
// 横方向  左:"left" 右:"right"
this.h_fix_align = "left";

if( a_h_align == "right") this.h_fix_align = "right";
if( a_v_align == "bottom") this.v_fix_align = "bottom";

// フレームの、画面端固定位置からの画面中央寄り方向へのマージン(px)
this.v_margin = 0;	//垂直方向
this.h_margin = 0;	//水平方向

if( !isNaN(a_h_margin) && a_h_margin > 0){
	this.h_margin = a_h_margin;
}

if( !isNaN(a_v_margin) && a_v_margin > 0){
	this.v_margin = a_v_margin;
}

this.btn_id_name = "frame_close_btn"+(g_nff_create_frame_num+1);

// Zインデックスの値(他オブジェクトと兼ね合いが生じる場合変更)
// ※閉じるボタン用に下記の値+1のz-indexが1つのフレーム表示に使用される
this.z_idx = 5*g_nff_create_frame_num + 5;

this.posFix = function (a_sc_left, a_sc_top, a_c_width, a_c_height){
	
	var set_top_px, set_left_px;	

	//横方向
	if( this.h_fix_align == "right"){
		set_left_px = parseInt(a_sc_left)+parseInt(a_c_width)-parseInt(this.frame_width)-this.h_margin;
		
	}else{
		set_left_px = parseInt(a_sc_left)+this.h_margin;

	}
	
	//縦方向
	if( this.v_fix_align == "bottom"){
		set_top_px = parseInt(a_sc_top)+parseInt(a_c_height)-parseInt(this.frame_height)-this.v_margin;
		
	}else{
		set_top_px = parseInt(a_sc_top)+this.v_margin;
		
	}
	
	if(document.all){
		document.getElementById(this.frame_id_name).style.pixelLeft = set_left_px;
		document.getElementById(this.frame_id_name).style.pixelTop = set_top_px;
	}else{
		document.getElementById(this.frame_id_name).style.left = set_left_px+"px";
		document.getElementById(this.frame_id_name).style.top = set_top_px+"px";
	}
	
}

this.closeFrame = function () {
	var frame_parent_style = document.getElementById(this.frame_id_name).style;
	if( frame_parent_style ){
		frame_parent_style.display = "none";
		
		this.visible_flg = false;
		nffDeleteDomObj(this.frame_id_name);
		g_nff_close_frame_num++;
		
		if( g_nff_close_frame_num == g_nff_create_frame_num ){
			nffSetCookie("1");
		}
	}
	
}

this.showFrame = function (a_frame_width, a_frame_height) {
	
	var frame_parent_style = document.getElementById(this.frame_id_name).style;

	frame_parent_style.display = "block";
	this.visible_flg = true;
	
}

//設定グループ内のどの番号ページを表示するか決定
this.ifrm_idx = Math.floor(Math.random() * g_nff_iframe_data_group[a_disp_g_no].length);

if( g_nff_btn_v_fix_align == "bottom"){
	this.btn_pos_v_str = "bottom:"+g_nff_btn_v_margin+"px;";
}else{
	this.btn_pos_v_str = "top:"+g_nff_btn_v_margin+"px;";
}

if( g_nff_btn_h_fix_align == "left"){
	this.btn_pos_h_str = "left:"+g_nff_btn_h_margin+"px;";
}else{
	this.btn_pos_h_str = "right:"+g_nff_btn_h_margin+"px;";
}

document.write('<div id="'+this.frame_id_name+'" style="position:absolute;z-index:'+this.z_idx+';width:'+g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][1]+';display:none;">' +
			   '<div id="'+this.frame_child_id_name+'" style="position:relative;">'+
			   '<iframe width="'+g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][1]+'" ' +
			   'scrolling="no" ' +
			   'height="'+g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][2]+'" ' +
			   'frameborder="0" ' +
			   'src="'+g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][0]+'">' + 
			   '</iframe>' +
               '<div id="'+this.btn_id_name+'" style="position:absolute;'+this.btn_pos_v_str+this.btn_pos_h_str+'z-index:'+(this.z_idx+1)+'">' +
			   '<a href="javascript:void(0)" onClick="javascript:g_nff_floatframe_ary['+g_nff_create_frame_num+'].closeFrame();">' +
			   '<img src="'+g_nff_close_btn_img_path+'" border="0">' +
			   '</a>' +
			   '</div>' +
			   '</div>' +
			   '</div>');

this.frame_width = g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][1];
this.frame_height = g_nff_iframe_data_group[a_disp_g_no][this.ifrm_idx][2];

if(g_nff_start_flg){
	this.posFix( g_nff_now_sc_left, g_nff_now_sc_top, g_nff_now_c_w, g_nff_now_c_h);
	this.showFrame();
}

}//END NffFloatFrame

function print_floatframe(a_disp_g_no, a_h_align, a_v_align, a_h_margin, a_v_margin){
	
	if( g_nff_enable == false) return;
	
	g_nff_floatframe_ary[g_nff_create_frame_num] = new NffFloatFrame(a_disp_g_no, a_h_align, a_v_align, a_h_margin, a_v_margin,
													  "floatframe_"+(g_nff_create_frame_num+1));
	
	g_nff_create_frame_num++;
	
}

function nffGetWindowInfo() {
	
	var ret_obj = new Object();
	
	var scroll_left, scroll_top;

	var windowWidth, windowHeight;
  
	if( g_nff_isIE || g_nff_isFx || g_nff_isSafari){
	  
		if( g_nff_isBC ){
		  windowWidth = document.body.clientWidth;
		  windowHeight = document.body.clientHeight;
		}else{
		  windowWidth = document.documentElement.clientWidth;
		  windowHeight = document.documentElement.clientHeight;
		}
	  
	}else if( g_nff_isOpera){
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}else{
	  
	  	if( g_nff_isBC ){
		  windowWidth = document.body.clientWidth;
		  windowHeight = document.body.clientHeight;
		}else{
		  windowWidth = document.documentElement.clientWidth;
		  windowHeight = document.documentElement.clientHeight;
		}
		
	}
  
	if(document.all){
		scroll_left = document.documentElement.scrollLeft || document.body.scrollLeft;
		scroll_top = document.documentElement.scrollTop || document.body.scrollTop;
	}else{
		scroll_left = parseInt(pageXOffset);
		scroll_top = parseInt(pageYOffset);
	}

	ret_obj.c_w = windowWidth;
	ret_obj.c_h = windowHeight;
	ret_obj.sc_left = scroll_left;
	ret_obj.sc_top = scroll_top;
	
	return ret_obj; 
}

function nffDeleteDomObj( id_name ){

	var dom_obj=document.getElementById(id_name);
	var dom_obj_parent=dom_obj.parentNode;

	dom_obj_parent.removeChild(dom_obj);
}

function nffAddFrameDate(a_g_no, a_url, a_width, a_height){
	
	if( !g_nff_iframe_data_group[a_g_no] ){
		g_nff_iframe_data_group[a_g_no] = new Array();
	}
	g_nff_iframe_data_group[a_g_no].push([a_url, a_width, a_height]);
	
}

function nffAddDispFloatFrameSetting(a_g_no, a_h_align, a_v_align, a_h_margin, a_v_margin){
	g_disp_setting_ary.push([a_g_no, a_h_align, a_v_align, a_h_margin, a_v_margin]);
}

function nffWindowMoveInfoUpDate(w_info){
	
	if(g_nff_create_frame_num == 0) return;
	
	g_nff_move_prg = 1;

	g_nff_sc_left_dif = w_info.sc_left - g_nff_now_sc_left;
	g_nff_sc_top_dif = w_info.sc_top - g_nff_now_sc_top;
	g_nff_c_w_dif = w_info.c_w - g_nff_now_c_w;
	g_nff_c_h_dif = w_info.c_h - g_nff_now_c_h;
	
	g_nff_set_sc_top = w_info.sc_top;
	g_nff_set_sc_left = w_info.sc_left;
	g_nff_set_c_w = w_info.c_w;
	g_nff_set_c_h = w_info.c_h;
		
}

function nffWindowChangeCheck(){
	
	var w_info = nffGetWindowInfo();
	
	if( w_info.sc_top != g_nff_now_sc_top || w_info.sc_left != g_nff_now_sc_left || w_info.c_w != g_nff_now_c_w ||  w_info.c_h != g_nff_now_c_h){
		
		nffWindowMoveInfoUpDate(w_info);
		
		if( g_nff_timerID != 0){
			clearInterval(g_nff_timerID);
		}
		g_nff_timerID = 0;
		
		if( g_nff_close_frame_num > 0 && g_nff_close_frame_num == g_nff_create_frame_num){
			return;
		}
		
		if( g_nff_timerID == 0){
			g_nff_timerID = setInterval( nffMoveFunc, g_nff_move_interval_ms);
		}
	
	}
}

function nffMoveFunc(){
	
	var i;
	
	var w_info = nffGetWindowInfo();
	if( w_info.sc_top != g_nff_set_sc_top || w_info.sc_left != g_nff_set_sc_left || w_info.c_w != g_nff_set_c_w ||  w_info.c_h != g_nff_set_c_h){
		nffWindowMoveInfoUpDate(w_info);
	}
	
	g_nff_move_prg *= (1 - g_nff_move_cfc);
	
	if( g_nff_move_prg < 0.001){
		g_nff_move_prg = 0;
		clearInterval(g_nff_timerID);
		g_nff_timerID = 0;
		
		g_nff_timerID = setInterval(nffWindowChangeCheck, g_nff_chk_interval_ms);
	}
	
	g_nff_now_sc_left = g_nff_set_sc_left - parseInt(g_nff_move_prg*g_nff_sc_left_dif);
	g_nff_now_sc_top = g_nff_set_sc_top - parseInt(g_nff_move_prg*g_nff_sc_top_dif);
	g_nff_now_c_w = g_nff_set_c_w - parseInt(g_nff_move_prg*g_nff_c_w_dif);
	g_nff_now_c_h = g_nff_set_c_h - parseInt(g_nff_move_prg*g_nff_c_h_dif);

	for( i = 0; i < g_nff_create_frame_num; i++){
		
		if(g_nff_floatframe_ary[i].visible_flg == true){
			g_nff_floatframe_ary[i].posFix( g_nff_now_sc_left, g_nff_now_sc_top, g_nff_now_c_w, g_nff_now_c_h);
		}
	}
}

function nffSetCookie(a_val){
	
	var set_date_str;
	var set_ck_str;
	var tmp_str;
	var tmp_ary;
	
	if(!navigator.cookieEnabled) return;
	
	set_ck_str = g_nff_cookie_name + "=" + escape(a_val) + ";";
	
	if( g_nff_cookie_valid_domain_name.length){
		set_ck_str += "domain="+g_nff_cookie_valid_domain_name+";";
	}else if(g_nff_cookie_valid_domain_cut_num >= 1){
		tmp_str = location.hostname;
		tmp_ary = tmp_str.split(".");
		for( var i = 0; i < g_nff_cookie_valid_domain_cut_num; i++) tmp_ary.shift();
		tmp_str = tmp_ary.join(".");
		set_ck_str += "domain="+tmp_str+";";
	}
	
	if( g_nff_cookie_valid_path_name.length){
		set_ck_str += "path=" + g_nff_cookie_valid_path_name + ";";
	}else if(g_nff_cookie_valid_path_cut_num >= 1){
		tmp_str = location.pathname;
		tmp_ary = tmp_str.split("/");
		for( var i = 0; i < g_nff_cookie_valid_path_cut_num; i++) tmp_ary.pop();
		
		tmp_str = "";
		if( tmp_ary.length > 0){
			tmp_str = tmp_ary.join("/");
		}
		tmp_str += "/";
		set_ck_str += "path="+tmp_str+";";
	}
	
	var date_obj = new Date();
	
	date_obj.setTime(date_obj.getTime() + (86400000 * g_nff_cookie_live[0]) + 
											(3600000 * g_nff_cookie_live[1]) + 
											(60000 * g_nff_cookie_live[2]) + 
											(1000 * g_nff_cookie_live[3]) );
	
	set_date_str = date_obj.toGMTString();
	set_ck_str += "expires=" + set_date_str;
	
	document.cookie = set_ck_str;
}

function nffGetCookie(){
	
	var ck_d = document.cookie + ";";
	
	var start = ck_d.indexOf(g_nff_cookie_name);
	
	if (start != -1){
		
		ck_d = unescape(ck_d.substr(start + g_nff_cookie_name.length + 1, 1));
		if( ck_d == "1"){
			g_nff_enable = false;
		}
	}
}

function nffStart(){
	
	clearInterval(g_nff_timerID);
	
	var w_info = nffGetWindowInfo();
	
	g_nff_now_sc_left = w_info.sc_left;
	g_nff_now_sc_top = w_info.sc_top;
	g_nff_now_c_w = w_info.c_w;
	g_nff_now_c_h = w_info.c_h;
		
	for( var i = 0; i < g_nff_create_frame_num; i++){
		
		if(g_nff_floatframe_ary[i].visible_flg == false){
			g_nff_floatframe_ary[i].posFix( w_info.sc_left, w_info.sc_top, w_info.c_w, w_info.c_h);
			g_nff_floatframe_ary[i].showFrame();
		}
	}
	
	g_nff_start_flg = true;
	g_nff_timerID = setInterval(nffWindowChangeCheck, g_nff_chk_interval_ms);
}

if( g_nff_cookie_enable ){
	nffGetCookie();
}

g_nff_timerID = setInterval(nffStart, g_nff_start_delay_ms);

//表示
for( var i = 0; i < g_disp_setting_ary.length; i++){
	print_floatframe(g_disp_setting_ary[i][0], g_disp_setting_ary[i][1], g_disp_setting_ary[i][2], g_disp_setting_ary[i][3], g_disp_setting_ary[i][4]);
}