var saleXML;

$(document).ready(
	function(){
	
		//$(".order_form").parent("td").css("border-bottom", "1px dotted #ccc");
		
		function showOrderForm(){
			//$(".order_form:visible").find(".close_button").trigger("click");
			var target_form=$(this).parents("th").next("td").find("form.order_form");
			if(target_form.css("display")=="none"){
				
				var productName=$(this).parent().prevAll(".product_title").text();
				productName=productName.split(". ")[1];
				target_form.find("input[name='PRODUCTNAME']").val(productName);
				
				var productColor=$(this).parent().prevAll(".product_color");
				if(productColor.children().length==0){
					var color=productColor.text();
					color=color.substring(3, color.length);
					target_form.find("input[name='COLOR']").val(color);
				}
				target_form.prev("ul").slideToggle(
					function(){
						target_form.slideToggle();
					}
				);
			}
			else{
				target_form.slideToggle(
					function(){
						target_form.prev("ul").slideToggle();
					}
				);
			}
		}
		
		$("#products_table > tbody > tr:gt(0)").each(
			function(){
				var newButtons=$("#products_table .extra_buttons:first").clone();
				var newButton=newButtons.find(".order_button");
				var orderForm=$("#products_table .order_form:first").clone();
				
				$(this).children("th").append(newButtons);
				$(this).children("td").append(orderForm);
			}
		);
		
		var checkedCompareNum=0;
		
		$(".compare_button").click(
			function(){
				if(checkedCompareNum==0){
					alert("請先勾選欲比較之產品！");
					return;
				}
				
				$("#products_table > tbody > tr").each(
					function(){
						var compareCheckbox=$(this).find(".compare_checkbox");
						compareCheckbox.hide();
						$(this).find(".compare_button").hide().end().find(".expand_button").show();
						if(compareCheckbox.attr("checked")) return;
						else $(this).hide();
					}
				);
			}
		);
		
		$(".compare_checkbox").removeAttr("checked");
		
		$(".expand_button").click(
			function(){
				$(".expand_button").hide();
				$(".compare_button").show();
				$(".compare_checkbox").show().removeAttr("checked");
				$("#products_table > tbody > tr").show();
			}
		);
		
		$(".compare_checkbox").click(
			function(){
				if($(this).attr("checked")==true) checkedCompareNum++;
				else checkedCompareNum--;
			}
		);
		
		$(".order_button").click(
			function(){
				showOrderForm.call(this);
			}
		);
		
		$(".order_form .close_button").click(
			function(){
				$(this).parents("td").prev("th").find(".order_button").trigger("click");
			}
		);
		
		$(".order_form input:text").keypress(
			function(e){
				if(e.which==13) return false;
			}
		);
		
		$(".order_form .submit_button").click(
			function(){
				var targetForm=$(this).parents("form");
				if(checkOrderForm(targetForm)){
					return;
				}
				
				var formData="產品型號："+targetForm.find("input[name='PRODUCTNAME']").val();
				formData+="\n顏色："+targetForm.find("input[name='COLOR']").val();
				formData+="\n訂購數量："+targetForm.find("select[name='QUANTITY']").val();
				formData+="\n訂購人姓名："+targetForm.find("input[name='NAME']").val();
				formData+="\n連絡電話："+targetForm.find("input[name='PHONENUMBER']").val();
				formData+="\n寄貨地址："+targetForm.find("input[name='ADDRESS']").val();
				
				if(targetForm.find("textarea[name='REMARKS']").val()) formData+="\n備註："+targetForm.find("textarea[name='REMARKS']").val();
				else formData+="\n備註：";
				
				var answer=confirm(formData);
				if(answer){
					$(this).parents("form").submit();
				}
			}
		);
		
		function checkOrderForm(targetForm){
			var textInput=targetForm.find("input:text:gt(1)");
			var hasError=false;
			
			textInput.each(
				function(){
					if($(this).val()==""){
						hasError=true;
						var label=$(this).parent().prev().text();
						alert("您尚未填寫「"+label+"」！");
						this.focus();
						this.select();
						return false;
					}
					else hasError=false;
				}
			);
			/*
			var quantity=parseInt(targetForm.find("input[name='QUANTITY']").val());
			if(!hasError&&isNaN(quantity)){
				hasError=true;
				alert("請填寫正確的數量！");
				targetForm.find("input[name='QUANTITY']").select();
			}
			*/
			return hasError;
		}
		
		$(".side_bar_content .links_list a:eq(0)").attr({href: "http://www.pk-e.com/", target: "_blank"});
		$(".side_bar_content .links_list a:eq(1)").attr({href: "http://www.thunder-sports.com.tw/", target: "_blank"});
		$(".side_bar_content .links_list a:eq(2)").attr({href: "http://www.surefire.com/", target: "_blank"});
		
		$.ajax({
			type: "GET",
			url: "sale.xml",
			dataType: "xml",
			success: function(xml){
				var numShown=$(xml).children("newsContainer").attr("numShown");
				if(!numShown) numShown=6;
				
				saleXML=$(xml);
				
				$(xml).find("sale").each(
					function(index, obj){
						var saleLi=$("<li><\/li>");
						
						var saleDiv=$("<div class='title'><\/div>");
						var version=$("<span class='version'><\/span>");
						var oldPrice=$("<div class='old_price'></div>");
						var specialPrice=$("<div class='special_price'></div>");
						var clear=$("<div class='clear'></div>");
						var saleTitle=$(this).children("title").text();
						
						version.text($(this).children("version").text());
						saleDiv.text(saleTitle).append(version);
						saleDiv.mouseover(
							function(){
								$(this).css({color: "red", textDecoration: "underline"});
							}
						);
						saleDiv.mouseout(
							function(){
								$(this).css({color: "#333", textDecoration: "none"});
							}
						);
						oldPrice.text($(this).children("oldPrice").text());
						specialPrice.text($(this).children("specialPrice").text());
						saleLi.append(saleDiv).append(specialPrice)//.append(clear);
						$("#sale_list").append(saleLi);
						saleDiv.click(open);
					}
				);
				
				listPageNum=Math.floor($("#sale_list li").size()/5);
				$("#page_info .total_pages").text($("#sale_list li").size());
				
				$(".color_block.bk").data("color", "BK");
				$(".color_block.yl").data("color", "YL");
				$(".color_block.ha").data("color", "HA");
				$(".color_block.od").data("color", "OD");
				$(".color_block.tn").data("color", "TN");
				$(".color_block.gm").data("color", "GM");
				$(".color_block.bl").data("color", "BL");
				$(".color_block.sl").data("color", "SL");
				$(".color_block.sg").data("color", "SG");
				
				$(".color_block").click(switchColor);
				$(".product_color div:eq(1)").trigger("click");
			}
		});
		
		
		function switchColor(){
			var color=$(this).data("color");
			var target=$(this).parent().nextAll("img");
			var src=target.attr("src");
			if(src.indexOf(color+".jpg")==-1){
				var l=src.length;
				var newsrc=src.substring(0, l-6)+color+".jpg";
				$(this).parent().nextAll("img").attr("src", newsrc);
			}
			$(this).parents("tr").find(".order_form input[name='COLOR']").val(color);
		}
		
		
		var listPageNum;
		var listCurrentPos=0;
		
		$("#sale_scroll_down").click(scrollDown);
		$("#sale_scroll_up").css({opacity: "0.3", cursor: "default"})
		
		function scrollUp(){
			listCurrentPos+=205;
			scrollList();
		}
		
		function scrollDown(){
			listCurrentPos-=205;
			scrollList();
		}
		
		function scrollList(){
			if(listCurrentPos==0){
				setDisable($("#sale_scroll_up"), true);
			}
			else if(listCurrentPos==(-listPageNum*205)){
				setDisable($("#sale_scroll_down"), true);
			}
			else{
				setDisable($("#sale_scroll_up"), false);
				setDisable($("#sale_scroll_down"), false);
				$("#sale_scroll_up").bind("click", scrollUp);
				$("#sale_scroll_down").bind("click", scrollDown);
			}
			$("#sale_list").animate({top: listCurrentPos+"px"});
		}
		
		function setDisable(o ,disable){
			var opacity=1, cursor="pointer";
			if(disable){
				opacity=0.3;
				cursor="default";
				o.unbind("click");
			}
			
			o.css("cursor", cursor);
			o.animate({opacity: opacity});
		}
		
	}
);


