﻿var Helper={
	isNullOrEmpty:function(v){
		if(v==null||v==undefined||v==""){return true;};
		return false;
	},
	isEmail:function(v){
		if(Helper.isNullOrEmpty(v))return true;
		var req=/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
		if(req.test(v))return true;
		return false;
	},
	isLengthedNumber:function(v,l){
		if(Helper.isNullOrEmpty(v))return true;
		var req=/^[0-9]+/;
		v=v.toString();
		if(req.test(v)&&(!l||v.length==l))return true;
		return false;
	},
	isAllCHNChars:function(v){
		if(Helper.isNullOrEmpty(v))return true;
		var req=/[\u4e00-\u9fa5]{1,}$/;
		if(req.test(v))return true;
		return false;
	},
	getRadioValue:function(rds){
		if(!rds)return "";
		for(var i=0;i<rds.length;i++){
			if(rds[i].checked){
				return rds[i].value;
			};
		};
		return "";
	},
	checkRadioByValue:function(rds,v){
		if(!rds)return;
		for(var i=0;i<rds.length;i++){
			if(rds[i].value==v){
				$(rds[i]).attr("checked","checked");
				return;
			};
		};
	},
	disableCopyPaste:function(){
		document.oncontextmenu=function(){return false;};
		$(document).keydown(function(event){
			if(event.ctrlKey||event.keyCode==93){
				return false;
			};
		});
	},
	findForm:function(el){
		if(!el||!el.parent){return;};
		var parent=el.parent();
		if(!parent){return;};
		var tag=parent.attr("tagName");
		if(!Helper.isNullOrEmpty(tag)&&tag.toUpperCase()=="FORM"){
			return parent;
		};
		return Helper.findForm(parent);
	},
	setCookie:function(n,v){
		var oc=$.cookie("Configuration");
		var setted=false;
		var cv="";
		if(!this.isNullOrEmpty(oc)){
			var ocs=oc.split("&");
			for(var i=0;i<ocs.length;i++){
				if(ocs[i].indexOf(n+"=")>=0){
					ocs[i]=n+"="+v;
					setted=true;
					break;
				};
			};
			if(!setted){
				ocs.push(n+"="+v);
			};
			cv=ocs.join("&")
		}else{
			cv=n+"="+v;
		};
		$.cookie("Configuration",unescape(cv));
	}
};

var Tab={
	tabPrefix:"tab",
	ctnPrefix:"ctn",
	activeTab:function(idx,ct,imgPreName){
		var tabid=this.tabPrefix+idx;
		var ctnid=this.ctnPrefix+idx;
		this.deactiveAll(ct,imgPreName);
		$("#"+tabid+" img").attr("src",Page.imagePath+imgPreName+idx+"on.gif");
		this.hideAll(ct);
		$("#"+ctnid).css("display","block");
		$.cookie("ProductActiveTabID",idx);
	},
	hideAll:function(c){
		for(var i=0;i<c;i++){
			var ctnid=this.ctnPrefix+i;
			$("#"+ctnid).css("display","none");
		};
	},
	deactiveAll:function(c,imgPreName){
		for(var i=0;i<c;i++){
			var tabid=this.tabPrefix+i;
			$("#"+tabid+" img").attr("src",Page.imagePath+imgPreName+i+"off.gif");
		};
	}
};

var Browser=(function(){
	if(jQuery.browser.msie){
		$("html").addClass("ie");
		if(jQuery.browser.version==6){
			$("html").addClass("ie_6");
		}else if(jQuery.browser.version==7){
			$("html").addClass("ie_7");
		};
	};
})();

