var _isAjax = false;
var _errorColor = "#FFFF7F";
var _uniqueUserName = false;
var _loadImg = $("<img src='/static/img/ajax.gif' style='display:block;width:25px;margin:0 auto;'/>")
var _login = false;
var _Block_Window = null

/*
function alert(message){
	var m = message.replace(/\n/g,"<br\>")	
	blockWin({
		width:500,
		height:200,
		content:"<div id=\"popup_header\">&nbsp"+		
		"<span id=\"block_close\" onclick=\"$.unblockUI()\">"+
		"<img src=\"/static/img/close.png\"/></span></div>"+
		"<div style=\"position:relative;margin:auto 20px;text-align:left;\">"+m+"</div>"	
	})
}*/


$(document).ajaxError(function(event,r,options,e){
	//alert("Error:"+e)
	if(r.status==0){
	alert('You are offline!!\n Please Check Your Network.');
	}else if(r.status==404){
	alert('Requested URL not found.');
	}else if(r.status==500){
	alert('Internal Server Error.');
	}else if(e=='parsererror'){
	alert('Error.\nParsing JSON Request failed.');
	}else if(e=='timeout'){
	alert('Request Time out.');
	}else {
	alert('Unknow Error.\n'+r.responseText);
	}
})

function noSunday(date){
      var day = date.getDay();
      return [(day > 0), ''];
  }; 
$.datepicker.setDefaults({
	dateFormat:'M dd, yy',
	minDate:0,
	maxDate:'+31d',		
	buttonImage:'/static/img/calendar.png',
	buttonImageOnly:true,
	showOn:'both',
	constrainInput:'true',
	beforeShowDay: noSunday
})
// enables blockui in linux
$.blockUI.defaults.applyPlatformOpacityRules = false;
$.blockUI.defaults = $.extend(
	$.blockUI.defaults,{
		overlayCSS:{
			backgroundColor: "#00535E",
			opacity:0.5
		},
		css:$.extend($.blockUI.defaults.css,{
			border: 'none', 
		    padding: '5px', 
		    color:'#ffffff',
		    fontWeight:'bold',
		    fontSize:"10pt",
		    background:"transparent",
		    cursor:'default'
		}),
		message:"<img src='/static/img/ajax.gif' style='display:block;width:25px;margin:0 auto;'/>"
	}
);
_qtip_settings = {
   content: "nothing to show here",
   show: {delay:200,when:{target:false,event:'mouseover'},solo:true},
   hide:{target:false,event:'mouseout'},
   style: {
	  border: {
	    width: 3,
	    radius: 3,
	    color:"#E8941A"
	  },
	  width:400,
	  padding: 10, 
	  textAlign: 'center',
	  tip:true,
	  name:'light',
	  color:"#888888"
   },
   position: {
      corner: {
         tooltip: 'topMiddle', 
         target: 'bottomMiddle'
      }
   }	
}
function showMessage(msg){
	if(msg.length > 0){
		$("#message_banner").slideDown("fast").children("span").eq(1).html(msg)
	}
}
function clear_messages(){
	$.get("/clear_messages/",function(data){
		$("#message_banner:visible").slideUp("fast")
	},'json')
}
function setLeftNav(url){	
	if(url.indexOf("group")>=0){
		setActiveNav('groups')	
	}else if(url.lastIndexOf("buildaburger")>0){
		setActiveNav('step1')		
	}else if(url.lastIndexOf("products/menu")>0){
		setActiveNav('menu')			
	}else{
		setActiveNav('')
	}
}
function setActiveNav(page){
	
	if(page.length > 0 && !page.charAt(0) == '?'){
		$('#left_nav li.active').removeClass('active');
		$('#left_nav li.'+page).addClass('active');
	}else{
		try{
			page = $("#page_name").val()
			$('#left_nav li.active').removeClass('active');
			$('#left_nav li.'+page).addClass('active');
		}catch(e){}
	}
}	

$(document).ready(function(){

	$(window).history(function(e, hash) {
	
		if(hash){
			_url = hash			
			loadURL(hash)	
		}else{
			window.location = window.location
		}
	});
	

})
// validates form based on json data returned by on the view HttpJsonFormError
function validateForm(form,data){
	form.find(".error").removeClass("error")
	if(!data.success){
		var message = data.message+"\n\r"
		var fields = []
		for(o in data){
			if(o!='message' && o!= 'success'){
				fields.push(o);
				message +="\n\r"+o+": ";
				for(m in data[o]){
					message+= data[o][m]+" "
				}
			}
		}
		for(f in fields){
			try{
				var f = form.find("[name='"+fields[f]+"']").addClass("error")
				if(f[0].type.toLowerCase() == "checkbox"){
					f.parent().addClass("error")
				}
			}catch(e){
				console.debug(e)
			}
		}
		alert(message)
		return false
	}else{	
		return true
	}
}

