function MM_findObj(n, d) { //v3.0
	var p, i, x;
	if( !d ){
		d = document;
	}
	if ( ( p = n.indexOf("?") ) > 0 && parent.frames.length ) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring( 0, p );
	}
	if ( !(x=d[n]) && d.all ){
		x = d.all[n];
	}
	if( typeof(x) == "undefined" && !(x=d[n]) && d.getElementById ){
		x = d.getElementById(n);
	}
	for( i = 0; !x && i < d.forms.length; i++ ){
		x = d.forms[i][n];
	}
	for( i = 0; !x && d.layers && i < d.layers.length; i++ ){
		x = MM_findObj(n, d.layers[i].document);
	}
	return x;
}

// set layer
function setLayer(layerName, x, y, width, height, bgColor, content, visible) {
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
	if ( visible != null ){
		layer.visibility = visible;
	} else {
		layer.visibility = "visible";
	}
	if ( x != null && y != null ){
		moveLayerTo(layerName, x, y);
	}
	layer.width = width;
	layer.height = height;
	if ( bgColor != null ) {
		if( typeof(layer.backgroundColor) == "undefined" ){
			layer.bgColor = bgColor;
		} else {
			layer.backgroundColor = bgColor;
		}
	}
	if( width != null && height != null ){
		clipLayerTo( layerName, 0, 0, width, height );
	}
//		 content != "inherit" ? replaceContent(layerName, content) : null;
}

// clip layerTo
function clipLayerTo(curLayer, l, t, r, b){
	var cliplayer;
	cliplayer = curLayer.style;
	if( typeof(cliplayer) == "undefined" ){
		cliplayer = curLayer;
	}
	if ( document.all ) {
		cliplayer.clip = "rect(" + t + "px " + r + "px " + b + "px " + l + "px)";
	} else if ( document.layers ) {
		cliplayer.clip.top = t;
		cliplayer.clip.right = r;
		cliplayer.clip.bottom = b;
		cliplayer.clip.left = l;
	} else if ( document.getElementById ) {
		cliplayer.clip = "rect(" + t + " " + r + " " + b + " " + l + ")";
	}
}

// clip layerBy
function clipLayerBy(layerName, l, t, r, b){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
	if ( document.all ) {
		layer.clip = "rect(" + ( getClipValue(layerName, 'top') + t ) + "px "
								+ ( getClipValue(layerName, 'right') + r ) + "px "
								+ ( getClipValue(layerName, 'bottom') + b ) + "px "
								+ ( getClipValue(layerName, 'left') + l ) + "px)";
	} else if ( document.layers ) {
		layer.clip.top = ( getClipValue(layerName,'top') ) + t;
		layer.clip.right = ( getClipValue(layerName,'right') ) + r;
		layer.clip.bottom = ( getClipValue(layerName,'bottom') ) + b;
		layer.clip.left = ( getClipValue(layerName,'left') ) + l;
	} else if ( document.getElementById ) {
		layer.clip = "rect(" + t + " " + r + " " + b + " " + l + ")";
	}
}

// get layer's clip value
function getClipValue(curLayer,value){
	var layer;
	layer = curLayer.style;
	if( typeof(layer) == "undefined" ){
		layer = curLayer;
	}
	if ( document.all ) {
		cp = layer.clip.split(" ");
		cp[0] = cp[0].slice(5);
		if ( value == "top" ) return parseInt(cp[0]);
		if ( value == "right" ) return parseInt(cp[1]);
		if ( value == "bottom" ) return parseInt(cp[2]);
		if ( value == "left" ) return parseInt(cp[3]);
	} else if ( document.layers ) {
		if ( value == "top" ) return (layer.clip.top);
		if ( value == "right" ) return (layer.clip.right);
		if ( value == "bottom" ) return (layer.clip.bottom);
		if ( value == "left" ) return (layer.clip.left);
	} else if ( document.getElementById ) {
		cp = layer.clip.split(" ");
		cp[0] = cp[0].slice(5);
		if ( value == "top" ) return parseInt(cp[0]);
		if ( value == "right" ) return parseInt(cp[1]);
		if ( value == "bottom" ) return parseInt(cp[2]);
		if ( value == "left" ) return parseInt(cp[3]);
	}
}

// move layer to (x, y)
function moveLayerTo(layerName, x, y){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
	if ( document.all ) { 
		layer.left = x;
		layer.top = y;
	} else if ( document.layers ) {
		layer.moveTo(x,y);
	} else if ( document.getElementById ) {
		layer.left = x;
		layer.top = y;
	}
}

// move layer by (dx, dy)
function moveLayerBy(layerName, dx, dy){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
	if ( document.all ) {
		layer.pixelLeft += dx;
		layer.pixelTop += dy;
	} else if ( document.layers ) {
		layer.moveBy(dx, dy);
	} else if ( document.getElementById ) {
		layer.left = parseInt(layer.left) + parseInt( dx )+'px'
		layer.top  = parseInt(layer.top)  + parseInt( dy )+'px'
	}
}