var LeftNav={
	timers:{},
	linkOver:function(idx){
		var link=$("#pdtLink"+idx);
		var pop=$("#pop"+idx);
		var off=link.offset();
		var offP=link.offsetParent().offset();
		pop.fadeIn(200);
		pop.css("left",off.left-offP.left+200);
		pop.css("top",off.top-offP.top);
	},
	linkOut:function(idx){
		this.timers[idx]=setTimeout(function(){
			$("#pop"+idx).fadeOut(200);
		}, 300);
	},
	imgOver:function(idx){
		clearTimeout(this.timers[idx]);
	},
	imgOut:function(idx){
		this.timers[idx]=setTimeout(function(){
			$("#pop"+idx).fadeOut(200);
		}, 300);
	}
};

var Validation={
	validateInput:function(e){
		var checkReq,checkEmail,checkConfirm,checkMPhone,checkNumber,checkCHN;
		var confirmTarget;
		var errorTxt="";
	
		var cmd=e.attr("rel");
		var cmds=cmd.split("|");
		
		for(var c in cmds){
			if(cmds[c].toUpperCase()=="REQ"){
				checkReq=true;
			};
			
			if(cmds[c].toUpperCase()=="EMAIL"){
				checkEmail=true;
			};
			
			if(cmds[c].toUpperCase()=="PHONE"){
				checkMPhone=true;
			};
			
			if(cmds[c].toUpperCase()=="NUMBER"){
				checkNumber=true;
			};
			
			if(cmds[c].toUpperCase()=="CHN"){
				checkCHN=true;
			};
			
			if(cmds[c].indexOf(":")>=0){
				var nv=cmds[c].split(":");
				if(nv[0].toUpperCase()=="CONFIRM"){
					checkConfirm=true;
					confirmTarget=nv[1];
				};
			};
		};
		
		var iptValue=$.trim(e.attr("value"));
		var title=e.attr("title");
		
		if(checkReq){
			if(Helper.isNullOrEmpty(iptValue)){
				errorTxt+="请输入"+title+"\n";
				return errorTxt;		
			};
		};
		
		if(checkEmail){
			if(!Helper.isEmail(iptValue)){
				errorTxt+="请输入正确的电子邮件\n";
				return errorTxt;		
			};
		};
		
		if(checkNumber){
			if(!Helper.isLengthedNumber(iptValue)){
				errorTxt+="请输入正确的"+title+"\n";
				return errorTxt;		
			};
		};
		
		if(checkMPhone){
			if(!Helper.isLengthedNumber(iptValue,11)&&!Helper.isLengthedNumber(iptValue,8)){
				errorTxt+="请输入正确的手机号码\n";
				return errorTxt;		
			};
		};
		
		if(checkConfirm){
			var tv=$.trim($("input[name="+confirmTarget+"]").attr("value"));
			var tt=$("input[name="+confirmTarget+"]").attr("title");
			if(iptValue!=tv){
				errorTxt+="请确保输入与"+tt+"保持一致\n";
				return errorTxt;		
			};
		};
		
		if(checkCHN){
			if(!Helper.isAllCHNChars(iptValue)){
				errorTxt+="请输入中文字符\n";
				return errorTxt;		
			};
		};
		return "";
	},
	validateSelect:function(e){
		var checkReq;
		var errorTxt="";
		
		var cmd=e.attr("rel");
		var cmds=cmd.split("|");
		
		for(var c in cmds){
			if(cmds[c].toUpperCase()=="REQ"){
				checkReq=true;
			};
		};
		
		var sltValue=$.trim(e.attr("value"));
		var sltIndex=e.attr("selectedIndex");
		var title=e.attr("title");
		
		if(checkReq){
			if(sltIndex==0){
				errorTxt+="请选择"+title+"\n";
				return errorTxt;
			};
		};
		return "";
	},
	validateRadioGroup:function(e){
		var checkReq;
		var errorTxt="";
		
		var cmd=e.attr("rel");
		var cmds=cmd.split("|");
		
		for(var c in cmds){
			if(cmds[c].toUpperCase()=="REQ"){
				checkReq=true;
			};
		};
		
		var name=e.attr("name");
		var els=$("input[@type='radio'][name='"+name+"']");
		
		var ridValue=Helper.getRadioValue(els);
		var title=e.attr("title");
		
		if(checkReq){
			if(Helper.isNullOrEmpty(ridValue)){
				errorTxt+="请选择"+title+"\n";
				return errorTxt;
			};
		};
		return "";
	},
	validateInputHandler:function(){
		errorTxt=Validation.validateInput($(this));
		var frm=Helper.findForm($(this));
		var tgt=$("#"+frm.attr("id")+" ."+$(this).attr("name")+"Invalid");
		if(!Helper.isNullOrEmpty(errorTxt)){
			tgt.empty();
			tgt.append(errorTxt);
			tgt.show();
		}else{
			tgt.hide();
		};
	},
	validateSelectHandler:function(){
		errorTxt=Validation.validateSelect($(this));
		var tgt=$("."+$(this).attr("name")+"Invalid");
		if(!Helper.isNullOrEmpty(errorTxt)){
			tgt.empty();
			tgt.append(errorTxt);
			tgt.show();
		}else{
			tgt.hide();
		};
	},
	validateRadioHandler:function(){
		errorTxt=Validation.validateRadioGroup($(this));
		var tgt=$("."+$(this).attr("name")+"Invalid");
		if(!Helper.isNullOrEmpty(errorTxt)){
			tgt.empty();
			tgt.append(errorTxt);
			tgt.show();
		}else{
			tgt.hide();
		};
	},
	validateAndSubmit:function(formId){
		var selector=formId?"#"+formId+" ":"";
		var pts=$(selector+"input[@type='text'][rel*='ipt-validate']");
		var pps=$(selector+"input[@type='password'][rel*='ipt-validate']");
		var prs=$(selector+"input[@type='radio'][rel*='rid-validate']");
		var ptextareas=$(selector+"textarea[rel*='ipt-validate']");
		var pss=$(selector+"select[rel*='slt-validate']");
		var ridName;
		var i;
		
		var errorTxt="";
		
		for(i=0;i<pts.length;i++){
			errorTxt+=Validation.validateInput($(pts[i]));
		};
		
		for(i=0;i<ptextareas.length;i++){
			errorTxt+=Validation.validateInput($(ptextareas[i]));
		}
		
		for(i=0;i<pps.length;i++){
			errorTxt+=Validation.validateInput($(pps[i]));
		};
		
		for(i=0;i<pss.length;i++){
			errorTxt+=Validation.validateSelect($(pss[i]));
		};
		
		for(i=0;i<prs.length;i++){
			if(Helper.isNullOrEmpty($(prs[i]).attr("name"))||$(prs[i]).attr("name")!=ridName){
				errorTxt+=Validation.validateRadioGroup($(prs[i]));
				ridName=$(prs[i]).attr("name");
			};
		};
		
		if(!Helper.isNullOrEmpty(errorTxt)){
			alert(errorTxt);
		}else{
			$("#"+formId).submit();
		};
	}
};