function loadURL(url,ret){
	if(url){		
		var c = $("#center_pane");
		if(c.length == 1){
			// catch home redirects when not authenticated
			if(url =='/' && !is_authenticated){
				window.location = url;
			}
			$("#extras_placeholder").hide()
			c.block({
				message:"<img src='/static/img/ajax.gif'></img>",
				overlayCSS:{
					height:"105%",
					top:"-2.5%",
					left:"-5px",
					'-webkit-border-radius': '10px', 
            		'-moz-border-radius': '10px'
            	}
			})
			$.history.add(url);	
			
			
			setTimeout(function(){
				document.getElementById("buildaburger_calc").style.display = "none";
			    if(url.lastIndexOf('staticpage') >=0){
			    	url = url.replace("staticpage","static/html")
			    }else{
			    	var appendChar = "?";
			    	if(url.lastIndexOf(appendChar)>0){
			    		appendChar = "&"
			    	}
			    	url = url+appendChar+"frame=true"
			    }
				c.load(url,function(txt,st,xhr){
					setLeftNav(url)
					resetEverything();	

					if(ret){
						ret()
					}
					var pageTracker = _gat._getTracker("UA-11611382-1");
					pageTracker._trackPageview(url.split("?")[0]);		
				});
			},50);					
			
		}else{
			window.location = url;
		}
		
	}else{	
		
		fullRefresh("/")
	}
}

function fullRefresh(url){
	if(url){
		window.location = url;
	}else{
		
		var hist = $.history.getCurrent();
		if(hist){
			window.location = $.history.getCurrent();
		}else{
			window.location = window.location
		}
	}
	
}

function resetEverything(){
	
	$("span.help").toolTip()
	$(".vscroll").verticalScroll();	
	
	$("div.round2").curvy_corner();
	$("div.round_top").curvy_corner({
	  tl: { radius: 8 },
	  tr: { radius: 8 },
	  bl: { radius: 0 },
	  br: { radius: 0 }	 
	 });
	$("div.round_bottom").curvy_corner({
	  tl: { radius: 0 },
	  tr: { radius: 0 },
	  bl: { radius: 8 },
	  br: { radius: 8 }	 
	 });
	$(".round").corner();
	//$("div.orangeButton.small").customButton({height:18});
	$("div.orangeButton").customButton();
	$("div.blueButton").customButton();
	$("div.brownButton").customButton();
	$("div.greyButton").customButton();
	$("div.multiButton").multiButton();
	$(".vscroll_img").scrollHandle();
	$(".hscroll_img").scrollHandle({dir:"horizontal",scroll_by:50});
	//$("select.custom:visible").customSelect();
	//setShoppingCart();

}

$.fn.toolTip = function(){
	this.each(function(){
		var t = $(this);
		var msg = t.html()
		t.html("(?)").css({
			cursor:"pointer",
			color:"#E8941A",
			fontWeight:"bold",
			fontSize:"10pt"
		}).qtip($.extend(_qtip_settings,{content:msg})).show()
	})
	return this;
}



$.fn.tableStripes = function(){
	this.each(function(){
		var table = $(this);
		var c = 0;
		table.find("tbody tr").each(function(){
			if(c++%2==0){
				$(this).addClass('even');
			}else{
				$(this).addClass('odd');
			}
		})
	});
}


function setCancel(obj){
	if(obj){
		obj.find("#btn_cancel").click(function(){
			$.unblockUI()
		})
	}else{
		$("#btn_cancel").click(function(){
			$.unblockUI()
		})
	}
}

function checkUserAvailability(func) {
	var p = getInputs(gid("form_div2"));
	var n = p.get("username").value
	if(n!= null && n.length > 0){
		$.get("/userregistration/checkname/" + n,null,function(data){
			if(func != null){
				func(data);
			}else{
				if(data.success){
					_uniqueUserName = true;
					alert("Ok");
				}else{
					_uniqueUserName = false;
					alert("This name is already in use.");
				}
			}
		},'json');
	}else{
		alert("Your username must be longer then zero characters.");
		return false; 
	}
}
function takeProfileQuiz(summary){
	_login = false;
	var t = this;
	var win = blockWin({
		width:670,
		height:600,
		returnFunc:function(){
			t.tpq_getQuiz(win,summary);
		}
	})
}

function tpq_getQuiz(obj,summary){
        url2 = "/survey/1/";
        if(summary){
        	url2 = "/survey/1/finished/";      
        }
        this.finish = function(){
        	window.location="/buildaburger" 	
        }
        var TPQ = this;
        obj.load("/survey/",function(){
        	$("#quiz_frame").attr("src",url2)	
        })
}