// get layer's position
function getSize(layerName, value){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
	if ( value=="left" ) return parseInt(layer.left);
	if ( value=="top" ) return parseInt(layer.top);
	if ( value=="width" ) return parseInt(layer.width);
	if ( value=="height" ) return parseInt(layer.height);
}

// show layer
function showLayer(layerName){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
//	var agent = navigator.userAgent;
//	if (agent.indexOf('Mac') != -1 && agent.indexOf('MSIE') != -1) {
//		layer.visibility = "show";
//	} else {
		layer.visibility = "visible";
//	}
}

// hide layer
function hideLayer(layerName){
	var layer;
	layer = layerName.style;
	if( typeof(layer) == "undefined" ){
		layer = layerName;
	}
//	var agent = navigator.userAgent;
//	if (agent.indexOf('Mac') != -1 && agent.indexOf('MSIE') != -1) {
//		layer.visibility = "hide";
//	} else {
		layer.visibility = "hidden";
//	}
}

// replace new html
function replaceContent(layerName, html) {
	if ( document.all ){
		layerName.innerHTML = html;
	} else if ( document.layers ) {
		layerName.document.open("text/html");
		layerName.document.write(html);
		layerName.document.close();
	} else if ( document.getElementById ) {
		layerName.innerHTML = html;
	}
}

var gTimerID = false;
var gCurLayer = null;
var gScrollValue;
var gScrollHeight;
var gScrollBtmMax;
var gSpeed = false;
function scrollUp(layerName, sNum, speed){
	var lPosition;
	if ( sNum ){
		gScrollValue = sNum;
	}
	if ( !gCurLayer ) {
		gCurLayer = MM_findObj(layerName);
	}
	if( speed ){
		gSpeed = speed;
	} else if ( !gSpeed ) {
		gSpeed = 80;
	}
	if( typeof(gCurLayer.style.top) == "undefined" ){
		lPosition = parseInt(gCurLayer.top);
	} else {
		lPosition = parseInt(gCurLayer.style.top);
	}

	if ( gScrollValue > Math.abs(lPosition) ) {
		gScrollValue = lPosition * -1;
	}
	if ( lPosition < 0 ) {
		moveLayerBy(gCurLayer, 0, gScrollValue);
		if ( sNum && !gTimerID ){
			gTimerID = setInterval('scrollUp()', gSpeed);
		}
	}
}

function scrollDown(layerName, sNum, maxNum, scrollHeight, speed){
	var lPosition;
	if ( sNum ){
		gScrollValue = sNum;
	}
	if ( maxNum ) {
		gScrollBtmMax = maxNum;
	}
	if ( scrollHeight ) {
		gScrollHeight = scrollHeight;
	}
	if ( !gCurLayer ) {
		gCurLayer = MM_findObj(layerName);
	}
	if( speed ){
		gSpeed = speed;
	} else if ( !gSpeed ) {
		gSpeed = 80;
	}
	if( typeof(gCurLayer.style.top) == "undefined" ){
		lPosition = parseInt(gCurLayer.top);
	} else {
		lPosition = parseInt(gCurLayer.style.top);
	}

	if ( ( gScrollBtmMax - gScrollHeight ) - lPosition < gScrollValue ) {
		gScrollValue = ( gScrollBtmMax - gScrollHeight ) - lPosition;
	}
	if ( - ( gScrollBtmMax - gScrollHeight ) < lPosition ) {
		moveLayerBy(gCurLayer, 0, gScrollValue * -1);
		if ( sNum && !gTimerID ) gTimerID = setInterval('scrollDown()', gSpeed);
	}
}

function scrollStop() {
	clearInterval(gTimerID);
	gTimerID = false;
	gCurLayer = null;
	gSpeed = false;
}

// change Image
function chLayersImage(fileName, imageName, layerName) {
	if ( document.all ) {
		document.images[imageName].src = fileName;
	} else {
		layer = MM_findObj(layerName);
		layer.document.images[imageName].src = fileName;
	}
}

function baseSet() {
	gWinWidth  = document.body.clientWidth;
	gWinHeight = document.body.clientHeight;
	if ( gPlatform == "Mac" && gBrowser == "MSIE" && gWinWidth % 2 > 0 ){
		gWinWidth++;
	}
	if( gWinWidth <= 0 ){
		gWinWidth = window.innerWidth;
		gWinHeight = window.innerHeight;
	}
	gBaseX = Math.floor( ( gWinWidth - 720 ) / 2 );
	gBaseY = Math.floor( ( gWinHeight - 480 ) / 2 );
	if ( gBaseX < 8 ){
		gBaseX = 8;
	}
	if ( gBaseY < 0 ){
		gBaseY = 0;
	}
}

