/*
* @version : 2.4.1 (Patch 13)
* @update : 2011-12-14
* @author : บริษัท อีมีเดีย จำกัด
* @comment : Support CSC, 1150 VIP
*/

/* exten jquery function */
function clean_username(username) {
	username = username.toLowerCase();
	return (username || "").replace(/\s/g, "" );
}

function clean_whitespace(text) { // remove all space
	return (text || "").replace(/\s/g, "" );
}

function clean_url(url) { // add url protocal
	if(url) {
		var regexp = /(ftp|http|https):\/\/?/;
		if (!regexp.test(url)) {
			url = "http://"+url;
		}
	}

	return (url || "").replace(/\s/g, "" );
}

function clean_email(email) {
	email = email.toLowerCase();
	return (email || "").replace(/\s/g, "" );
}

function key_digit(e) {
	var KeyCode = (e.keyCode ? e.keyCode : e.which);
	var CharCode = (e.charCode ? e.charCode : 0);
	CharCode = ($.browser.msie ? -1 : CharCode );
	return ((KeyCode == 8) // backspace
		|| (KeyCode == 9) // tab
		|| (KeyCode == 37) // left arrow
		|| (KeyCode == 39) // right arrow
		|| ((KeyCode == 46) && (CharCode == 0)) // delete
		|| (CharCode == 0)
		|| ((KeyCode > 47) && (KeyCode < 58)) // 0 - 9
	);
}

function validateField(field) {
	var error = false;
	$(field).removeClass("error");

	// remove whitespace
	$(field).val( jQuery.trim( $(field).val() ) );

	// username field
	if ( $(field).hasClass("username") ) {
		$(field).val( clean_username( $(field).val() ) );
	}
	// email field
	if ( $(field).hasClass("email") ) {
		$(field).val( clean_email( $(field).val() ) );
	}
	// url field
	if ( $(field).hasClass("url") ) {
		$(field).val( clean_url( $(field).val() ) );
	}

	// required fields
	if ($(field).attr("class").indexOf("required") != -1) {
		if ( $(field).attr("type") == "radio") {

			if ( !$("form#"+$(field).parents("form").attr("name")+" input[name="+$(field).attr("name")+"]").is(":checked"))
				error = true;

		} else if ( $(field).attr("type") == "checkbox") {
			if ( !$(field).is(":checked") )
				error = true;

		} else {
			if (!$(field).val().length)
				error = true;
		}
	}
	// numeric fields
	if ($(field).val().length && $(field).hasClass("numeric") ) {
		if (!/^[0-9]*$/.test($(field).val()))
			error = true;
	}
	// emails
	if ($(field).val().length && $(field).hasClass("email") ) {
		if (!/^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$/.test($(field).val()))
			error = true;
	}
	// url
	if ($(field).val().length && $(field).hasClass("url") ) {
		if (!/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test($(field).val()))
			error = true;
	}
	// telephone & mobile
	if ($(field).val().length && $(field).hasClass("phone") ) {
		if (!validPhone($(field).val())) error = true;
	}
	// mobile
	if ($(field).val().length && $(field).hasClass("mobile") ) {
		if (!validMobile($(field).val())) error = true;
	}

	if (error) $(field).addClass("error");

	return !error;
}

//
function validUsername(value) {
	try {
		var rs = (/^[a-z0-9]{1}([a-z0-9]|_){5,19}$/.test(value));
		//var rs = (/^[a-zA-Z0-9]{1}([a-zA-Z0-9]|_|-|@|\.){4,18}[a-zA-Z0-9]{1}$/.test(value));
		//var rs = (/^[a-zA-Z0-9]{5,20}$/.test(value));
		return rs;
	} catch (e) {}
	return false;
}

function validPhone(value) {
	try {
		var rs_tel = (/^[0]{1}[0-79]{1}[0-9]{7}$/.test(value));
		var rs_mobile = (/^[0]{1}[89]{1}[0-9]{8}$/.test(value));
		return (rs_tel || rs_mobile);
	} catch (e) {}
	return false;
}

function validMobile(value) {
	try {
		var rs_mobile = (/^[0]{1}[89]{1}[0-9]{8}$/.test(value));
		return (rs_mobile);
	} catch (e) {}
	return false;
}

function IsEmail(email) {
	var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (regex.test(email)){
		//var c=Checkemail(email);
		return true;
	}else {return false;}
}

$.fn.clearForm = function() {

	// iterate each matching form
	return this.each(function(){
		// iterate the elements within the form
		$(":input", this).each(function(){
			var type = this.type, tag = this.tagName.toLowerCase();
			if (type == "text" || type == "password" || tag == "textarea")
				this.value = "";
			else if (type == "checkbox" || type == "radio")
				this.checked = false;
			else if (tag == "select")
				this.selectedIndex = -1;
		});
	});
};

function valid_char(str, maxlength) {
	var total=0;
	maxlength = parseInt(maxlength);
	if ( maxlength > 0 ) {
		var str_ir = 'ั'+'ํ'+'่'+'๋'+'ี'+'ึ'+'ื'+'ิ'+'๊'+'้'+'็'+'ุ'+'ู';
		var str_len = 0;
		for(i=0; i<str.length; i++) {
			var char_code = str.substr(i, 1);

			//if (char_code == 'ั' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' || char_code == '' ) {
			if (str_ir.indexOf(char_code) != -1) {
				total++;
			} else {
				str_len++;
			}
			if ( str_len == maxlength ) break;
		}

		return str.substr(0, maxlength+total);
	} else {
		return str;
	}
}

/* Validate Birthday */
function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++) {
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag) {
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function daysInFebruary(year) {
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}

function DaysArray(n) {
	for(var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
		if (i==2) {this[i] = 29;}
	}
	return this;
}

function isValidDate(dtStr) {
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strMonth=dtStr.substring(0,pos1);
	var strYear=dtStr.substring(pos2+1);

	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for(var i = 1; i <= 3; i++) {
		if (strYear.charAt(0)=="0" && strYear.length>1) strYear=strYear.substring(1);
	}
	var day = parseInt(strDay);
	var month = parseInt(strMonth);
	var year = parseInt(strYear);

	if (pos1==-1 || pos2==-1) {
		//alert("The date format should be : วัน/เดือน/ปี")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12) {
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]) {
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear) {
		//alert("Please enter a valid 4 digit year between "+(minYear+543)+" and "+(maxYear+543) )
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false) {
		return false
	}
	return true;
}
/* Validate Birthday */

function blockPage() {
	$.blockUI({ message: ( get_lang()=="en" ? "<h1>Please wait.</h1>" : "<h1>กรุณารอสักครู่</h1>")+"<br /><img src=\"images/loading_page.gif\" alt=\"\" />" , css: { backgroundColor: "transparent", color: "#FFFFFF", padding: "0px 0px 50px 0px" } });
}

function unblockPage(callback) {
	if ($.isFunction(callback)) {
		$.unblockUI({onUnblock: callback});
	} else {
		$.unblockUI();
	}
}

function blockFoodTray() {
	if ( $("div#plFoodTray").length > 0 ) {
		if ( $("div#plFoodTray .blockUI").length == 0 ) {
			$("div#plFoodTray").droppable("destroy");
			$("div#plFoodTray").droppable( "option", "disabled", true );
			$("div#plFoodTray").block({ message: '<img src="images/loading-foodtray.gif" border="0" alt="Loading..." />'});
		}
	}
}

function unblockFoodTray(callback) {
	if ( $("div#plFoodTray").length > 0 ) {
		$("div#plFoodTray").droppable( "option", "disabled", false );
		//$("div#plFoodTray").unblock();
		if ($.isFunction(callback)) {
			$("div#plFoodTray").unblock({onUnblock: callback});
		} else {
			$("div#plFoodTray").unblock();
		}
		$("div#plFoodTray").css("position", "");
		handle_DragDrop();
	}
}

function refreshFoodTray() {
	if ( $("div#plFoodTray").length > 0 ) {
		blockFoodTray();
		$.ajax({
			url: "api/cart.php",
			data: "action=refresh_cart",
			type: "get",
			cache: false,
			dataType: "text",
			complete: function (result) {
				if ( $(result.responseText).filter("div#plFoodTray").length > 0 ) {
					$("div#plFoodTray").html( $(result.responseText).filter("div#plFoodTray").html() );
					handle_Foodtray();
				}
				unblockFoodTray();
			},
			error: function(){
				unblockFoodTray();
			}
		});
	}
}

function blockLastOrder() {
	if ( $("div#plLastOrder").length > 0 ) {
		if ( $("div#plLastOrder .blockUI").length == 0 ) {
			$("div#plLastOrder").droppable( "option", "disabled", true );
			$("div#plLastOrder").block({ message: '<img src="images/loading-foodtray.gif" border="0" alt="Loading..." />'});
		}
	}
}

