/*
* @version : 3.0.1 (Patch 2)
* @update : 2012-02-13
* @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 FormatCurrency(num) {
	//alert("currency format");
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	//eturn (((sign)?'':'-') + '$' + num + '.' + cents);
	return (((sign)?'':'-') + num);
}

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["+code[i]+"]="+amt;
			if (option != undefined && option[i] != undefined && option[i].length>0 ) param += "&product_option["+code[i]+"]="+option[i];
		}
	} else {
		param += "&product_choice["+code+"]="+amt;
		if ( option!=undefined && option.length>0 ) param += "&product_option["+code+"]="+option;
	}
	$.ajax({
		url: "api/cart.php",
		data: param,
		type: "post",
		cache: false,
		dataType: "text",
		complete: function (result) {

			if ($.isFunction(callback)) {
				callback.apply();
			}

			updateFoodTray();

			//document.location.reload();

			checkPromotion(code);
		},
		error: function(result) {
			unblockPage();
			if ($.isFunction(callback)) {
				callback.apply();
			}
		}
	});
}

function addCartMenuCombo(code, option, menu_id, callback, amt) { // Combo, Pizza

	amt = (parseInt(amt) || 1);
	if (option.length > 0 ) {
		var param = "action=add_cart_combo";
		if( typeof(code) == 'object' && typeof(option) == 'object' ) {
			for(i=0; i<code.length; i++) {
				param+= "&product_code["+code[i]+"]="+amt;
				if (option!=undefined && option[i]!=undefined && option[i].length>0 ) param += "&product_option["+code[i]+"]="+option[i];
			}
		} else {
			param+= "&product_code["+code+"]="+amt;
			if ( option!=undefined && option.length>0 ) param += "&product_option["+code+"]="+option;
		}
		//param += "&product_code["+code+"]="+amt;
		//param += "&product_option["+code+"]="+combo_option;
		//alert(param);

		$.ajax({
			url: "api/cart.php",
			data: param,
			type: "post",
			cache: false,
			dataType: "text",
			complete: function (result) {

				if ($.isFunction(callback)) {
					callback.apply();
				}

				updateFoodTray();
				//document.location.reload();

				checkPromotion(code);
			},
			error: function(result) {
				unblockPage();
				if ($.isFunction(callback)) {
					callback.apply();
				}
			}
		});

	} else if ( menu_id > 0 ) {
		//addCartMenu(code,'', callback);
		location.href = $.url.attr("path")+'?id='+menu_id;
	}
}

function addCartCoupon(coupon_code, product_code, product_option, callback) {
	var param = "action=add_cart_coupon";
	if ( coupon_code!=undefined ) param += "&coupon_code="+coupon_code;
	if ( product_code!=undefined ) param += "&product_code="+product_code;
	if ( product_option!=undefined ) param += "&product_option="+product_option;

	$.ajax({
		url: "api/cart.php",
		data: param,
		type: "post",
		cache: false,
		dataType: "text",
		complete: function (result) {

			if ($.isFunction(callback)) {
				callback.apply();
			}

			if ( $("div#pagePayment").length == 1) {
				document.location.reload();
			} else {
				updateFoodTray();
			}
		},
		error: function(result) {
			unblockPage();
			if ($.isFunction(callback)) {
				callback.apply();
			}
		}
	});
}

function updateFoodTray() {

	if ( $("div#pageHome").length > 0 ) {
		location.href = "promotion.php";
	} else {
		if ( $("div#pagePayment").length > 0) {
			//refreshPaymentOrder();
			document.location.reload();
		} else {
			unblockPage();
			refreshFoodTray();
		}
	}
}

// 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() || "");
			}
			if ( $(data.responseText).filter("div#GoogleConversion").length > 0 ) {
				//responseText += ($(data.responseText).filter("div#GoogleConversion").text() || "");
			}
			//alert(responseText)
			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: 600,
					height: 350,
					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: 600,
					height: 350,
					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 dialogCouponInfo() {
	blockPage();

	$.ajax({
		url: "api/home.php",
		data: "action=coupon_info",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-coupon_info").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_info\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-coupon_info").length > 0 ) {
				$("div#dialog-coupon_info a.btnOk").click(function(e){
					e.preventDefault();
					$("div#dialog-coupon_info").dialog("close");
				});
				$("div#dialog-coupon_info").dialog({
					dialogClass: "dialogGetY",
					width: 600,
					height: 550,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-coupon_info").dialog("destroy").remove();
					}
				});
			}

		},
		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.btnOk").click(function(e){
					e.preventDefault();
					$("div#dialog-online_deal").dialog("close");
				});

				$("div#dialog-online_deal").dialog({
					dialogClass: "dialogOnlineDeal",
					width: 600,
					height: 550,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-online_deal").dialog("destroy").remove();
					}
				});
			}

		},
		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.btnOk").click(function(e){
					e.preventDefault();
					$("div#dialog-hot_promotion").dialog("close");
				});

				$("div#dialog-hot_promotion").dialog({
					dialogClass: "dialogHotPromotion",
					width: 600,
					height: 550,
					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 dialogPaymentOnlineDeal(callback) {
	blockPage();

	$.ajax({
		url: "api/home.php",
		data: "action=payment_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").dialog({
					dialogClass: "dialogPaymentOnlineDeal",
					width: 600,
					height: 350,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-online_deal").dialog("destroy").remove();

						if ($.isFunction(callback)) {
							callback.apply();
						}
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFavoriteMenu(fprod_no, rule_no) {
	blockPage();

	$.ajax({
		url: "api/dialog_favorite_menu.php",
		data: "fprod_no="+fprod_no+"&rule_no="+rule_no,
		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.fprod_no != undefined && parseInt(meta.fprod_no) >0 && meta.rule_no != undefined && meta.rule_no.length > 0 ) {
						blockPage();
						$.ajax({
							url: "api/favorite_menu.php",
							data: "action=add&fprod_no="+meta.fprod_no+"&rule_no="+meta.rule_no,
							type: "post",
							cache: false,
							dataType: "text",
							complete: function (result) {
								dialogFavoriteMenuComplete();
							},
							error: function(result) {
								unblockPage();
							}
						});
					}
				});


				$("div#dialog-favorite-menu").dialog({
					dialogClass: "dialogFavoriteMenu",
					width: 600,
					height: 350,
					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: 350,
					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#pagePizza.pizzaSoftHit table.tbList div.image, div#pagePizza.pizza2ForAll table.tbList div.image, div#pagePizza.pizza12Cups table.tbList div.image, div#pagePizza.step3 table.tbList div.image, div#pagePasta table.tbList div.image, div#pageBakedRice table.tbList div.image, div#pageAppetizer table.tbList div.image, div#pageDesertDrink table.tbList div.image, div#pagePromotion table.tbList div.image, div#pageValueSet table.tbList div.image, div#pageQuickOrder table.tbList div.image, div#pageQuickOrder table.tbList div.image_drag_disable, div#pageLastOrder table.tbList div.image, div#pageFavoriteMenu table.tbList div.image, div#page1150 table.tbList div.image").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();
				if ( meta.type == 'combo' ) {
					addCartMenuCombo( meta.code, meta.option, meta.menu_id, function(){ /*unblockFoodTray();*/ } );
				} else {
					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="+meta.code+(meta.option!=undefined && meta.option.length>0 ? "&option="+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="+meta.code+(meta.option!=undefined && meta.option.length>0 ? "&option="+meta.option:""),
					type: "post",
					cache: false,
					dataType: "text",
					complete: function (result) {
						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="+meta.code+(meta.option!=undefined && meta.option.length>0 ? "&option="+meta.option:""),
						type: "post",
						cache: false,
						dataType: "text",
						complete: function (result) {
							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.fprod_no != undefined && parseInt(meta.fprod_no) >0 && meta.rule_no != undefined && meta.rule_no.length > 0 ) {
					dialogLogin( "api/dialog_"+$("div.Header div.plMember a.btLogin").attr("href"), function(){
						dialogFavoriteMenu(meta.fprod_no, meta.rule_no);
					});
				}

			} else {
				var meta = $.metadata.get(this);
				if ( meta.fprod_no != undefined && parseInt(meta.fprod_no) >0 && meta.rule_no != undefined && meta.rule_no.length > 0 ) {
					dialogFavoriteMenu(meta.fprod_no, meta.rule_no);
				}
			}
		});
	}
}

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.code != undefined && $("div#plLastOrder div.amount_"+meta.code).length > 0 ) {
				var amt = parseInt($("div#plLastOrder div.amount_"+meta.code+" label:first").html() || 1 );
				amt += 1;
				if (!$("div#plLastOrder form#frmLastOrder input[name='last_order["+meta.code+"]']").is(":checked")) $("div#plLastOrder input[name='last_order["+meta.code+"]']").attr("checked", "checked");
				$("div#plLastOrder input[name='last_order["+meta.code+"]']").val(amt);
				$("div#plLastOrder div.amount_"+meta.code+" 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);
					if ( meta.type=='combo' ) {
						addCartMenuCombo( meta.code, meta.option, 0, '', $(this).val() );
					} else {
						addCartMenu( meta.code, '', '', $(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.code != undefined && $("div#plFavorite div.amount_"+meta.code).length > 0 ) {
				var amt = parseInt($("div#plFavorite div.amount_"+meta.code+" label").html() || 1 );
				amt += 1;
				if (!$("div#plFavorite input[name='favorite_menu["+meta.code+"]']").is(":checked")) $("div#plFavorite input[name='favorite_menu["+meta.code+"]']").attr("checked", "checked");
				$("div#plFavorite input[name='favorite_menu["+meta.code+"]']").val(amt);
				$("div#plFavorite div.amount_"+meta.code+" label:first").html(amt);
			}
		});

		// Decrease
		$("div#plFavorite a.btDecrease").click(function(e) {
			e.preventDefault();
			var meta = $.metadata.get(this);
			if ( meta.code != undefined && $("div#plFavorite div.amount_"+meta.code).length > 0 ) {
				var amt = parseInt($("div#plFavorite div.amount_"+meta.code+" label").html() || 1 );
				amt -= 1;
				if ( amt > 0 ) {
					$("div#plFavorite input[name='favorite_menu["+meta.code+"]']").val(amt);
					$("div#plFavorite div.amount_"+meta.code+" label:first").html(amt);
				} else {
					if ($("div#plFavorite input[name='favorite_menu["+meta.code+"]']").is(":checked")) $("div#plLastOrder input[name='favorite_menu["+meta.code+"]']").removeAttr("checked");
				}
			}
		});

		// Add to Foodtray
		$("div#plFavorite input.btAddTray").click(function(e) {
			e.preventDefault();
			if ( $("div#plFavorite input.cb_favorite:checked").length > 0 ){
				blockFoodTray();
				blockFavoriteMenu();

				$("div#plFavorite input.cb_favorite:checked").each(function(){
					var meta = $.metadata.get(this);
					if ( meta.type=='combo' ) {
						addCartMenuCombo( meta.code, meta.option, 0, '', $(this).val() );
					} else {
						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();
		$("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");
			}

			if ( meta.code.length > 0 || $(elm).closest("div.choice").length > 0 ) {
				var chk_choice = false;
				var arr_code = new Array();
				if ( $(this).closest("div.choice").find("input[type=checkbox]").length > 0 ) {
					if ( $(this).closest("div.choice").find("input[type=checkbox]:checked").length > 0 ) {
						$(elm).closest("div.choice").find("input[type=checkbox]:checked").each(function(){
							arr_code[arr_code.length] = $(this).metadata().code;
						});
						//addCartMenu( 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 ( meta.type=='combo' || meta.type=='pizza' ) {

						var arr_code = new Array();
						var arr_option = new Array();

						arr_code[arr_code.length] = meta.code;
						arr_option[arr_option.length] = meta.option;

						if ( $("div.pageContent div.plBuyGet").length > 0 && $("div.pageContent div.plBuyGet input[type=checkbox].cb_buyget:checked").length > 0 ) { // Buy X Get Y
							var meta_buyget = $("div.pageContent div.plBuyGet input[type=checkbox].cb_buyget:checked:first").metadata();
							arr_code[arr_code.length] = meta_buyget.code;
							arr_option[arr_option.length] = meta_buyget.option;
						}

						var callback = function(){}
						if ( meta.url.length > 4 ) callback = function(){ location.href = meta.url; };

						addCartMenuCombo( arr_code, arr_option, meta.menu_id, callback );
						/*if ( meta.url.length > 4 ) {
							addCartMenuCombo( arr_code, arr_option, meta.menu_id, function(){ location.href = meta.url; } );
						} else {
							addCartMenuCombo( arr_code, arr_option, meta.menu_id );
						}*/
					} else {
						if ( $(elm).closest("div.choice").find("input[type=checkbox]:checked").length > 0 ) {
							addCartMenu( arr_code );
						} else {
							if ( meta.url.length > 4 ) {
								addCartMenu( meta.code, meta.option, function(){ location.href = meta.url; } );
							} else {
								addCartMenu( meta.code, meta.option );
							}
						}
					}
				}
			} else {
				if (meta.url.length > 4) {
					location.href = meta.url;
				} else {
					unblockPage();
				}
			}
		});
	}
}

function handle_btIngredient() {
	handle_Init();

	//if ( $("div#pageValueSet").length == 0 ) {
		$("div.pageContent div.pizzaSummary .btnIngredientAdd, div.pageContent div.pizzaSummary .btnIngredientRemove").click(function(e){
			e.preventDefault();
			//$("div.pageContent div#pizzaIngredient").fadeOut();
			//if ( $("div.pageContent div#pizzaIngredient").css("display") == "none" ) $("div.pageContent div#pizzaIngredient").fadeIn().empty()
			var meta = $.metadata.get(this);
			if ( meta.base_no != undefined && meta.size_no != undefined && meta.base_no.length > 0 && meta.size_no.length > 0 ) {

				$("div.pageContent div#pizzaIngredient").fadeOut("fast", function() { $(this).fadeIn("slow").addClass("loading").empty(); } );

				var params = "";
				params+= "&type=pizza";
				if ( meta.code != undefined && meta.code.length > 0 ) params+= "&code="+meta.code;
				if ( meta.fprod_no != undefined && meta.fprod_no.length > 0 ) params+= "&fprod_no="+meta.fprod_no;
				params+= "&base_no="+meta.base_no;
				params+= "&size_no="+meta.size_no;
				if ( meta.product_no != undefined && meta.product_no.length > 0 ) params+= "&product_no="+meta.product_no;
				if ( meta.option != undefined && meta.option.length > 0 ) params+= "&option="+meta.option;
				if ( meta.topping_no != undefined && meta.topping_no.length > 0 ) params+= "&topping_no="+meta.topping_no;
				if ( meta.topping_add != undefined && meta.topping_add.length > 0 ) params+= "&topping_add="+meta.topping_add;
				if ( meta.topping_remove != undefined && meta.topping_remove.length > 0 ) params+= "&topping_remove="+meta.topping_remove;
				// Half
				if ( meta.half_code != undefined && meta.half_code.length > 0 ) params+= "&half_code="+meta.half_code;
				if ( meta.half_fprod_no != undefined && meta.half_fprod_no.length > 0 ) params+= "&half_fprod_no="+meta.half_fprod_no;
				if ( meta.half_product_no != undefined && meta.half_product_no.length > 0 ) params+= "&half_product_no="+meta.half_product_no;
				if ( meta.half_topping_add != undefined && meta.half_topping_add.length > 0 ) params+= "&half_topping_add="+meta.half_topping_add;
				if ( meta.half_topping_remove != undefined && meta.half_topping_remove.length > 0 ) params+= "&half_topping_remove="+meta.half_topping_remove;
				//alert(params);

				$.ajax({
					url: "api/pizza_ingredient.php",
					data: params,
					type: "get",
					cache: false,
					dataType: "html",
					complete: function (result) {
						resultHtml =  result.responseText;
						if ( $(resultHtml).filter("div#ajaxContent").length > 0 ) resultHtml =  $(resultHtml).filter("div#ajaxContent").html();

						$("div.pageContent div#pizzaIngredient").fadeOut("fast", function() {
							$(this).removeClass("loading").html(resultHtml);
							// form handle
							//$("form#frmIngredient").length
							//$("form#frmIngredient tr.summary td.price").formatCurrency({region: "th-TH" });
							//$('form#frmIngredient tr.summary td.price').html("4500").formatCurrency({region: 'th-TH' });
							$("form#frmIngredient input[type=checkbox].ingredient_extra").click(function(e){
								//e.preventDefault();
								pizza_ingredient_update();
							});
							pizza_ingredient_update();

							$("form#frmIngredient input.btnConfirm").click(function(){
								$("form#frmIngredient").submit();
							});

							$("form#frmIngredient input.btnCancel").click(function(){
								$("div.pageContent div#pizzaIngredient").fadeOut( function() { $(this).empty(); } );
							});

							$("form#frmIngredient").submit(function(){
								var validationError = false;
								var ingrediant_max = (parseInt($("form#frmIngredient input[name=ingredient_extra_max]").val()) || 0);

								// Push In Array
								var arr_ingredient_base = new Array(); var arr_ingredient_half_base = new Array(); var arr_ingredient_extra = new Array(); var arr_ingredient_half_extra = new Array();
								$("form#frmIngredient input[type=checkbox][name='ingredient_base[]']:checked").each(function(){
									arr_ingredient_base[arr_ingredient_base.length] = $(this).val();
								});
								$("form#frmIngredient input[type=checkbox][name='ingredient_half_base[]']:checked").each(function(){
									arr_ingredient_half_base[arr_ingredient_half_base.length] = $(this).val();
								});
								$("form#frmIngredient input[type=checkbox][name='ingredient_extra[]']:checked").each(function(){
									arr_ingredient_extra[arr_ingredient_extra.length] = $(this).val();
								});
								$("form#frmIngredient input[type=checkbox][name='ingredient_half_extra[]']:checked").each(function(){
									arr_ingredient_half_extra[arr_ingredient_half_extra.length] = $(this).val();
								});

								// Ingredient Base
								var ingredient_base = "";
								$("form#frmIngredient input[type=checkbox][name=ingredient_base[]]:checked").each(function(){
									if ( $.inArray($(this).val(), arr_ingredient_extra) == -1 ) {
										ingredient_base += $(this).val()+",";
									}
								});
								if ( ingredient_base.length > 0 ) ingredient_base = ingredient_base.substr(0, ingredient_base.length-1);
								$("form#frmIngredient input[name=topping_remove]").val( ingredient_base );

								// Ingredient Half Base
								var ingredient_base = "";
								$("form#frmIngredient input[type=checkbox][name=ingredient_half_base[]]:checked").each(function(){
									if ( $.inArray($(this).val(), arr_ingredient_half_extra) == -1 ) {
										ingredient_base += $(this).val()+",";
									}
								});
								if ( ingredient_base.length > 0 ) ingredient_base = ingredient_base.substr(0, ingredient_base.length-1);
								$("form#frmIngredient input[name=half_topping_remove]").val( ingredient_base );

								// Ingredient Extra
								var ingredient_extra = "";
								$("form#frmIngredient input[type=checkbox][name=ingredient_extra[]]:checked").each(function(){
									if ( $.inArray($(this).val(), arr_ingredient_base) == -1 ) {
										ingredient_extra += $(this).val()+",";
									}
								});
								if ( ingredient_extra.length > 0 ) ingredient_extra = ingredient_extra.substr(0, ingredient_extra.length-1);
								$("form#frmIngredient input[name=topping_add]").val( ingredient_extra );

								// Ingredient Half Extra
								var ingredient_extra = "";
								$("form#frmIngredient input[type=checkbox][name=ingredient_half_extra[]]:checked").each(function(){
									if ( $.inArray($(this).val(), arr_ingredient_half_base) == -1 ) {
										ingredient_extra += $(this).val()+",";
									}
								});
								if ( ingredient_extra.length > 0 ) ingredient_extra = ingredient_extra.substr(0, ingredient_extra.length-1);
								$("form#frmIngredient input[name=half_topping_add]").val( ingredient_extra );

								$("form#frmIngredient table.tbIngredient").remove();
								$("form#frmIngredient input[name=ingredient_extra_max]").remove(); // Remove input
								if ( $("form#frmIngredient input[name=topping_no]").val().length == 0 ) $("form#frmIngredient input[name=topping_no]").remove();
								if ( $("form#frmIngredient input[name=topping_remove]").val().length == 0 ) $("form#frmIngredient input[name=topping_remove]").remove();
								if ( $("form#frmIngredient input[name=topping_add]").val().length == 0 ) $("form#frmIngredient input[name=topping_add]").remove();
								if ( $("form#frmIngredient input[name=half_product_no]").val().length == 0 ) $("form#frmIngredient input[name=half_product_no]").remove();
								if ( $("form#frmIngredient input[name=half_topping_remove]").val().length == 0 ) $("form#frmIngredient input[name=half_topping_remove]").remove();
								if ( $("form#frmIngredient input[name=half_topping_add]").val().length == 0 ) $("form#frmIngredient input[name=half_topping_add]").remove();

								if ( !validationError ) {
									//blockPage();
									$("div.pageContent div#pagePizza").fadeOut(function(){
										$("div.pageContent").append("<div class=\"content_loading\"></div>");
										focusPageContent();

										$.ajax({
											url: $("form#frmIngredient").attr("action"),
											data: "ajax=1&"+$("form#frmIngredient").serialize(),
											type: "get",
											cache: false,
											dataType: "text",
											complete: function (result) {
												$("div.pageContent").fadeOut(function(){
													$("div.pageContent").html(result.responseText).fadeIn( function() { focusPageContent(); } );

													handle_DragDrop();
													handle_btOrderNow();
													handle_btIngredient();
													handle_btHalfPizza();
												})
											},
											error: function(){
											}
										});
									});

								}
								return false;
								//return !validationError;
							});


							$(this).fadeIn();
						});
					},
					error: function(result) {
					}
				});

			}

		});
	//}
}

function handle_btHalfPizza() {
	$("div.pageContent div#pagePizza.step3 table.tbList a.btnHalfPizza").click(function(e){
		e.preventDefault();
		//loadContent( $(this).attr("href") );

		// Push this URL "state" onto the history hash.
		$.bbq.pushState({ url: $(this).attr("href") });
	});

	$("div.pageContent div#pagePizza.step3 table.tbList a.btnHalfPizzaRemove").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_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_btMore() {
	// btBack
	$("div.pageContent a.btnMore").unbind();
	$("div.pageContent a.btnMore").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") );

		// Push this URL "state" onto the history hash.
		$.bbq.pushState({ url: $(this).attr("href") });
	});
}

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(){ blockPage(); location.href = meta.url; } );
			} else {
				addCartMenu( meta.code, meta.option );
			}
		});
	}
}