var Shopping={
	Register:{
		submitFrom:function(){
			Validation.validateAndSubmit("frmRegister");
		},
		resetFrom:function(){
			var frms=$("form");
			for(var i=0;i<frms.length;i++){
				if(frms[i].id=="frmRegister"){
					frms[i].reset();
					break;
				};
			};
		}
	},
	Cart:{
		addPromotionCode:function(){
			var code=$("input[name='promoCode']").attr("value");
			if(!Helper.isNullOrEmpty(code)){
				$("#frmPromotion").submit();
			};
		},
		removePromotionCode:function(c){
			if(!Helper.isNullOrEmpty(c)){
				$("input[name='submitType']").attr("value","REMOVEPROMOTION");
				$("input[name='removeId']").attr("value",c);
				$("#frmPromotion").submit();
			};
		},
		updateQty:function(p){
			if(!Helper.isNullOrEmpty(p)){
				$("input[name='packageId']").attr("value",p);
				$("#frmCartItems").submit();
			};			
		}
	},
	Cart05:{
		checkSubmit:function(){
			var prs=$("input[@type='radio'][rel*='rid-validate']");			
			var ridName;
			var i;		
			var errorTxt="";
			
			for(i=0;i<prs.length;i++){
				if(Helper.isNullOrEmpty($(prs[i]).attr("name"))||$(prs[i]).attr("name")!=ridName){
					errorTxt+=Validation.validateRadioGroup($(prs[i]));
					ridName=$(prs[i]).attr("name");
				};
			};
			
			if(!Page.hasShippingInfo){
				errorTxt+="请填写您的收货信息\n";
			};
			
			if(!Helper.isNullOrEmpty(errorTxt)){
				alert(errorTxt);				
			}else{
				var paymentID;
				paymentID = $('input[@name=radPayment][@checked]').attr("value");
				document.location=Page.nextUrl+"&paymentid="+paymentID;
			};
		},
		cancelReco:function(){
			$("#divPurchaseRecommend").css("display","none");
			FixIE6.removeIFrame();
		},
		addReco:function(){
			document.location = Page.processUrl;
		},
		updateShipping:function(){
			Validation.validateAndSubmit("frmModifyShipping");
		},
		addShipping:function(){
			$("#frmModifyShipping input[name='submitType']").val("ADDSHIPPING");
			Shopping.Cart05.changeAddress(0);
		},
		changeAddress:function(idx,isUpdate){
			if(isUpdate){$("#frmModifyShipping input[name='submitType']").val("UPDATESHIPPING");};
			al=Page.addressList.gR;
			if(idx>=0&&al&&idx<al.length){
				var addr=al[idx];
				if(addr){
					if(idx==0){
						for(var itm in addr){
							if(addr[itm]==null){
								addr[itm]="";
							};
						};
					};
					$("#frmModifyShipping input[name='shippingId']").val(addr.shippingID);
					$("#frmModifyShipping input[name='iphoneid']").val(addr.iphoneid);
					$("#frmModifyShipping input[name='iphoneid2']").val(addr.iphoneid2);
					$("#frmModifyShipping input[name='addressid']").val(addr.addressid);
					$("#frmModifyShipping input[name='userReceiverName']").val(addr.receiverName);
					$("#frmModifyShipping input[name='userPhoneZonecode']").val(addr.phoneZonecode);
					$("#frmModifyShipping input[name='userPhone']").val(addr.phoneNumber);
					$("#frmModifyShipping input[name='userPhoneAdditionalNumber']").val(addr.phoneAdditionalNumber);
					$("#frmModifyShipping input[name='userShippingMobile']").val(addr.mobilePhone);
					if(Helper.isNullOrEmpty(addr.province)){addr.province="0";};
					$("#frmModifyShipping select[name='userProvince']").val(addr.provinceID);
					Account.Address.provinceChange(	$("#frmModifyShipping select[name='userProvince']"),
													$("#frmModifyShipping select[name='userCity']"),addr.cityID);
					$("#frmModifyShipping input[name='userAddress']").val(addr.address);
					$("#frmModifyShipping input[name='userZipcode']").val(addr.zipcode);
					Helper.checkRadioByValue($("#frmModifyShipping input[name='userArriveType']"),Account.Address.ArriveType[addr.arriveType]);
				};
			};
		}
	}
};

