/* @cc_on _d=document;eval('var document=_d')@ */
var gr = new function(){
	this.jkn = null;
	this.cks = null;
	this.hkk = null;
	this.pgs = null;
	this.srt = null;
	this.imgs = null;
	this.page = 0;
	this.totalpage = 0;
	this.init = false;
	this.upd = false;
	this.updTime = "";
	this.imgList = null;
	this.imgIndex = 0;
	this._init = function(){
		this._addEvent(window, "load", this._onload);
		setInterval(this._interval, 1000);
	}
	this._onload = function(){
		if(!gr.init){
			gr.jkn = gr._getElements("tb_off", "rBox", "A");
			gr.pgs = gr._getElements("p_of", "pBox", "A");
			gr.imgs = gr._getElements("cimg", "pBox", "A");
		}
		if(document.forms["lf"].ck.length > 0) gr.cks = $A(document.forms["lf"].ck);
		else gr.cks = [document.forms["lf"].ck];

		gr.imgList = gr._getElements("imgs", "pBox", "IMG");

		gr.hkk = gr._getElements("hikaku", "hikakuBox", "A");
		gr.srt = gr._getElements("d_iz", "thd", "A");
		if($("p")) $("p").value = location.pathname.replace(/^\/newcar\//, "");
		gr._regist();
		gr._totalPage();
		gr._sortInit();
		if(!gr.init) gr._onPgs();
		gr.init = true;
		gr.upd = true;
		gr.updTime = "";
	}
	this._regist = function(){
		gr.jkn.each(function(e){ e.onclick = gr._onJkn; });
		gr.cks.each(function(e){ e.onclick = gr._onChk; });
		gr.hkk.each(function(e){ e.onclick = gr._onHkk; });
		gr.pgs.each(function(e){ e.onclick = gr._onPgs; });
		gr.srt.each(function(e){ e.onclick = gr._onSort; });
		gr.imgs.each(function(e){ e.onclick = gr._onCimg; });
		$("gimg").onclick = gr._onGimg;
	}
	this._sortInit = function(){
		var s = ($("s").value == "") ? "1" : $("s").value;
		if(!$("st_" + s)) return;
		$("st_" + s).className = "d_mojao";
		var p = gr._findParent($("st_" + s), "TH");
		if(p) p.className += " d_iz";
		if(s == "1" || s == "2") $("gr2").className += " d_iz";
	}
	this._onParts = function(){
		gr._search();
	}
	this._totalPage = function(){
		for(var i = 1 ; i < 10 ; i++){
			if($("pbox"+i.toString())) gr.totalpage = i;
			else break;
		}
	}
	this._onJkn = function(){
		if(this.className.match(/tb_off/)){
			this.className = this.className.replace(/tb_off/, "tb_on");
		}
		else {
			this.className = this.className.replace(/tb_on/, "tb_off");
		}
		gr._search();
		return false;
	}
	this._onChk = function(){
//		console.info(this.value);
		gr.upd = false;
		gr._dif(this.value, this.checked);
		return;

		var l = 0;
		gr.cks.each(function(e){ if(e.checked) l++; });
		if(l > 5){
			this.checked = false;
			alert("比較可能な件数は５件までです");
		}
	}
	this._onHkk = function(){
//		var t = [];
//		gr.cks.each(function(e){ if(e.checked) t.push(e.value); });
//		if(t.length < 1){
//			alert("グレードを選択してください");
//			return false;
//		}
//		location.href = "/diff/";
		return true;
	}
	this._onPgs = function(){
		if(!$("p_b") || !$("p_n")) return false;
		var add = (!this.id || this.id == "p_n") ? 1 : -1;
		var old = gr.page;
		if(this.id && add > 0 && gr.page >= gr.totalpage) return false;
		if(this.id && add < 0 && gr.page <= 1) return false;
		gr.page += add;
		$("p_b").className = (gr.page > 1) ? "p_on" : "p_of";
		$("p_n").className = (gr.page < gr.totalpage) ? "p_on" : "p_of";
		if(this.id) $("pbox"+old.toString()).style.display = "none";
		$("pbox"+gr.page.toString()).style.display = "block";
		return false;
	}
	this._onSort = function(){
		if(this.className == "d_mojao") return false;
		var el = gr._getElements("d_mojao", "thd", "A");
		el.each(function(e){ e.className = "d_iz"; });
		$("s").value = this.id.replace(/^st_/, "");
		gr._search();
		return false;
	}
	this._onCimg = function(){
		var img = gr._findImg(this);
		if(!img) return false;
		$("cimg").src = img.src;
		$("cimg").alt = img.alt;
		$("ccap").innerHTML = img.alt;
		return false;
	}
	this._onGimg = function(){
		gr.imgIndex++;
		if(gr.imgList.length <= gr.imgIndex) gr.imgIndex = 0;
		$("gimg2").src = gr.imgList[gr.imgIndex].src;
		$("gimg2").alt = gr.imgList[gr.imgIndex].alt;

		return false;
	}

	this._jkn = function(){
		var t = [];
		gr.jkn.each(function(e){ if(e.className.match(/tb_on/)) t.push(e.id); });
		return t.join("\t");
	}
	this._search = function(){
		$("j").value = gr._jkn();
		$("r").value = Math.random();
		var ajax = new Ajax.Request("/newcar/dt.php", {method:'get', parameters:Form.serialize("pf"), onComplete:gr._searchRes});
	}
	this._searchRes = function(res){
		eval('var data = ' + res.responseText);
		$("listBox").innerHTML = data.html;
		$("count").innerHTML = data.count;
		gr._onload();
	}
	this._dif = function(val, checked){
		var p = $H({p1:val, p2:(checked) ? 1 : 0, r:Math.random()}).toQueryString();
		var ajax = new Ajax.Request("/diff/ad.php", {method:'get', parameters:p, onComplete:gr._difRes});
	}
	this._difRes = function(res){
		gr.upd = true;
		gr.updTime = "";
	}

	this._interval = function(){
		if(!gr.init || !gr.upd) return;
		if(gr.updTime == gr._getCookie("ct01upd")) return;
		gr._setChk();
		gr.updTime = gr._getCookie("ct01upd");
	}

	this._setChk = function(){
		var p = $H({p1:"", p2:"11", r:Math.random()}).toQueryString();
		var ajax = new Ajax.Request("/diff/ad.php", {method:'get', parameters:p, onComplete:gr._chkRes});
	}

	this._chkRes = function(res){
		eval('var data = ' + res.responseText);
		if(!data || !data.codes) return;
		gr.cks.each(function(e){
			e.checked = (data.codes.indexOf(e.value) < 0) ? false : true;
		});
	}

	this._addEvent = function(obj, type, func){
		if(!obj) return;
		if(obj.addEventListener) obj.addEventListener(type, func, false);
		else if(obj.attachEvent) obj.attachEvent('on' + type, func);
	}
	this._findImg = function(obj){
		var img = gr._findChild(obj, "IMG");
		if(img[0]) return img[0];
		return null;
	}
	this._findChild = function(obj, type){
		var childs = new Array;
		for(var i = 0 ; i < obj.childNodes.length ; i++){
			if(obj.childNodes[i].nodeName == type) childs.push(obj.childNodes[i]);
			var r = gr._findChild(obj.childNodes[i], type);
			for(var j = 0 ; j < r.length ; j++){
				childs.push(r[j]);
			}
		}
		return childs;
	}

	this._getElements = function(cl, parent, tag){
		if(Prototype.BrowserFeatures && Prototype.BrowserFeatures.XPath){
			return $(parent).getElementsByClassName(cl);
		}
		var childNode = $(parent).getElementsByTagName(tag || '*');
		var elements = [];
		for(var i = 0, length = childNode.length ; i < length ; i++){
			if(Element.hasClassName(childNode[i], cl)) elements.push(Element.extend(childNode[i]));
		}
		return elements;
	}
	this._findParent = function(obj, type){
		for(var p = (obj.parentElement) ? obj.parentElement : obj.parentNode ; p ; p = (p.parentElement) ? p.parentElement : p.parentNode){
			if(p.nodeName == type) return p;
		}
		return undefined;
	}
	this._getCookie = function(key){
		var tmp = document.cookie+";";
		var tmp1 = tmp.indexOf(key+"=",0);
		if(tmp1 != -1){
			tmp = tmp.substring(tmp1,tmp.length);
			if(tmp.match(key+";")) return "";
			start = tmp.indexOf("=",0);
			end = tmp.indexOf(";",start);
			return(unescape(tmp.substring(start+1,end)));
		}
		return "";
	}

	this._init();
}