function pizza_ingredient_update(){
	if ( $("form#frmIngredient").length > 0 ) {
			var ingrediant_total = 0;
			var ingrediant_max = (parseInt($("form#frmIngredient input[name=ingredient_extra_max]").val()) || 0);

			if ( ingrediant_max==0 || $("form#frmIngredient input[type=checkbox].ingredient_extra:checked").length <= ingrediant_max ) {
				$("form#frmIngredient input[type=checkbox].ingredient_extra:checked").each(function(){
					var meta = $.metadata.get(this);
					ingrediant_total += (parseInt(meta.price) || 0);
				});
				$("form#frmIngredient tr.summary td.price").html( ingrediant_total ).formatCurrency({region: 'th-TH' });
			}
			if ( $("form#frmIngredient input[type=checkbox].ingredient_extra:checked").length >= ingrediant_max ) {
				$("form#frmIngredient input[type=checkbox].ingredient_extra").not(":checked").attr("disabled", "disabled");
			} else {
				$("form#frmIngredient input[type=checkbox].ingredient_extra").not(":checked").attr("disabled", "");
			}
	}
}

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") );
}


/* BUY X GET Y */
function checkPromotion(code) {
	blockPage();
	var param = "action=chk_promotion&code="+code;

	$.getJSON("api/cart.php", param, function(data) {
		//console.log('<p>' + data.buy_x + '</p>' + '<p>' + data.feature_id + '</p>');
		unblockPage();

		//if ( ($("div#pageQuickOrder").length == 1 && parseInt(data.menu_1150_pizza||0)==1) || (parseInt(data.menu_1150_pizza||0)>1 && parseInt(data.get_y||0)==0 && parseInt(data.coupon||0)==0) ) {
			//dialog1150();

		if ( parseInt(data.coupon||0) == 1 ) {
			//dialogFreePizza( function(){ blockPage(); addCartCoupon(data.coupon_code, data.product_code)} );
			if ( data.coupon_code == 'PF1150' ) {
				dialogFreePizza();

			} else if ( data.coupon_code.match(/^PT[0-9]{5}[0-9A-Z]{1}$/i) ) { // PT123456
				dialogFreePizzaAIS();
			}

		/*} else if ( parseInt(data.buy_get||0) == 1 && parseInt(data.buy_x||0) > 0 ) {
			if ( data.get_y > 0 ) {
				dialogGetYAlready(data.buy_get_feature_id);
			} else {
				dialogGetY(data.buy_get_feature_id);
			}*/

		} else if ( parseInt(data.buy_get||0) == 1 && parseInt(data.buy_x||0) > 0 && parseInt(data.get_y||0)==0) {
			dialogGetY(data.buy_get_feature_id);
		}
	});
}