function updateProfile(){

	loadURL("/userprofile/update/")
}
function registerNewUser(data){
	var _first_name;
	var _last_name;
	var _email;
	var loaded2 = false;
	var step1 = "/userregistration/add/";
	var step2 = "/userregistration/add2/";

	var masterwin = blockWin({
		width:670,
		height:440,		
		loadURL:step1,
		returnFunc:function(){	
			masterwin.find(".customButton").customButton();
			masterwin.find(".round").corner();
			this.validateNext = function(){
				var valid = true;
				this.setValid = function(node,cond){
					if(!cond){
						node.style.backgroundColor = _errorColor;
						valid = false;
					}else{
						node.style.backgroundColor = "";
					}
				}
				var p = getInputs(gid("registration_form"));
				var fn = p.get("first_name");
				var ln = p.get("last_name");
				var email = p.get("email");
				var conf_email = p.get("confirm_email");			
				
				this.setValid(fn.node,fn.value.length > 0)
				this.setValid(ln.node,ln.value.length > 0)
				
				this.setValid(email.node,_emailPattern.test(email.value));
				this.setValid(conf_email.node,conf_email.value == email.value)
				if(valid){
			//========================================================== GOTO step 2==========
			//================================================================================
					_first_name = fn.value;
					_last_name = ln.value;
					_email = email.value;
					step_2 = $("#registration_step2");
					$("#registration_step1").hide();
					
					if(loaded2){
						step_2.show()
					}else{						
						step_2.show().load(step2,function(){
							try{
								if(set_hawker_data){
									set_hawker_data(_email)
								}
							}catch(e){}
							loaded2 = true;
							step_2.find(".customButton").customButton();
							step_2.find(".round").corner();
							$("#btn_back2").click(function(){
								step_2.hide();
								$("#registration_step1").show();
							})
							$("#btn_submit").click(function(){
								var bs = this;
								this.submitUser = function(){			
									var p = getJsonValues($("#form_div2"));	
								
									var dob = new Date();
									dob.setYear(p.year);
									dob.setMonth(p.month -1);
									dob.setDate(p.day);					
									var p2 = {first_name:_first_name,
										last_name:_last_name,
										email:_email,
										date_of_birth:dob.format('isoDate')}
									p = _json.add(p,p2);
									if(p.password == p.verify_password){
							//================================================================== submit new user===============
							//=================================================================================================
										$(".blockUI.blockMsg.blockPage").block();
										
										$.post(step1,p,function(data){
											//if(data.success){
											if(validateForm(step_2,data)){
												_login = true;
												step_2.hide()
												$(".blockUI.blockMsg.blockPage").unblock();
												step_3 = $("#registration_step3");
												
												step_3.show().load($(bs).attr('redirect'),function(){
													step_3.find("#btn_now").click(function(){
														masterwin.resize(670,600)
														tpq_getQuiz(masterwin);
													});		
												})

											}else{

												$(".blockUI.blockMsg.blockPage").unblock();
											}	
										},'json')
									}else{
										alert("Password and Confirm Password do not match.");
									}
								}		
								if(_uniqueUserName){
									this.submitUser();
								}else{
									checkUserAvailability(function(data){
										if(data.success){
											bs.submitUser()
										}else{
											alert("The Username you have selected is already in user. Please enter another name.");
										}
									})
								}
							})
						});
					}
				}else{
					alert("Some fields are not valid");
				}		
			}
			setCancel(masterwin);
			masterwin.find("input").onEnter(this.validateNext)
			$("#btn_next").click(this.validateNext)
		}
	})
}
function logout(){	
	$.get("/userregistration/logout",function(data){	
		fullRefresh();
	},'json');
}

function loginRequired(redirect){
	if(is_authenticated){
		window.location = redirect
	}else{
		loadURL("/userregistration/login_required?redirect="+encodeURIComponent(redirect))
	}
}
function login(msg){
	var url = "/userregistration/login";
	if(msg && msg.length > 0){
		url += "?message="+encodeURI(msg)
	}
	var win = blockWin({
		width:420,
		height:200,
		img:'/static/img/bgBlockcontent_wide.png',
		loadURL:url
	})
}
function getInt(str){
	return  isNaN(parseFloat(str))?0: parseInt(parseFloat(str))
}

function totalNutrition(strObj){
	var table = $("#"+strObj);
	var vals = new Array()	
	var rows = table.find("tr")
	rows.each(function(){
		var row = $(this)
		if(!row.hasClass('exclude')){
			var cols = row.find("td")
			cols.each(function(){
				var col = $(this);
				var v = parseInt(col.html());
				if(vals[cols.index(col)]){
					vals[cols.index(col)] += (!isNaN(v)?v:"");
				}else{
					vals[cols.index(col)] = (!isNaN(v)?v:"");
				}
			})
		}
		
	})
	var row = $("<tr class='total'></tr>").css({borderTop:"1px solid black"})
	for(v in vals){
		row.append("<td>"+vals[v]+"</td>");
	}
	row.children("td").eq(0).html("Total: ").addClass('total_data')
	table.append(row)
}
_blockWin = null;

