﻿// JavaScript Document

/*******************************************************************************************************
system
*******************************************************************************************************/

/// alertTxt
function alertTxt(str) {
	if ($("#otherPanel > #alertBox").length == 0) {
		$("#otherPanel").html("<div id='alertBox'></div>");
		$(document).keypress(function(e){
			if(e.keyCode==27){
				$("#alertBox").html("");
			}
		});
	}
	$("#alertBox").append(str+"<br />");
}

/// getKey
function getKey(str,key) {
	var strIndex = str.lastIndexOf(key);
	var strKey = str.slice(strIndex+1,str.length);
	return strKey;
}

/// clearKey
function clearKey(str,key) {
	var key = getKey(str,key);
	var result = str.replace("#"+key,"");
	return result;
}

/// hasKey
function hasKey(str,key) {
	var result = str.lastIndexOf(key) != -1 ? true : false;
	return result;
}

/// input text clear value
var checkValue = {
	"focus": function(elm, val, typ){
		if (typ == "pw") {
			if (BrowserDetect.browser == "Explorer") {
				var n = $(elm).attr("name");
				var c = $(elm).attr("class");
				var html = "<input name='"+n+"' type='password' value='' class='"+c+"' onblur=\"checkValue.blur(this,'"+val+"','pw')\" />";
				$(elm).replaceWith(html);
				setTimeout(function(){$("input[name='"+n+"']").focus();},10);
			} else {
				elm.type = "password";
				if ($(elm).val() == val) $(elm).val("");
				setTimeout(function(){elm.focus();},10);
			}
		} else {
			$(elm).val(($(elm).val() == val) ? "" : $(elm).val());
			if ($(elm).val() != val && typ == 'num') $(elm).select();
		}
	},
	"blur": function(elm, val, typ){
		if (typ == "pw") {
			if (BrowserDetect.browser == "Explorer") {
				if ($(elm).val() != val && $(elm).val() != "") return;
				var n = $(elm).attr("name");
				var c = $(elm).attr("class");
				var html = "<input name='"+n+"' type='text' value='"+val+"' class='"+c+"' onfocus=\"checkValue.focus(this,'"+val+"','pw')\" />";
				$(elm).replaceWith(html);
			} else {
				if ($(elm).val() == val || $(elm).val() == "") {
					elm.type = "text";
					$(elm).val(val);
				}
			}
		} else {
			$(elm).val(($(elm).val() == "") ? val : $(elm).val());
		}
	}
};

/// RegExpChk
function RegExpVd(code,str,msg) {
	re = code;
	if (!re.test(str)) {
		return false;
	} else {
		return true;
	}
}

/// RanNum
function RanNum(minN,maxN) {
	return Math.floor(Math.random()*(maxN-minN+1)+minN);
}

// opWin
function opWin(url, w ,h) {
	opW = window.open(String(url),"","scrollbars=1,toolbar=0,status=0,width="+w+",height="+h);
	opW.screenX = screen.availWidth / 2 - w / 2;
	opW.screenY = screen.availHeight / 2 - h / 2;
}


/*******************************************************************************************************
all
*******************************************************************************************************/

