//m_script.js 二世代目開発・単体動作
//カスタム Body startwindow();不要
//呼び出すだけで以下の内容が表示




//■■■■■  デフォルト情報  ■■■■■// (通常は変更する必要はありません)
	DivLocationX = 10     //ＤＩＶ位置Ｘ [数値]px
	DivLocationY = 10     //ＤＩＶ位置Ｙ [数値]px
	timerIDtiming = 300   //移動検知時間軸（静止状態での検知） [数値]ns
	moveIDtiming  = 30    //移動タイミング時間軸               [数値]ns
	drawCount = 0.1      //移動動作速度指定(0 静止 0.1>移動 1=完全追従 (1以上の設定は不可) )
	XEnable = 1       //Ｘ座標方向動作可否
	YEnable = 1       //Ｙ座標方向動作可否
	LRmode       = 1      //基準位置（0=← 1=→)
	UDmode       = 1      //基準位置（0=↑ 1=↓)
	Imgpath = 0           //画像のパス(0で共通 1で非表示 2で個別 3でミョウケン電話番号)
	printImg = '<iframe src="http://www.pro-este.com/call/call.html" width="80" frameborder="0" height="700" border="0""></iframe>'   //表示されるHTMLタグ
//■■■■■■■■■■■■■■■■■■■//


//ブラウザチェック (is[ブラウザ] OK=true / NG= false )
	var VarUsrAgt = navigator.userAgent.toLowerCase();
	isMac = (navigator.appVersion.indexOf("Mac") != -1);
	isWin = (navigator.appVersion.indexOf("Win") != -1);
	isX11 = (navigator.appVersion.indexOf("x11") != -1);
	isNS4 = (document.layers) ? 1 : 0;
	isNS6 = VarUsrAgt.indexOf("netscape6") != -1;
	isNS7 = VarUsrAgt.indexOf("netscape/7.") != -1;
	isIE5 = VarUsrAgt.indexOf("msie 5.") != -1;
	isIE6 = VarUsrAgt.indexOf("msie 6.") != -1;
	isIE7 = VarUsrAgt.indexOf("msie 7.") != -1;
	isOP6 = VarUsrAgt.indexOf("opera 6.") != -1 || VarUsrAgt.indexOf("opera/6.") != -1;
	isOP7 = VarUsrAgt.indexOf("opera 7.") != -1 || VarUsrAgt.indexOf("opera/7.") != -1;
	isMZ1 = navigator.appName.indexOf("Netscape") != -1 && navigator.appVersion.charAt(0)   == 5;

	isJS = ( (isIE5 && !isMac) || (isIE6 && !isMac) || isIE7 || isNS6 || isNS7 || isMZ1 || isOP7)

	//Operaのなりきりブラウザ対策
	if (isOP7) isNS4 = isNS6 = isNS7 = isIE5 = isIE6 = isMZ1 = false

	isIEtrue = (isIE5 || isIE6 || isIE7)

// DOCTYPE識別
switch (document.compatMode) {
    case "BackCompat": doctype = "Quirks";break;//window.pageYOffset;
    case "QuirksMode": doctype = "Quirks";break;//document.body.scrollTop;
    case "CSS1Compat": doctype = "Standards";break;//document.documentElement.scrollTop;
    default: doctype = "Quirks";break;//window.scrollY;
    break;
    }

var div_data = "" , div_mini="" , divcheck=false
var divW , divH , MouseToDiv
var ScriptStart = false

//Mozillaブラウザは、スクロールバー数値分を加算します（右寄せ時）
var MozillaState =0
if (isNS6 || isNS7 || isMZ1) MozillaState = 15

//////////////////////////////////
//待機時動作ルーチン (timerID : timerIDtimingで呼出)
function divPreset(){

	//座標移動を検出した場合に発動するルーチン
	if ( (DivLocat("X") - DivNow("X")) !=0 && XEnable || (DivLocat("Y") - DivNow("Y")) !=0 && YEnable){
		clearInterval(timerID); timerID = 0;
		timerID = setInterval("moveDiv()",moveIDtiming);
	}
}