function makeGroupOrder(){

	loginRequired("/feast/start_get")

}

function timerList(t1,t2,formatBack,fixed){
	var sets = [0,15,30,45];
	var now = t1;
	if(!fixed){
		now.setMinutes(now.getMinutes()+30)
	
		var min = now.getMinutes();
		var hour = 0
		if(min > 45){
			min = 0;
			hour = 1;
		}else{
			for(var i = 0;i<sets.length;i++){
				if(min >= sets[i] && min < sets[i+1]){
					min = sets[i+1];
					break;
				}
			}
		}
		now.setMinutes(min);
		now.setHours(now.getHours()+hour);
	}
	if(formatBack == null){
		//formatBack = "mmm dd yyyy HH:MM:ss TT"
		formatBack = "yyyy-mm-dd HH:MM:ss";
	}
	var times = [];
	
	while(now <= t2){
		var strTime = now.format("shortTime")		
		times.push({date:new Date(now),time:strTime,parse_date:now.format(formatBack),js_date_string:now.format("mmm dd yyyy hh:MM:ss TT")})
		now.setMinutes(now.getMinutes()+15);
	}
	return times;
}
function exitGroupOrder(order_id){
	var orderid = order_id?order_id:_groupOrder;
	if(orderid > 0){
		var p = {group_order_id:orderid,exit:true}
		$.post("/feast/exit",p,function(data){
			if(data.success){
				fullRefresh()
			}else{
				alert("could not exit feast cart. Reason:\n\r"+data.message)	
			}
		},'json')
	}
	

}

function setShoppingCart(){
	var cart = $("#cart")
	if(cart.size()>0){
		islocked = "false";
		var p = {}
		var page = $.history.getCurrent().length>0?$.history.getCurrent():_url		
		if(page == "/checkout/upsell"){
			p.isUpsel = true;
		}
		cart.block({message:_loadImg}).load("/shoppingcart/list2",p,function(){
			var totals = $("#cart_outer");
			totals.find("#total_items").html(cart.find("#cart_size").attr("value"));
			totals.find("#subtotal").html(cart.find("#cart_subtotal").attr("value"));
			totals.find("#taxes").html(cart.find("#cart_tax").attr("value"));
			totals.find(".cart_total").html(cart.find("#cart_subtotal").attr("value"));
			$("#checkout_buttons").html("").append(totals.find("#checkout_buttons_move")).find(".customButton").customButton()
			islocked = cart.find("#cart_locked")[0].value;
			if(islocked == "True"){				
				cart.children("table").addClass("opaque")
			}
		});
		//cart.verticalScroll();
	}
}
function addToCart3(prodid,url){	
	return addToCartFinal(url,{product_id:prodid,quantity:1})
}

function addToCart2(prodid,isbrand,url){	
	if(isbrand){
		return addToCartFinal("/shoppingcart/add_branding",{branding_id:prodid,quantity:1})
		
	}else{
		return addToCartFinal("/shoppingcart/add",{product_id:prodid,quantity:1})
	}
}
function addToCartFinal(url,data){
	this.isDone = function(data){
		if(data.success){
			setShoppingCart();			
			try{
				$("#total_items").html(data.size);
			}catch(e){}
		}else{
			alert(data.message);
		}
	}
	$.post(url,data,this.isDone,'json')
}

function editBurger(id,brand){	
	$.post("/shoppingcart/remove_burger_from_cart_and_edit",{item_id:id,is_brand:brand},function(data){
		if(data.success){
			window.location = "/buildaburger/step1";
		}else{
			alert(data.message);
		}
	},'json')
}
function editCompositeItem(id,type){	
	$.post("/shoppingcart/remove",{cartitem_id:id,quantity:1},function(data){
		if(data.success){
			setShoppingCart()
			loadURL('/builder/home/'+type+'/'+data.product_id)
		}else{
			alert(data.message);
		}
	},'json')
}

function removeCartItem(prodID){
	$.post("/shoppingcart/remove",{cartitem_id:prodID,quantity:1},function(data){
		if(data.success){
			setShoppingCart()
		}else{
			alert(data.message);
		}
	},'json')
}
function removeBrandItem(brandID){
	$.post("/shoppingcart/removebrand",{cartitem_id:brandID,quantity:1},function(data){
		if(data.success){
			setShoppingCart()
		}else{
			alert(data.message);
		}
	},'json')
}
function datediff(d1,d2,options){
	var o = $.extend({
		values:"wdhms"	
	},options)
	var diff = new Date();
	diff.setTime(Math.abs(d1.getTime() - d2.getTime()));
	
	var timediff = diff.getTime();
	this.diff = timediff;
	this.weeks = false;
	if(o.values.lastIndexOf('w')>=0){
		this.weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
		timediff -= weeks * (1000 * 60 * 60 * 24 * 7);
	}
	this.days = false;
	if(o.values.lastIndexOf('d')>=0){
		this.days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
		timediff -= days * (1000 * 60 * 60 * 24);
	}
	this.hours = false;
	if(o.values.lastIndexOf('h')>=0){
		this.hours = Math.floor(timediff / (1000 * 60 * 60)); 
		timediff -= this.hours * (1000 * 60 * 60);
	}
	this.minutes = false;
	if(o.values.lastIndexOf('m')>=0){
		this.minutes = Math.floor(timediff / (1000 * 60)); 
		timediff -= this.minutes * (1000 * 60);
	}
	this.seconds = Math.floor(timediff / 1000);
	 
	//timediff -= secs * 1000;
	//var str = ((hours>0)?hours+" Hours ":"") + mins+" Minutes"
	return  this;
}