/// mainNav set
var mainNav = {
	"state":new String,
	"step":0,
	"menuH":[369,0,0,0,0,0],
	"set":function(){
		var len = $("#mainNav > li > .sub").length;
		for (var i = 1; i <= len; i++) {
			var subCon = "#mainNav > .n"+i;
			$(subCon).attr("value",i);
			$(subCon).mouseenter(function(){
				var num = $(this).attr("value");
				var btn = "#mainNav > .n"+num+" > a:first";
				if (($(btn).attr("class")).indexOf("step") != -1 || mainNav.step == num) return;
				mainNav.show(num);
				if (mainNav.step != num) {
					mainNav.hide(mainNav.step);
					mainNav.step = num;
				} else {
					mainNav.step = 0;
				}
			});
			$(subCon).mouseleave(function(){
				mainNav.hide(mainNav.step);
				mainNav.step = 0;
			});
		}
	},
	"show":function(num) {
		var btn = "#mainNav > .n"+num+" > .anchor";
		var subCon = "#mainNav > li.n"+num+" > .sub";
		if (BrowserDetect.browser == "Explorer") {
			$(subCon).css("visibility","visible");
		} else {
			$(subCon).css("visibility","visible");
			$(subCon).css("opacity","1");
		}
		$(subCon).height(0);
		$(subCon).animate({
			height:mainNav.menuH[num-1]
		}, 300, function(){$(this).clearQueue();});
		$(btn).addClass("step");
		$(btn).animate({"color":"#1a6caf"},200,"easeOutQuad",function(){$(this).clearQueue();});
	},
	"hide":function(num, mode) {
		var btn = "#mainNav > .n"+num+" > .anchor";
		var subCon = "#mainNav > li.n"+num+" > .sub";
		if (BrowserDetect.browser == "Explorer") {
			$(subCon).css({visibility:"hidden"});
			$(btn).removeClass("step");
		} else {
			if (mode == "click") {
				$(subCon).css({visibility:"hidden"});
				$(btn).removeClass("step");
			} else {
				$(subCon).animate({opacity: 0}, 200, function(){
					$(subCon).css("visibility","hidden");
					$(btn).removeClass("step");
					$(this).clearQueue();
				});
			}
		}
		$(btn).animate({"color":"#999999"},300,"easeOutQuad",function(){$(this).clearQueue();});
	}
}


/// allCars set
var allCars = {
	"set":function(){
		var len = new Number($("#allCars").find("li").length);
		var saveDDlen = new Number;
		// rewirte id
		$("#allCars").find("li").each(function(i,elm){
			$(elm).attr("id","car"+(i+1));
		});
		for (var i = 1; i <= len; i++) {
			var DDlen = Number($("#allCars").find("li[id='car"+i+"']").find("dd").length);
			saveDDlen = (DDlen < saveDDlen) ? saveDDlen : DDlen;
			var plusDD = saveDDlen - DDlen;
			if (plusDD > 0) {
				var dd = "";
				for (var s = 1; s <= plusDD; s++) {
					dd += "<dd></dd>";
				}
				var html = dd;
				$("#allCars").find("ul").find("li[id='car"+i+"']").find("dl").append(html);
			}
		}
		var ratio = 4-(Math.floor(len%4));
		if (ratio < 4) {
			for (var i = 1; i <= ratio; i++) {
				var dd = "";
				for (var d = 1; d <= saveDDlen; d++) {
					dd += "<dd></dd>";
				}
				var html = "<li id='car"+(i+len)+"'><div class='block'><div class='car'></div><dl><dt></dt>"+dd+"</dl></div></li>";
				$("#allCars").find("ul").append(html);
			}
		}
		$("#allCars").find("li").find("dd").mouseenter(function(){
			$(this).find("a").animate({
				backgroundPosition:"0px 0px"
			}, 400, "easeOutQuad", function(){$(this).addClass("step");$(this).clearQueue();});
		});
		$("#allCars").find("li").find("dd").mouseleave(function(){
			$(this).find("a").animate({
				backgroundPosition:"0px -142px"
			}, 400, "easeOutQuad", function(){$(this).removeClass("step");$(this).clearQueue();});
		});
		$("#allCars").mouseleave(function(){
			$(this).find("a[class='step']").animate({
				backgroundPosition:"0px -142px"
			}, 400, "easeOutQuad", function(){$(this).clearQueue();});
		});
		$("#allCars").find("li").find("dd > a").click(function(){
			mainNav.hide(mainNav.step, "click");
		});
	}
}