//////////////////////////////////
//DIV動作ルーチン (timerID : moveIDtimingで呼出)
function moveDiv(){

	//移動方向チェックルーチン
	tempX = DivLocat("X") - DivNow("X"); tempY = DivLocat("Y") - DivNow("Y"); 
	tx = parseInt((tempX - Math.abs(tempX)) / (Math.abs(tempX) * 2))
	ty = parseInt((tempY - Math.abs(tempY)) / (Math.abs(tempY) * 2))
	if (tx==0) tx=1;    if (ty==0) ty=1     //正方向移動時
	if (isNaN(tx) || drawCount==1) tx=0;if (isNaN(ty) || drawCount==1) ty=0 //DIV基準位置とイコール

	//DIV移動量計算代入ルーチン
	div_data.style.top  = DivNow("Y") + Math.ceil(tempY * drawCount) + ty +'px'
	div_data.style.left = DivNow("X") + Math.ceil(tempX * drawCount) + tx +'px'

	if (tx == 0 && ty == 0){ //DIV位置の移動が完了
		clearInterval(timerID); timerID = 0;
		timerID = setInterval("divPreset()",timerIDtiming);
	}
}


//////////////////////////////////
//DIVのあるべき位置を取得する
//ordinate(座標) "X" or "Y"
//戻り値 X or Y 座標 document.documentElement.scrollTop/document.body.scrollTop
function DivLocat(ordinate){
	var LRstate=0,UDstate=0;


	if (isIEtrue || isOP7){ // mouseX ,Y 絶対座標
if(doctype == "Standards"){
		mouseXm = document.documentElement.scrollLeft  + DivLocationX + MozillaState
		mouseYm = document.documentElement.scrollTop - WinSize("Y") + DivSize("H") + DivLocationX + MozillaState
}else{
		mouseXm = document.body.scrollLeft
		mouseYm = document.body.scrollTop
}
	} else if (isNS6 || isNS7 || isMZ1) {
		mouseXm = self.pageXOffset;
		mouseYm = self.pageYOffset;
	}
	if (ordinate.toUpperCase() == "X"){        // X座標
		if(LRmode==1){
			return parseInt(WinSize("X") - DivSize("W") - DivLocationX + mouseXm - MozillaState)
		}   return DivLocationX + mouseXm
	} else if (ordinate.toUpperCase() == "Y"){ // Y座標
		if (UDmode==1){
			return parseInt(WinSize("Y") - DivSize("H") - DivLocationY + mouseYm - MozillaState)
		}   return DivLocationY + mouseYm
	}
}


//////////////////////////////////
//DIV現在位置を取得する
//ordinate(座標) "X" or "Y"
//戻り値 X or Y 座標
function DivNow(ordinate){
	if(!ScriptStart) return;
	if (ordinate.toUpperCase()=="X"){
		return parseInt(div_data.style.left)
	} else if (ordinate.toUpperCase()=="Y"){
		return parseInt(div_data.style.top)
	}
}


//////////////////////////////////
//Windowのサイズを取得する
//ordinate(座標) "X" or "Y"
//戻り値 X or Y 座標
//(DIV 標準位置によって返す値は変わります)
function WinSize(ordinate){
	if (ordinate.toUpperCase()=="X"){        //X座標
		if(isIEtrue || isOP7){
			return document.body.clientWidth
		} else if (isNS6 || isNS7 || isMZ1) {
			return innerWidth
		}
	} else if (ordinate.toUpperCase()=="Y"){ //Y座標
		if(isIEtrue || isOP7){
			return document.body.clientHeight
		} else if (isNS6 || isNS7 || isMZ1) {
			return innerHeight
		}
	}
}

//////////////////////////////////
//Divのサイズを取得する
//ordinate(座標) "W" or "H"
//戻り値 Width or Height 座標
function DivSize(ordinate){
	if (ordinate.toUpperCase()=="W"){        //X座標
		return div_data.offsetWidth
	} else if (ordinate.toUpperCase()=="H"){ //Y座標
		return div_data.offsetHeight;
	}
}

