// PRELOAD IMAGES(MM)
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//SWAP IMAGE
var revStockUaObj,revStockUaSrc;
function revSetOverAction(_obj){
	revStockUaObj = _obj;
	revStockUaSrc = _obj.firstChild.src;
	var s = revStockUaSrc.indexOf(".gif");
	var j = revStockUaSrc.indexOf(".jpg");
	n = 3;
	extension = revStockUaSrc.substr(revStockUaSrc.length-n,n);
	if( extension == 'gif'){
	_obj.firstChild.src = revStockUaSrc.substring(0,s) + "_ovr.gif";
	}
	else if( extension == 'jpg'){
	_obj.firstChild.src = revStockUaSrc.substring(0,j) + "_ovr.jpg";
	}
}
function revSetOutAction(){
	revStockUaObj.firstChild.src = revStockUaSrc;
}
//BOOKMARK_POPUP
function NewBMWin() {
	NewWindow=window.open("","bookmark","width=437,height=310,toolbar=0,location=0,status=1,menubar=0,scrollbars=1,resizable=1");
	NewWindow.focus();
}
function popupWindow(targetName) {
	var windowHeight = 310;
	var windowWidth = 437;
	if(targetName=="rss"){windowHeight=500}
	else if(targetName=="news"){windowHeight=880,windowWidth=647}
	NewWindow=window.open("",targetName,"width="+windowWidth+",height="+windowHeight+",toolbar=0,location=0,status=1,menubar=0,scrollbars=1,resizable=1,left=5,top=5");
	NewWindow.focus();
}

function enqWin(url) {
	NewWindow=window.open(url,"enq","width=750,height=550,toolbar=0,location=0,status=1,menubar=0,scrollbars=1,resizable=1");
	NewWindow.focus();
}



// SCROLL +++++++++++++++++++++++++++++++++++++//
var __scroll = {sp:6, fps:16, timer:0};
function setScrollSp(sp) {
	if(typeof sp == "number") {
		this.__scroll.sp = sp;
	}
}
function setScrollFps(fps) {
	if(typeof fps == "number") {
		this.__scroll.fps = fps;
	}
}
function scrollToTop() {
	pageScroll(0, 0);
}
function getScrollLeft() {
	if(navigator.userAgent.indexOf("MSIE") != -1) {
		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollLeft:document.body.scrollLeft;
	} else {
 	 return (window.pageXOffset) ? window.pageXOffset : 0;
 }
}
function getScrollTop() {
	if(navigator.userAgent.indexOf("MSIE") != -1) {
		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollTop:document.body.scrollTop;
	} else {
 	 return (window.pageYOffset) ? window.pageYOffset : 0;
 }
}
function pageScroll(toX, toY, cuX, cuY) {
	clearTimeout(this.__scroll.timer);
	toX = (!toX || toX < 0) ? 0 : toX;
	toY = (!toY || toY < 0) ? 0 : toY;
	cuX = (!cuX) ? 0 + getScrollLeft() : cuX;
	cuY = (!cuY) ? 0 + getScrollTop() : cuY;
	cuX += (toX - getScrollLeft()) / this.__scroll.sp; 
	cuY += (toY - getScrollTop()) / this.__scroll.sp; 
	if(cuX < 0) { cuX = 0; }
	if(cuY < 0) {	cuY = 0;	}
	window.scrollTo(Math.floor(cuX), Math.floor(cuY));
	if(Math.floor(cuX) != toX || Math.floor(cuY) != toY) {
		this.__scroll.timer = setTimeout("pageScroll("+toX+","+toY+"," +cuX+","+cuY+")",this.__scroll.sp);
	}
}

// SCROLL_PAGE_LINK +++++++++++++++++++++++++++++++++++++//
ScrollClass.prototype.speed = 12;
ScrollClass.prototype.timer = 0;
ScrollClass.prototype.direction = new Object();
ScrollClass.prototype.offset = new Object();