/// expandOpt set
var expandOpt = {
	"state":new String,
	"step":0,
	"set":function(con1,con2){
		var len = $(con1+" > li").length;
		var ow = $(con1).width();
		for (var i = 1; i <= len; i++) {
			var btn = con2+i;
			$(btn).attr("value",i);
			$(btn).width(0);
			$(btn).mouseenter(function(){
				if (expandOpt.state == "animate") return;
				var num = $(this).attr("value");
				var w = Number($(this).find("a").width());
				var btn = con2+num;
				if ($(btn).attr("class") == "step" || expandOpt.step == num) return;
				$(btn).addClass("step");
				expandOpt.state = "animate";
				$(btn).animate({
					"width":w
				}, 300, function(){expandOpt.state = "open";$(this).clearQueue();});
				$(con1).animate({
					width:ow+w
				}, 300);
				if (expandOpt.step != num) {
					expandOpt.hideAll(con2,expandOpt.step);
					expandOpt.step = num;
				} else {
					expandOpt.step = 0;
				}
			});
		}
		$(con1).mouseleave(function(){
			if (expandOpt.state == "animate") return;
			expandOpt.state = "open";
			expandOpt.hideAll(con2,expandOpt.step);
			expandOpt.step = 0;
			$(con1).animate({
				width:ow
			}, 300, function(){expandOpt.state = "close";$(this).clearQueue();});
		});
		$(con1).css("visibility","visible");
	},
	"hideAll":function(con2,num){
		if (expandOpt.state == "close") return;
		expandOpt.state = "animate";
		var btn = con2+num;
		$(btn).animate({
			"width":0
		}, 300, function(){$(btn).removeClass("step");expandOpt.state = "close";$(this).clearQueue();});
	}
}


/// epaper set
var epaper = {
	"set":function(){
		if (BrowserDetect.browser != "Explorer") $("#epaper").css("opacity","0");
		$("#epaper").draggable({containment:"#container", handle:".epaperHead"});
	},
	"open":function(){
		if (BrowserDetect.browser == "Explorer") {
			$("#epaper").css("visibility","visible");
		} else {
			$("#epaper").css("visibility","visible");
			$("#epaper").animate({
				opacity:1
			}, 500, function(){$(this).clearQueue();});
		}
	},
	"close":function(){
		if (BrowserDetect.browser == "Explorer") {
			$("#epaper").css("visibility","hidden");
		} else {
			$("#epaper").animate({
				opacity:0
			}, 400, function(){$(this).clearQueue();$("#epaper").css("visibility","hidden");});
		}
	}
}


/*******************************************************************************************************
index
*******************************************************************************************************/

/// subNav set
var subNav = {
	"init":true,
	"time":280,
	"step":0,
	"timeout":new Array,
	"set":function(){
		var len = $("#subNav > li").length;
		for (var i = 1; i <= len; i++) {
			var con = "#subNav > .n"+i;
			$(con).attr("value",i);
			$(con+" > .sub > ul").cycle({
				speed:1000, 
				timeout:0, 
				pager:con+" > .sub > .page", 
				pagerEvent:"mousedown",
				pauseOnPagerHover:true,
				easeIn:"easeInQuad",
				easeOut:"easeOutQuad"
			});
			$(con).mouseenter(function(){
				var num = $(this).attr("value");
				if (subNav.init == true) {
					clearTimeout(subNav.timeout[num-1]);
				}
				var btn = "#subNav > .n"+num+" > a:first";
				if (subNav.step == num) return;
				$(btn).addClass("step");
				subNav.show(num);
				if (subNav.step != num) {
					subNav.hide(subNav.step);
					subNav.step = num;
				} else {
					subNav.step = 0;
				}
			});
		}
		$("#subNav").mouseleave(function(){
			subNav.autoHide();
			subNav.step = 0;
		});
	},
	"show":function(num) {
		var con = "#subNav > .n"+num;
		var btn = "#subNav > .n"+num+" > a:first";
		var subCon = "#subNav > .n"+num+" > .sub";
		$(subCon).animate({
			height:173
		}, subNav.time, "easeInQuad", function(){$(this).clearQueue();})
		$(con).animate({
			top:-163
		}, subNav.time, "easeInQuad", function(){$(this).clearQueue();});
	},
	"hide":function(num) {
		var con = "#subNav > .n"+num;
		var btn = "#subNav > .n"+num+" > a:first";
		var subCon = "#subNav > .n"+num+" > .sub";
		$(subCon).animate({
			height:0
		}, subNav.time+100, "easeOutQuad", function(){$(this).clearQueue();})
		$(con).animate({
			top:0
		}, subNav.time+100, "easeOutQuad", function(){$(this).clearQueue();$(btn).removeClass("step");subNav.init = false;});
	},
	"autoShow":function() {
		var len = $("#subNav > li").length;
		for (var i = 1; i <= len; i++) {
			var con = "#subNav > .n"+i;
			var subCon = "#subNav > .n"+i+" > .sub";
			$(subCon).animate({
				height:173
			}, subNav.time, "easeInQuad", function(){$(this).clearQueue();})
			$(con).animate({
				top:-163
			}, subNav.time, "easeInQuad", function(){$(this).clearQueue();});
		}
	},
	"autoHide":function() {
		var len = $("#subNav > li").length;
		for (var i = 1; i <= len; i++) {
			var con = "#subNav > .n"+i;
			var subCon = "#subNav > .n"+i+" > .sub";
			$(subCon).animate({
				height:0
			}, subNav.time+100, "easeInQuad", function(){$(this).clearQueue();})
			$(con).animate({
				top:0
			}, subNav.time+100, "easeInQuad", function(){$(this).clearQueue();$(con).removeClass("step");});
		}
	}
}



