Object.extend(String.English,{});Pantryweb=SC.Object.create({server:SC.Server.create({prefix:["Pantryweb"],urlFormat:"/%@/%@/"}),FIXTURES:[]});require("core");Pantryweb.ItemGridHeaderView=SC.View.extend({emptyElement:'<div><div class="name">Name</div><div>Quantity</div><div>Keep in Stock</div><div>Refill Below</div></div>'});require("core");Pantryweb.ItemGridRowView=SC.View.extend({emptyElement:"<div></div>",content:null,rowStyle:function(a,b){if(b!==undefined){this.removeClassName("item-grid-row-a-style");this.removeClassName("item-grid-row-b-style");if(b==0){this.addClassName("item-grid-row-a-style")}else{this.addClassName("item-grid-row-b-style")}}else{return 0}}.property(),prepareForReuse:function(){this.set("content",null);this.set("selected",false);this.removeClassName("item-grid-row-a-style");this.removeClassName("item-grid-row-b-style")},isDirty:function(a,b){if(b!==undefined){if(b==true){this.render()}}else{return false}}.property(),render:function(){var c=[];var a=this.get("content");if(a!=null){c.push('<div class="name">');c.push(a.get("name"));c.push("</div>");var d=a.get("quantity");d=(d==999)?"LOW":d;c.push("<div>");c.push(d);c.push("</div>");var b=a.get("keepInStock");b=(b==0)?"No":"Yes";c.push("<div>");c.push(b);c.push("</div>");c.push("<div>");c.push(a.get("refillAt"));c.push("</div>")}c=c.join("");this.set("innerHTML",c)}.observes("content"),_isSelected:false,selected:function(a,b){if(b!==undefined){if(b){this.addClassName("item-grid-row-selected-style")}else{this.removeClassName("item-grid-row-selected-style")}this.set("_isSelected",b)}else{return this.get("_isSelected")}}.property()});require("core");require("views/item_grid_header");require("views/item_grid_row");Pantryweb.ItemGridView=SC.View.extend({emptyElement:"<div></div>",content:[],contentBindingDefault:SC.Binding.MultipleNotEmpty,selectedRow:null,selectedItem:null,exampleHeaderView:Pantryweb.ItemGridHeaderView,exampleRowView:Pantryweb.ItemGridRowView,_insertHeaderView:function(){var a=this._headerView;if(!a){a=this.get("exampleHeaderView").create();a.addClassName("item-grid-header-style");this._headerView=a}if(a.get("parentNode")!=this){this.appendChild(a)}return a},_insertRowView:function(c){var b=SC.guidFor(c);var a=this._rowViewsByContent[b];if(!a){a=this._rowViewPool.pop()||this.get("exampleRowView").create();a.prepareForReuse();a.addClassName("item-grid-row-style");a.set("content",c);this._rowViewsByContent[b]=a;this._rowViewsByGuid[SC.guidFor(a)]=a}if(a.get("parentNode")==this){this.removeChild(a)}this.appendChild(a);return a},_removeRowView:function(a){var c=a.get("content");var b=SC.guidFor(c);delete this._rowViewsByContent[b];delete this._rowViewsByGuid[SC.guidFor(a)];a.removeFromParent();if(a.get("selected")==true){this.set("selectedRow",null);this.set("selectedItem",null)}a.prepareForReuse();this._rowViewPool.push(a);return a},isDirty:function(a,b){if(b!==undefined){if(b==true){this.render()}for(i=0;i<this.childNodes.length;i++){this.childNodes[i].set("isDirty",true)}}else{return false}}.property(),render:function(){var f=this.get("content");if(this.get("exampleHeaderView")!=null){this._insertHeaderView()}var b={};for(i=0;i<f.length;i++){var e=f.objectAt(i);var c=SC.guidFor(e);var a=this._insertRowView(e);if(a){a.set("rowStyle",Math.floor(i%2));b[c]=a;delete this._rowViewsByContent[c]}}for(var c in this._rowViewsByContent){if(!this._rowViewsByContent.hasOwnProperty(c)){continue}var d=this._rowViewsByContent[c];this._removeRowView(d)}this._rowViewsByContent=b}.observes("content","selectedRow"),gridSelect:function(a){this.set("selectedRow",a);var b=this.get("content");if(a>=0&&a<b.length){this.set("selectedItem",b.objectAt(a))}else{this.set("selectedItem",null)}},hasItemView:function(a){if(!this._rowViewsByGuid){this._rowViewsByGuid={}}return !!this._rowViewsByGuid[SC.guidFor(a)]},itemViewForEvent:function(b){var a=SC.window.firstViewForEvent(b);if(!a){return null}do{if(a==this){return null}if(this.hasItemView(a)){return a}}while(a=a.get("parentNode"));return null},mouseDown:function(c){var b=this.get("selectedRow");if(b){b.set("selected",false)}var a=this.itemViewForEvent(c);a.set("selected",true);this.set("selectedRow",a);this.set("selectedItem",a.get("content"))},_headerView:null,_rowViewsByContent:null,_rowViewsByGuid:null,_rowViewPool:null,init:function(){this._headerView=null;this._rowViewsByContent={};this._rowViewsByGuid={};this._rowViewPool=[];arguments.callee.base.apply(this,arguments)}});require("core");require("views/item_grid_row");Pantryweb.DefaultItemGridRowView=Pantryweb.ItemGridRowView.extend({render:function(){var b=[];var a=this.get("content");if(a!=null){b.push('<div class="name">');b.push(a.get("name"));b.push("</div>")}b=b.join("");this.set("innerHTML",b)}.observes("content"),});require("core");require("views/item_grid");require("views/default_item_grid_row");Pantryweb.DefaultItemGridView=Pantryweb.ItemGridView.extend({exampleHeaderView:null,exampleRowView:Pantryweb.DefaultItemGridRowView,});require("core");Pantryweb.LoginView=SC.View.extend({awake:function(){}});require("core");Pantryweb.shoppinglistController=SC.Object.create({mouseDown:function(){alert("Feature Not Yet Available\n\nThis is an early beta preview of Pantry Cloud. Please check back in a few days as we add functionality.")}});require("core");Pantryweb.DefaultItem=SC.Record.extend({properties:["name","category","lang"],resourceURL:"access/defaults"});require("core");Pantryweb.itemsController=SC.CollectionController.create({dataSource:Pantryweb.server,internalCategory:"Shopping List",selectedItem:null,filteredObjects:function(a,c){if(c!==undefined){}else{var b=this.get("arrangedObjects").clone();return b.filter(this.objectFilter,this)}}.property("arrangedObjects","selectedCategory"),objectFilter:function(c,b,a){if(this.get("internalCategory")=="Shopping List"){return c.get("needsOrdering")}else{return(c.get("category")==this.get("internalCategory"))}},selectedCategory:function(a,b){if(b!==undefined){this.set("internalCategory",b.get("nameKey"));this.set("selectedItem",b)}else{return this.get("selectedItem")}}.property("selectedItem")});require("core");Pantryweb.Item=SC.Record.extend({properties:["name","category","quantity","refillAt","keepInStock"],postFormat:"rest",dataSource:Pantryweb.server,resourceURL:"access/items",needsOrdering:function(a,b){if(b!==undefined){}else{if(this.get("quantity")===999){return YES}else{return(this.get("keepInStock")==1&&this.get("quantity")-this.get("refillAt")<0)}}}.property("quantity","refillAt"),setUpdateURL:function(a,b){this.set("updateURL","/access/items/update/?id="+this.get("guid"))}.observes("guid"),setDestroyURL:function(a,b){this.set("destroyURL","/access/items/destroy/?id="+this.get("guid"))}.observes("guid"),isLow:function(a,b){if(b!==undefined){if(b==true){this.set("quantity",999)}else{this.set("quantity",0)}}else{return(this.get("quantity")==999)}}.property("quantity"),});require("core");require("controllers/items");require("models/item");Pantryweb.addRemoveController=SC.CollectionController.create({dataSource:Pantryweb.server,_isShown:false,filterText:null,selectedItem:null,categoryCache:null,filterObjects:function(){var a=SC.page.getPath("addItemPane.itemScroller.items");a.set("content",this.get("filteredObjects"))}.observes("filterText"),fetchCategoryItems:function(){var b=this.get("arrangedObjects").clone();var a=b.filter(this.categoryFilter,this);this.set("categoryCache",a)}.observes("arrangedObjects"),filteredObjects:function(b,d){if(d!==undefined){}else{var c=this.get("categoryCache").clone();var a=c.filter(this.filterField,this);return a}}.property("categoryCache"),categoryFilter:function(d,b,a){var c=Pantryweb.itemsController.get("selectedItem");if(c!=null){if(d.get("category")==c.get("nameKey")){return true}}return false},filterField:function(e,d,c){var f=this.get("filterText");if(f==""||f==null){return true}else{var b=e.get("name").toLowerCase();var a=f.toLowerCase();return(b.match(a)!=null)}},showAddPane:function(a,b){if(b!==undefined){if(b==true){SC.page.get("addItemPane").removeClassName("hidden-pane-init");this.fetchCategoryItems();var c=SC.page.getPath("addItemPane.itemScroller.items");c.set("content",this.get("filteredObjects"))}this.set("_isShown",b)}else{return this.get("_isShown")}}.property(),dismiss:function(){this.set("showAddPane",false)},doAdd:function(){var e=this.get("selectedItem");var g=this.get("filterText");var d="";var b=Pantryweb.itemsController.get("selectedItem");if(b!=null){var c=b.get("nameKey")+"";if(e){d=e.get("name")}else{if(g&&g!=""){d=g}}if(d!=""){var a=Pantryweb.Item.newRecord({name:d,category:c,quantity:0,refillAt:0,keepInStock:1},Pantryweb.Item.dataSource);a.set("dataSource",Pantryweb.server);a.commit();var f=SC.page.getPath("content.itemTable.items");f.set("isDirty",true)}}this.dismiss()},mouseDown:function(){var a=Pantryweb.itemsController.get("selectedCategory");if(a!=null&&a!=""){this.set("filterText",null);var b=SC.page.getPath("addItemPane.itemScroller.items");b.set("content",this.get("filteredObjects"));this.set("showAddPane",true)}}});require("core");require("models/default_item");require("controllers/add_remove");Pantryweb.cloudController=SC.Object.create({uName:null,pWord:null,rememberMe:true,performLogin:function(){var a="/access/login/?name=%@&password=%@&remember=%@".fmt(this.get("uName"),this.get("pWord"),this.get("rememberMe"));new Ajax.Request(a,{method:"get",asynchronous:false,onSuccess:this.loginDidSucceed.bind(this),onFailure:this.loginDidFail.bind(this)})},loginDidSucceed:function(a){if(a.transport.responseText==="accepted"){this.loginSuccess()}else{Pantryweb.errordialogController.set("errorName","Incorrect Pantry Name or Password.");Pantryweb.errordialogController.set("errorDescription","You entered an incorrect pantry name or password. Please check your input and try again.");Pantryweb.errordialogController.set("showErrorDialog",true)}},loginSuccess:function(){var f=Pantryweb.Item.collection();Pantryweb.itemsController.set("content",f);Pantryweb.server.listFor({recordType:Pantryweb.Item});var c=SC.page.get("login");c.transitionTo(1,"opacity: 0.0");c.transitionTo(1,"top: -50px");var b=SC.page.get("appWindow");b.setStyle("display: block");b.transitionTo(1,"opacity: 1.0");var e=SC.page.get("content");e.setStyle("display: block");e.transitionTo(1,"opacity: 1.0");var d=SC.page.getPath("content.slContainer.sourceList");d.updateChildren(true);var a=Pantryweb.DefaultItem.collection();Pantryweb.addRemoveController.set("content",a);Pantryweb.server.listFor({recordType:Pantryweb.DefaultItem})},checkLoginSuccess:function(a){if(a.transport.responseText=="1"){this.loginSuccess()}},checkIfLoggedIn:function(){var a="/access/check/";new Ajax.Request(a,{method:"get",asynchronous:false,onSuccess:this.checkLoginSuccess.bind(this),onFailure:function(b){return false},})},loginDidFail:function(a){alert("Unable to communicate with ThinkFresher servers. Please try again later.")},});require("core");Pantryweb.sourcelistController=SC.CollectionController.create({dataSource:Pantryweb.server,allowsMultipleSelection:NO,allowsEmptySelection:NO,});require("core");Pantryweb.Category=SC.Record.extend({properties:["icon","nameKey","categoryTypeKey"],resourceURL:"access/categories",name:function(a,b){if(b!==undefined){}else{return unescape(this.get("nameKey"))}}.property("nameKey"),categoryType:function(b,c){if(c!==undefined){}else{var a=this.get("categoryTypeKey");return a}}.property("categoryTypeKey")});require("controllers/sourcelist");require("models/category");function main(){var a=Pantryweb.Category.collection();Pantryweb.sourcelistController.set("content",a);Pantryweb.server.listFor({recordType:Pantryweb.Category});SC.page.awake();Pantryweb.cloudController.checkIfLoggedIn()}require("core");Pantryweb.itemDetailsController=SC.Object.create({items:null,selectedItem:null,loadItemDetails:function(){var b=this.get("selectedItem");var a=SC.page.getPath("content.details");if(b){a.set("isVisible",true);a.removeClassName("hidden-pane-init");var c=a.get("itemName");c.set("value",b.get("name"))}else{a.set("isVisible",false)}}.observes("selectedItem"),registerChange:function(a){a.commit();var b=SC.page.getPath("content.itemTable.items");b.set("isDirty",true)},runningLow:function(a,c){var b=this.get("selectedItem");if(c!==undefined){if(b){b.set("isLow",c);this.registerChange(b)}}else{if(b){return b.get("isLow")}return false}}.property("selectedItem"),quantity:function(a,c){var b=this.get("selectedItem");if(c!==undefined){var d=c;if(b){b.set("quantity",d);this.registerChange(b)}}else{if(b){if(b.get("isLow")==true){return 0}else{return b.get("quantity")}}else{return 0}}}.property("selectedItem"),refillBelow:function(a,c){var b=this.get("selectedItem");if(c!==undefined){var d=c;if(b){b.set("refillAt",d);this.registerChange(b)}}else{if(b){return b.get("refillAt")}else{return 0}}}.property("selectedItem"),keepInStock:function(a,c){var b=this.get("selectedItem");if(c!==undefined){if(b){if(c=="yes"){b.set("keepInStock",1)}else{b.set("keepInStock",0)}this.registerChange(b)}}else{if(b){return(b.get("keepInStock")==1)?"yes":"no"}return"yes"}}.property("selectedItem"),averagePrice:function(a,c){var b=this.get("selectedItem");if(c!==undefined){var d=c;if(b){b.set("price",d);this.registerChange(b)}}else{if(b){return b.get("price")}else{return 0}}}.property("selectedItem"),});require("core");Pantryweb.iphoneController=SC.Object.create({mouseDown:function(){location.href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=309002107&mt=8"},});require("core");Pantryweb.feedbackController=SC.Object.create({mouseDown:function(){location.href="http://www.thinkfresher.com/contact"},});require("core");require("controllers/item_details");Pantryweb.removeController=SC.Object.create({mouseDown:function(){var a=Pantryweb.itemDetailsController.get("selectedItem");if(a!=null){a.destroy()}}});require("core");Pantryweb.ToolbarButtonView=SC.ContainerView.extend({properties:["delegate"],mouseDown:function(a){this.invokeDelegateMethod(this.get("delegate"),"mouseDown",null)}});require("core");Pantryweb.errordialogController=SC.Object.create({errorName:"",errorDescription:"",_isShown:false,showErrorDialog:function(a,b){if(b!==undefined){if(b==true){SC.page.get("errorDialog").removeClassName("hidden-pane-init")}this.set("_isShown",b)}else{return this.get("_isShown")}}.property(),dismiss:function(){this.set("showErrorDialog",false)}});require("core");Pantryweb.expireditemsController=SC.Object.create({mouseDown:function(){alert("Feature Not Yet Available\n\nThis is an early beta preview of Pantry Cloud. Please check back in a few days as we add functionality.")}});