$(document).ready(
	function(){
		$("#close_button").click(close);
		$("#mask").click(close);
		$("#mask").height($(document).height());
		$("#mask").css({height: $(document).height(), opacity: "0.8"});
		$("#lightbox_body #next_button").data("direction", 1);
		$("#lightbox_body #previous_button").data("direction", -1);
		$("#lightbox_body #next_button").click(flipSale);
		$("#lightbox_body #previous_button").click(flipSale);
	}
);

function flipSale(){
	if($(this).queue().length!=0) return;
	var direction=$(this).data("direction")
	saleIndex+=direction;
	$("#lightbox_body .sale_container").animate({opacity: "0"}, "fast",
		function(){
			loadSalePro(saleIndex);
			$("#lightbox_body .sale_container").animate({opacity: "1"}, "fast");
		}
	);
	
	$("#page_info .current_page").text(saleIndex+1);
	if(saleIndex!=0&&saleIndex!=$("#sale_list li").size()-1){
		$(this).css("opacity", "0.1");
		$(this).animate({opacity: "1"});
	}
	
	checkFlip();
}

function checkFlip(){
	switch(saleIndex){
		case 0:
			$("#lightbox_body #previous_button").unbind("click").css({opacity: "0.3", cursor: "default"});
			$("#lightbox_body #next_button").bind("click", flipSale).css({opacity: "1", cursor: "pointer"});
		break;
		case $("#sale_list li").size()-1:
			$("#lightbox_body #next_button").unbind("click").css({opacity: "0.3", cursor: "default"});
			$("#lightbox_body #previous_button").bind("click", flipSale).css({opacity: "1", cursor: "pointer"});
		break;
		default:
			$("#lightbox_body #next_button").bind("click", flipSale).css({opacity: "1", cursor: "pointer"});
			$("#lightbox_body #previous_button").bind("click", flipSale).css({opacity: "1", cursor: "pointer"});
		break;
	}
}