/*******************************************************************************************************
sub
*******************************************************************************************************/

/// autoScroll
function backTop() {
	$(".backtop").click(function(){
		//var time = ($(window).scrollTop()*1.5 > 800)?$(window).scrollTop()*1.5:800;
		var time = 800;
		$(window).scrollTo( 0, time, {queue:true} );
	});
}
function autoScroll() {
	var eventType = "";
	var time = ($(document).find("a[name='top']").length > 0) ? 0 : 800;
	if ($(document).find("a[name='CancelScroll']").length > 0) {
		eventType = "CancelScroll";
	} else if ($(document).find("a[name='Scroll']").length > 0) {
		eventType = "Scroll";
	}
	if (eventType == "CancelScroll") return;
	
	
	if (eventType == "Scroll") {
		$(window).scrollTo( 468, time, {queue:true} );
	} else if (document.documentElement.clientHeight / document.body.offsetHeight * 100 <= 60) {
		$(window).scrollTo( 468, time, {queue:true} );
	}
}

/// footSet
function footSet() {
	if ($("#ajaxContent").height() > 15) {
		$("#footInfo").css("margin-top","25px");
	} else {
		$("#footInfo").css("margin-top","55px");
	}
}

var swfConnect = {
	"getSwf":function(){
		if (navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		} else {
			return document[movieName];
		}
	},
	"jsToAs":function(ta,val){
		swfConnect.getSwf(ta).jsToAs(val);
	},
	"asToJs":function(ta,val){
		swfConnect.getSwf(ta).asToJs(val);
	},
	"oH":0,
	"expand":function(ta,h,t,ease,scrollData){
		if (!h) return;
		if (!t && t != 0) t = 500;
		if (!ease) ease = "easeOutQuad";
		if (t <= 0) {
			$(ta).height(h);
		} else {
			if (t <= 0) {
				$(ta).height(h);
			} else {
				$(ta).animate({
					height:h
				},t,ease,function(){$(this).clearQueue();});
			}
		}
		if (scrollData || scrollData != undefined) {
			$(window).scrollTo( scrollData, t==0?800:t, {queue:true} );
		}
		swfConnect.oH = h;
	}
}