function blockWin(data){
	
	var BW = this;
	this.d = joinObj({
		width:200,
		height:200,
		img:'/static/img/bgBlockcontent.png',
		content:'',
		loadURL:null,
		loadData:null,
		returnFunc:null,
		blockCSS:{},
		id:'block_content_inner'
	},data);
	var blockCSS = joinObj({
			width:BW.d.width - 40,
			padding:"20px",
			height:BW.d.height - 40,
			textAlign:"center",
			cursor:"default",
			fontWeight:"normal"
			
		},BW.d.blockCSS)
	var win = $(window)
	var scrollTop = win.scrollTop()
	var pos_y = !isNaN(d.height)?(((win.height()/2)+win.scrollTop()) - (d.height/2) - 30):win.height()/2-200;
	//var pos_y = !isNaN(d.height)?((win.height()/2) - (d.height/2) - 30):win.height()/2-200;
	
	if(pos_y<0)pos_y=0;
	
	var pos_x = (win.width()/2) - (d.width/2);

	var content_div = $("<div id=\""+BW.d.id+"\"></div>").css(blockCSS)
	content_div.bg_img = $("<img src='"+BW.d.img+"'/>").css({
		width:BW.d.width,
		height:BW.d.height,
		position:"absolute",
		zIndex:-1
	})
	$.blockUI({
        message: content_div.bg_img,  
        css: { 
        	top:pos_y,
        	left:pos_x,
            width:BW.d.width,
            height:BW.d.height, 
            border: 'none',         
            background:"transparent",
            textAlign:"left",
            zIndex:"1021",
            position:'absolute',
            fontWeight:"normal"
        },
        overlayCSS:{
        	zIndex:"1020"
        } 
	})
	
	content_div.bg_img.after(content_div)
	content_div.append(BW.d.content);
	
	this.doneload = function(){
		if(data.returnFunc != null){
			setTimeout(data.returnFunc,50);
		}
		
		//if(und(d.height)){
			//content_div.bg_img.attr('height',content_div.outerHeight())
			//content_div.bg_img.parent().css({top:(win.height()/2) - (content_div.outerHeight()/2) - 30})
		//}
	}
	
	if(data.loadURL){
		content_div.load(data.loadURL,data.loadData,BW.doneload)
	}else{
		BW.doneload()
	}
	content_div.resize = function(newx,newy){		
		x2 = parseCssString(newx?newx:BW.d.width);
		y2 = parseCssString(newy?newy:BW.d.height);
		
		var win = $(window)	
		var pos_y = (win.height()/2) - (y2/2);
		if(pos_y<0)pos_y=0;
		var pos_x = (win.width()/2) - (x2/2);
		
		var newDim = {
			height:y2,
			width:x2
		}
		var duration = 200
		content_div.bg_img.parent().animate($.extend({	
			top:pos_y,
			left:pos_x
		},newDim),duration)
		content_div.bg_img.animate(newDim,duration)
		content_div.animate({
			height:y2-40,
			width:x2-40
		},duration)
		
	}
	_Block_Window = content_div
	return content_div;
}

function parseCssString(val){
	if(typeof(val) == "string")val = parseInt(parseFloat(val.split("px")[0]))
	return val;
			
}
function NoCash(){
	return new Date().getTime()
}
function marketToGroup(bid){
	var MTG = this;
	this.win = blockWin({
		width:650,
		height:400,
		loadURL:"/community/share_with_group",
		returnFunc:function(){
			setShareBrand(bid)
		}
		
	})
	
}