var Account={
	Address:{
		cRequest:null,
		ArriveType:{
			Any:0,
			BusinessMorning:1,
			BusinessAfternoon:2,
			WeekendMorning:3,
			WeekendAfternoon:4
		},
		fillAddress:function(idx){
			al=Page.addressList.gR;
			if(idx>=0&&idx<al.length){
				var addr=al[idx];
				if(addr){
					$("#frmShipping input[name='shippingId']").val(addr.shippingID);
					$("#frmShipping input[name='iphoneid']").val(addr.iphoneid);
					$("#frmShipping input[name='iphoneid2']").val(addr.iphoneid2);
					$("#frmShipping input[name='addressid']").val(addr.addressid);
					$("#frmShipping input[name='userReceiverName']").val(addr.receiverName);
					$("#frmShipping input[name='userPhoneZonecode']").val(addr.phoneZonecode);
					$("#frmShipping input[name='userPhone']").val(addr.phoneNumber);
					$("#frmShipping input[name='userPhoneAdditionalNumber']").val(addr.phoneAdditionalNumber);
					$("#frmShipping input[name='userShippingMobile']").val(addr.mobilePhone);
					$("#frmShipping select[name='userProvince']").val(addr.provinceID);
					Account.Address.provinceChange($("#frmShipping select[name='userProvince']"),$("#frmShipping select[name='userCity']"),addr.cityID);
					$("#frmShipping input[name='userAddress']").val(addr.address);
					$("#frmShipping input[name='userZipcode']").val(addr.zipcode);
					Helper.checkRadioByValue($("#frmShipping input[name='userArriveType']"),Account.Address.ArriveType[addr.arriveType]);
				};
			};
		},
		addAddress:function(){
			$("#frmAddAddress input[name='submitType']").val("ADDADDRESS");
			Validation.validateAndSubmit("frmAddAddress");
		},
		updateAddress:function(){
			$("#frmModifyShipping input[name='submitType']").val("EDITADDRESS");
			Validation.validateAndSubmit("frmModifyShipping");
		},
		removeAddress:function(id){
			var c=confirm("该地址将被永久删除。请再次确认是否继续？");
			if(c){
				$("#frmAddressList input[name='submitType']").val("REMOVEADDRESS");			
				$("#frmAddressList input[name='shippingId']").val(id);			
				Validation.validateAndSubmit("frmAddressList");
			};
		},
		setDefault:function(id){
			$("#frmAddressList input[name='submitType']").val("SETDEFAULT");			
			$("#frmAddressList input[name='shippingId']").val(id);			
			Validation.validateAndSubmit("frmAddressList");
		},
		provinceChangeHandler:function(){
			var formEl=Helper.findForm($(this));
			var fName=formEl.attr("name");
			if(!Helper.isNullOrEmpty(fName)){
				var cityEl=$("form[name='"+fName+"'] select[name='userCity']");
				if(!cityEl){return;};
			};
			
			Account.Address.provinceChange($(this),cityEl);
		},
		provinceChange:function(pel,cel,selt){
			cel.attr("disabled","disabled");
			if(!Helper.isNullOrEmpty(pel.val())&&pel.val()!="0"){
				var url=Page.getCityUrl+"?province="+pel.val();
				if(Account.Address.cRequest){Account.Address.cRequest.abort();};
				Account.Address.cRequest=$.ajax({	url:url,
													type:"GET",
													dataType:"json",
													success:function(options){
																cel.children().remove();
																$.each(options.kit, function(i,item){
																	cel.append("<option value='"+item.value+"'>"+item.text+"</option>");
																});
																if(!Helper.isNullOrEmpty(selt)){
																	cel.val(selt);
																}
																cel.attr("disabled","");
															}
													});
			}else{
				cel.children().remove();
				cel.append("<option value='0'>-请选择-</option>");
			};
		}
	}
};