/// expand
var accordion = {
	"step":0,
	"state":new String,
	"set":function(mode){
		var len = $("#accordion > li").length;
		for (var i = 1; i <= len; i++) {
			var btn = "#accordion > .a"+i;
			$(btn+" > a:first").attr("value",i);
			$(btn+" > a:first").click(function(){
				var num = $(this).attr("value");
				var btn = "#accordion > .a"+num;
				if ($(btn+" > .sub > *").length == 0) return;
				if (mode == "onlyOne") {
					accordion.step = (accordion.step == 0) ? 1 : accordion.step;
					if (accordion.step == num) return;
					if (accordion.state == "animate") return;
					accordion.state = "animate";
					accordion.hideAll(accordion.step);
					accordion.step = num;
				} else {
					if (($(this).attr("class")).indexOf("step") != -1) {
						accordion.hideAll(num);
						return;
					}
				}
				$(this).addClass("step");
				$(btn+" > .sub").show("blind", { direction: "vertical" }, 500, function(){$(this).clearQueue();});
			});
			$(btn+" > a:first").mouseover(function(){
				$(this).parent().css("background-image","url(img/sub/accordionBg_hover.gif)");
			});
			$(btn+" > a:first").mouseout(function(){
				$(this).parent().css("background-image","url(img/sub/accordionBg.gif)");
			});
			if (mode == "allOpen" && i != 1) {
				$(btn+" > a:first").addClass("step");
				$(btn+" > .sub").css("display","block");
			}
		}
	},
	"hideAll":function(num){
		var btn = "#accordion > .a"+num;
		$(btn+" > .sub").hide("blind", { direction: "vertical" }, 500, function(){$(btn+" > a:first").removeClass("step");setTimeout(function(){accordion.state = "static";},100);$(this).clearQueue();});
	}
}

/// expand hybrid list
var expandList = {
	"step":0,
	"obj":new String,
	"set":function(obj,mode){
		expandList.obj = obj;
		var len = $(expandList.obj).find(".content").length;
		for (var i = 1; i <= len; i++) {
			var btn = expandList.obj+" > .l"+i;
			$(btn).find("a.more").attr("value",i);
			$(btn).find("a.more").click(function(){
				var num = $(this).attr("value");
				var btn = expandList.obj+" > .l"+num;
				if ($(btn).find(".sub > *").length == 0) return;
				if (($(this).attr("class")).indexOf("close") != -1) {
					expandList.hideAll(num);
					return;
				}
				$(this).addClass("close");
				$(btn).find(".sub").show("blind", { direction: "vertical" }, 500, function(){$(this).clearQueue();});
			});
			if (mode == "allOpen") {
				$(btn).find("a.more").addClass("more");
				$(btn).find(".sub").css("display","block");
			}
		}
	},
	"hideAll":function(num){
		var btn = expandList.obj+" > .l"+num;
		$(btn).find(".sub").hide("blind", { direction: "vertical" }, 500, function(){$(btn).find("a.close").removeClass("close");$(this).clearQueue();});
	}
}

/// feature ajax
var feature = {
	"step":0,
	"set":function(){
		var btn = "#accordion > li > ul > li > a";
		$(btn).click(function(){
			if ($(this).attr("class") == "step") return;
			$(btn).removeClass("step");
			$(this).addClass("step");
			feature.ajax("#ajaxContent2","#ajaxContent2 > #info",$(this).attr("rel"));
		});
	},
	"ajax":function(con1,con2,url,loading){
		if (loading == undefined) {
			$(con1).parent().prepend("<div class='hideTxt loading'>loading ...</div>");
			$(".loading").width(467);
			$(".loading").height(400);
			$(".loading").css({right:40,top:25,left:"auto"});
		}
		$.ajax({
			type: "GET",
			url: url,
			dataType: "html",
			cache: false,
			success: function(elm) {
				$("#ajaxContent2").html(elm);
				// animate init
				ajaxAddress.filter.fadeIn.init(con2);
				// animate todo
				setTimeout(function(){
					ajaxAddress.filter.fadeIn.todo(con1,con2);
				}, 500);
			}
		});
	}
}