function unblockLastOrder(callback) {
	if ( $("div#plLastOrder").length > 0 ) {
		$("div#plLastOrder").droppable( "option", "disabled", false );
		//$("div#plLastOrder").unblock();
		if ($.isFunction(callback)) {
			$("div#plLastOrder").unblock({onUnblock: callback});
		} else {
			$("div#plLastOrder").unblock();
		}
	}
}

function blockFavoriteMenu() {
	if ( $("div#plFavorite").length > 0 ) {
		if ( $("div#plFavorite .blockUI").length == 0 ) {
			$("div#plFavorite").droppable( "option", "disabled", true );
			$("div#plFavorite").block({ message: '<img src="images/loading-foodtray.gif" border="0" alt="Loading..." />'});
		}
	}
}

function unblockFavoriteMenu(callback) {
	if ( $("div#plFavorite").length > 0 ) {
		$("div#plFavorite").droppable( "option", "disabled", false );
		//$("div#plLastOrder").unblock();
		if ($.isFunction(callback)) {
			$("div#plFavorite").unblock({onUnblock: callback});
		} else {
			$("div#plFavorite").unblock();
		}
	}
}

function refreshFavoriteMenu() {
	if ( $("div#plFavorite").length > 0 ) {
		blockFavoriteMenu();
		$.ajax({
			url: "api/favorite_menu.php",
			data: "action=refresh",
			type: "get",
			cache: false,
			dataType: "text",
			complete: function (result) {

				if ( $(result.responseText).filter("div#plFavorite").length > 0 ) {
					$("div#plFavorite").html( $(result.responseText).filter("div#plFavorite").html() );
					handle_FavoriteMenu();
				}
				unblockFavoriteMenu();
			},
			error: function(){
				unblockFavoriteMenu();
			}
		});
	}
}

function renderDropDown(ele) {
	if ( $.fn.msDropDown!=undefined && $(ele).length > 0 ) {
		$(ele).msDropDown();
	}
}

function disableDropDown(ele, flag) {
	if ( $.fn.msDropDown!=undefined && $(ele).length > 0 ) {
		var oHandler = $(ele).msDropDown().data("dd");
		oHandler.disabled(flag);
	} else {
		if ( flag == true ) {
			$(ele).attr("disabled", "disabled");
		} else {
			$(ele).attr("disabled", "");
		}
	}
}

function setDropDown(ele, property, value) {
	if ( $.fn.msDropDown!=undefined && $(ele).length > 0 ) {
		var oHandler = $(ele).msDropDown().data("dd");
		oHandler.set(property, value);
	} else {
		if ( property == "selectedIndex" ) {
			$(ele).attr(property, value);
		}
	}
	$(ele).change();
}

function bindProvince(province, amphur) {

	var optiondefault = '<option value=""></option>' ;
	var optionloading = '<option>loading...</option>' ;

	if ( parseInt($(province).val()|| 0) == 0 ) {
		if ( $.fn.msDropDown!=undefined ) {
			var oHandler = $(amphur).msDropDown().data("dd");
			if ( oHandler) oHandler.disabled(true);
		} else {
			$(amphur).attr("disabled", "disabled");
		}
	}

	$(province).bind("change", function() {

		if ( $.fn.msDropDown!=undefined ) {
			var oHandler = $(amphur).msDropDown().data("dd");
			oHandler.disabled(true);
		} else {
			$(amphur).attr("disabled", "disabled");
		}

		if ( $(this).val() ) {
			$(amphur).html(optionloading);


			$.getJSON("api/address.php", {action: "amphur", id: $(this).val()}, function(data) {

				var options = optiondefault;
				for (var i=0; i<data.length; i++) {
					options += '<option value="'+data[i].id+'">'+data[i].name+'</option>';
				}

				$(amphur).html(options);

				if ( $.fn.msDropDown!=undefined ) {
					var oHandler = $(amphur).msDropDown().data("dd");
					oHandler.disabled(false);
				} else {
					$(amphur).attr("disabled", "");
				}
				//$(amphur).focus();
			});

		} else {
			$(amphur).html(optiondefault);
		}

	});
}

function bindStoreProvince(province, amphur) {

	var optiondefault = '<option value=""></option>' ;
	var optionloading = '<option>loading...</option>' ;

	if ( parseInt($(province).val()|| 0) == 0 ) {
		if ( $.fn.msDropDown!=undefined ) {
			var oHandler = $(amphur).msDropDown().data("dd");
			if ( oHandler) oHandler.disabled(true);
		} else {
			$(amphur).attr("disabled", "disabled");
		}
	}

	$(province).bind("change", function() {

		if ( $.fn.msDropDown!=undefined ) {
			var oHandler = $(amphur).msDropDown().data("dd");
			oHandler.disabled(true);
		} else {
			$(amphur).attr("disabled", "disabled");
		}

		if ( $(this).val() ) {
			$(amphur).html(optionloading);


			$.getJSON("api/address.php", {action: "store_amphur", id: $(this).val()}, function(data) {

				var options = optiondefault;
				for (var i=0; i<data.length; i++) {
					options += '<option value="'+data[i].id+'">'+data[i].name+'</option>';
				}

				$(amphur).html(options);

				if ( $.fn.msDropDown!=undefined ) {
					var oHandler = $(amphur).msDropDown().data("dd");
					oHandler.disabled(false);
				} else {
					$(amphur).attr("disabled", "");
				}
				//$(amphur).focus();
			});

		} else {
			$(amphur).html(optiondefault);
		}

	});
}

function get_lang() {
	return ( $("body").hasClass("en") ? "en" : "th" );
}

/*$(document).ready(function(){

});*/

//Add to cart except Pizza and Drinks
function addCartMenu(code, option, callback, amt) {
	var param = "action=add_cart";
	amt = (parseInt(amt) || 1);
	if( typeof(code) == 'object' ) {
		for(i=0; i<code.length; i++) {
			param += "&product_choice["+$.URLEncode(code[i])+"]="+amt;
			if (option[i] != undefined ) param += "&product_option["+$.URLEncode(code[i])+"]="+option[i];
		}
	} else {
		param += "&product_choice["+$.URLEncode(code)+"]="+amt;
		if ( option!=undefined && option.length>0 ) param += "&product_option["+$.URLEncode(code)+"]="+option;
	}
	//alert(param)

	$.ajax({
		url: "api/cart.php",
		data: param,
		type: "post",
		cache: false,
		dataType: "text",
		complete: function (result) {

			/*switch(result.responseText) {
				case "1":
					checkIsPizza(code);
					break;
				case "2":
				case "3":
					var is_pizza = false;
					if ( code != '') { is_pizza = isPizza(code); }
					var btClose = ( is_pizza ? 2 : -1 );
					//alert("btClose : " + btClose);
					showProductBuyGet( btClose );
					break;
				default:
					//bindDisplayMessage("กรุณาตรวจสอบการสั่งรายการอาหารค่ะ", "");
			}*/

			/*if ($.isFunction(callback)) {
				callback.apply();
			}

			if ( !$.isFunction(callback) && $("div#pageHome").length > 0 ) {
				location.href = "promotion.php";
			} else {
				unblockPage();
				if ( $("div#pagePayment").length > 0) {
					refreshPaymentOrder();
				} else {
					refreshFoodTray();
				}
			}*/

			switch(result.responseText) {
				case "0":
					unblockPage();
					bindDisplayMessage( "", ( get_lang()=="en" ? "Sorry! Maximum of same meat part selection in 1 order is 4 pieces. Please select other meat parts and click on &quot;Order Now&quot;." : "ขออภัยค่ะ ใน 1 ออเดอร์สามารถเลือกชิ้นไก่ส่วนเดียวกันได้ไม่เกิน 4 ชิ้น กรุณาเปลี่ยนประเภทของชิ้นไก่แล้วคลิก &quot;สั่งซื้อ&quot; ค่ะ" ) );
					break;

				default:
					if ($.isFunction(callback)) {
						callback.apply();
					}

					if ( !$.isFunction(callback) && $("div#pageHome").length > 0 ) {
						location.href = "promotion.php";
					} else {
						//unblockPage();
						if ( $("div#pagePayment").length > 0) {
							//refreshPaymentOrder();
							document.location.reload();
						} else {
							unblockPage();
							refreshFoodTray();
						}
					}
					break;
			}

			//document.location.reload();
		},
		error: function(result) {
			unblockPage();
			if ($.isFunction(callback)) {
				callback.apply();
			}
		}
	});
}