var FixIE6={
	addIFrame:function(){
//		if(Helper.isNullOrEmpty(selector)){return;};
//		if($.browser.msie&&$.browser.version==6){
//			$('body').append('<iframe id="fix-ie6-iframe" style="position:absolute;top:0;left:0;z-index:5;"></iframe>');
//			$('#fix-ie6-iframe').css({
//				width	:	$(selector).attr("clientWidth"),
//				height	:	$(selector).attr("clientHeight"),
//				top		:	$(selector).attr("offsetTop"),
//				left	:	$(selector).attr("offsetLeft"),
//				filter	:	"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"
//			});
//		};
		if($.browser.msie&&$.browser.version==6){
			$('embed, object, select').css({'visibility':'hidden' });
		};
	},
	adjustIFrame:function(){
//		if(Helper.isNullOrEmpty(selector)){return;};
//		$('#fix-ie6-iframe').css({
//			width	:	$(selector).attr("clientWidth"),
//			height	:	$(selector).attr("clientHeight"),
//			top		:	$(selector).attr("offsetTop"),
//			left	:	$(selector).attr("offsetLeft")
//		});
	},
	removeIFrame:function(){
//		$('#fix-ie6-iframe').remove();
		$('embed, object, select').css({ 'visibility' : 'visible' });
	}
};