/// spec & equip
var optionChange = {
	"debug":new Boolean,
	"opt":new Array,
	"optLen":new Number,
	"port":new String,
	"mainOpt":{
		"next":new Array,
		"prev":new Array
	},
	"subOpt":{
		"next":new Array,
		"prev":new Array
	},
	"step":new String,
	"lexusItem":new Number,
	"innerSubItem":function(lexusItem,data){
		optionChange.optLen = Number($("#optSelet > dd").length);
		for (var i = 1; i <= lexusItem; i++) {
			if (i > optionChange.optLen) break;
			$("#C"+i).val(1);
			$("#S"+i).html(optionChange.lexusOpt[i+data]);
		}
		if (lexusItem >= optionChange.optLen) return;
		for (var i = lexusItem+1; i <= optionChange.optLen; i++) {
			$("#C"+i).val(0);
			$("#S"+i).html("<option value='0'>請先選擇廠牌</option>");
		}
	},
	"set":function(){
		optionChange.step = "";
		optionChange.mainOpt.next = new Array();
		optionChange.mainOpt.prev = new Array();
		optionChange.subOpt.next = new Array();
		optionChange.subOpt.prev = new Array();
		optionChange.lexusItem = (optionChange.lexusOpt).length;
		optionChange.innerSubItem(optionChange.lexusItem, -1);
		optionChange.optLen = Number($("#optSelet > dd").length);
		for (var i = 1; i <= optionChange.optLen; i++) {
			$("#C"+i).attr("num",i);
			$("#C"+i).change(function(){
				
				var num = Number($(this).attr("num"));
				var index = Number($(this).val());
				$("#S"+num).html(optionChange.opt[index-1]);
				
			});
			$("#S"+i).change(function(){
				optionChange.ajax(optionChange.generateUrl());
			});
		}
		$("#asLike").click(function(){
			optionChange.ajax(optionChange.generateUrl());
		});
		if (optionChange.lexusItem > 3) {
			$(".optPbt > .prev").click(function(){
				if (optionChange.step == "prev") return;
				optionChange.cOpt("prev");
				optionChange.step = "prev";
			});
			$(".optPbt > .next").click(function(){
				if (optionChange.step == "next") return;
				optionChange.cOpt("next");
				optionChange.step = "next";
			});
		} else {
			$(".optPbt").css("display","none");
		}
	},
	"ajax":function(url){
		$.ajax({
			type: "GET",
			url: url,
			dataType: "xml",
			cache: false,
			success: function(elm,s){
				var i = 1;
				$(elm).find("item").each(function(){
					var index = "#accordion > .a"+i+" > .sub";
					var elmContent = $(this).text();
					$(index).html(elmContent);
					i++;
				});
				if (optionChange.debug == true) alertTxt(url);
			}
		});
	},
	"cOpt":function(str){
		switch(str) {
			case "prev":
				for (var i = 1; i <= optionChange.optLen; i++) {
					optionChange.mainOpt.next[i] = Number($("#C"+i).val());
					optionChange.subOpt.next[i] = $("#S"+i).val();
				}
				
				optionChange.innerSubItem(optionChange.lexusItem, -1);
				
				for (var i = 1; i <= optionChange.optLen; i++) {
					//alertTxt(optionChange.mainOpt.next[i]);
					if (optionChange.mainOpt.prev[i] == undefined) continue;
					
					var mO = optionChange.mainOpt.prev[i];
					$("#C"+i).val(mO);
					
					var index = Number($("#C"+i).val());
					$("#S"+i).html(optionChange.opt[index-1]);
					var sO = optionChange.subOpt.prev[i];
					$("#S"+i).val(sO);
				}
				
				break;
			case "next":
				for (var i = 1; i <= optionChange.optLen; i++) {
					optionChange.mainOpt.prev[i] = Number($("#C"+i).val());
					optionChange.subOpt.prev[i] = $("#S"+i).val();
				}
				
				optionChange.innerSubItem(optionChange.lexusItem-optionChange.optLen, 2);
				
				for (var i = 1; i <= optionChange.optLen; i++) {
					//alertTxt(optionChange.mainOpt.prev[i]);
					if (optionChange.mainOpt.next[i] == undefined) continue;
					
					var mO = optionChange.mainOpt.next[i];
					$("#C"+i).val(mO);
					
					var index = Number($("#C"+i).val());
					$("#S"+i).html(optionChange.opt[index-1]);
					var sO = optionChange.subOpt.next[i];
					$("#S"+i).val(sO);
				}
				
				break;
		}
		optionChange.ajax(optionChange.generateUrl());
	},
	"generateUrl":function(){
		var url = optionChange.port;
		var opt = Boolean($("#asLike").attr("checked"));
		for (var i = 1; i <= optionChange.optLen; i++) {
			url += "&optC"+i+"="+$("#C"+i).val()+"&optS"+i+"="+$("#S"+i).val();
		}
		url += "&asLike="+opt;
		return url;
	}
}