var minMenu,maxMenu
//////////////////////////////////
//初期動作ステータス作成
function startwindow(){
	if ( !document.getElementById("MoveDiv") || !isJS ) return;

	//グローバルで使用するDIV情報取得「div_data」の作成
	div_data = document.getElementById("MoveDiv");
	div_data.style.position="absolute"
	divcheck=true; //DIVの準備が完了

	if (document.getElementById("MoveDiv_min")){
		div_mini = document.getElementById("MoveDiv_min")
		maxMenu = div_data.innerHTML
		minMenu = div_mini.innerHTML
		div_mini.style.display = "none";
		div_mini.style.position= "absolute";
		div_data.innerHTML = minMenu
	}

	//DIVサイズの取得
	DivSize("W");
	DivSize("H");

	//ユーザーステータス読込
	for (i = 0 ; i <= 500; i ++){
		div_check = document.getElementsByTagName('div')[i];
		if (div_check){
			if(div_check.id.substr(0,8) =="setM_ID@"){
				ComponentsDivData(div_check.id) //ステータス読み込み
			}
		} else {
			break; //FOR終了
		}
	}

	//DIVを指定座標上に描画する
	div_data.style.top  = DivLocat("Y")+'px'
	div_data.style.left = DivLocat("X")+'px'

	ScriptStart = true //スクリプト動作の許可

	timerID = setInterval("divPreset()",timerIDtiming);	//基幹時間軸の生成

}

//コンポーネント情報引き渡し用ＤＩＶ解析部 v1.0
checkData=""
function ComponentsDivData(data){
	for (di = 0 ; di <= data.length ; di++){
		if ( data.substr(di,1) == "@" || data.substr(di,1) == "," || data.substr(di,1) == ";"){
			checkData = data.substr(di+1,2)
			for (dk = di+1 ; dk <= data.length ; dk++){ //識別子チェッカー
				if ( data.substr(dk,1) == "=" || data.substr(dk,1) == ":" ) break;
				if ( data.substr(dk,1) == "@" || data.substr(dk,1) == "," || data.substr(dk,1) == ";"){
					 dk=0;break;
				}
			}
			numberData = parseInt(data.substr(dk+1,8))
			if (!isNaN(numberData)){
				switch (checkData){
					case "Im":Imgpath = numberData;break
					case "Dx":DivLocationX = numberData;break
					case "Dy":DivLocationY = numberData;break
					case "T1":timerIDtiming= numberData;break
					case "T2":moveIDtiming = numberData;break
					case "Xe":XEnable     = numberData;break
					case "Ye":YEnable     = numberData;break
					case "LR":LRmode      = numberData;break
					case "UD":UDmode      = numberData;break
					case "cD":
						drawCount   = numberData/10;
						if (drawCount>1) drawCount=1
						break
					default:break;
				}
			}
		}
	}
}
//表示内容
//document.write('</Center><Layer visibility="hidden"><Div id="MoveDiv">');
document.write('<Layer visibility="hidden"><Div id="MoveDiv">');

//処理開始
startwindow();

//表示内容
switch (Imgpath){
case 1: ;break
case 2:document.write('<img src="call_and_visi.gif" alt="" width="60" height="550" border="0" />');break
case 3:document.write('<img src="http://www.mk2han.com/data/comon/call_and_visi.gif" alt="" width="60" height="550" border="0" />');break
case 4:document.write('<iframe src="http://www.pro-este.com/call/call.html" width="80" frameborder="0" height="700" border="0""></iframe>');break
default:document.write(printImg);break
}
document.write('</Div></Layer>');

//MOVING-SCRIPT///////////////////////////////////
//  Copyright(c) 2003 Calm all rights reserved. //
//  フリー配布 商用利用可 事前事後許諾非強制    //
//  詳細は www.calm-web.com へどうぞ。          //
//////////////////////////////////////2003-02-19//

//上記コメントは削除可です（残しておいてくれると助かりますが...）

