//
// Ajax Library
//
// 1/10/2006 Keisuke Oyama
//

var g_Request = null;

var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING       = 1;
var READY_STATE_LOADED        = 2;
var READY_STATE_INTERACTIVE   = 3;
var READY_STATE_COMPLETE      = 4;

var g_sImageURL = './scr09/pic3.jpg';
var isIE = false;


///////////////////////////////////////////////////////////////////////////////


function startPlaying(e) {
	if ( document.getElementById ) {
		var thumbnail = document.getElementById('thumb');
		addEvent(thumbnail, 'mousemove', onMouseMove, false);

		var elmVwr = document.getElementById('viewer');
		elmVwr.style.background = 'url(' + g_sImageURL + ')';
		elmVwr.style.backgroundRepeat = 'no-repeat';
	}
	
	if ( !window.opera && navigator.userAgent.indexOf('MSIE') != -1 ) {
		isIE = true;
	}
}


///////////////////////////////////////////////////////////////////////////////


function onMouseMove(ev) {
	var t = ev.target ? ev.target : ev.srcElement;
	var e = window.event ? window.event : ev;
	var x = 0, y = 0;
	var x0 = 0, y0 = 0;
	
	if ( typeof e.pageX != 'undefined' && typeof e.pageY != 'undefined' ) {
		x0 = e.pageX;
		y0 = e.pageY;
	}
	else if ( typeof e.clientX != 'undefined' && typeof e.clientY != 'undefined' ) {
		x0 = e.clientX;
		y0 = e.clientY;
		if ( isIE ) {
			x0 += document.documentElement.scrollLeft;
			y0 += document.documentElement.scrollTop;
		}
	}
	
	
	x = x0 - getPosX(t);
	y = y0 - getPosY(t);
	
	var ImgOx = (10 * x - 100) * (-1);
	var ImgOy = (10 * y - 100) * (-1);
	
	var elmViewer = document.getElementById('viewer');
	
	elmViewer.style.backgroundPosition = ImgOx + 'px ' + ImgOy + 'px';
	
}


///////////////////////////////////////////////////////////////////////////////


function getPosX (elm) {
	var posX = 0;
	if ( typeof elm.offsetParent != 'undefined' ) {
		do {
			posX += elm.offsetLeft;
		} while ( elm = elm.offsetParent );
	}
	else if ( typeof elm.x != 'undefined' ) {
		posX += elm.x;
	}
	return posX;
}


///////////////////////////////////////////////////////////////////////////////


function getPosY (elm) {
	var posY = 0;
	if ( typeof elm.offsetParent != 'undefined' ) {
		do {
			posY += elm.offsetTop;
		} while (elm = elm.offsetParent);
	}
	else if ( typeof obj.y != 'undefined' ) {
		posY += elm.y;
	}
	return posY;
}


///////////////////////////////////////////////////////////////////////////////


function SendRequest (url, params, method) {

	if (!method) {
		method = "GET";
	}
	
	g_Request = GetXmlHttpRequest();
	
	if ( !g_Request ) {
		return;
	}
	
	g_Request.onreadystatechange = OnReadyState;
	g_Request.open(method, url, true);
	g_Request.send(params);
		
}


///////////////////////////////////////////////////////////////////////////////


function GetXmlHttpRequest () {

	var req = null;
	
	if ( window.XMLHttpRequest ) {
		req = new XMLHttpRequest();
	}
	else if ( window.ActiveXObject ) {
		req = new ActiveXObject("Msxml2.XMLHTTP");
	}
	
	return req;
}


///////////////////////////////////////////////////////////////////////////////


function OnReadyState(e) {

	if ( g_Request.readyState == READY_STATE_COMPLETE ) {
		var elm = document.getElementById('msg');
		// elm.innerHTML = '';
		elm.parentNode.removeChild(elm);
		startPlaying();
	}
	else {
		// do nothing
	}
}


///////////////////////////////////////////////////////////////////////////////


function ShowMessage(s) {

	var elm = document.getElementById('msg');
	var txt = document.createTextNode(s);
	elm.appendChild(txt);

}


///////////////////////////////////////////////////////////////////////////////


function initScript(e) {

	SendRequest( g_sImageURL );
	

}


///////////////////////////////////////////////////////////////////////////////


addEvent(window, 'load', initScript, false);