/// collextion list
var collectionList = {
	"set":function(id){
		if (!id) {
			$("#list > li > a").animate({opacity:0}, 0, function(){$(this).clearQueue();})
			$("#list > li").mouseenter(function(){
				$(this).find("a").animate({opacity:.8}, 200, function(){$(this).addClass("step");$(this).clearQueue();});
			});
			$("#list > li").mouseleave(function(){
				$(this).find("a").animate({opacity:0}, 500, function(){$(this).removeClass("step");$(this).clearQueue();});
			});
			$("#list").mouseleave(function(){
				$("#list > li").find("a[class='step']").animate({opacity:0}, 500, function(){$(this).removeClass("step");$(this).clearQueue();});
			});
		} else {
			$(id+" > li > a").animate({opacity:0}, 0, function(){$(this).clearQueue();})
			$(id+" > li").mouseenter(function(){
				$(this).find("a").animate({opacity:.8}, 200, function(){$(this).addClass("step");$(this).clearQueue();});
			});
			$(id+" > li").mouseleave(function(){
				$(this).find("a").animate({opacity:0}, 500, function(){$(this).removeClass("step");$(this).clearQueue();});
			});
			$(id).mouseleave(function(){
				$(id+" > li").find("a[class='step']").animate({opacity:0}, 500, function(){$(this).removeClass("step");$(this).clearQueue();});
			});
		}
	}
}

/// collextion detail zoom
var collectionZoom = {
	"zoom":String,
	"set":function(){
		$(".zoom").click(function(){
			if (collectionZoom.zoom == String || collectionZoom.zoom == "close") {
				collectionZoom.zoom = "open";
				$("#pImg").anythingZoomer();
				$("#mover").width(0);
				$("#mover").height(0);
				$("#mover").animate({
					width:175,
					height:175,
					top:20,
					left:20,
					opacity:1
				}, 300, function(){$(this).clearQueue();});
				$(this).addClass("step");
			} else {
				collectionZoom.zoom = "close";
				$("#mover").animate({
					width:0,
					height:0,
					top:20,
					left:20,
					opacity:0
				}, 300, function(){$(this).clearQueue();});
				$(this).removeClass("step");
			}
		});
	}
}

/// grid gallery view
var grid = {
	"set":function(obj){
		/// random img size
		var len = $(obj).find("img").length;
		$(obj).find("img").each(function(i){
			var rNarr = new Array(1,1,1,1,2,2,2,3);
			var rN = RanNum(0,rNarr.length-1);
			var mData = 15;
			var imgS = 93;
			var ratio = Number((rNarr[rN]*imgS)+rNarr[rN]-mData);
			$(this).parent().css({"margin-right":mData+"px","margin-bottom":mData+"px"});
			$(this).css({"width":ratio+"px","height":ratio+"px"});
			if (i == len-1) {
				grid.vgrid(obj);
			}
		});
		// list content show
		$(obj).find("div").css({opacity:.8});
		$(obj).find("a").mouseenter(function(){
			$(this).find("div").css({
				width:$(this).width()-10,
				height:$(this).height(),
				opacity:0
			});
			$(this).find("div").animate({opacity:0.8}, 500, function(){$(this).addClass("step");$(this).clearQueue();});
		});
		$(obj).find("a").mouseleave(function(){
			$(this).find("div").animate({opacity:0}, 500, function(){
				$(this).removeClass("step");
				$(this).clearQueue();
				$(this).css({
					width:69,
					height:19
				});
				$(this).animate({opacity:0.8}, 300, function(){$(this).clearQueue();})
			});
		});
	},
	"vgrid":function(obj){
		// vgrid animate
		$(obj).vgrid({
			easeing: "easeOutQuint",
			time: 400,
			delay: 20,
			fadeIn: {
				time: 500,
				delay: 250
			}
		});
	},
	"vgridRandom":function(obj){
		$(obj).vgsort(function(a, b){
			return Math.random() > 0.5 ? 1 : -1 ;
		}, "easeInOutExpo", 300, 20);
		return false;
	}
}