var Info={
	Story:{
		currentPage:1,
		prevPage:function(){
			if(Info.Story.currentPage>1){
				Info.Story.currentPage--;
				Info.Story.render();
			};
		},
		nextPage:function(){
			var totalPage=Page.pageCount;
			if(Info.Story.currentPage<totalPage){
				Info.Story.currentPage++;
				Info.Story.render();
			}
		},
		render:function(){
			$("#storyList").fadeOut("fast",function(){
				$("#storyList").empty();
			
				var sList=Page.storyList.gR;
				if(sList){
					var idxStart=(Info.Story.currentPage-1)*6;
					var idxEnd=((sList.length-1)>(idxStart+5))?(idxStart+5):(sList.length-1);
					
					var line;
					var pc=$("<p class='clear'></p>");
					
					for(var i=idxStart;i<=idxEnd;i++){
						var tp=$("#storyTemplate").contents().clone();
						var imgBefore=tp.find("td.lm img");
						var imgAfter=tp.find("td.rm img");
						
						tp.attr("id","story_"+i);
						imgBefore.attr("src",Page.imagePath+sList[i].imageBeforeName);
						imgAfter.attr("src",Page.imagePath+sList[i].imageAfterName);
						
						tp.click(Info.Story.show);
						
						if((i%3)==0){
							var ls=(i%6>=3)?" line2":"";
							line=$("<div class='line"+ls+"'></div>");
						};
						line.append(tp);
						if((i%3)==2||(i==sList.length-1)){
							line.append(pc.clone());
							$("#storyList").append(line);
							$("#storyList").append(pc.clone());
						};
					};
				};
				$("#storyList").fadeIn("fast");
			});
		},
		show:function(){
			var sList=Page.storyList.gR;
			var sId=$(this).attr("id");
			var i=sId.replace("story_","");
			if(!i||!sList||!sList[i]){return;};
			var story=sList[i];
			
			$("#mainContent").fadeOut("fast",function(){
				$("#storyDescription").empty();
				$("#storyTitle .name").empty();
				$("#storyTitle .job").empty();
				$("#combinedImage").empty();
				$("#combinedImage").append("<img src='"+Page.imagePath+story.imageCombined+"' alt=''/>");
				$("#storyDescription").append(story.description);
				$("#storyTitle .name").append(story.name);
				$("#storyTitle .job").append(story.job?("，"+story.job):"");
				if(Helper.isNullOrEmpty(story.videoPath)){$("img[name='imgVideoLogo']").hide();
				}else{$("img[name='imgVideoLogo']").show();}
				
				var so = new SWFObject(Page.videoPlayerUrl, "landing", "310", "287", "8", "#000");
				so.addParam("wmode", "opaque");
				so.addParam("quality", "high");

				so.addVariable("videofilename",story.videoPath);
				so.addVariable("videoDuration",story.videoDuration);
				so.addVariable("videoSize","123");
				so.addVariable("videoFileSite",Page.imagePath);
				so.addVariable("videoFileRootPath","");
				so.addVariable("autoStart","true");
				
				so.write("playerContent");
				
				$("#mainContent").fadeIn("fast");
			});
		}
	}
}