ScrollClass.prototype.isCompatMode = document.compatMode == "CSS1Compat";
ScrollClass.prototype.major = parseInt(navigator.appVersion);
ScrollClass.prototype.minor = parseFloat(navigator.appVersion);
ScrollClass.prototype.isIE = navigator.userAgent.indexOf("MSIE") != -1;
ScrollClass.prototype.isOpera = window.opera;
ScrollClass.prototype.isMozilla = navigator.userAgent.indexOf("Gecko") != -1;
ScrollClass.prototype.isSafari = navigator.userAgent.indexOf('Safari') != -1;
ScrollClass.prototype.isNN  = navigator.userAgent.indexOf("Netscape") != -1;
ScrollClass.prototype.isMac = navigator.userAgent.indexOf("Mac") != -1;

var scroll = new ScrollClass();
function ScrollClass() {}
ScrollClass.prototype.setScrollSpeed = function(num) {
	if(typeof num == "number") {
		this.speed = num;
	}
}
ScrollClass.prototype.getScrollSpeed = function() {
	return this.speed;
}
ScrollClass.prototype.getMaxScroll = function() {
	var pos = new Object();
	if(this.isNN) {
		pos.x = this.major <= 5 ? document.documentElement.offsetWidth - window.innerWidth + 16 : document.documentElement.offsetWidth - window.innerWidth + 17;
		pos.y = this.major <= 5 ? document.documentElement.offsetHeight - window.innerHeight + 16 : document.documentElement.offsetHeight - window.innerHeight + 17;
	} else {
		if(this.isMac) {
			if(this.isIE) {
				pos.x = document.body.offsetWidth- document.body.clientWidth + 1;
				pos.y = document.body.offsetHeight - document.body.clientHeight + 1;
			} else {
				pos.x = document.documentElement.offsetWidth - window.innerWidth;
				pos.y = document.documentElement.offsetHeight - window.innerHeight;
			}
		} else {
			pos.x = this.isCompatMode ? document.documentElement.scrollWidth - document.documentElement.clientWidth : document.body.scrollWidth - document.body.clientWidth;
			pos.y = this.isCompatMode ? document.documentElement.scrollHeight - document.documentElement.clientHeight : document.body.scrollHeight - document.body.clientHeight;
		}
	}
	if(pos.x < 0) { pos.x = 0; }
	if(pos.y < 0) { pos.y = 0; }
	return {x:pos.x, y:pos.y };
}
ScrollClass.prototype.getScrollLeft = function() {
	if(this.isIE) {
		return this.isCompatMode ? document.documentElement.scrollLeft : document.body.scrollLeft;
	} else {
		return window.pageXOffset ? window.pageXOffset : 0;
	}
}
ScrollClass.prototype.getScrollTop = function() {
	if(this.isIE) {
		return this.isCompatMode ? document.documentElement.scrollTop : document.body.scrollTop;
	} else {
		return window.pageYOffset ? window.pageYOffset : 0;
	}
}
ScrollClass.prototype.scrollTo = function() {
	clearTimeout(this.timer);
	this.offset.x = null;
	this.offset.y = null;
	var toX = this.parse("x", this.findAnchor(arguments[0]) ? this.getAnchorPos(arguments[0]).x : arguments[0]);
	var toY = this.parse("y", this.findAnchor(arguments[1]) ? this.getAnchorPos(arguments[1]).y : arguments[1]);
	this.direction.is_x = toX - this.getScrollLeft() >= 0 ? true : false;
	this.direction.is_y = toY - this.getScrollTop() >= 0 ? true : false;
	if(this.isOpera) {
		window.scrollTo(toX, toY);
	} else {
		if(this.isMozilla) {
			//toY = toY - 16 > 0 ? toY - 16 : toY;
		}
		this.pageScroll(toX, toY);
	}
}
ScrollClass.prototype.findAnchor = function(id) {
	return (document.getElementsByName(id)[0] || document.anchors[id]);
}
ScrollClass.prototype.getAnchorPos = function(id) {
	if(document.getElementsByName(id)[0]) {
		var element = document.getElementsByName(id)[0];
		var obj = new Object();
		do {
			obj.x = (!obj.x) ? element.offsetLeft : obj.x + element.offsetLeft;
			obj.y = (!obj.y) ? element.offsetTop : obj.y + element.offsetTop;
		} while((element = element.offsetParent) != null);
		return {x:obj.x < 0 ? 0 : obj.x, y:obj.y };
	} else if(document.layers) {
		var element = document.anchors[id];
		return {x:element.x, y:element.y };
	} else {
		return {x:0, y:0};
	}
}
ScrollClass.prototype.parse = function(direction, value) {
	var maxScroll = this.getMaxScroll();
	var range = {min_x:0, max_x:maxScroll.x, min_y:0, max_y:maxScroll.y };
	switch(direction) {
		case "x":
			if(typeof value == "boolean") {
				return value ? 0 : this.getScrollLeft();
			} else if(typeof value == "number") {
				if(!this.isOpera) {
					if(value < 0) {
						return 0;
					} else if(value > range.max_x) {
						return range.max_x;
					}
				}
				return value;
			} else if(typeof value == "string") {
				switch(value) {
					case "left": return 0;
					case "center": return Math.floor(range.max_x / 2);
					case "right": return range.max_x;
					default: this.getScrollLeft();
				}
			}
			return this.getScrollLeft();
			break;
		case "y":
			if(typeof value == "boolean") {
				return value ? 0 : this.getScrollTop();
			} else if(typeof value == "number") {
				if(value < 0) {
					return 0;
				} else if(value > range.max_y) {
					return range.max_y;
				}
				return value;
			} else if(typeof value == "string") {
				switch(value) {
					case "top": return 0;
					case "middle": return Math.floor(range.max_y / 2);
					case "bottom": return range.max_y;
					default: this.getScrollTop();
				}
			}
			return this.getScrollTop();
			break;
	}
}
ScrollClass.prototype.pageScroll = function(toX, toY) {
	clearTimeout(this.timer);
	var dX = this.direction.is_x;
	var dY = this.direction.is_y;
	var scX = this.getScrollLeft();
	var scY = this.getScrollTop();
	var cuX = dX ? Math.ceil((toX - scX) / this.speed) : Math.floor((toX - scX) / this.speed);
	var cuY = dY ? Math.ceil((toY - scY) / this.speed) : Math.floor((toY - scY) / this.speed);
	if(((dX && scX + cuX < toX -1) || (!dX && scX + cuX > toX + 1)) || ((dY && scY + cuY < toY - 1) || (!dY && scY + cuY > toY +1))) {
		if(this.offset.x != null && this.offset.y != null) {
			if(this.offset.x == scX && this.offset.y == scY) {
				return;
			} else if((dX && this.offset.x > scX) || (!dX && this.offset.x < scX)) {
				return;
			} else if((dY && this.offset.y > scY) || (!dY && this.offset.y < scY)) {
				return;
			}
		}
		window.scrollTo(scX + cuX, scY + cuY);
		this.timer = setTimeout("ScrollClass.prototype.pageScroll("+toX+","+toY+")",this.speed);
		this.offset.x = scX;
		this.offset.y = scY;
	} else {
		clearTimeout(this.timer);
		window.scrollTo(toX, toY);
		return false;
	}
}