function tweetThis(event,pid,bid){
	var tweet = this;
	var brandid = bid;
	tweet.popup = window.open("/twitter/stage_tweet/?brand="+bid,"twitter","width=800,height=400");
	tweet.popup.focus()
		
}
function tweetThis2(event,pid,bid){
	var tweet = this;
	var brandid = bid;
	
	blockWin({
		content:"<img src='/static/img/ajax.gif' style='margin-top:50px;'/>",
		width:400,
		height:230,
		loadURL:"/community/tweet?brand="+bid
		
	})
		
}
function emailThis(e,pid,bid){
	var Email = this;
	var url = "/fourmail/email_brand_form";
	
	if(pid){
		url+="?product_id="+pid;
	}else if(bid){
		url+="?brand_id="+bid;
	}
	var ET = this;
	this.win = blockWin({
		width:600,
		height:400,
		content:"<img src='/static/img/ajax.gif' style='margin-top:50px;'/>",
		loadURL:url,
		returnFunc:function(){
			
				ET.win.find(".orangeButton").customButton();
				ET.win.find(".greyButton").customButton();

				var message = ET.win.find("#personal_message");
				message.emptyText();
				
		
				ET.win.find("#email_btn").click(function(){
					var statusmsg = $(document.createElement("div")).append("Sending email..");
					ET.win.parent().block({message:statusmsg});
					var msg = message.hasClass("valid")?message.val():"";
					

					var f = {
						item_id:ET.win.find("input:hidden[name='item_id']").val(),
						type:ET.win.find("input:hidden[name='type']").val(),
						message:msg,
						first_name:ET.win.find("#first_name").val(),
						to_email:ET.win.find("#to_email").val()
					}
					
						
					$.post("/fourmail/email_marketing",f,function(data){
						if(!validateForm(ET.win,data)){
							ET.win.parent().unblock();
						}else{
							$.unblockUI();
						}
						
					},'json')
					
				})
				
				
		}
	})
}

function fbs_click(e,p) { 
	var x = new myevent(e);
	x.cancelBubble();
	if(p){
		u = "http://"+_hostName+"/products/share/"+p;
	}else{
		u="http://"+_hostName+"/products/share/"+_fbBurgerID;
	}
	if(!isNaN(parseInt(_userid))){
		u += "/"+_userid;
	}

	t="4Food share"; 
	
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t), 'sharer', 'toolbar=0, status=0, width=626, height=436'); 
	return false; 
}
$.fn.verticalScroll = function(){
	var t = this;
	t.mousewheel(function(event,intdelta){
		t[0].scrollTop -= intdelta *6;
		event.preventDefault();
	});	
	return this;
}
$.fn.horizontalScroll = function(){
	var t = this;
	t.mousewheel(function(event,intdelta){
		t[0].scrollLeft -= intdelta *6;
		event.preventDefault();
	});	
	return this;
}
function toNumber(x){
	if(x){
		return parseInt(x);
	}else{
		return 0;
	}
}

$.fn.bgImage = function(options){
	var data = $.extend({
		img:'/static/img/bgBlockcontent.png',
		css:$.extend((options?options.css:null),{marginTop:10,marginLeft:15,marginRight:15})
	},options)
	var obj = this;
	var objWidth = this.outerWidth();
	var objHeight = this.outerHeight();
	obj.css({textAlign:"left"})
	
	if(data.css.margin){
		data.css.marginRight = data.css.margin;
		data.css.marginLeft = data.css.margin;
		data.css.marginTop = data.css.margin;
		data.css.marginBottom = data.css.marginBottom;
	}
	
	var win = $(window);
	this.img = $("<img src='"+data.img+"' class='bg_image'/>").css({
		width:objWidth,
		height:objHeight, 
		marginBottom:-objHeight,
		marginRight:-objWidth,
		position:"relative",
		zIndex:1
	})
	
	this.content = $("<div class=\"content_inner\"></div>").css($.extend({
		width:(objWidth -(toNumber(data.css.marginRight) + toNumber(data.css.marginLeft))),
		height:objHeight - (toNumber(data.css.marginTop)+toNumber(data.css.marginBottom)),
		cursor:"default",
		background:"transparent",
		position:"relative",
		zIndex:2
	},data.css))

	this.content.append(obj.html());
	obj.html(this.img)
	this.img.after(this.content)	
	
	return this;
}