var fBt = {
	"step":0,
	"set":function(){
		for (var i = 2; i <= 3; i++) {
			var btn = "#subNav > ul > .n"+i;
			$(btn).attr("value",i);
			$(btn).click(function(){
				var num = Number($(this).attr("value"));
				var btn = "#subNav > ul > .n"+num;
				var prevBtn = "#subNav > ul > .n"+fBt.step;
				if (num == fBt.step || ($(btn+" > a").attr("class")).indexOf("step") != -1) return;
				$(prevBtn+" > a").removeClass("step");
				fBt.step = num;
				$(btn+" > a").addClass("step");
			});
		}
	}
}

/// popup
var popup = {
	"ta":"",
	"bg":"",
	"con":"",
	"handle":"",
	"set":function(){
		// obj set
		popup._con = $(popup.con);
		popup._bg = $(popup.bg);
		popup._ta = $(popup.ta);
		popup._taDiv = $(popup.ta+" > div");
		popup._doc = $(document);
		popup._win = $(window);
		// event set
		popup._bg.click(function(){
			popup.disable();
		});
		popup._doc.keypress(function(e){
			if(e.keyCode==27){
				popup.disable();
			}
		});
		popup._win.resize(function(){
			popup.centerPos();
		});
		popup._ta.draggable({containment:popup.bg, handle:popup.handle});
	},
	"centerPos":function(typ){
		popup._bg.css({
			"width":popup._win.width(),
			"height":$.browser.msie && $.browser.version == "6.0" ? popup._doc.height() : popup._win.height()
		});
		if (typ == "animate") {
			popup._ta.animate({
				"left":Math.ceil(popup._win.width()/2-popup._ta.width()/2),
				"top":Math.ceil(popup._win.height() < popup._ta.height() ? 0 : (popup._win.height()/2-popup._ta.height()/2)-10)
			}, 300, "easeOutQuad", function(){$(this).clearQueue();});
		} else {
			popup._ta.css({
				"left":Math.ceil(popup._win.width()/2-popup._ta.width()/2),
				"top":Math.ceil(popup._win.height() < popup._ta.height() ? 0 : (popup._win.height()/2-popup._ta.height()/2)-10)
			});
		}
	},
	"enable":function(){
		popup._con.fadeIn(200);
		popup.centerPos();
	},
	"disable":function(){
		popup._con.fadeOut(200, function(){
			popup._taDiv.html("");
			if (hasKey(String(window.location),"#/ebook")) {
				window.history.back();
				if (hasKey(String(window.location),"#/ebook")) window.location.href = clearKey(String(window.location),"#/ebook");
			}
		});
	},
	"insert":function(elm){
		popup._taDiv.html(elm);
		popup.enable();
		popup.centerPos();
	},
	"ajax":function(url){
		$.ajax({
			type: "GET",
			url: url,
			dataType: "html",
			cache: false,
			success: function(elm,s){
				popup.insert(elm);
			}
		});
	}
}

/// switchDiv
var switchDiv = {
	"div": new Array,
	"func": new Array,
	"con": new Object,
	"set": function(arr){
		switchDiv.div = arr;
		SWFAddress.addEventListener(SWFAddressEvent.CHANGE, switchDiv.handle);
	},
	"handle": function(e){
		for (var i = 0; i <= switchDiv.div.length - 1; i++) {
			var idiv = "/"+switchDiv.div[i];
			if (idiv == e.path) {
				switchDiv.func[i]();
			} else if (e.path == "/") {
				switchDiv.func["default"]();
			}
		}
	}
}
