var checkout = AspectScript.i13n.varWrite("checkout",AspectScript.i13n.wrap(function(){return (function checkout(list){ {var checkout = arguments.callee = arguments.callee.wrapper;var byPay = (AspectScript.i13n.varWrite("byPay", 0, undefined)); AspectScript.i13n.call2((AspectScript.i13n.varRead("list",list)),"map",[AspectScript.i13n.wrap(function(){return (function (product){ {arguments.callee = arguments.callee.wrapper;byPay = AspectScript.i13n.varWrite("byPay", byPay + AspectScript.i13n.call2((AspectScript.i13n.varRead("product",product)),"getPrice",[],this), byPay); }})})],this); return (AspectScript.i13n.varRead("byPay",byPay)); }})}),undefined); var Product = AspectScript.i13n.varWrite("Product",AspectScript.i13n.wrap(function(){return (function Product(id,name,price){ {var Product = arguments.callee = arguments.callee.wrapper;AspectScript.i13n.propWrite(this,"getPrice",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;return (AspectScript.i13n.varRead("price",price)); }})})); AspectScript.i13n.propWrite(this,"setPrice",AspectScript.i13n.wrap(function(){return (function (newPrice){ {arguments.callee = arguments.callee.wrapper;price = AspectScript.i13n.varWrite("price", (AspectScript.i13n.varRead("newPrice",newPrice)), price); }})})); AspectScript.i13n.propWrite(this,"getId",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;return (AspectScript.i13n.varRead("id",id)); }})})); AspectScript.i13n.propWrite(this,"toString",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;return (AspectScript.i13n.varRead("name",name)) + " $:" + (AspectScript.i13n.varRead("price",price)); }})})); }})}),undefined); var productFactory = AspectScript.i13n.varWrite("productFactory",AspectScript.i13n.wrap(function(){return (function productFactory(id){ {var productFactory = arguments.callee = arguments.callee.wrapper;switch((AspectScript.i13n.varRead("id",id))){ case 0: { return AspectScript.i13n.creation(3,AspectScript.i13n.propRead(AspectScript.globalObject,"Product"),[0, "Jacket 1", 100]); } case 1: { return AspectScript.i13n.creation(3,AspectScript.i13n.propRead(AspectScript.globalObject,"Product"),[1, "Jacket 2", 110]); } case 2: { return AspectScript.i13n.creation(3,AspectScript.i13n.propRead(AspectScript.globalObject,"Product"),[2, "Jacket 3", 120]); } case 3: { return AspectScript.i13n.creation(3,AspectScript.i13n.propRead(AspectScript.globalObject,"Product"),[3, "Jacket 4", 130]); } default: { throw "Error, there is no product with this id" } } }})}),undefined); var createFunClick = AspectScript.i13n.varWrite("createFunClick",AspectScript.i13n.wrap(function(){return (function createFunClick(i){ {var createFunClick = arguments.callee = arguments.callee.wrapper;return AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;var p = (AspectScript.i13n.varWrite("p", AspectScript.i13n.call(AspectScript.globalObject,AspectScript.i13n.propRead(AspectScript.globalObject,"productFactory"),[(AspectScript.i13n.varRead("i",i))],this), undefined)); AspectScript.i13n.propWrite(AspectScript.i13n.call2(AspectScript.i13n.propRead(AspectScript.globalObject,"document"),"getElementById",["cart"],this),"value",document.getElementById("cart").value + "-" + (AspectScript.i13n.varRead("p",p)) + "\n"); AspectScript.i13n.call2(AspectScript.i13n.propRead(AspectScript.globalObject,"cart"),"addProduct",[(AspectScript.i13n.varRead("p",p))],this); }})}); }})}),undefined); var cart = AspectScript.i13n.propWrite(AspectScript.globalObject, "cart", AspectScript.i13n.creation2(function(){var $__this__=arguments[0];arguments=arguments[1];AspectScript.i13n.propWrite($__this__, "list",AspectScript.i13n.creation4([]));AspectScript.i13n.propWrite($__this__, "addProduct",AspectScript.i13n.wrap(function(){return (function (product){ {arguments.callee = arguments.callee.wrapper;AspectScript.i13n.call2(AspectScript.i13n.propRead(this,"list"),"push",[(AspectScript.i13n.varRead("product",product))],this); }})}));AspectScript.i13n.propWrite($__this__, "getProducts",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;return AspectScript.i13n.propRead(this,"list"); }})}));AspectScript.i13n.propWrite($__this__, "view",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;}})}));},this,null)); for(var i = AspectScript.i13n.propWrite(AspectScript.globalObject, "i", 1);AspectScript.i13n.propRead(AspectScript.globalObject,"i") < 5;AspectScript.i13n.propIncr(AspectScript.globalObject,"i",1,false)){ AspectScript.i13n.propWrite(AspectScript.i13n.call2(AspectScript.i13n.propRead(AspectScript.globalObject,"document"),"getElementById",["p" + AspectScript.i13n.propRead(AspectScript.globalObject,"i")],this),"onclick",AspectScript.i13n.call(AspectScript.globalObject,AspectScript.i13n.propRead(AspectScript.globalObject,"createFunClick"),[AspectScript.i13n.propRead(AspectScript.globalObject,"i") - 1],this)); } AspectScript.i13n.propWrite(AspectScript.i13n.call2(AspectScript.i13n.propRead(AspectScript.globalObject,"document"),"getElementById",["co"],this),"onclick",AspectScript.i13n.wrap(function(){return (function (){ {arguments.callee = arguments.callee.wrapper;AspectScript.i13n.call(AspectScript.globalObject,AspectScript.i13n.propRead(AspectScript.globalObject,"alert"),["Total: " + AspectScript.i13n.call(AspectScript.globalObject,AspectScript.i13n.propRead(AspectScript.globalObject,"checkout"),[AspectScript.i13n.call2(AspectScript.i13n.propRead(AspectScript.globalObject,"cart"),"getProducts",[],this)],this)],this); }})}));