function close(){
	if($("#mask").queue().length!=0) return;
	$("#sale_block").css("display", "none");
	$("#mask").css("display", "none");
	$("html").css("overflow-y", "scroll");
}

var saleIndex=0;

function open(){
	$("html").css("overflow", "hidden");
	updateWindowInfo();

	saleIndex=$("#sale_list div.title").index(this);
	loadSalePro(saleIndex);
	
	$("#mask").fadeIn("normal",
		function(){
			$("#sale_block").show();
			setToMiddle($("#sale_block"));
		}
	);
}

function loadSalePro(saleIndex){
	var title=saleXML.find("sale").eq(saleIndex).find("title").text();
	var version=$("<span class='version'></span>");
	version.text(saleXML.find("sale").eq(saleIndex).find("version").text());
	var color=saleXML.find("sale").eq(saleIndex).find("color").text();
	var oldPrice=saleXML.find("sale").eq(saleIndex).find("oldPrice").text();
	var specialPrice=saleXML.find("sale").eq(saleIndex).find("specialPrice").text();
	var img=$("<img src='"+saleXML.find("sale").eq(saleIndex).find("imgLink").text()+"' width='240' height='180' \/>");
	
	$("#sale_block .product_title").text(title).append(version);
	$("#sale_block .product_color").text("顏色："+color);
	$("#sale_block .old_price").text(oldPrice);
	$("#sale_block .special_price").text(specialPrice);
	$("#sale_block .basic_info").find("img:last").remove();
	$("#sale_block .basic_info").append(img);
	$("#sale_block .detail_info ul").text("");
	
	$("#page_info .current_page").text(saleIndex+1);
	
	checkFlip();
	
	saleXML.find("sale").eq(saleIndex).find("intro li").each(
		function(index, obj){
			var introLi=$("<li><\/li>");
			introLi.text($(this).text());
			$("#sale_block .detail_info ul").append(introLi);
		}
	);
}

var scrolly, viewportWidth, viewportHieght;

$(window).resize(
	function(){
		if($("#mask").css("display")=="none") return;
		updateWindowInfo();
		setToMiddle($("#sale_block"));
	}
);

function setToMiddle(o){
	o.css({top: scrolly+viewportHeight/2-200, left: viewportWidth/2-280});
}

function updateWindowInfo(){
	if(window.innerWidth){
		scrolly=window.pageYOffset;
		viewportWidth=window.innerWidth;
		viewportHeight=window.innerHeight;
	}
	else if(document.documentElement&&document.documentElement.clientWidth){
		scrolly=document.documentElement.scrollTop;
		viewportWidth=document.documentElement.clientWidth;
		viewportHeight=document.documentElement.clientHeight;
	}
	else if(document.body.clientWidth){
		scrolly=document.body.scrollTop;
		viewportWidth=document.body.clientWidth;
		viewportHeight=document.body.clientHeight;
	}
	else scrolly=0;
}