/***********************
Execution
***********************/
$(function(){
	if(page=="contact") $("form#contact_form").xSimpleForm();
	if(page=="order") xOrder();
	$("#pagetop").xScroll();
	$("a.scroll").xScroll();
	//mail add(対象エレメント,タイトル,表示テキスト)
	if(mailadd) xMailAdd("a.mailadd");
	xInitScroll();
	$(".noias_viewer").xImgLarger();
});
/***********************
Function
***********************/
//初期スクロール
function xInitScroll(){
	var target=window.location.href.split("#")[1];
	if(target){
		document.documentElement.scrollTop=0;
		var nTop=$("#"+target).offset().top-20||0;
		$(($.browser.opera)?"html":"html,body").animate({scrollTop:nTop},1000,'swing');
	}
}
//サイドメニュースクロール
function xScrollFollow(el,b){
	var margin=20;
	var startY=(b)?0:el.offset().top;
	var startTop=(b)?0:el.position().top;
	var currentY=0;
	var distance=0;
	var crossPoint=$("#footer").offset().top-el.height();
	var ie6=($.browser.msie);
	$(window).scroll(function(){
		currentY=$(this).scrollTop();
		if(currentY>startY) distance=currentY-startY+startTop+margin;
		else distance=startTop;
		el.animate({top:distance},{queue:false,duration:500,easing:'linear'});
		if(!ie6){
			if(currentY>crossPoint) el.css("opacity","0.3");
			else el.css("opacity","1");
		}
	});
}
//mailadd
function xMailAdd(el,title,text){
	var mail_el=$(el);
	mail_el.html(mailadd).attr("href","mailto:"+mail_el.html());
	if(title) mail_el.attr("title",title);
	if(text) mail_el.text(text);
}
//注文フォーム
function xOrder(){
	//status check
	if($("p#status_comment").attr("status")=="out"){
		$("h4#h4_orderform").hide();
	}else{
		//初期化
		$("form#order_form").xSimpleForm({"xValueCheck":xValueCheck});
		$("input#show_form").attr("disabled","disabled");
		
		//フィールド定義
		field_obj={
			//ご注文情報
			"l3_lot":$("select#l3_lot","fieldset#order_field"),
			"l2_lot":$("select#l2_lot","fieldset#order_field"),
			"l0_lot":$("select#l0_lot","fieldset#order_field"),
			"send_pref":$("select#send_pref","fieldset#order_field"),
			//お客様情報
			"customer_name":$("input#customer_name","fieldset#customer_field"),
			"customer_kana":$("input#customer_kana","fieldset#customer_field"),
			"customer_zip":$("input#customer_zip","fieldset#customer_field"),
			"customer_pref":$("select#customer_pref","fieldset#customer_field"),
			"customer_add":$("textarea#customer_add","fieldset#customer_field"),
			"customer_mail":$("input#customer_mail","fieldset#customer_field"),
			"customer_tel":$("input#customer_tel","fieldset#customer_field"),
			"delivery_check":$("input#delivery_check","fieldset#customer_field"),
			//お届け先情報
			"delivery_name":$("input#delivery_name","fieldset#delivery_field"),
			"delivery_kana":$("input#delivery_kana","fieldset#delivery_field"),
			"delivery_zip":$("input#delivery_zip","fieldset#delivery_field"),
			"delivery_add":$("textarea#delivery_add","fieldset#delivery_field"),
			"delivery_tel":$("input#delivery_tel","fieldset#delivery_field"),
			//オプション・その他
			"receipt":$("input#receipt","fieldset#option_field"),
			"comment":$("textarea#comment","fieldset#option_field")
		};
		//商品選択
		xSelectArticle();
		//お客様情報の表示
		$("input#show_form").click(xViewForm);
		//別途お届け先情報の表示
		$("input#delivery_check").click(xViewDelivery);
		
		
		//for debug
		//xTestInput();
	}
}
//for dubug
function xTestInput(){
	//order
	field_obj.l3_lot.val(1);
	field_obj.send_pref.val("北海道");
	field_obj.l3_lot.change();
	field_obj.send_pref.change();
	$("#show_form").click();
	//customer
	field_obj.customer_name.val("高橋花子");
	field_obj.customer_kana.val("タカハシハナコ");
	field_obj.customer_zip.val("000-0000");
	field_obj.customer_pref.val("北海道");
	field_obj.customer_add.val("購入者住所");
	field_obj.customer_mail.val("hanako@test.com");
	field_obj.customer_tel.val("000-000-0000");
	//delivery
	field_obj.delivery_check.attr("checked","checked");
	field_obj.delivery_check.click();
	field_obj.delivery_check.attr("checked","checked");
	field_obj.delivery_name.val("高橋テスト");
	field_obj.delivery_kana.val("タカハシテスト");
	field_obj.delivery_zip.val("111-1111");
	field_obj.delivery_add.val("別途お届け先住所");
	field_obj.delivery_tel.val("111-111-1111");
	//option
	field_obj.receipt.attr("checked","checked");
	field_obj.comment.val("コメントテスト");
}
//値チェック
function xValueCheck(){
	var b=true;
	var str="";
	
	if(field_obj.send_pref.val()!=field_obj.customer_pref.val()&&!field_obj.delivery_check.attr("checked")){
		b=false;
		str="お届け先ご住所とお客様ご住所が一致しません。\n別のお届け先を指定するには、「お届け先を別に指定する。」をチェックしてください。";
	}else{
		//customer_name
		if(!$.xValueCheck("blank",field_obj.customer_name)) b=false,field_obj.customer_name.parent().addClass("error");
		else field_obj.customer_name.parent().removeClass("error");
		//customer_kana
		if(!$.xValueCheck("blank",field_obj.customer_kana)) b=false,field_obj.customer_kana.parent().addClass("error");
		else field_obj.customer_kana.parent().removeClass("error");
		//customer_zip
		if(!$.xValueCheck("zip",field_obj.customer_zip)) b=false,field_obj.customer_zip.parent().addClass("error");
		else field_obj.customer_zip.parent().removeClass("error");
		//customer_pref
		if(!$.xValueCheck("sel",field_obj.customer_pref)) b=false,field_obj.customer_pref.parent().addClass("error");
		else field_obj.customer_pref.parent().removeClass("error");
		//customer_add
		if(!$.xValueCheck("blank",field_obj.customer_add)) b=false,field_obj.customer_add.parent().addClass("error");
		else field_obj.customer_add.parent().removeClass("error");
		//customer_mail
		if(!$.xValueCheck("mail",field_obj.customer_mail)) b=false,field_obj.customer_mail.parent().addClass("error");
		else field_obj.customer_mail.parent().removeClass("error");
		//customer_tel
		if(!$.xValueCheck("tel",field_obj.customer_tel)) b=false,field_obj.customer_tel.parent().addClass("error");
		else field_obj.customer_tel.parent().removeClass("error");
		if(field_obj.delivery_check.attr("checked")){
			//delivery_name
			if(!$.xValueCheck("blank",field_obj.delivery_name)) b=false,field_obj.delivery_name.parent().addClass("error");
			else field_obj.delivery_name.parent().removeClass("error");
			//delivery_kana
			if(!$.xValueCheck("blank",field_obj.delivery_kana)) b=false,field_obj.delivery_kana.parent().addClass("error");
			else field_obj.delivery_kana.parent().removeClass("error");
			//delivery_zip
			if(!$.xValueCheck("zip",field_obj.delivery_zip)) b=false,field_obj.delivery_zip.parent().addClass("error");
			else field_obj.delivery_zip.parent().removeClass("error");
			//delivery_add
			if(!$.xValueCheck("blank",field_obj.delivery_add)) b=false,field_obj.delivery_add.parent().addClass("error");
			else field_obj.delivery_add.parent().removeClass("error");
			//delivery_tel
			if(!$.xValueCheck("tel",field_obj.delivery_tel)) b=false,field_obj.delivery_tel.parent().addClass("error");
			else field_obj.delivery_tel.parent().removeClass("error");
		}
		
		if(!b) str="入力内容に誤りがあるようです。\n色の付いた項目をご確認ください。";
	}
	
	return [b,str];
}
//別途お届け先情報の表示
function xViewDelivery(){
	var delivery=$("fieldset#delivery_field");
	($(this).attr("checked"))?delivery.show():delivery.hide();
	xScrollFollow($("#menu"),true);
}
//お客様情報の表示
function xViewForm(b){
	var customer=$("fieldset#customer_field");
	var delivery=$("fieldset#delivery_field");
	var option=$("fieldset#option_field");
	var end=$("fieldset#end_field");
	var dlivery_flg=$("input#delivery_check").attr("checked");
	//表示
	if(b){
		customer.show();
		if(dlivery_flg) delivery.show();
		option.show();
		end.show();
		$("input#show_form").attr("disabled","disabled");
	}
	//非表示
	else{
		customer.hide();
		if(dlivery_flg) delivery.hide();
		option.hide();
		end.hide();
	}
	xScrollFollow($("#menu"),true);
}
//商品選択
function xSelectArticle(){
	var value_obj={"l3":2880,"l2":2250,"l0":1250};
	var charge_obj={"":"0","北海道":"1370","青森県":"1060","秋田県":"1060","岩手県":"1060","宮城県":"950","山形県":"950","福島県":"950","茨城県":"850","栃木県":"850","群馬県":"850","埼玉県":"850","千葉県":"850","神奈川県":"850","東京都":"850","山梨県":"850","新潟県":"850","長野県":"850","静岡県":"850","愛知県":"850","三重県":"850","岐阜県":"850","富山県":"850","石川県":"850","福井県":"850","大阪府":"850","京都府":"850","滋賀県":"850","奈良県":"850","和歌山県":"850","兵庫県":"850","岡山県":"950","広島県":"950","山口県":"950","鳥取県":"950","島根県":"950","香川県":"1060","徳島県":"1060","愛媛県":"1060","高知県":"1060","福岡県":"1060","佐賀県":"1060","長崎県":"1060","熊本県":"1060","大分県":"1060","宮崎県":"1060","鹿児島県":"1060","沖縄県":"1690"}
	var total_3=$("#l3_total_txt");
	var total_2=$("#l2_total_txt");
	var total_0=$("#l0_total_txt");
	var charge=$("#charge_txt");
	var total=$("#total_txt");
	var field_3=$("input#l3_total");
	var field_2=$("input#l2_total");
	var field_0=$("input#l0_total");
	var field_charge=$("input#charge");
	var field_total=$("input#total");
	var show_btn=$("input#show_form");
	var delivery_pref=$("p#delivery_pref");
	xSelect("3");
	xSelect("2");
	xSelect("0");
	xSelect("charge");
	//各商品合計
	function xSelect(target){
		var obj=(target=="charge")?$("#send_pref"):$("#l"+target+"_lot");
		obj.change(function(){
			var val=$(this).val();
			if(target=="charge"){
				var v=(charge_obj[val])?$.xNumberFormat(charge_obj[val]):"-";
				charge.html(v);
				field_charge.val(charge_obj[val]);
				//ついでに別途お届け先に出力
				delivery_pref.text(val);
			}else{
				var o=eval("total_"+target);
				var f=eval("field_"+target);
				var v=value_obj["l"+target]*val;
				f.val(v);
				v=(v)?$.xNumberFormat(v):"-";
				o.html(v);
			}			
			//総合計
			var n3=(total_3.text()=="-")?0:Number($.xNumberFormat(total_3.text(),true));
			var n2=(total_2.text()=="-")?0:Number($.xNumberFormat(total_2.text(),true));
			var n0=(total_0.text()=="-")?0:Number($.xNumberFormat(total_0.text(),true));
			var nCharge=(charge.text()=="-")?0:Number($.xNumberFormat(charge.text(),true));
			var nTotal=n3+n2+n0+nCharge;
			field_total.val(nTotal);
			nTotal=(nTotal)?$.xNumberFormat(nTotal):"-";
			total.html(nTotal);
			//お客様情報表示ボタン
			if(n3+n2+n0&&nCharge){
				show_btn.attr({"disabled":"","enabled":"enabled"});
			}else{
				if(show_btn.attr("enabled")){
					show_btn.attr({"disabled":"disabled","enabled":""});
					xViewForm(false);
				}
			}
		});
	}

}