function dialogGetY(id){
	// Get Complete Message
	$.ajax({
		url: "api/dialog_buy_get.php",
		data: "action=get_y&id="+(id||0),
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-get_y").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 ) {
				if ( $(responseText).filter("div.content_select").length > 0 ) {
					$("<div id=\"dialog-get_y\">"+responseText+"</div>").appendTo("body").hide();
				}
			}

			// Open Dialog
			if ( $("div#dialog-get_y").length > 0 ) {

				/*$("div#dialog-get_y a.btnClose").click(function(e){
					e.preventDefault();
					$("div#dialog-get_y").dialog("close");
				})*/

				$("div#dialog-get_y a.btnOrderNow").click(function(e){
					e.preventDefault();
					var meta = $("div#dialog-get_y a.btnOrderNow").metadata();
					if (meta.code != undefined) {
						if (meta.option == undefined) meta.option = '';
						addCartMenu( meta.code, meta.option, function(){blockPage(); $("div#dialog-get_y").dialog("destroy").remove(); /*location.href = "payment.php";*/ } );
					}
				})

				/*if ( $("div#dialog-get_y a.btOrderNow").length > 0 ) {
					$("div#dialog-get_y a.btOrderNow").click(function(e){
						e.preventDefault();
						$("div#dialog-get_y").dialog("close");
						var meta = $.metadata.get(this);
						meta.url = '';
						if ( $(this).attr("href") != "#" && $(this).attr("href").length > 4 ) {
							meta.url = $(this).attr("href");
						}
						if (meta.code != undefined) {
							addCartMenu( meta.code, meta.option, function(){ if (meta.url!=undefined && meta.url.length>4) { blockPage(); location.href = meta.url; } else { refreshFoodTray(); } } );
						}
					});
				}*/

				$("div#dialog-get_y").dialog({
					dialogClass: "dialogGetY2",
					width: 600,
					height: 400,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						//blockPage();
						/*if ( $("div#dialog-get_y a.btnOk").length > 0 ) {
							var meta = $("div#dialog-get_y a.btnOk").metadata();
							if (meta.code != undefined) {
								if (meta.option == undefined) meta.option = '';
								addCartMenu( meta.code, meta.option, function(){blockPage(); $("div#dialog-get_y").dialog("destroy").remove(); location.href = "payment.php"; } );
							}
						} else {
							$("div#dialog-get_y").dialog("destroy").remove();
							//location.href = "payment.php";
						}*/
						$("div#dialog-get_y").dialog("destroy").remove();

					}
				});
				$("div#dialog-get_y").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogGetYAlready(id){
	// Get Complete Message
	$.ajax({
		url: "api/dialog_buy_get.php",
		data: "action=get_y_already&id="+(id||0),
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-get_y").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 ) {
				if ( $(responseText).filter("div.content").length > 0 ) {
					$("<div id=\"dialog-get_y\">"+responseText+"</div>").appendTo("body").hide();
				}
			}

			// Open Dialog
			if ( $("div#dialog-get_y").length > 0 ) {

				$("div#dialog-get_y a.btnOk").click(function(e){
					e.preventDefault();
					$("div#dialog-get_y").dialog("close");
				})

				$("div#dialog-get_y").dialog({
					dialogClass: "dialogGetY2",
					width: 600,
					height: 400,
					autoOpen: false,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						//allFields.val('').removeClass('ui-state-error');
						$("div#dialog-get_y").dialog("destroy").remove();
					}
				});
				$("div#dialog-get_y").dialog("open");
			}
		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFreePizza(callback) {
	blockPage();

	$.ajax({
		url: "api/dialog_coupon.php",
		data: "action=get_pizza_pan",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-free_pizza").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-free_pizza\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-free_pizza").length > 0 ) {

				$("div#dialog-free_pizza a.btOrderNow").click(function(e){
					e.preventDefault();
					var meta = $.metadata.get(this);
					callback = function() {blockPage(); addCartCoupon(meta.coupon_code, meta.product_code, meta.product_option); }
					$("div#dialog-free_pizza").dialog("close");
				});

				$("div#dialog-free_pizza").dialog({
					dialogClass: "dialogFreePizza",
					width: 600,
					height: 400,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-free_pizza").dialog("destroy").remove();

						if ($.isFunction(callback)) {
							callback.apply();
						}

						//$("div.plCouponForm table.tbCoupon").hide();
						$("div.pageContent div.plCouponForm table.tbCoupon").hide();
						//document.location.reload();
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFreePizzaAIS(callback) {
	blockPage();

	$.ajax({
		url: "api/dialog_coupon.php",
		data: "action=get_pizza_pan_ais",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-free_pizza").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-free_pizza\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-free_pizza").length > 0 ) {

				$("div#dialog-free_pizza a.btOrderNow").click(function(e){
					e.preventDefault();
					var meta = $.metadata.get(this);
					callback = function() {blockPage(); addCartCoupon(meta.coupon_code, meta.product_code, meta.product_option); }
					$("div#dialog-free_pizza").dialog("close");
				});

				$("div#dialog-free_pizza").dialog({
					dialogClass: "dialogFreePizza",
					width: 600,
					height: 400,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-free_pizza").dialog("destroy").remove();

						if ($.isFunction(callback)) {
							callback.apply();
						}
						//$("div.plCouponForm table.tbCoupon").hide();
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialogFreeSpaghetti(callback) {
	blockPage();

	$.ajax({
		url: "api/dialog_coupon.php",
		data: "action=get_free_spaghetti",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-free_spaghetti").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-free_spaghetti\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-free_spaghetti").length > 0 ) {

				$("div#dialog-free_spaghetti a.btOrderNow").click(function(e){
					e.preventDefault();
					var meta = $.metadata.get(this);
					callback = function() {blockPage(); addCartCoupon(meta.coupon_code, meta.product_code, meta.product_option); }
					$("div#dialog-free_spaghetti").dialog("close");
				});

				$("div#dialog-free_spaghetti").dialog({
					dialogClass: "dialogFreeSpaghetti",
					width: 600,
					height: 550,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-free_spaghetti").dialog("destroy").remove();

						if ($.isFunction(callback)) {
							callback.apply();
						}

						//$("div.plCouponForm table.tbCoupon").hide();
						$("div.pageContent div.plCouponForm table.tbCoupon").hide();
						//document.location.reload();
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}

function dialog1150(callback){
	blockPage();

	$.ajax({
		url: "api/dialog_1150.php",
		data: "",
		type: "get",
		cache: false,
		dataType: "text",
		complete: function (data) {
			unblockPage();
			$("div#dialog-menu_1150").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-menu_1150\">"+responseText+"</div>").appendTo("body").hide();
			}


			// Open Dialog
			if ( $("div#dialog-menu_1150").length > 0 ) {

				$("div#dialog-menu_1150 a.btnOk").click(function(e){
					e.preventDefault();
					callback = function() {blockPage(); location.href="1150.php"; }
					$("div#dialog-menu_1150").dialog("close");
				});

				$("div#dialog-menu_1150").dialog({
					dialogClass: "dialogMenu1150",
					width: 600,
					height: 400,
					autoOpen: true,
					modal: true,
					draggable: false,
					resizable: false,
					open: function(event, ui) {
					},
					close: function() {
						$("div#dialog-menu_1150").dialog("destroy").remove();

						if ($.isFunction(callback)) {
							callback.apply();
						}
					}
				});
			}

		},
		error: function(){
			unblockPage();
		}
	});
}
