/*
 * 購物首頁元件載入及事件配置
 * @author 何建德
 * @date 2008/08/11
 */

//使用者點選TreeMenu載入產品類清單
function detailsShow(itemNo, detailsNo) {
	if(itemNo != "" && detailsNo != "") {
		var updateItemContent = new Ext.UpdateManager('body_content');		
		updateItemContent.update({
			url: "modules/product/productDetails.aspx",
			params: {action:'ajax_request', item_no:itemNo, details_no:detailsNo},
			method: 'POST',
			text: '產品載入中...',
			nocache: true,
			scripts: true			
		});
	}
}

//使用者點選產品載入產品資料
function productShow(itemNo, detailsNo, productNo) {
	if(productNo != "") {
		var updateProductContent = new Ext.UpdateManager('body_content');
		updateProductContent.update({
			url: "modules/product/product.aspx",
			params: {action:'ajax_request', item_no:itemNo, details_no:detailsNo, product_no:productNo},
			method: 'POST',
			text: '產品載入中...',
			nocache: true,
			scripts: true	
		});		
	}
}

//使用者點選訂單編號載入內容
function showOrder(orderNum) {
	if(orderNum != "") {
		var updateContent = new Ext.UpdateManager('body_content');
		Ext.Ajax.request({
			url: "modules/user/userDataQuery.aspx?fn=userIsOnLine",
			params: {action:'ajax_request'},
			method: 'POST',
			success: function(response) {
				var respArray = Ext.decode(response.responseText);
				if(respArray.success == "false") {
					Ext.MessageBox.show({
						title:'訊息',
						msg:respArray.msg,
						buttons: Ext.MessageBox.OK,
						fn: function(e) {
							if(e == "ok")
								location.href = "default.aspx";
						},
						animEl: 'errorMsg'
					});	
				}
				else {
					updateContent.update({
						url: "modules/user/userOrderContent.aspx",
						params: {action:'ajax_request', order_num:orderNum},
						method: 'POST',
						text: '載入中...',
						nocache: true,
						scripts: true	
					});
				}
			},
        	failure: function(response) {}
		});
	}	
}

//購物首頁載入各項推薦,熱門,促銷產品列表
function productTop() {
	var updateContent = new Ext.UpdateManager('body_content');
	updateContent.update({
		url: "modules/product/productTop.aspx",
		params: {action:'ajax_request'},
		method: 'POST',
		text: '載入中...',
		nocache: true,
		scripts: true	
	});
}

//使用者結帳事件
function userCheckOut() {
	Ext.Ajax.request({
		url: "modules/user/userDataQuery.aspx?fn=userIsOnLine",
		params: {action:'ajax_request'},
		method: 'POST',
		success: function(response) {
			var respArray = Ext.decode(response.responseText);
			if(respArray.success == "false") {
				Ext.MessageBox.show({
					title:'訊息',
					msg:respArray.msg,
					buttons: Ext.MessageBox.OK,
					fn: function(e) {
						if(e == "ok")
							location.href = "default.aspx";
					},
					animEl: 'errorMsg'
				});	
			}
			else {
				var updateContent = new Ext.UpdateManager('body_content');
				updateContent.update({
					url: "modules/user/userCheckout.aspx",
					params: {action:'ajax_request'},
					method: 'POST',
					text: '載入中...',
					nocache: true,
					scripts: true	
				});
			}
		},
		failure: function(response) {}
	});
}

//使用者登入事件
function userLogin() {
	var updateContent = new Ext.UpdateManager('body_content');
	Ext.get('user_login').on("click", function() {
		updateContent.update({
			url: "modules/user/userLogin.aspx",
			params: {action:'ajax_request'},
			method: 'POST',
			text: '載入中...',
			nocache: true,
			scripts: true,
			callback: function() {
				Ext.get('user_login_reg').on("click", function() {
					updateContent.update({
						url: "modules/user/userRights.aspx",
						params: {action:'ajax_request'},
						method: 'POST',
						text: '載入中...',
						nocache: true,
						scripts: true	
					});
				});
			}
		});
	});
}

//使用者註冊事件
function userReg() {
	var updateContent = new Ext.UpdateManager('body_content');
	Ext.get('user_reg').on("click", function() {
		updateContent.update({
			url: "modules/user/userRights.aspx",
			params: {action:'ajax_request'},
			method: 'POST',
			text: '載入中...',
			nocache: true,
			scripts: true	
		});
	});
}

