﻿//////////////////////////////////////////////////////////////////////
// hogemonia_mk2式 "get_server_time.js" 適当制作２０分えでぃしょん  //
//                Ver.0.0.0.1beta   <UTF-8BOM無版>                  //
//                      Webサーバ時間取得スクリプト                 //
//                       http://blog.mct-lab.com/                   //
//                   Copyright 2007 by HoGeMoNiA_mkII               //
//////////////////////////////////////////////////////////////////////

// このスクリプトは修正BSDライセンスです。なので改変・再配布はご自由にどうぞ。
// ただし、著作権表記＆アドレスは消さないようお願いしますね。
// 事後報告でもいいので、ご一報いただけたら嬉しいです。
//
// 質問等ありましたら、http://blog.mct-lab.com/rnote.php?u=contact/contact.htm
// のコンタクトフォームからご連絡ください。
//
// また、このjsファイルを作る際に以下のサイトにお世話になりました。
// この場を借りてお礼申し上げます。ありがとうございました。
//
//  Ajaxを勉強しよう : http://www.openspc2.org/JavaScript/Ajax/Ajax_study/


//get_server_time.phpの場所を指定（状況に応じて変更してください）
var SEV_php_url = "/lib/servtime/get_server_time.php"; //Ajax自体の制限により、このjsファイルを置くWebサーバと同じドメインのphpしか指定できません。


//以下、特に変更の必要なし。汚いスクリプトですいません...
function loadTimeData(){
	TimeDATA_httpObj = createXMLHttpRequest(getTimeDATA);
	if (TimeDATA_httpObj)
	{
		TimeDATA_httpObj.open("GET",SEV_php_url,true);
		TimeDATA_httpObj.send(null);
	}	
}

/*
function getTimeDATA()
{
		if ((TimeDATA_httpObj.readyState == 4) && (TimeDATA_httpObj.status == 200))
		{
			date_moto_data = TimeDATA_httpObj.responseText;
			date_local  = new Date();
			temp_server = date_moto_data.match(/\S+/g); //get_server_time.phpから得られるデータをそれぞれ、年、月、日、時、分、秒、マイクロ秒に分離して、temp_server配列に放り込む。
			date_server = new Date(temp_server[0],temp_server[1]-1,temp_server[2],temp_server[3],temp_server[4],temp_server[5],Math.round(temp_server[6]*1000,0)); //マイクロ秒の部分は細か過ぎるので適当に四捨五入して使用。
			
			SEV_T_plusminus = date_local.getTime() - date_server.getTime(); //毎回（毎秒ごとに）その時の時間をサーバから得る方法では、サーバに激しく負荷がかかるので、ローカル時間とサーバ時間の時間差を求め、以後はその時間差を元にローカル時間からサーバ時間を計算して表示。
		}
}
*/

function getTimeDATA()
{
		if ((TimeDATA_httpObj.readyState == 4) && (TimeDATA_httpObj.status == 200))
		{
			date_moto_data = TimeDATA_httpObj.responseText;
			date_local  = new Date();
			temp_server = date_moto_data.match(/\S+/g); 
			//get_server_time.phpから得られるデータをそれぞれ、年、月、日、時、分、秒、マイクロ秒に分離して、temp_server配列に放り込む。
			
			serverTime = new Date(temp_server[0],temp_server[1]-1,temp_server[2],temp_server[3],temp_server[4],temp_server[5],Math.round(temp_server[6]*1000,0));
			//マイクロ秒の部分は細か過ぎるので適当に四捨五入して使用。
		}
}

function createXMLHttpRequest(cbFunc)
{
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
	return XMLhttpObject;
}

var serverTime;
getTimeDATA_temp_dd = new Date();
SEV_php_url = SEV_php_url + "?" + getTimeDATA_temp_dd.toString();
loadTimeData();