// Dialog
function addAddress(url) {
	blockPage();
	$.ajax({
		url: url,
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-address").remove();
			//$("div.pageContent div.plAddress").html(data.responseText);
			var responseText = '';
			responseText = data.responseText;
			if ( $(responseText).find("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).find("div#ajaxContent").html() || "");
			}

			if ( $(responseText).length) $("<div id=\"dialog-address\">"+responseText+"</div>").appendTo("body");

			// Form Binding
			if ( $("form#frmAddress").length > 0 ) {
				$("form#frmAddress input.phone").each(function() {
					$(this).keypress(function(e) {
						return key_digit(e);
					});
				});

				// Dropdown
				renderDropDown("form#frmAddress select");
				bindProvince("form#frmAddress select#province_id", "form#frmAddress select#amphur_id");

				$("form#frmAddress").submit(function(e){
					//e.preventDefault();
					var validationError = false;
					$("form#frmAddress div.errMsg").empty();
					$("form#frmAddress input, form#frmAddress select, form#frmAddress textarea").removeClass("error");

					if ( $("form#frmAddress input.cb_phone").length > 0 ) {
						$("form#frmAddress input.cb_phone:checked").each(function(){
							var meta = $.metadata.get(this);
							if ( meta.telephone==undefined || meta.telephone.length>0 ) {
								$("form#frmAddress input[name=telephone]").val( meta.telephone );
								$("form#frmAddress input[name=telephone_ext]").val( meta.ext );
							} else {
								$("form#frmAddress input[name=telephone]").val( $("form#frmAddress input[name=telephone2]").val() );
								$("form#frmAddress input[name=telephone_ext]").val( $("form#frmAddress input[name=telephone2_ext]").val() );
							}
						});
					}

					$("form#frmAddress input[type=text],form#frmAddress select,form#frmAddress textarea").each(function() {
						if ($(this).attr("class")) {
							if (!validateField(this)) validationError = true;
						}
					});

					if ( validationError==true ) {
						var frmName = "form#frmAddress";

						if ( $(frmName + " input[name=firstname]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your first name!" : "กรุณากรอกชื่อ")+"</label>");
						if ( $(frmName + " input[name=lastname]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your last name!" : "กรุณากรอกนามสกุล")+"</label>");
						if ( $(frmName + " input[name=telephone]").hasClass("error") || $(frmName + " input[name=telephone2]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your contact number!" : "กรุณากรอกเบอร์ติดต่อ")+"</label>");
						if ( $(frmName + " input[name=email]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your email address!" : "กรุณากรอกอีเมล")+"</label>");
						if ( $(frmName + " select[name=province_id]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your province!" : "กรุณาเลือกจังหวัด")+"</label>");
						if ( $(frmName + " select[name=amphur_id]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your district!" : "กรุณาเลือกอำเภอ")+"</label>");
						if ( $(frmName + " input[name=zip_code]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your postal code!" : "กรุณากรอกรหัสไปรษณีย์")+"</label>");
						if ( $(frmName + " input[name=tambol]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your sub district!" : "กรุณากรอกตำบล")+"</label>");
						if ( $(frmName + " input[name=home_no]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your address no!" : "กรุณากรอกบ้านเลขที่")+"</label>");
						if ( $(frmName + " input[name=moo_no]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your moo!" : "กรุณากรอกเลขที่หมู่")+"</label>");
						if ( $(frmName + " input[name=road]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your street name!" : "กรุณากรอกถนน")+"</label>");
						if ( $(frmName + " select[name=delivery_type]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your location type!" : "กรุณาเลือกประเภทที่อยู่")+"</label>");

						$("form#frmAddress input.error").filter(":first").focus();

					} else {
						$("div#dialog-address").dialog("close");
						blockPage();

						$.ajax({
							url: $("form#frmAddress").attr("action"),
							data: $("form#frmAddress").serialize(),
							type: "post",
							cache: false,
							dataType: "text",
							complete: function (result) {
								//unblockPage();
								switch( result.responseText ) {
									case "ok":
										document.location.reload();
										break;

									default:
										unblockPage();
										alert( (get_lang()=="en" ? "Fail to save your address, please try again." : "เกิดความผิดพลาดในการบันทึกข้อมูล กรุณาลองอีกครั้งค่ะ") );
										$("div#dialog-address").dialog("open");
								}
							},
							error: function(result) {
								unblockPage();
								alert( (get_lang()=="en" ? "Fail to save your address, please try again." : "เกิดความผิดพลาดในการบันทึกข้อมูล กรุณาลองอีกครั้งค่ะ") );
								$("div#dialog-address").dialog("open");
							}
						});
					}
					return false;
				});

				if ( $("form#frmAddress input.cb_phone").length > 0 ) {
					$("form#frmAddress input.cb_phone").change(function(e){
						var meta = $.metadata.get(this);
						if ( meta.telephone==undefined || meta.telephone.length>0 ) {
							$("form#frmAddress input[name=telephone]").val( meta.telephone );
							$("form#frmAddress input[name=telephone_ext]").val( meta.ext );
						} else {
							$("form#frmAddress input[name=telephone]").val( $("form#frmAddress input[name=telephone2]").val() );
							$("form#frmAddress input[name=telephone_ext]").val( $("form#frmAddress input[name=telephone2_ext]").val() );
						}
					});
				}

				$("form#frmAddress input.btnSubmit").click(function(e){
					e.preventDefault();
					$("form#frmAddress").submit();
				});
			}


			// Open Dialog
			if ( $("div#dialog-address").length > 0 ) {
				$("div#dialog-address").dialog({
					dialogClass: "dialogAddress addAddress",
					/*height: 500,*/
					width: 500,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function() {
					},
					close: function() {
						//$("div#dialog-address").dialog("destroy").remove();
					}
				});
				$("div#dialog-address").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function editAddress(url) {
	blockPage();
	$.ajax({
		url: url,
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-address").remove();
			//$("div.pageContent div.plAddress").html(data.responseText);
			var responseText = '';
			responseText = data.responseText;
			if ( $(responseText).find("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).find("div#ajaxContent").html() || "");
			}

			if ( $(responseText).length) $("<div id=\"dialog-address\">"+responseText+"</div>").appendTo("body");


			// Form Binding
			if ( $("form#frmAddress").length > 0 ) {
				$("form#frmAddress input.phone").each(function() {
					$(this).keypress(function(e) {
						return key_digit(e);
					});
				});

				// Dropdown
				renderDropDown("form#frmAddress select");
				bindProvince("form#frmAddress select#province_id", "form#frmAddress select#amphur_id");

				$("form#frmAddress").submit(function(e){
					//e.preventDefault();
					var validationError = false;

					$("form#frmAddress input,form#frmAddress select,form#frmAddress textarea").removeClass("error");
					$("form#frmAddress div.errMsg").empty();

					if ( $("form#frmAddress input.cb_phone").length > 0 ) {
						$("form#frmAddress input.cb_phone:checked").each(function(){
							var meta = $.metadata.get(this);
							if ( meta.telephone==undefined || meta.telephone.length>0 ) {
								$("form#frmAddress input[name=telephone]").val( meta.telephone );
								$("form#frmAddress input[name=telephone_ext]").val( meta.ext );
							} else {
								$("form#frmAddress input[name=telephone]").val( $("form#frmAddress input[name=telephone2]").val() );
								$("form#frmAddress input[name=telephone_ext]").val( $("form#frmAddress input[name=telephone2_ext]").val() );
							}
						});
					}


					$("form#frmAddress input[type=text],form#frmAddress select,form#frmAddress textarea").each(function() {
						if ($(this).attr("class")) {
							if (!validateField(this)) validationError = true;
						}
					});

					if ( validationError==true ) {
						var frmName = "form#frmAddress";

						if ( $(frmName + " input[name=firstname]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your first name!" : "กรุณากรอกชื่อ")+"</label>");
						if ( $(frmName + " input[name=lastname]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your last name!" : "กรุณากรอกนามสกุล")+"</label>");
						if ( $(frmName + " input[name=telephone]").hasClass("error") || $(frmName + " input[name=telephone2]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your contact number!" : "กรุณากรอกเบอร์ติดต่อ")+"</label>");
						if ( $(frmName + " input[name=email]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your email address!" : "กรุณากรอกอีเมล")+"</label>");
						if ( $(frmName + " select[name=province_id]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your province!" : "กรุณาเลือกจังหวัด")+"</label>");
						if ( $(frmName + " select[name=amphur_id]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your district!" : "กรุณาเลือกอำเภอ")+"</label>");
						if ( $(frmName + " input[name=zip_code]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your postal code!" : "กรุณากรอกรหัสไปรษณีย์")+"</label>");
						if ( $(frmName + " input[name=tambol]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your sub district!" : "กรุณากรอกตำบล")+"</label>");
						if ( $(frmName + " input[name=home_no]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your address no!" : "กรุณากรอกบ้านเลขที่")+"</label>");
						if ( $(frmName + " input[name=moo_no]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your moo!" : "กรุณากรอกเลขที่หมู่")+"</label>");
						if ( $(frmName + " input[name=road]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please enter your street name!" : "กรุณากรอกถนน")+"</label>");
						if ( $(frmName + " select[name=delivery_type]").hasClass("error") ) $(frmName + " div.errMsg").append("<label>- "+( get_lang()=="en" ? "Please select your location type!" : "กรุณาเลือกประเภทที่อยู่")+"</label>");

						$("form#frmAddress input.error").filter(":first").focus();

					} else {
						$("div#dialog-address").dialog("close");
						blockPage();
						$.ajax({
							url: $("form#frmAddress").attr("action"),
							data: $("form#frmAddress").serialize(),
							type: "post",
							cache: false,
							dataType: "text",
							complete: function (result) {
								//unblockPage();
								switch( result.responseText ) {
									case "ok":
										document.location.reload();
										break;

									default:
										unblockPage();
										alert( (get_lang()=="en" ? "Fail to save your address, please try again." : "เกิดความผิดพลาดในการบันทึกข้อมูล กรุณาลองอีกครั้งค่ะ") );
										$("div#dialog-address").dialog("open");
								}
							},
							error: function(result) {
								unblockPage();
								alert( (get_lang()=="en" ? "Fail to save your address, please try again." : "เกิดความผิดพลาดในการบันทึกข้อมูล กรุณาลองอีกครั้งค่ะ") );
								$("div#dialog-address").dialog("open");
							}
						});
					}
					return false;
				});


				if ( $("form#frmAddress input.cb_phone").length > 0 ) {
					$("form#frmAddress input.cb_phone").change(function(e){
						var meta = $.metadata.get(this);
						if ( meta.telephone==undefined || meta.telephone.length>0 ) {
							$("form#frmAddress input[name=telephone]").val( meta.telephone );
							$("form#frmAddress input[name=telephone_ext]").val( meta.ext );
						} else {
							$("form#frmAddress input[name=telephone]").val( $("form#frmAddress input[name=telephone2]").val() );
							$("form#frmAddress input[name=telephone_ext]").val( $("form#frmAddress input[name=telephone2_ext]").val() );
						}
					});
				}

				$("form#frmAddress input.btnSubmit").click(function(e){
					e.preventDefault();
					$("form#frmAddress").submit();
				});
			}

			// Open Dialog
			if ( $("div#dialog-address").length > 0 ) {
				$("div#dialog-address").dialog({
					dialogClass: "dialogAddress editAddress",
					/*height: 500,*/
					width: 500,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function() {
					},
					close: function() {
						//$("div#dialog-address").dialog("destroy").remove();
					}
				});
				$("div#dialog-address").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogLogin(url, callback) {
	blockPage();

	$.ajax({
		url: url,
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();

			$("div#dialog-login").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-login\">"+responseText+"</div>").appendTo("body").hide();
			}

			// Form Binding
			if ( $("form#frmLogin").length > 0 ) {
				$("form#frmLogin").submit(function(e){
					e.preventDefault();
					var validationError = false;
					$("form#frmLogin input").removeClass("error");

					$("form#frmLogin input[type=text],form#frmLogin input[type=password]").each(function() {
						if ($(this).attr("class")) {
							if (!validateField(this)) validationError = true;
						}
					});

					if ( validationError==true && $("form#frmLogin input#w_username").hasClass("error") ) {
						alert( (get_lang()=="en" ? "Please enter your username." : "กรุณากรอกชื่อบัญชีค่ะ") );
						$("form#frmLogin input#w_username").focus();
					} else if ( validationError==true && $("form#frmLogin input#w_password").hasClass("error") ) {
						alert( (get_lang()=="en" ? "Please enter your password." : "กรุณากรอกรหัสผ่านค่ะ") );
						$("form#frmLogin input#w_password").focus();
					}

					if ( !validationError ) {
						$.ajax({
							url: "api/"+$("form#frmLogin").attr("action"),
							data: $("form#frmLogin").serialize(),
							type: "post",
							cache: false,
							dataType: "text",
							complete: function (result) {
								switch( result.responseText ) {
									case "1":
										$("div#dialog-login").dialog("close");
										if ($.isFunction(callback)) {
											callback.apply();
										} else {
											blockPage();
											document.location.reload();
										}
										//$("div#cTopLogin").animate( { top: -350 }, { queue: false, duration: 300, complete: function() { destroyOverlay(); $(document).unbind("mousemove"); bindLocation(); } } );

										break;
									case "100": alert( (get_lang()=="en" ? "Please try again." : "กรุณาลองอีกครั้งค่ะ") ); break;
									case "101":
									case "102": alert( (get_lang()=="en" ? "Invalid username or password. Please try again." : "ชื่อบัญชีหรือรหัสผ่านไม่ถูกต้อง กรุณาลองอีกครั้งค่ะ") ); break;
									//case "103": alert("Your registration not complete. Please activate your account."); break;
								}
								$("form#frmLogin input#username").focus();

							},
							error: function(result) {
								//alert(result.statusText);
							}
						});

					}
				});

				$("form#frmLogin input.btnLogin").click(function(e){
					e.preventDefault();
					$("form#frmLogin").submit();
				})
			}

			// Open Dialog
			if ( $("div#dialog-login").length > 0 ) {

				$("div#dialog-login a.btForgetPassword").click(function(e){
					//e.preventDefault();
					$("div#dialog-login").dialog("close");
					blockPage();
					//dialogForgetPassword();
				});


				$("div#dialog-login").dialog({
					dialogClass: "dialogLogin",
					width: 400,
					height: 280,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
						$("form#frmLogin input#w_username").focus();
					},
					close: function() {
						$("div#dialog-login").dialog("destroy").remove();
					}
				});
				$("div#dialog-login").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogForgetPassword(callback) {
	blockPage();

	$.ajax({
		url: "api/dialog_forget_password.php",
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-forget_password").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-forget_password\">"+responseText+"</div>").appendTo("body").hide();
			}

			// Form Binding
			if ( $("form#frmForgetPassword").length > 0 ) {
				$("form#frmForgetPassword").each( function(){
					$(this).submit(function(e){
						e.preventDefault();
						var validationError = false;
						$("form#frmForgetPassword input").removeClass("error");

						$("form#frmForgetPassword input[type=text]").each(function() {
							if ($(this).attr("class")) {
								if (!validateField(this)) validationError = true;
							}
						});

						if ( validationError==true ) {
							if ( $("form#frmForgetPassword input[name=email]").hasClass("error") ) $("form#frmForgetPassword input[name=email]").focus();

						} else {
							$("div#dialog-forget_password div.content").fadeOut("fast");
							$.ajax({
								url: "api/"+$("form#frmForgetPassword").attr("action"),
								data: $("form#frmForgetPassword").serialize(),
								type: "post",
								cache: false,
								dataType: "text",
								complete: function (result) {
									switch( result.responseText ) {
										case "1":
											//$("div#dialog-forget_password div.content").fadeOut("fast", function() {
												$("div#dialog-forget_password div.message").html( ( get_lang()=="en" ? "The username and password is sent to you e-mail." : "ระบบได้ทำการส่ง ชื่อผู้ใช้ และรหัสผ่าน ไปยังอีเมล์ของท่านเรียบร้อยแล้วค่ะ")+"<div class=\"button\"><input type=\"button\" value=\"\" class=\"btnClose\" /></div>").fadeIn();

												$("div#dialog-forget_password div.message input.btnClose").click(function(e){
													e.preventDefault();
													$("div#dialog-forget_password").dialog("close");
												});
											//});
											break;

										default:
											//$("div#dialog-forget_password div.content").fadeOut("fast", function() {
												$("div#dialog-forget_password div.message").html( ( get_lang()=="en" ? "Please use the registered e-mail." : "กรุณากรอกอีเมล์ที่ท่านใช้ในการสมัครสมาชิก")+"<div class=\"button\"><input type=\"button\" value=\"\" class=\"btnOk\" /></div>").fadeIn();

												$("div#dialog-forget_password div.message input.btnOk").click(function(e){
													e.preventDefault();
													$("div#dialog-forget_password div.message").fadeOut("fast", function() {
														$("div#dialog-forget_password div.message").empty();
														$("div#dialog-forget_password div.content").fadeIn("fast");
														$("form#frmForgetPassword input[name=email]").focus();
													});
												});
											//});
											break;

									}

								},
								error: function(result) {
									//alert(result.statusText);
								}
							});

						}
						return false;
					});

				});
			}

			// Open Dialog
			if ( $("div#dialog-forget_password").length > 0 ) {

				$("div#dialog-forget_password").dialog({
					dialogClass: "dialogForgetPassword",
					width: 400,
					height: 250,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
						$("form#frmForgetPassword input[name=email]").focus();
					},
					close: function() {
						$("div#dialog-forget_password").dialog("destroy").remove();
					}
				});
				$("div#dialog-forget_password").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogCoupon(code) {
	blockPage();

	$.ajax({
		url: "api/dialog_coupon.php",
		data: "coupon="+code,
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-coupon").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-coupon\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-coupon").length > 0 ) {
				$("div#dialog-coupon").dialog({
					dialogClass: "dialogCoupon",
					width: 400,
					height: 255,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						//allFields.val('').removeClass('ui-state-error');

						$("div#dialog-coupon").dialog("destroy").remove();
					}
				});

				$("div#dialog-coupon").dialog("open");
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogOnlineDeal() {
	blockPage();

	$.ajax({
		url: "api/home.php",
		data: "action=online_deal",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-online_deal").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-online_deal\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-online_deal").length > 0 ) {
				$("div#dialog-online_deal a.btLink").click(function(e){
					//e.preventDefault();
					//location.href = $(this).attr("href");
					$("div#dialog-online_deal").dialog("close");
				});
				$("div#dialog-online_deal a.btClose").click(function(e){
					e.preventDefault();
					$("div#dialog-online_deal").dialog("close");
				});

				$("div#dialog-online_deal").dialog({
					dialogClass: "dialogOnlineDeal",
					width: 450,
					height: 370,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-online_deal").dialog("destroy").remove();
					}
				});
				$("div#dialog-online_deal").dialog("open");
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogHotPromotion() {
	blockPage();

	$.ajax({
		url: "api/home.php",
		data: "action=hot_promotion",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-hot_promotion").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-hot_promotion\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-hot_promotion").length > 0 ) {
				$("div#dialog-hot_promotion a.btLink").click(function(e){
					e.preventDefault();
					$("div#dialog-hot_promotion").dialog("close");
				});
				$("div#dialog-hot_promotion a.btClose").click(function(e){
					e.preventDefault();
					$("div#dialog-online_deal").dialog("close");
				});

				$("div#dialog-hot_promotion").dialog({
					dialogClass: "dialogHotPromotion",
					width: 450,
					height: 370,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-hot_promotion").dialog("destroy").remove();
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFavoriteMenu(code) {
	blockPage();

	$.ajax({
		url: "api/dialog_favorite_menu.php",
		data: "code="+code,
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-favorite-menu").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-favorite-menu\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-favorite-menu").length > 0 ) {

				$("div#dialog-favorite-menu a.btnOk").click(function(e){
					e.preventDefault();

					var meta = $.metadata.get(this);

					$("div#dialog-favorite-menu").dialog("close");
					if ( meta.code != undefined && meta.code.length > 0 ) {
						blockPage();
						$.ajax({
							url: "api/favorite_menu.php",
							data: "action=add&code="+meta.code,
							type: "post",
							cache: false,
							dataType: "text",
							complete: function (result) {
								dialogFavoriteMenuComplete();
							},
							error: function(result) {
								unblockPage();
							}
						});
					}
				});


				$("div#dialog-favorite-menu").dialog({
					dialogClass: "dialogFavoriteMenu",
					width: 600,
					height: 450,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						//allFields.val('').removeClass('ui-state-error');
						$("div#dialog-favorite-menu").dialog("destroy").remove();
					}
				});

				$("div#dialog-favorite-menu").dialog("open");
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFavoriteMenuComplete() {
	// Get Complete Message
	$.ajax({
		url: "api/dialog_favorite_menu.php",
		data: "action=complete",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-favorite-menu").remove();

			var responseText = '';
			responseText = data.responseText;
			//alert(responseText)
			//alert($(responseText).filter("div#ajaxContent").length)
			if ( $(responseText).filter("div#ajaxContent").length > 0 ) {
				responseText = ($(responseText).filter("div#ajaxContent").html() || "");
			}
			//alert(responseText.length)
			if ( responseText.length > 0 ) {
				$("<div id=\"dialog-favorite-menu\">"+responseText+"</div>").appendTo("body").hide();
			}

			// Open Dialog
			if ( $("div#dialog-favorite-menu").length > 0 ) {

				$("div#dialog-favorite-menu a.btnClose").click(function(e){
					e.preventDefault();
					$("div#dialog-favorite-menu").dialog("close");
				})

				$("div#dialog-favorite-menu").dialog({
					dialogClass: "dialogFavoriteMenu",
					width: 600,
					height: 450,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						//allFields.val('').removeClass('ui-state-error');
						$("div#dialog-favorite-menu").dialog("destroy").remove();
						refreshFavoriteMenu();
					}
				});
				$("div#dialog-favorite-menu").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function Logout( url ) {
	blockPage();
	$.ajax({
		url: url,
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			if ( $.url.attr("file") == "payment.php" ) {
				location.href = "promotion.php";
			} else if ( $.url.attr("file") == "payment_complete.php" ) {
				location.href = "home.php";
			} else {
				document.location.reload();
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function focusPageContent() {
	if ( typeof $.scrollTo == "function" ) {
		$.scrollTo("div.pageContent", 500 );
	} else {
		$("html, body").animate({scrollTop: $("div.pageContent").offset().top},"normal");
	}
}

/* Button Handel Event */
function handle_Init() {
	$("a").each(function() {
		if ($(this).attr("href") == undefined || $(this).attr("href") == "" || $(this).attr("href") == "#") {
			$(this).attr({href:"#"});
			$(this).click( function(e) { e.preventDefault(); });
		}
		$(this).focus(function(){ $(this).blur(); });
	});
}

function handle_DragDrop() {
	handle_Init();

	$("div.pageMenu table.tbList div.image, div.pageMenu table.tbList div.image_drag_disable").draggable({
		revert: "invalid",
		revertDuration: 300,
		helper: "clone",
		cursor: "move",
		zIndex: 100
	});
	//$("div#pagePizza table.tbList div.image").draggable({ disabled: true }); // Disable in Drag & Drop Pizza
	//$("div#pagePizza table.tbList div.image").draggable({ disabled: true }); // Disable in Drag & Drop Pizza
	//$("div#pagePizza table.tbList div.image").draggable("option", "disabled", true); // Disable in Drag & Drop Pizza
	//$("div#pagePizza.pizza2ForAll table.tbList div.image").draggable("option", "disabled", false); // Enable in Drag & Drop Pizza
	//$("div#pageQuickOrder table.tbList div.disable_drag").draggable({ revert: 'valid' });


	//$("div#plFoodTray").draggable();
	$("div#plFoodTray").droppable({
		accept: 'div.pageContent table.tbList div.image',
		activeClass: 'ui-state-highlight',
		hoverClass: 'ui-state-hover',
		drop: function(event, ui) {
			var meta = $(ui.draggable).metadata();
			//alert(meta.code);
			//$("div#plFoodTray").block({ message: '<img src="images/loading-foodtray.gif" border="0" alt="Loading..." />'});
			//$("div#plFoodTray div.body").droppable({ disabled: true });
			//$("div#plFoodTray").droppable( "option", "disabled", true );
			if ( meta.code != undefined && meta.code.length > 0) {
				blockFoodTray();
				addCartMenu( meta.code, meta.option, function(){ /*unblockFoodTray();*/ } );
			}
			return false;
		}
	});
}

function handle_Foodtray() {
	if ( $("div#plFoodTray").length > 0 ) {
		handle_Init();
		// Remove
		$("div#plFoodTray a.btRemove").click(function(e) {
			e.preventDefault();
			blockFoodTray();

			var meta = $.metadata.get(this);
			$.ajax({
				url: "api/cart.php",
				data: "action=remove&code="+$.URLEncode(meta.code)+(meta.option!=undefined && meta.option.length>0 ? "&option="+$.URLEncode(meta.option):""),
				type: "post",
				cache: false,
				dataType: "text",
				complete: function (result) {
					refreshFoodTray();
					//document.location.reload();
				},
				error: function(result) {
					refreshFoodTray();
					//document.location.reload();
					//alert(result.statusText);
				}
			});
		});

		// btIncrease
		$("div#plFoodTray a.btIncrease").click(function(e) {
			e.preventDefault();

			var meta = $.metadata.get(this);
			if ( meta.code != undefined ) {
				blockFoodTray();
				$.ajax({
					url: "api/cart.php",
					data: "action=increase&code="+$.URLEncode(meta.code)+(meta.option!=undefined && meta.option.length>0 ? "&option="+$.URLEncode(meta.option):""),
					type: "post",
					cache: false,
					dataType: "text",
					complete: function (result) {
						switch(result.responseText) {
							case "0":
								unblockPage();
								unblockFoodTray();
								bindDisplayMessage( "", ( get_lang()=="en" ? "Sorry! Maximum of same meat part selection in 1 order is 4 pieces. Please select other meat parts and click on &quot;Order Now&quot;." : "ขออภัยค่ะ ใน 1 ออเดอร์สามารถเลือกชิ้นไก่ส่วนเดียวกันได้ไม่เกิน 4 ชิ้น กรุณาเปลี่ยนประเภทของชิ้นไก่แล้วคลิก &quot;สั่งซื้อ&quot; ค่ะ" ) );
								break;

							default:
								refreshFoodTray();
						}
					},
					error: function(result) {
						refreshFoodTray();
					}
				});
			}
		});

		// Decrease
		$("div#plFoodTray a.btDecrease").click(function(e) {
			e.preventDefault();

			var meta = $.metadata.get(this);
			if (meta.seq_no==undefined) meta.seq_no = '';
			if ( meta.code != undefined && $("div#plFoodTray div.amount_"+meta.seq_no).length > 0 ) {
				var amt = parseInt($("div#plFoodTray div.amount_"+meta.seq_no+" label:first").html() || 1 );
				if ( amt > 1 ) {
					blockFoodTray();
					$.ajax({
						url: "api/cart.php",
						data: "action=decrease&code="+$.URLEncode(meta.code)+(meta.option!=undefined && meta.option.length>0 ? "&option="+$.URLEncode(meta.option):""),
						type: "post",
						cache: false,
						dataType: "text",
						complete: function (result) {
							switch(result.responseText) {
								case "0":
									unblockPage();
									unblockFoodTray();
									bindDisplayMessage( "", ( get_lang()=="en" ? "Sorry! Maximum of same meat part selection in 1 order is 4 pieces. Please select other meat parts and click on &quot;Order Now&quot;." : "ขออภัยค่ะ ใน 1 ออเดอร์สามารถเลือกชิ้นไก่ส่วนเดียวกันได้ไม่เกิน 4 ชิ้น กรุณาเปลี่ยนประเภทของชิ้นไก่แล้วคลิก &quot;สั่งซื้อ&quot; ค่ะ" ) );
									break;

								default:
									refreshFoodTray();
							}
						},
						error: function(result) {
							refreshFoodTray();
						}
					});
				}
			}
		});

		// Checkout
		$("div#plFoodTray input.btProceed").click(function(e) {
			e.preventDefault();

			blockPage();
			$.ajax({
				url: "api/cart.php",
				data: "action=chk_min_price",
				type: "get",
				cache: false,
				dataType: "text",
				complete: function (result) {
					if ( result.responseText == "-1" ) {
						location.href = 'payment.php';
					} else {
						unblockPage( function() {bindDisplayMessage("", ( get_lang()=="en" ? "Your orders price less than "+result.responseText+" baht.<br />(Don't include delivery charge)" : "คุณสั่งอาหารจากร้าน Pizzahut ไม่ครบ "+result.responseText+" บาท<br />(ไม่รวมค่าจัดส่ง)") );} );
					}

				},
				error: function(result) {
					//alert(result.statusText);
				}
			});

		});

		// Favorite Menu
		$("div#plFoodTray a.btFavorite").click(function(e) {
			e.preventDefault();

			if ( $("div.Header div.plMember a.btLogin").length > 0 ) {
				var meta = $.metadata.get(this);

				if ( meta.code != undefined && meta.code.length > 0 ) {
					dialogLogin( "api/dialog_"+$("div.Header div.plMember a.btLogin").attr("href"), function(){
						dialogFavoriteMenu(meta.code);
					});
				}

			} else {
				var meta = $.metadata.get(this);
				if ( meta.code != undefined && meta.code.length > 0 ) {
					dialogFavoriteMenu(meta.code);
				}
			}
		});
	}
}

function handle_LastOrder() {

	if ( $("div#plLastOrder").length > 0 ) {
		//handle_Init();

		// Checkbox
		$("div#plLastOrder input.cb_last_order").click(function(e) {
		});

		// btIncrease
		$("div#plLastOrder a.btIncrease").click(function(e) {
			e.preventDefault();
			var meta = $.metadata.get(this);
			if ( meta.seq_no != undefined && $("div#plLastOrder div.amount_"+meta.seq_no).length > 0 ) {
				var amt = parseInt($("div#plLastOrder div.amount_"+meta.seq_no+" label:first").html() || 1 );
				amt += 1;
				if (!$("form#frmLastOrder input#last_order_"+meta.seq_no).is(":checked")) $("form#frmLastOrder input#last_order_"+meta.seq_no).attr("checked", "checked");
				$("form#frmLastOrder input#last_order_"+meta.seq_no).val(amt);
				$("div#plLastOrder div.amount_"+meta.seq_no+" label:first").html(amt);
			}
		});

		// Decrease
		$("div#plLastOrder a.btDecrease").click(function(e) {
			e.preventDefault();
			var meta = $.metadata.get(this);
			if ( meta.seq_no != undefined && $("div#plLastOrder div.amount_"+meta.seq_no).length > 0 ) {
				var amt = parseInt($("div#plLastOrder div.amount_"+meta.seq_no+" label:first").html() || 1 );
				amt -= 1;
				if ( amt > 0 ) {
					$("form#frmLastOrder input#last_order_"+meta.seq_no).val(amt);
					$("div#plLastOrder div.amount_"+meta.seq_no+" label:first").html(amt);
				} else {
					if ($("form#frmLastOrder input#last_order_"+meta.seq_no).is(":checked")) $("form#frmLastOrder input#last_order_"+meta.seq_no).removeAttr("checked");
				}
			}
		});

		// Add to Foodtray
		$("form#frmLastOrder input.btAddTray").click(function(e) {
			e.preventDefault();
			if ( $("form#frmLastOrder input.cb_last_order:checked").length > 0 ){
				blockFoodTray();
				blockLastOrder();
				var $last_order = $("div#plLastOrder");

				$("div#plLastOrder input.cb_last_order:checked").each(function(){
					var meta = $.metadata.get(this);
					addCartMenu( meta.code, meta.option, '', $(this).val());
					$(this).removeAttr("checked");
				});

				unblockLastOrder();
			} else {
				bindDisplayMessage("notice", ( get_lang()=="en" ? "Please select menu first." : "กรุณาเลือกรายการอาหารก่อนค่ะ") );
			}

		});
	}
}

function handle_FavoriteMenu() {

	if ( $("div#plFavorite").length > 0 ) {
		//handle_Init();

		// Checkbox
		$("div#plFavorite input.cb_menu").click(function(e) {
		});

		// btIncrease
		$("div#plFavorite a.btIncrease").click(function(e) {
			e.preventDefault();
			var meta = $.metadata.get(this);
			if ( meta.seq_no != undefined && $("div#plFavorite div.amount_"+meta.seq_no).length > 0 ) {
				var amt = parseInt($("div#plFavorite div.amount_"+meta.seq_no+" label:first").html() || 1 );
				amt += 1;
				if (!$("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).is(":checked")) $("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).attr("checked", "checked");
				$("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).val(amt);
				$("div#plFavorite div.amount_"+meta.seq_no+" label:first").html(amt);
			}
		});

		// Decrease
		$("div#plFavorite a.btDecrease").click(function(e) {
			e.preventDefault();
			var meta = $.metadata.get(this);
			if ( meta.seq_no != undefined && $("div#plFavorite div.amount_"+meta.seq_no).length > 0 ) {
				var amt = parseInt($("div#plFavorite div.amount_"+meta.seq_no+" label:first").html() || 1 );
				amt -= 1;
				if ( amt > 0 ) {
					$("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).val(amt);
					$("div#plFavorite div.amount_"+meta.seq_no+" label:first").html(amt);
				} else {
					if ($("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).is(":checked")) $("form#frmFavoriteMenu input#favorite_menu_"+meta.seq_no).removeAttr("checked");
				}
			}
		});

		// Add to Foodtray
		$("form#frmFavoriteMenu input.btAddTray").click(function(e) {
			e.preventDefault();
			if ( $("form#frmFavoriteMenu input.cb_favorite:checked").length > 0 ){
				blockFoodTray();
				blockFavoriteMenu();

				$("form#frmFavoriteMenu input.cb_favorite:checked").each(function(){
					var meta = $.metadata.get(this);
					addCartMenu( meta.code, meta.option, '', $(this).val());
					$(this).removeAttr("checked");
				});

				unblockFavoriteMenu();
			} else {
				bindDisplayMessage("notice", ( get_lang()=="en" ? "Please select favorite menu first." : "กรุณาเลือกรายการอาหารก่อนค่ะ") );
			}

		});
	}
}

function handle_btOrderNow() {
	if ( $("div.pageContent a.btnOrderNow").length > 0 ) {
		handle_Init();

		if ( $("div.pageContent table.tbIMeal").length > 0 ) { // i-Meal
			$("div.pageContent table.tbIMeal a.btnOrderNow").click(function(e){
				e.preventDefault();

				if ( $("div.pageContent table.tbIMeal input[type=checkbox]:checked").length > 0 ) {
					blockPage();

					var arr_code = new Array();
					var arr_option = new Array();
					$("div.pageContent table.tbIMeal input[type=checkbox]:checked").each(function(){
						var seq = arr_code.length;
						arr_code[seq] = $(this).metadata().code;
						arr_option[seq] = $(this).metadata().option;
						$(this).removeAttr("checked");
					});
					addCartMenu( arr_code, arr_option );
				}
			});

		} else {
			$("div.pageContent a.btnOrderNow").click(function(e){
				e.preventDefault();
				blockPage();
				var elm = this;
				var meta = $.metadata.get(this);
				if (meta.id == undefined) meta.id = 0;
				if (meta.code == undefined) meta.code = '';
				if (meta.type == undefined) meta.type = '';
				meta.url = '';
				if ( $(this).attr("href") != "#" && $(this).attr("href").length > 4 ) {
					meta.url = $(this).attr("href");
				}

				var chk_choice = false;
				var arr_code = new Array();
				var arr_option = new Array();
				if ( $("div.pageContent div#choice_"+meta.id+" input[type=checkbox]").length > 0 ) {
					if ( $("div.pageContent div#choice_"+meta.id+" input[type=checkbox]:checked").length > 0 ) {
						$("div.pageContent div#choice_"+meta.id+" input[type=checkbox]:checked").each(function(){
							var seq = arr_code.length;
							arr_code[seq] = $(this).metadata().code;
							arr_option[seq] = $(this).metadata().option;
						});
						//addCartMen(u arr_code );
						chk_choice = true;
					} else {
						unblockPage();
						bindDisplayMessage("notice", ( get_lang()=="en" ? "Please select menu first." : "กรุณาเลือกรายการอาหารก่อนค่ะ") );
					}
				} else {
					//addCartMenu( meta.code );
					chk_choice = true;
				}

				if ( chk_choice == true ) {
					if ( $("div.pageContent div#choice_"+meta.id+" input[type=checkbox]:checked").length > 0 ) {
						addCartMenu( arr_code, arr_option );
					} else {
						if ( meta.url.length > 4 ) {
							addCartMenu( meta.code, meta.option, function(){ location.href = meta.url; } );
						} else {
							addCartMenu( meta.code, meta.option );
						}
					}
				}
			});
		}
	}
}

function handle_btBack() {
	// btBack
	$("div.pageContent a.btBack").unbind();
	$("div.pageContent a.btBack").click(function(e){
		e.preventDefault();
		//loadContent( $(this).attr("href") );

		// Push this URL "state" onto the history hash.
		$.bbq.pushState({ url: $(this).attr("href") });
	});
}

function handle_btCustomize() {
	// btBack
	$("div.pageContent a.btnCustomize").unbind();
	$("div.pageContent a.btnCustomize").click(function(e){
		e.preventDefault();
		//loadContent( $(this).attr("href") );

		// Push this URL "state" onto the history hash.
		$.bbq.pushState({ url: $(this).attr("href") });
	});
}

function handle_btInfo() {
	// btBack
	$("div.pageContent a.btnInfo").unbind();
	$("div.pageContent a.btnInfo").click(function(e){
		e.preventDefault();
		//loadContent( $(this).attr("href") );
	});
}

function handle_ChickenPart() {

	if ( $("div.pageContent div.plChicken").length > 0 ) {

		$("div.pageContent div.plChicken input[type=checkbox].cb").click(function(){
			var meta = $(this).metadata();

			if ( $(this).is(':checked') ) {
				$("div.pageContent div#plChicken_"+meta.seq_no).addClass("plChickenActive");
				$("div.pageContent div.plChicken div.plChickenPart_"+meta.seq_no).fadeIn();
			} else {
				$("div.pageContent div#plChicken_"+meta.seq_no).removeClass("plChickenActive");
				$("div.pageContent div.plChicken div.plChickenPart_"+meta.seq_no).fadeOut();
			}
		});

		if ( $("div.pageContent div.plChicken input[type=checkbox].cb").length==1) {
			$("div.pageContent div.plChicken input[type=checkbox].cb:first").click();
			var meta = $("div.pageContent div.plChicken input[type=checkbox].cb:first").metadata();
			$("div.pageContent div#plChicken_"+meta.seq_no).addClass("plChickenActive");
			$("div.pageContent div.plChicken div.plChickenPart_"+meta.seq_no).fadeIn();
		} else {
			$("div.pageContent div.plChicken input[type=checkbox].cb").each(function(){
				var meta = $(this).metadata();

				if ( $(this).is(':checked') ) {
					$("div.pageContent div#plChicken_"+meta.seq_no).addClass("plChickenActive");
					$("div.pageContent div.plChicken div.plChickenPart_"+meta.seq_no).fadeIn();
				} else {
					$("div.pageContent div#plChicken_"+meta.seq_no).removeClass("plChickenActive");
					$("div.pageContent div.plChicken div.plChickenPart_"+meta.seq_no).fadeOut();
				}
			});
		}

		//btIncrease
		$("div.pageContent table.tbChickenPart a.btIncrease").click(function(e){
			e.preventDefault();
			var meta = $(this).metadata();

			var chicken_amt = (parseInt($("div.pageContent input#seq_no_"+meta.seq_no+"").val()) || 0);

			var meta_amt = $("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+":first").metadata();
			var chicken_part_maximum = (parseInt(meta_amt.maximum) || 0);

			var chicken_curr = (parseInt($("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+" label:first").text()) || 0);

			if ( chicken_curr < chicken_part_maximum && chicken_curr < chicken_amt ) {
				var chicken_new = chicken_curr+1;
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+" label:first").text(chicken_new);

				var class_curr = "amount_"+meta.seq_no+"_"+meta.no;
				var i=0; var flag = flag_curr = true;
				//First Loop
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
					if ( $(this).hasClass(class_curr) ) flag_curr = false;
					if ( flag && !flag_curr && !$(this).hasClass(class_curr) ) {
						var chicken = ( parseInt($(this).children("label:first").text()) || 0);
						if ( chicken > 0 ) {
							$(this).children("label:first").text(chicken-1);
							flag = false;
						}
					}
				});

				//Second Loop
				if ( flag ) {
					$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
						if ( flag ) {
							var chicken = ( parseInt($(this).children("label:first").text()) || 0);
							if ( chicken > 0 ) {
								$(this).children("label:first").text(chicken-1);
								flag = false;
							}
						}
					});
				}

				// Set metadata
				var meta_bt = $("div.pageContent a.btnOrderNow_"+meta.seq_no).metadata();
				meta_bt.option = '';
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
					var chicken = ( parseInt($(this).children("label:first").text()) || 0);
					if ( chicken > 0 ) {
						meta_bt.option += (meta_bt.option.length==0?'':'@')+$(this).metadata().code+"#"+chicken;
					}
				});
				meta_bt.option = $.URLEncode(meta_bt.option);
				if ( meta_bt.option_orginal != undefined ) meta_bt.option = meta_bt.option_orginal+'@'+meta_bt.option;
			}
			//var chicken_amt = (parseInt($("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+" label:first").text()) || 1);
		});

		//btDecrease
		$("div.pageContent table.tbChickenPart a.btDecrease").click(function(e){
			e.preventDefault();
			var meta = $(this).metadata();

			var chicken_amt = (parseInt($("div.pageContent input#seq_no_"+meta.seq_no+"").val()) || 0);

			var meta_amt = $("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+":first").metadata();
			var chicken_part_maximum = (parseInt(meta_amt.maximum) || 0);

			var chicken_curr = (parseInt($("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+" label:first").text()) || 0);

			if ( chicken_curr > 0 ) {
				var chicken_new = chicken_curr-1;
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount_"+meta.seq_no+"_"+meta.no+" label:first").text(chicken_new);

				var class_curr = "amount_"+meta.seq_no+"_"+meta.no;
				var i=0; var flag = flag_curr = true;

				//First Loop
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
					if ( $(this).hasClass(class_curr) ) flag_curr = false;
					if ( flag && !flag_curr && !$(this).hasClass(class_curr) ) {
						var chicken = ( parseInt($(this).children("label:first").text()) || 0);
						if ( chicken < chicken_part_maximum ) {
							$(this).children("label:first").text(chicken+1);
							flag = false;
						}
					}
				});

				//Second Loop
				if ( flag ) {
					$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
						if ( flag ) {
							var chicken = ( parseInt($(this).children("label:first").text()) || 0);
							if ( chicken < chicken_part_maximum ) {
								$(this).children("label:first").text(chicken+1);
								flag = false;
							}
						}
					});
				}

				// Set metadata
				var meta_bt = $("div.pageContent a.btnOrderNow_"+meta.seq_no).metadata();
				meta_bt.option = '';
				$("div.pageContent table.tbChickenPart_"+meta.seq_no+" div.amount").each(function(){
					var chicken = ( parseInt($(this).children("label:first").text()) || 0);
					if ( chicken > 0 ) {
						meta_bt.option += (meta_bt.option.length==0?'':'@')+$(this).metadata().code+"#"+chicken;
					}
				});
				meta_bt.option = $.URLEncode(meta_bt.option);
				if ( meta_bt.option_orginal != undefined ) meta_bt.option = meta_bt.option_orginal+'@'+meta_bt.option;

			}
		});

	}
}

function handle_btnRedeem() {
	if ( $("div.pageContent a.btnRedeem").length > 0 ) {
		handle_Init();

		$("div.pageContent a.btnRedeem").click(function(e){
			e.preventDefault();
			blockPage();
			var elm = this;
			var meta = $.metadata.get(this);
			if (meta.id == undefined) meta.id = 0;
			if (meta.code == undefined) meta.code = '';
			if (meta.type == undefined) meta.type = '';
			meta.url = '';
			if ( $(this).attr("href") != "#" && $(this).attr("href").length > 4 ) {
				meta.url = $(this).attr("href");
			}

			if ( meta.url.length > 4 ) {
				addCartMenu( meta.code, meta.option, function(){ location.href = meta.url; } );
			} else {
				addCartMenu( meta.code, meta.option );
			}
		});
	}
}

function loadContent(get_url) {
	//console.log('loadContent : ' + get_url)
	//location.href = get_url;
	if ( $("div.pageContent div.content_loading").length == 0 ) {
		$("div.pageContent div.pageMenu:first").fadeOut(function(){
			$("div.pageContent div.pageMenu:first").html("<div class=\"content_loading\"></div>").fadeIn();

			focusPageContent();

			$.ajax({
				url: get_url,
				data: "ajax=1",
				type: "get",
				cache: false,
				dataType: "text",
				complete: function (result) {
					$("div.pageContent div.pageMenu:first").fadeOut(function(){
						$("div.pageContent div.pageMenu:first").html(result.responseText).fadeIn( function() { focusPageContent(); } );

						// Drag & Drop
						handle_DragDrop();

						// Add to cart
						handle_btOrderNow();

						// Customize Chicken
						handle_ChickenPart();

						// Customize Menu
						handle_Customize();

						// btCustomize
						handle_btCustomize();

						// btBack
						handle_btBack();

					});
				},
				error: function(){
				}
			});
		});
	}
}

function handle_Customize() {

	if ($("form#frmInfo").length>0 ) {

		//btIncrease
		$("div.pageContent table.tbChickenType a.btIncrease").click(function(e){
			e.preventDefault();
			var meta = $(this).metadata();

			var chicken_amt = (parseInt($("div.pageContent table.tbChickenAmt label.input span:first").text()) || 0);

			var meta_amt = $("div.pageContent table.tbChickenType div.amount:first").metadata();
			var chicken_type_maximum = (parseInt(meta_amt.maximum) || 0);
			var chicken_curr = (parseInt($("div.pageContent table.tbChickenType div.amount_"+meta.seq_no+" label:first").text()) || 0);

			if ( chicken_curr < chicken_type_maximum && chicken_curr < chicken_amt ) {
				var chicken_new = chicken_curr+1;
				$("div.pageContent table.tbChickenType div.amount_"+meta.seq_no+" label:first").text(chicken_new);

				var class_curr = "amount_"+meta.seq_no;
				var i=0; var flag = flag_curr = true;
				//First Loop
				$("div.pageContent table.tbChickenType div.amount").each(function(){
					if ( $(this).hasClass(class_curr) ) flag_curr = false;
					if ( flag && !flag_curr && !$(this).hasClass(class_curr) ) {
						var chicken = ( parseInt($(this).children("label:first").text()) || 0);
						if ( chicken > 0 ) {
							$(this).children("label:first").text(chicken-1);
							flag = false;
						}
					}
				});

				//Second Loop
				if ( flag ) {
					$("div.pageContent table.tbChickenType div.amount").each(function(){
						if ( flag ) {
							var chicken = ( parseInt($(this).children("label:first").text()) || 0);
							if ( chicken > 0 ) {
								$(this).children("label:first").text(chicken-1);
								flag = false;
							}
						}
					});
				}

				// Set metadata
				updateCustomize_Price();
			}
		});

		//btDecrease
		$("div.pageContent table.tbChickenType a.btDecrease").click(function(e){
			e.preventDefault();
			var meta = $(this).metadata();

			var chicken_amt = (parseInt($("div.pageContent table.tbChickenAmt label.input span:first").text()) || 0);

			var meta_amt = $("div.pageContent table.tbChickenType div.amount:first").metadata();
			var chicken_type_maximum = (parseInt(meta_amt.maximum) || 0);

			var chicken_curr = (parseInt($("div.pageContent table.tbChickenType div.amount_"+meta.seq_no+" label:first").text()) || 0);

			if ( chicken_curr > 0 ) {
				var chicken_new = chicken_curr-1;
				$("div.pageContent table.tbChickenType div.amount_"+meta.seq_no+" label:first").text(chicken_new);

				var class_curr = "amount_"+meta.seq_no;
				var i=0; var flag = flag_curr = true;

				//First Loop
				$("div.pageContent table.tbChickenType div.amount").each(function(){
					if ( $(this).hasClass(class_curr) ) flag_curr = false;
					if ( flag && !flag_curr && !$(this).hasClass(class_curr) ) {
						var chicken = ( parseInt($(this).children("label:first").text()) || 0);
						if ( chicken < chicken_type_maximum ) {
							$(this).children("label:first").text(chicken+1);
							flag = false;
						}
					}
				});

				//Second Loop
				if ( flag ) {
					$("div.pageContent table.tbChickenType div.amount").each(function(){
						if ( flag ) {
							var chicken = ( parseInt($(this).children("label:first").text()) || 0);
							if ( chicken < chicken_type_maximum ) {
								$(this).children("label:first").text(chicken+1);
								flag = false;
							}
						}
					});
				}

				// Set metadata
				updateCustomize_Price();
			}
		});

		$("form#frmInfo input.cb_tradeup").click(function(e) {
			//e.preventDefault();
			var meta = $(this).metadata();
			var chicken_amt = parseInt(meta.chicken_amt || 0);


			if ( chicken_amt > 0 ) {
				var meta_amt = $("div.pageContent div.plChickenAmt").metadata();
				meta_amt.chicken_amt = parseInt(meta_amt.chicken_amt || 0);

				// Show/Hide
				if ( $(this).is(":checked") ) {
					$("div.pageContent div.plChickenAmt table.tbChickenAmt td span:first").text(chicken_amt+meta_amt.chicken_amt);
					var remain_chicken = chicken_amt;
					$("div.pageContent div.plChickenType table.tbChickenType div.amount").each(function(){
						var meta_type = $(this).metadata();
						meta_type.seq_no = parseInt(meta_type.seq_no || 0);
						meta_type.chicken_amt = parseInt(meta_type.chicken_amt || 0);
						$(this).children("label:first").text(meta_type.chicken_amt+remain_chicken);
						remain_chicken = 0;

						// Set Meta
						meta_type.maximum = chicken_amt+meta_amt.chicken_amt;
					});

					$("div.pageContent div.plChickenAmt").fadeIn("fast");
					$("div.pageContent div.plChickenType").fadeIn("fast");

				} else {
					$("div.pageContent div.plChickenAmt table.tbChickenAmt td span:first").text(meta_amt.chicken_amt);

					$("div.pageContent div.plChickenType table.tbChickenType div.amount").each(function(){
						var meta_type = $(this).metadata();
						meta_type.seq_no = parseInt(meta_type.seq_no || 0);
						meta_type.chicken_amt = parseInt(meta_type.chicken_amt || 0);
						$("div.pageContent div.plChickenType table.tbChickenType div.amount_"+meta_type.seq_no+" label:first").text(meta_type.chicken_amt);

						// Set Meta
						meta_type.maximum = meta_type.chicken_amt;
					});

					if ( meta_amt.chicken_amt==0 ) {
						$("div.pageContent div.plChickenAmt").fadeOut("fast");
						$("div.pageContent div.plChickenType").fadeOut("fast");
					}
				}

				// Increase/Decrease Chicken Amount
				if ( $(this).is(":checked") ) {
				} else {
				}
			}

			// Update Total Price
			updateCustomize_Price();
		});
	}
}

function updateCustomize_Price() {
	var price_tradeup = 0;

	$("form#frmInfo div.plPrice table td.price label:first").empty();

	$("form#frmInfo input.cb_tradeup").each(function() {
		if ( $(this).attr("checked") ) {
			var meta = $.metadata.get(this);
			if ( meta.price == undefined ) meta.price = 0;
			price_tradeup += parseInt(meta.price);
		}
	})
	if ( price_tradeup > 0 ) $("form#frmInfo div.plPrice table td.price label:first").html( "&nbsp;+ " + price_tradeup );

	// Set metadata
	var meta_bt = $("form#frmInfo a.btnOrderNow:first").metadata();
	meta_bt.option = '';

	// Chicken
	$("div.pageContent table.tbChickenType div.amount").each(function(){
		var chicken = ( parseInt($(this).children("label:first").text()) || 0);
		if ( chicken > 0 ) {
			meta_bt.option += (meta_bt.option.length==0?'':'@')+$(this).metadata().code+"#"+chicken;
		}
	});

	//Tradeup
	$("form#frmInfo input.cb_tradeup").each(function() {
		if ( $(this).attr("checked") ) {
			meta_bt.option += (meta_bt.option.length==0?'':'@')+$(this).metadata().code+"#"+$(this).val();
		}
	});
	meta_bt.option = $.URLEncode(meta_bt.option);
	if ( meta_bt.option_orginal != undefined ) meta_bt.option = meta_bt.option_orginal+'@'+meta_bt.option;
}

var nowDate;
function handle_Datetime() {
	if ( $("div.Header div.plDateTime").length > 0 ) {

		dateFormat.lang = ( get_lang()=="en" ? dateFormat.en : dateFormat.th);

		var now = $("div.Header div.plDateTime").metadata();
		if ( now.now != undefined ) {
			nowDate = new Date(now.now);
			setInterval( "display_time()", 1000);
		}
	}
}

function display_time() {
	nowDate.setSeconds( nowDate.getSeconds()+1);
	$("div.Header div.plDateTime span.date").html( nowDate.format("d mmmm yyyy") );
	$("div.Header div.plDateTime span.time").html( nowDate.format("hh:MM tt") );
}