//使用者忘記密碼事件
function userGetPassword() {
	var updateContent = new Ext.UpdateManager('body_content');
	updateContent.update({
		url: "modules/user/userGetPassword.aspx",
		params: {action:'ajax_request'},
		method: 'POST',
		text: '載入中...',
		nocache: true,
		scripts: true	
	});
}

//帳號啟用
function enableUser(uid, code) {
	Ext.Ajax.request({
		url: "modules/user/userDataQuery.aspx?fn=enableUser",
		params: {action:'ajax_request', uid:uid, code:code},
		method: 'POST',
		success: function(response) {
			var respArray = Ext.decode(response.responseText);
			if(respArray.success == "false") {
				Ext.MessageBox.show({
					title:'訊息',
					msg:respArray.msg,
					buttons: Ext.MessageBox.OK,
					fn: function(e) {
						if(e == "ok")
							location.href = "default.aspx";
					},
					animEl: 'errorMsg'
				});	
			}
			else {
				var respArray = Ext.decode(response.responseText);
				Ext.MessageBox.show({
					title:'訊息',
					msg:respArray.msg+" 恭喜您!您的帳號已正式啟用!<br>若您有任何使用上的問題,歡迎來電洽詢。",
					buttons: Ext.MessageBox.OK,
					fn: function(e) {
						if(e == "ok")
							location.href = "default.aspx";
					},
					animEl: 'errorMsg'
				});
				/*
				updateContent.update({
					url: "modules/user/userOrderForm.aspx",
					params: {action:'ajax_request'},
					method: 'POST',
					text: '載入中...',
					nocache: true,
					scripts: true	
				});
				*/
			}
		},
		failure: function(response) {}
	});
}

//載入新聞頁面
function news(n_no) {
	var updateContent = new Ext.UpdateManager('body_content');
	var url = "modules/news/news.aspx";
	if(!Ext.isEmpty(n_no, true)) { url = "modules/news/newsDetails.aspx"; }
	updateContent.update({
		url: url,
		params: {action:'ajax_request', n_no:n_no},
		method: 'POST',
		text: '載入中...',
		nocache: true,
		scripts: true	
	});
}

//載入交流園地
function forum() {
	var updateContent = new Ext.UpdateManager('body_content');
	var url = "modules/forum/forum.aspx";
	updateContent.update({
		url: url,
		params: {action:'ajax_request'},
		method: 'POST',
		text: '載入中...',
		nocache: true,
		scripts: true	
	});
}

//產品搜尋事件
function searchProduct() {
	var updateContent = new Ext.UpdateManager('body_content');
	var searchKey = Ext.get('search_key').dom.value;
	if(searchKey != '') {
		updateContent.update({
			url: 'modules/product/productSearch.aspx',
			params: {action:'ajax_request', search_key:searchKey},
			method: 'POST',
			text: '載入中...',
			nocache: true,
			scripts: true			
		});
	}
}