function declineGroupOrder(goid){
	if(confirm("Are you sure you would like to remove yourself from this feast?")){
		var p = {group_order_id:goid,status:4}
		$.post("/checkout/group/participant_set_status",p,function(data){
			if(data.success){
				loadURL("/");
			}else{
				alert(data.message)
			}
		},'json')
	}
}
function cancelFeast(){
	if(confirm("Once canceled there is no comming back are you sure?")){
		$.post("/feast/cancel",{},function(data){
			if(!data.success){
				alert(data.message)
			}
			fullRefresh()
		},"json")
	}
}
function addGuestToFeast(fname,fid){
	var w = blockWin({
		width:340,
		height:210,
		content:"<div id='popup_header'><span>Invite to "+fname+"</span></div><hr/><br/>"+
			"<input type='hidden' value='"+fid+"' name='id'/>"+
			"<table><tr><td>Name&nbsp</td><td style='padding-bottom:5px;'><input type='text' name='name'></td></tr>"+	
			"<tr><td>Email&nbsp;</td><td><input type='text' name='email'></td></tr>"+
			"</table><br/><div class='orangeButton' style='width:120px;float:right;'>Send fVite</div>"+
			"<div id='cancelbtn' class='greyButton' style='cursor:pointer;width:120px;float:left;'>Cancel</div></center>",
		returnFunc: function(){
			w.find(".orangeButton").customButton().click(send_invite)
			
			w.find("input[name='name']").focus()
			w.find("#cancelbtn").customButton().click(function(){
				$.unblockUI();	
			})
		}
	})
	function send_invite(){
		w.block()
		var p = getJsonValues(w)
		$.post("/feast/add_guest",p,function(data){
			if(!data.success){
				alert(data.message)
				w.unblock()
			}
			fullRefresh()
		},'json')
	}
}
function removeGroupUser(attid,uname,remove_status){
	if(!uname){
		uname = "this user";
	}
	if(confirm("Are you sure you would like to remove "+uname+" from this feast?")){
		var p = {id:attid}
		$.post("/feast/remove_guest",p,function(data){
			if(!data.success){
				alert(data.message)
			}
			fullRefresh()
		},'json')

	}
}
function checkout(isFinal){
	if(isFinal){
		window.location = "/checkout/confirm/";	
	}else{
		window.location = "/checkout/check_upsell";
	}
}
$.fn.emptyText = function(options){
	var placeholderSupport = ("placeholder" in document.createElement("input"))
	var opt = $.extend({color:"#ccc"},options)
	
	this.each(function(){		
		var i = $(this);
		var text = i.attr("placeholder")
		
		if(!placeholderSupport){
			i.css({color:opt.color}).val(text);			
		}
		i.bind("focus",function(){		
			if(!i.hasClass("valid")){
				if(!placeholderSupport){
					i.css({color:"#000000"}).val("");
				}
				i.addClass("valid");
			}
		}).blur(function(){			
			if(i.val().trim().length <=0){
				i.reset();
			}
		})
		i.reset = function(){	
			if(!placeholderSupport)i.css({color:opt.color}).val(text);
			i.removeClass("valid");
		}	
	})
	
	return this;
}
function openVideo(ytid){
	blockWin({
		width:500,
		height:450,
		blockCSS:{paddingTop:10},
		loadURL:"/youtube/watch_video?id="+ytid,
		returnFunc:this.doneLoad
	})
}
function deleteVideo(btn,burger_id,brand_id,ytid){
	var b = $(btn).parents("div.brand_item")
	b.block({message:_loadImg})
	console.log("brand_id="+brand_id);
    console.log("burger_id="+burger_id);
	$.post("/youtube/delete_video",{video_id:ytid,brand_id:brand_id},function(data){
		if(!data.success){
			alert(_json.serialize(data));
		}
        $.unblockUI();
        uploadVideo(burger_id)

	},"json")

}
function circle(p,r,startXY,off){
	var C = this;
	this.radius = r;
	this.numpoints = p;
	this.origX = startXY.x;
	this.origY = startXY.y;
	this.alpha = Math.PI *2 / p;
	
	this.points = new Array(p);
	for(x=0;x<p;x++){
		var theta = (this.alpha * x);
		var np = {x:((Math.cos(theta)*this.radius)+this.origX) - (off*x),y:(Math.sin(theta)*this.radius)+this.origY};
		this.points[x] = np
	}
	this.draw = function(targ,vals){
		
		for(var p=0;p<C.points.length;p++){
		
			var d = $("<div class='dot val_"+vals[p]+"'></div>");
			d.css({
				top:C.points[p].y,
				left:C.points[p].x
			})
			targ.append(d)
		}
	}
	return this
}

$.fn.attention = function(opts){
	var ATT = this;
	var options = $.extend({colors:['#F79720','#00535E']},opts)

	this.animateChar = function(obj,x){
		try{
			if(x<0 || x>= options.colors.length){
				x=0;
			}
		
			obj.animate({color:options.colors[x]},"slow","swing",function(){
				x++;
				ATT.animateChar(obj,x)	
			})
			
		}catch(e){}
	}
	
	this.interval = 0
	
	this.each(function(){
		ATT.animateChar($(this),0)
	})

	return this	
}
function updateBurgerBrandingImage(img_url){
    console.log(img_url);
    $("#brand_image").attr("src",img_url);
}

function uploadVideo(burger_id){
    console.log("uploadVideo burger_id="+burger_id);
    var win = blockWin({
        width: 670,
        height:520, 
        loadURL:"/burgermarketing/upload_video/"+burger_id,
        returnFunc:function(){
            win.find(".customButton").customButton()
            win.find(".round").corner();
            $("#btn_submit").click(function(){
                socialShareBurger(burger_id)
            })

        }
    })
}