// Checkbox all +++++++++++++++++++++++++++++++++++++//
function checkAll1(){

if(document.forms[0].mylistall[0].checked){
	for (i=0; i<document.forms[0].mylistchk.length; i++) document.forms[0].mylistchk[i].checked = true;
	document.forms[0].mylistall[1].checked = true;

}
else{
	for (i=0; i<document.forms[0].mylistchk.length; i++) document.forms[0].mylistchk[i].checked = false;
	document.forms[0].mylistall[1].checked = false;
}

}

function checkAll2(){

if(document.forms[0].mylistall[1].checked){
	for (i=0; i<document.forms[0].mylistchk.length; i++) document.forms[0].mylistchk[i].checked = true;
	document.forms[0].mylistall[0].checked = true;

}
else{
	for (i=0; i<document.forms[0].mylistchk.length; i++) document.forms[0].mylistchk[i].checked = false;
	document.forms[0].mylistall[0].checked = false;
}

}

// rightarea_search_panel +++++++++++++++++++++++++++++++++++++//

function SearchDate() {}
SearchDate.prototype.form_name = "search";
SearchDate.prototype.form;
SearchDate.prototype.from_y = "from_y";
SearchDate.prototype.from_m = "from_m";
SearchDate.prototype.to_y = "to_y";
SearchDate.prototype.to_m = "to_m";
SearchDate.prototype.y_num = 2000;
SearchDate.prototype.initialize = function() {
	if(document.getElementsByName(this.form_name).length == 0) return;
	this.form = document.getElementsByName(this.form_name);
	for(var i = 0; i < this.form.length; i ++) {
		var target = this.form[i];
		if(!target[this.from_y]) continue;
		if(!target[this.from_m]) continue;
		if(!target[this.to_y]) continue;
		if(!target[this.to_m]) continue;
		//set hidden param
		target.$is_enabled = true;
		target[this.from_y].$target = this.form[i];
		target[this.to_y].$target = this.form[i];
		this.onChange(target[this.from_y]);
		this.onChange(target[this.to_y]);
		//SEARCH_TYPE
		target.$genre = this.getElementsByAttribute(target,"id","genre")[0];
		for(var j = 0; j < target["type"].length; j ++) {
			target["type"][j].$target = target;
			if(j == target["type"].length - 1) {
				this.SearchType(target["type"][j]);
			}
		}
	}
}
SearchDate.prototype.SearchType = function(o) {
	if(!o.$target.$is_enabled) return;
	var target = o.$target;
	if(target.type[1].checked) {
		target.$genre.style.display = 'block';
	} else if (target.type[0].checked || target.type[2].checked) {
		target.$genre.style.display = 'none';
	}
}
SearchDate.prototype.getElementsByAttribute = function(target,attribute,value) {
	var tags = target.getElementsByTagName("*");
	var elements = new Array();
	for(var i = 0; i < tags.length; i ++) {
		if(tags[i][attribute] == value) {
			elements.push(tags[i]);
		}
	}
	return elements.length > 0 ? elements : null;
}
SearchDate.prototype.onChange = function(o) {
	if(!o.$target.$is_enabled) return;
	var target = o.$target[o.name.replace("y","m")];
	if(o.options[o.selectedIndex].value < this.y_num) {
		target.value = "";
		target.disabled = true;
	} else {
		target.disabled = false;
	}
}
SearchDate.prototype.check = function(o,lang) {
	if(!o.$is_enabled) return;
	var msg = lang=="jp" ? "終了年月は開始年月より後の年月を指定してください" : "Please make sure the search end date is later than the search start date" ;
	var sy = o[this.from_y].options[o[this.from_y].selectedIndex].value;
	var sm = o[this.from_m].options[o[this.from_m].selectedIndex].value;
	var ey = o[this.to_y].options[o[this.to_y].selectedIndex].value;
	var em = o[this.to_m].options[o[this.to_m].selectedIndex].value;
	var dsy = sy == "" ? o[this.from_y].options[1].value : sy;
	var dsm = sm == "" ? "01" : sm;
	var dey = ey == "" ? o[this.to_y].options[o[this.to_y].options.length -1].value : ey;
	var dem = em == "" ? "12" : em;
	if(dsy + dsm > dey + dem) {
		alert(msg);
		return false;
	}
	return true;
}
// onload +++++++++++++++++++++++++++++++++++++//
var oSD = new SearchDate();
window.onload = function(){
	oSD.initialize();
	if(document.getElementById('trivial')){mazdaTrivial.initialize('trivial', '/Access/trivia/trivial.xml');}
}