Ext.onReady(function(){
 	var url = Ext.urlDecode(location.search.substring(1));
 	if(url['fn'] != null) {
 		switch(url['fn']) {
 			case 'productShow':
 				if(url['i_no'] != '' && url['d_no'] != '' && url['p_no'] != '') {
 					productShow(url['i_no'], url['d_no'], url['p_no']);
 				}
 				break;
 				
 			//暫無作用
 			case 'detailsShow':
 				if(url['i_no'] != '' && url['d_no'] != '') {
 					detailsShow(url['i_no'], url['d_no']);
 				}
 				break;
 			
 			//啟用USER帳號
 			case 'enableUser':
 				if(url['uid'] != '' && url['code'] != '') {
 					enableUser(url['uid'], url['code']);
 				}
 				break;
 			
 			//載入新聞清單
 			case 'news':
 				var n_no;
 				if(!Ext.isEmpty(url['n_no'], true)) {
 					n_no = url['n_no'];					
 				}
 				news(n_no);
 				break;
 			
 			//載入交流園地
 			case 'forum':
 				forum();
 				break;
 				
 			default:
 				location.href = "default.aspx";
 				break;
 		}
 	}
 	else {
		productTop();		
 	}
 	
 	//搜尋欄位定義
 	var search_key = new Ext.form.TextField({allowBlank:true});
	search_key.applyTo('search_key');
 	
 	var updateContent = new Ext.UpdateManager('body_content');
	if(Ext.get('user_id').dom.value != "") {			
				
		//使用者登入後提取購物車資訊
		var updateCart = new Ext.UpdateManager('shoppingCart');
		updateCart.update({
			url: "modules/product/productDataQuery.aspx?fn=getCartItem",
			params: {action:'ajax_request'},
			method: 'POST',
			text: '載入中...',
			nocache: true,
			scripts: true,
			callback: function() {
				Ext.get('user_login').remove();
				Ext.get('user_reg').remove();
				Ext.get('user_password').remove();
				Ext.get('user_logout').setStyle("visibility", "visible");
				Ext.get('user_edit').setStyle("visibility", "visible");
				
				Ext.get('user_logout').on("click", function() {
					location.href = "modules/user/userDataQuery.aspx?fn=logout";
				});
	
				//使用者資料編輯事件
				Ext.get('user_edit').on("click", function() {
					Ext.Ajax.request({
		    			url: "modules/user/userDataQuery.aspx?fn=userIsOnLine",
		    			params: {action:'ajax_request'},
		    			method: 'POST',
						success: function(response) {
							var respArray = Ext.decode(response.responseText);
							if(respArray.success == "false") {
								Ext.MessageBox.show({
									title:'訊息',
									msg:respArray.msg,
									buttons: Ext.MessageBox.OK,
									fn: function(e) {
										if(e == "ok")
											location.href = "default.aspx";
									},
									animEl: 'errorMsg'
								});	
							}
							else {
								updateContent.update({
									url: "modules/user/userRegEdit.aspx",
									params: {action:'ajax_request'},
									method: 'POST',
									text: '載入中...',
									nocache: true,
									scripts: true	
								});
							}
						},
		            	failure: function(response) {}
					});
				});
				
				//使用者購物結帳事件
				Ext.get('user_checkout').on("click", function() {
					if((Ext.get('cartItem').dom.innerHTML) == "0") {
						Ext.Msg.alert("訊息", "購物車內無任何資料!");
					}
					else {
						userCheckOut();
					}
				});
				
				//使用者購物車清單查看事件
				Ext.get('user_itemList').on("click", function() {
					if((Ext.get('cartItem').dom.innerHTML) == "0") {
						Ext.Msg.alert("訊息", "購物車內無任何資料!");
					}
					else {
						Ext.Ajax.request({
							url: "modules/user/userDataQuery.aspx?fn=userIsOnLine",
							params: {action:'ajax_request'},
							method: 'POST',
							success: function(response) {
								var respArray = Ext.decode(response.responseText);
								if(respArray.success == "false") {
									Ext.MessageBox.show({
										title:'訊息',
										msg:respArray.msg,
										buttons: Ext.MessageBox.OK,
										fn: function(e) {
											if(e == "ok")
												location.href = "default.aspx";
										},
										animEl: 'errorMsg'
									});	
								}
								else {
									updateContent.update({
										url: "modules/user/userCheckList.aspx",
										params: {action:'ajax_request'},
										method: 'POST',
										text: '載入中...',
										nocache: true,
										scripts: true	
									});
								}
							},
	    					failure: function(response) {}
						});
					}
				});
				
				//使用者訂單查看事件
				Ext.get('user_orders').on("click", function() {
					Ext.Ajax.request({
						url: "modules/user/userDataQuery.aspx?fn=userIsOnLine",
						params: {action:'ajax_request'},
						method: 'POST',
						success: function(response) {
							var respArray = Ext.decode(response.responseText);
							if(respArray.success == "false") {
								Ext.MessageBox.show({
									title:'訊息',
									msg:respArray.msg,
									buttons: Ext.MessageBox.OK,
									fn: function(e) {
										if(e == "ok")
											location.href = "default.aspx";
									},
									animEl: 'errorMsg'
								});	
							}
							else {
								updateContent.update({
									url: "modules/user/userOrderForm.aspx",
									params: {action:'ajax_request'},
									method: 'POST',
									text: '載入中...',
									nocache: true,
									scripts: true	
								});
							}
						},
    					failure: function(response) {}
					});
				});
			}//callback
		});	
	}
	else {
		
		//使用者登入事件
		userLogin();
		
		//使用者註冊事件
		userReg();		
	}
});