function nameYourBurger(bid,brand){
	var win = blockWin({
		width: 770,
        height:560, 
        loadURL:"/burgermarketing/view_branding?burger_id="+bid+(brand?"&brand_id="+brand:""),
        returnFunc:function(){
 			var formdata = win.find("#burgerBrandForm")
        	win.find(".customButton").customButton()
        	win.find(".round").corner()
			totalNutrition("burger2_"+bid);
			win.find("#btn_submit").click(function(){	
				win.block();
				win.find("#brand_target").unbind('load').bind('load',function(){
					var d = this.contentWindow.document.body.innerHTML
					try{
						var j = JSON.parse(d);
						if(validateForm(formdata,j)){
							loadURL("/")
							$.unblockUI();
						}else{
							win.unblock();
						}
					}catch(e){
						alert("Something went wrong!"+e)
						$("#brand_target").css({width:200,height:200})
						
					}	
					
				})
				formdata.attr({
					target:"brand_target",
					action:"/burgermarketing/set_branding"	
				}).submit();		
			})
		}
	})

}
function socialShareBurger(burger_id){
    console.log("share burger")
    var win = blockWin({
        width: 225,
        height:250, 
        loadURL:"/burgermarketing/share/"+burger_id,
        returnFunc:function(){
            win.find(".customButton").customButton();
        	win.find(".round").corner();
            console.log("we got social");

        }
    })

}

function openStory(){
	_popupContent = blockWin({
		width:689,
		height:489,
		loadURL:"/static/html/story.html"			
	})
}
function openCalculator(){
	_popupContent = blockWin({
		width:689,
		height:489,
		loadURL:"/static/html/calculator.html"			
	})
}
function joinSocialGroup(gid,gname){
	var group_name = gname !=null?gname:'{{group.name}}';
	var url = "/community/group/join";
	var p = {group_id:gid}
	$.post(url,p,function(data){
		if(data.success){
			alert("You're now a member of the "+group_name+" 4Food group");
			window.location.reload()
		}else{
			alert("Error: "+data.error);
		}
	},'json');
}

function leaveSocialGroup(gid){
	var url = "/community/group/leave";
	var p = {group_id:gid}
	$.post(url,p,function(data){
		if(data.success){
			window.location.reload()
		}else{
			alert("Error: "+data.error);
		}
	},'json');
}
function setExtraPanel(obj){
	var pl = $("#extras_placeholder")
	if(pl.size()>0){
		$("#extras_placeholder").html(obj.show()).show()
	}
}
function commentToggle(img){
	var b = $("#right_comment_div")
	b.slideToggle("normal",function(){
		if(!b.is(":visible")){
			$(img).attr('src','/static/img/collapse.png');
		}else{
			$(img).attr('src','/static/img/collapse2.png');
		}
	});
}
function sendCommentPanel(){
	var c = $("#id_comment")
	var form = $("#comment_form")
	if(c.hasClass('valid')){
		form.hide();
		form.next().show();
		form.submit()
	}else{
		alert("You must enter a comment")
	}
}
function postCommentDone(){
	var form = $("#comment_form")
	form.next().hide();		
	form.show();
	$("#id_comment").val("").blur()
	
	loadPage(1)
}	
function toggleFeastDescription(btn){
	var b = $(btn)
	b.next().slideToggle("fast",function(){
			if(b.next().is(":visible")){
				b.attr('src','/static/img/info_btn2.png')	
			}else{	
				b.attr('src','/static/img/info_btn.png')	
			}
	})
}
function exitHawker(){
	$.post('/hawker/exit',function(data){
		
		fullRefresh("/hawker")
	},'json')	
}
$.fn.customSelect = function(retFunc){
	this.css({
		position: 'relative',
		opacity: 0,
		filter: 'alpha(opacity=0)',
		zIndex:5,
		zIndex: 5
	})
	this.each(function(){
		var span = $(document.createElement("div"));	
		var t = $(this);
		option = t.find("option");
		var active = "Select"
		if(option.length > 0){
			active = option[0].childNodes[0].nodeValue;
		}
		textnode = document.createTextNode(active);
		for(b = 0; b < option.length; b++) {
			if(option[b].selected == true) {
				textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
			}
		}
		span.addClass("selectButton");
		span[0].id = "select" + t[0].name;
		span.append(textnode);
		var w = t.width();
		if(w<=0){w = parseInt(t.css("width").split("px")[0])};
		span.css({
			marginBottom:'-23px',
			width:w+2,
			marginRight:-w+2
		})					
		t.before(span);		
		span.customButton({rightWidth:20,height:20});
		
		if(!t.attr("disabled")) {
			t.change(function(){
				span.html(t.find("option:selected").html())			
			}).keyup(function(){
				span.html(t.find("option:selected").html())
			})
			
		} else {
			span.addClass(" disabled");
		}
			
	})	
	if(retFunc){
		retFunc();
	}	
	return this;
}