From b4ba2c45c2eddf9228d451f2e85efa74038c92b0 Mon Sep 17 00:00:00 2001 From: Jon Jensen Date: Fri, 5 Jan 2001 15:27:58 +0000 Subject: [PATCH 1/2] Initial revision --- art/.cvsignore | 1 + art/catalog.cfg | 525 +++++++++++++++++++++++++++ art/config/.empty | 1 + art/config/additional_fields | 116 ++++++ art/config/additional_help | 118 ++++++ art/config/blue1/leftside | 71 ++++ art/config/blue1/logobar | 168 +++++++++ art/config/blue1/menubottom | 26 ++ art/config/blue1/no_right | 3 + art/config/blue1/only_logo | 48 +++ art/config/blue1/rightside | 3 + art/config/brown1/leftside | 71 ++++ art/config/brown1/logobar | 168 +++++++++ art/config/brown1/menubottom | 26 ++ art/config/brown1/no_right | 3 + art/config/brown1/only_logo | 48 +++ art/config/brown1/rightside | 3 + art/config/postcopy_commands | 3 + art/config/precopy_commands | 13 + art/config/yellow1/leftside | 71 ++++ art/config/yellow1/logobar | 168 +++++++++ art/config/yellow1/menubottom | 26 ++ art/config/yellow1/no_right | 3 + art/config/yellow1/only_logo | 48 +++ art/config/yellow1/rightside | 3 + art/etc/area.recordnumber | 2 + art/etc/cat.recordnumber | 2 + art/etc/log_entry | 152 ++++++++ art/etc/log_transaction | 115 ++++++ art/etc/mail_receipt | 114 ++++++ art/etc/profiles.login | 22 ++ art/etc/profiles.order | 121 ++++++ art/etc/receipt.html | 99 +++++ art/etc/report | 95 +++++ art/etc/ship_notice | 139 +++++++ art/html/.empty | 1 + art/html/index.html | 214 +++++++++++ art/images/bg.gif | Bin 0 -> 43 bytes art/images/blue1/cart.png | Bin 0 -> 288 bytes art/images/blue1/go.png | Bin 0 -> 443 bytes art/images/blue1/logo.png | Bin 0 -> 17467 bytes art/images/blue1/menu.png | Bin 0 -> 4825 bytes art/images/blue1/submit.png | Bin 0 -> 222 bytes art/images/brown1/cart.png | Bin 0 -> 288 bytes art/images/brown1/go.png | Bin 0 -> 443 bytes art/images/brown1/logo.png | Bin 0 -> 17467 bytes art/images/brown1/menu.png | Bin 0 -> 3769 bytes art/images/brown1/submit.png | Bin 0 -> 222 bytes art/images/clear.gif | Bin 0 -> 43 bytes art/images/download.png | Bin 0 -> 2175 bytes art/images/items/00-0011.jpg | Bin 0 -> 2574 bytes art/images/items/00-0011a.png | Bin 0 -> 8525 bytes art/images/items/00-341.jpg | Bin 0 -> 2621 bytes art/images/items/00-342.jpg | Bin 0 -> 2929 bytes art/images/items/00-343.jpg | Bin 0 -> 2546 bytes art/images/items/19-203.jpg | Bin 0 -> 6333 bytes art/images/items/19-204.jpg | Bin 0 -> 6233 bytes art/images/items/21-221.jpg | Bin 0 -> 4184 bytes art/images/items/34-101.png | Bin 0 -> 2743 bytes art/images/items/chair_car.jpg | Bin 0 -> 3495 bytes art/images/items/golconde.jpg | Bin 0 -> 4154 bytes art/images/items/illumined_pleasures.jpg | Bin 0 -> 3228 bytes art/images/items/irises.jpg | Bin 0 -> 5058 bytes art/images/items/lastsupp.jpg | Bin 0 -> 3626 bytes art/images/items/loose_hair.jpg | Bin 0 -> 5015 bytes art/images/items/magnificat.jpg | Bin 0 -> 4416 bytes art/images/items/my_gems.jpg | Bin 0 -> 3087 bytes art/images/items/okeefe1.jpg | Bin 0 -> 2612 bytes art/images/items/okeeffe6.jpg | Bin 0 -> 4023 bytes art/images/items/paul_harlequin.jpg | Bin 0 -> 4289 bytes art/images/items/pol1.jpg | Bin 0 -> 5045 bytes art/images/items/pol2.jpg | Bin 0 -> 4506 bytes art/images/items/poweredby.gif | Bin 0 -> 2031 bytes art/images/items/tshirt.jpg | Bin 0 -> 3756 bytes art/images/items/two_fridas.jpg | Bin 0 -> 4168 bytes art/images/items/womanfan.jpg | Bin 0 -> 4011 bytes art/images/items/young_man.jpg | Bin 0 -> 3550 bytes art/images/mvlogo.png | Bin 0 -> 1435 bytes art/images/mvlogo_dark.png | Bin 0 -> 1197 bytes art/images/new.png | Bin 0 -> 213 bytes art/images/perl_id_313c.png | Bin 0 -> 3155 bytes art/images/poweredby.gif | Bin 0 -> 2031 bytes art/images/smallamex.png | Bin 0 -> 1137 bytes art/images/smalldisc.png | Bin 0 -> 1309 bytes art/images/smallmc.png | Bin 0 -> 913 bytes art/images/smallvisa.png | Bin 0 -> 929 bytes art/images/yellow1/cart.png | Bin 0 -> 288 bytes art/images/yellow1/go.png | Bin 0 -> 443 bytes art/images/yellow1/logo.png | Bin 0 -> 17467 bytes art/images/yellow1/menu.png | Bin 0 -> 3769 bytes art/images/yellow1/submit.png | Bin 0 -> 222 bytes art/mysql/affiliate.mysql | 9 + art/mysql/area.mysql | 11 + art/mysql/cat.mysql | 12 + art/mysql/country.mysql | 11 + art/mysql/inventory.mysql | 14 + art/mysql/merchandising.mysql | 12 + art/mysql/orderline.mysql | 27 ++ art/mysql/pricing.mysql | 19 + art/mysql/products.mysql | 25 ++ art/mysql/transactions.mysql | 54 +++ art/mysql/userdb.mysql | 56 +++ art/orders/.empty | 1 + art/pages/about.html | 43 +++ art/pages/account.html | 404 +++++++++++++++++++++ art/pages/action/get_password.html | 100 +++++ art/pages/browse.html | 120 ++++++ art/pages/browse1.html | 157 ++++++++ art/pages/canceled.html | 55 +++ art/pages/deliver.html | 34 ++ art/pages/examples/test_banner.html | 12 + art/pages/feedback.html | 98 +++++ art/pages/flypage.html | 215 +++++++++++ art/pages/index.html | 136 +++++++ art/pages/last_search.html | 14 + art/pages/login.html | 118 ++++++ art/pages/logout.html | 33 ++ art/pages/multi/b_address.html | 73 ++++ art/pages/multi/basket.html | 281 ++++++++++++++ art/pages/multi/checkout.html | 216 +++++++++++ art/pages/multi/final.html | 232 ++++++++++++ art/pages/multi/nobasket.html | 5 + art/pages/multi/shipping.html | 86 +++++ art/pages/new_account.html | 266 ++++++++++++++ art/pages/news.html | 254 +++++++++++++ art/pages/no_cookie.html | 28 ++ art/pages/ord/basket.html | 281 ++++++++++++++ art/pages/ord/checkout.html | 583 ++++++++++++++++++++++++++++++ art/pages/ord/nobasket.html | 5 + art/pages/privacy.html | 32 ++ art/pages/quantity.html | 94 +++++ art/pages/query/check_orders.html | 207 +++++++++++ art/pages/query/order_detail.html | 196 ++++++++++ art/pages/results.html | 122 +++++++ art/pages/special/feedback.html | 88 +++++ art/pages/special/needfield.html | 59 +++ art/pages/splash.html | 34 ++ art/pages/srchform.html | 273 ++++++++++++++ art/pgsql/area.pgsql | 14 + art/pgsql/cat.pgsql | 13 + art/pgsql/country.pgsql | 12 + art/pgsql/inventory.pgsql | 12 + art/pgsql/merchandising.pgsql | 12 + art/pgsql/orderline.pgsql | 28 ++ art/pgsql/pricing.pgsql | 20 + art/pgsql/products.pgsql | 25 ++ art/pgsql/transactions.pgsql | 52 +++ art/pgsql/userdb.pgsql | 60 +++ art/products/2ndDayAir.csv | 152 ++++++++ art/products/2ndDayAirAM.csv | 152 ++++++++ art/products/3DaySelect.csv | 151 ++++++++ art/products/3DaySelectRes.csv | 151 ++++++++ art/products/450.csv | 153 ++++++++ art/products/Ground.csv | 151 ++++++++ art/products/GroundComm.csv | 151 ++++++++ art/products/GroundRes.csv | 151 ++++++++ art/products/NextDayAir.csv | 152 ++++++++ art/products/NextDayAirSaver.csv | 152 ++++++++ art/products/access.asc | 6 + art/products/affiliate.txt | 9 + art/products/area.txt | 4 + art/products/banner.txt | 8 + art/products/cat.txt | 12 + art/products/country.txt | 198 ++++++++++ art/products/inventory.txt | 32 ++ art/products/locale.txt | 26 ++ art/products/merchandising.txt | 6 + art/products/mv_metadata.asc | 122 +++++++ art/products/orderline.txt | 1 + art/products/pricing.txt | 30 ++ art/products/products.txt | 30 ++ art/products/route.txt | 1 + art/products/salestax.asc | 1 + art/products/shipping.asc | 78 ++++ art/products/state.txt | 183 ++++++++++ art/products/transactions.txt | 1 + art/products/ups_zone.asc | 153 ++++++++ art/products/userdb.txt | 2 + art/products/variable.txt | 59 +++ art/session/.empty | 1 + art/special_pages/badsearch.html | 14 + art/special_pages/canceled.html | 17 + art/special_pages/cc_not_valid.html | 20 + art/special_pages/confirmation.html | 14 + art/special_pages/failed.html | 20 + art/special_pages/interact.html | 60 +++ art/special_pages/missing.html | 15 + art/special_pages/needfield.html | 47 +++ art/special_pages/nomatch.html | 12 + art/special_pages/noproduct.html | 15 + art/special_pages/notfound.html | 14 + art/special_pages/order_security.html | 24 ++ art/special_pages/reconfig.html | 12 + art/special_pages/sec_faq.html | 138 +++++++ art/special_pages/security.html | 32 ++ art/special_pages/violation.html | 72 ++++ art/templates/standalone | 12 + art/templates/standard | 12 + art/tmp/.empty | 1 + art/upload/.empty | 1 + barry/catalog.cfg | 491 +++++++++++++++++++++++++ barry/config/additional_fields | 103 ++++++ barry/config/additional_help | 83 +++++ barry/config/copyright | 17 + barry/config/leftonly | 152 ++++++++ barry/config/leftside | 164 +++++++++ barry/config/logobar | 25 ++ barry/config/menubar | 28 ++ barry/config/no_left | 8 + barry/config/no_right | 13 + barry/config/postcopy_commands | 3 + barry/config/precopy_commands | 13 + barry/config/rightside | 40 ++ barry/etc/area.recordnumber | 2 + barry/etc/cat.recordnumber | 2 + barry/etc/log_entry | 151 ++++++++ barry/etc/log_transaction | 115 ++++++ barry/etc/mail_receipt | 114 ++++++ barry/etc/profiles.login | 22 ++ barry/etc/profiles.order | 121 ++++++ barry/etc/receipt.html | 289 +++++++++++++++ barry/etc/report | 95 +++++ barry/etc/ship_notice | 139 +++++++ barry/html/index.html | 125 +++++++ barry/images/about.gif | Bin 0 -> 430 bytes barry/images/addtocart.gif | Bin 0 -> 994 bytes barry/images/addtocart2.gif | Bin 0 -> 1262 bytes barry/images/banner.gif | Bin 0 -> 5199 bytes barry/images/bg.gif | Bin 0 -> 45 bytes barry/images/bikeparts.gif | Bin 0 -> 1917 bytes barry/images/bikes.gif | Bin 0 -> 1719 bytes barry/images/bookpick.gif | Bin 0 -> 776 bytes barry/images/books.gif | Bin 0 -> 1615 bytes barry/images/clamps.gif | Bin 0 -> 5522 bytes barry/images/clear.gif | Bin 0 -> 45 bytes barry/images/cleardot.gif | Bin 0 -> 45 bytes barry/images/contactus.gif | Bin 0 -> 635 bytes barry/images/cranky.gif | Bin 0 -> 5694 bytes barry/images/create.gif | Bin 0 -> 545 bytes barry/images/customer.gif | Bin 0 -> 838 bytes barry/images/download.png | Bin 0 -> 2175 bytes barry/images/front_collage.gif | Bin 0 -> 15972 bytes barry/images/go.gif | Bin 0 -> 262 bytes barry/images/header_about.gif | Bin 0 -> 2262 bytes barry/images/header_bikes.gif | Bin 0 -> 1949 bytes barry/images/header_books.gif | Bin 0 -> 1771 bytes barry/images/header_contactus.gif | Bin 0 -> 2037 bytes barry/images/header_customerservice.gif | Bin 0 -> 2346 bytes barry/images/header_feedback.gif | Bin 0 -> 2037 bytes barry/images/header_help.gif | Bin 0 -> 1238 bytes barry/images/header_login.gif | Bin 0 -> 1351 bytes barry/images/header_multi/basket.gif | Bin 0 -> 2288 bytes barry/images/header_new_account.gif | Bin 0 -> 2210 bytes barry/images/header_newaccount.gif | Bin 0 -> 2210 bytes barry/images/header_ord/basket.gif | Bin 0 -> 2288 bytes barry/images/header_parts.gif | Bin 0 -> 2116 bytes barry/images/header_sandals.gif | Bin 0 -> 1784 bytes barry/images/header_search.gif | Bin 0 -> 1488 bytes barry/images/header_shoes.gif | Bin 0 -> 1647 bytes barry/images/help.gif | Bin 0 -> 514 bytes barry/images/home.gif | Bin 0 -> 578 bytes barry/images/items/KHS.soft99.jpg | Bin 0 -> 5911 bytes barry/images/items/RST.381R.jpg | Bin 0 -> 2953 bytes barry/images/items/aspen.gif | Bin 0 -> 3680 bytes barry/images/items/avid.arch50.jpg | Bin 0 -> 3927 bytes barry/images/items/barbntrini.gif | Bin 0 -> 11712 bytes barry/images/items/charlesnfox.gif | Bin 0 -> 19083 bytes barry/images/items/chrono.deepV.jpg | Bin 0 -> 17314 bytes barry/images/items/george.gif | Bin 0 -> 24242 bytes barry/images/items/housefelt.gif | Bin 0 -> 19083 bytes barry/images/items/jurassic.gif | Bin 0 -> 20761 bytes barry/images/items/kore.elite.stem.jpg | Bin 0 -> 2832 bytes barry/images/items/man.99sxti.GIF | Bin 0 -> 20035 bytes barry/images/items/manhattan.gif | Bin 0 -> 15250 bytes barry/images/items/mystery.gif | Bin 0 -> 20217 bytes barry/images/items/oklahoma.gif | Bin 0 -> 22937 bytes barry/images/items/panaracer.mach.gif | Bin 0 -> 16135 bytes barry/images/items/pedal.jpg | Bin 0 -> 3946 bytes barry/images/items/racing.gif | Bin 0 -> 22937 bytes barry/images/items/rf.lpcrank.jpg | Bin 0 -> 3183 bytes barry/images/items/rf.system.jpg | Bin 0 -> 2340 bytes barry/images/items/river.gif | Bin 0 -> 21487 bytes barry/images/items/shimano.pedal.434.JPG | Bin 0 -> 2491 bytes barry/images/items/shimano.pedal.jpg | Bin 0 -> 2684 bytes barry/images/items/shimano.xtr.jpg | Bin 0 -> 18788 bytes barry/images/items/shoebox.gif | Bin 0 -> 21668 bytes barry/images/items/shoeleather.gif | Bin 0 -> 18583 bytes barry/images/items/spinergy.spox.jpg | Bin 0 -> 21151 bytes barry/images/items/terry.men.gif | Bin 0 -> 16725 bytes barry/images/items/tire.conti.gif | Bin 0 -> 10239 bytes barry/images/items/women.gif | Bin 0 -> 22915 bytes barry/images/items/xtr.cassette.jpg | Bin 0 -> 4458 bytes barry/images/items/xtrcrank.jpg | Bin 0 -> 3312 bytes barry/images/items/zinn.gif | Bin 0 -> 22757 bytes barry/images/leftside.gif | Bin 0 -> 134 bytes barry/images/leftside_b.gif | Bin 0 -> 133 bytes barry/images/login.gif | Bin 0 -> 262 bytes barry/images/mvlogo.png | Bin 0 -> 1435 bytes barry/images/mvlogo_dark.png | Bin 0 -> 1197 bytes barry/images/new.png | Bin 0 -> 213 bytes barry/images/next.gif | Bin 0 -> 326 bytes barry/images/order.gif | Bin 0 -> 309 bytes barry/images/poweredby.gif | Bin 0 -> 2031 bytes barry/images/rightside.gif | Bin 0 -> 133 bytes barry/images/rightside_b.gif | Bin 0 -> 133 bytes barry/images/sandals.gif | Bin 0 -> 1859 bytes barry/images/satisfied.gif | Bin 0 -> 3292 bytes barry/images/search.gif | Bin 0 -> 580 bytes barry/images/shoes.gif | Bin 0 -> 1750 bytes barry/images/shoppingcart.gif | Bin 0 -> 799 bytes barry/images/smallamex.png | Bin 0 -> 1137 bytes barry/images/smalldisc.png | Bin 0 -> 1309 bytes barry/images/smallmc.png | Bin 0 -> 913 bytes barry/images/smallvisa.png | Bin 0 -> 929 bytes barry/images/space.gif | Bin 0 -> 49 bytes barry/images/specials.gif | Bin 0 -> 2797 bytes barry/images/tan_line.gif | Bin 0 -> 35 bytes barry/images/thumb/KHS.soft99.jpg | Bin 0 -> 4940 bytes barry/images/thumb/RST.381R.jpg | Bin 0 -> 1686 bytes barry/images/thumb/aspen.gif | Bin 0 -> 2492 bytes barry/images/thumb/avid.arch50.jpg | Bin 0 -> 2534 bytes barry/images/thumb/barbntrini.gif | Bin 0 -> 7268 bytes barry/images/thumb/charlesnfox.gif | Bin 0 -> 11689 bytes barry/images/thumb/chrono.deepV.jpg | Bin 0 -> 10556 bytes barry/images/thumb/george.gif | Bin 0 -> 10103 bytes barry/images/thumb/housefelt.gif | Bin 0 -> 11689 bytes barry/images/thumb/jurassic.gif | Bin 0 -> 8515 bytes barry/images/thumb/kore.elite.stem.jpg | Bin 0 -> 2101 bytes barry/images/thumb/man.99sxti.GIF | Bin 0 -> 8288 bytes barry/images/thumb/manhattan.gif | Bin 0 -> 9309 bytes barry/images/thumb/mystery.gif | Bin 0 -> 8401 bytes barry/images/thumb/oklahoma.gif | Bin 0 -> 9536 bytes barry/images/thumb/panaracer.mach.gif | Bin 0 -> 9876 bytes barry/images/thumb/pedal.jpg | Bin 0 -> 2903 bytes barry/images/thumb/racing.gif | Bin 0 -> 9421 bytes barry/images/thumb/rf.lpcrank.jpg | Bin 0 -> 2296 bytes barry/images/thumb/rf.system.jpg | Bin 0 -> 1666 bytes barry/images/thumb/river.gif | Bin 0 -> 8855 bytes barry/images/thumb/shimano.pedal.434.JPG | Bin 0 -> 1851 bytes barry/images/thumb/shimano.pedal.jpg | Bin 0 -> 1916 bytes barry/images/thumb/shimano.xtr.jpg | Bin 0 -> 11463 bytes barry/images/thumb/shoebox.gif | Bin 0 -> 8969 bytes barry/images/thumb/shoeleather.gif | Bin 0 -> 7722 bytes barry/images/thumb/spinergy.spox.jpg | Bin 0 -> 8770 bytes barry/images/thumb/terry.men.gif | Bin 0 -> 10215 bytes barry/images/thumb/tire.conti.gif | Bin 0 -> 6361 bytes barry/images/thumb/women.gif | Bin 0 -> 10669 bytes barry/images/thumb/xtr.cassette.jpg | Bin 0 -> 3035 bytes barry/images/thumb/xtrcrank.jpg | Bin 0 -> 2196 bytes barry/images/thumb/zinn.gif | Bin 0 -> 9421 bytes barry/images/white_line.gif | Bin 0 -> 35 bytes barry/mysql/affiliate.mysql | 9 + barry/mysql/area.mysql | 11 + barry/mysql/cat.mysql | 12 + barry/mysql/country.mysql | 11 + barry/mysql/inventory.mysql | 14 + barry/mysql/merchandising.mysql | 12 + barry/mysql/orderline.mysql | 27 ++ barry/mysql/pricing.mysql | 19 + barry/mysql/products.mysql | 26 ++ barry/mysql/transactions.mysql | 54 +++ barry/mysql/userdb.mysql | 56 +++ barry/orders/.empty | 1 + barry/pages/about.html | 35 ++ barry/pages/account.html | 402 ++++++++++++++++++++ barry/pages/action/get_password.html | 88 +++++ barry/pages/browse.html | 119 ++++++ barry/pages/browse1.html | 157 ++++++++ barry/pages/canceled.html | 55 +++ barry/pages/contact.html | 42 +++ barry/pages/deliver.html | 34 ++ barry/pages/examples/test_banner.html | 12 + barry/pages/flypage.html | 143 ++++++++ barry/pages/help.html | 54 +++ barry/pages/index.html | 118 ++++++ barry/pages/last_search.html | 14 + barry/pages/login.html | 120 ++++++ barry/pages/logout.html | 33 ++ barry/pages/multi/b_address.html | 73 ++++ barry/pages/multi/basket.html | 269 ++++++++++++++ barry/pages/multi/checkout.html | 216 +++++++++++ barry/pages/multi/final.html | 232 ++++++++++++ barry/pages/multi/nobasket.html | 5 + barry/pages/multi/shipping.html | 86 +++++ barry/pages/new_account.html | 279 ++++++++++++++ barry/pages/news.html | 348 ++++++++++++++++++ barry/pages/no_cookie.html | 28 ++ barry/pages/ord/basket.html | 317 ++++++++++++++++ barry/pages/ord/checkout.html | 583 ++++++++++++++++++++++++++++++ barry/pages/ord/nobasket.html | 5 + barry/pages/privacy.html | 37 ++ barry/pages/quantity.html | 93 +++++ barry/pages/query/check_orders.html | 196 ++++++++++ barry/pages/query/order_detail.html | 185 ++++++++++ barry/pages/results.html | 105 ++++++ barry/pages/special/feedback.html | 76 ++++ barry/pages/special/needfield.html | 46 +++ barry/pages/splash.html | 46 +++ barry/pages/srchform.html | 273 ++++++++++++++ barry/pages/subcat.html | 97 +++++ barry/pgsql/area.pgsql | 14 + barry/pgsql/cat.pgsql | 13 + barry/pgsql/country.pgsql | 12 + barry/pgsql/inventory.pgsql | 12 + barry/pgsql/merchandising.pgsql | 12 + barry/pgsql/orderline.pgsql | 28 ++ barry/pgsql/pricing.pgsql | 20 + barry/pgsql/products.pgsql | 25 ++ barry/pgsql/transactions.pgsql | 52 +++ barry/pgsql/userdb.pgsql | 60 +++ barry/products/2ndDayAir.csv | 152 ++++++++ barry/products/2ndDayAirAM.csv | 152 ++++++++ barry/products/3DaySelect.csv | 151 ++++++++ barry/products/3DaySelectRes.csv | 151 ++++++++ barry/products/450.csv | 153 ++++++++ barry/products/Ground.csv | 151 ++++++++ barry/products/GroundComm.csv | 151 ++++++++ barry/products/GroundRes.csv | 151 ++++++++ barry/products/NextDayAir.csv | 152 ++++++++ barry/products/NextDayAirSaver.csv | 152 ++++++++ barry/products/access.asc | 6 + barry/products/affiliate.txt | 9 + barry/products/area.txt | 12 + barry/products/banner.txt | 8 + barry/products/cat.txt | 5 + barry/products/country.txt | 198 ++++++++++ barry/products/inventory.txt | 1 + barry/products/locale.txt | 26 ++ barry/products/merchandising.txt | 6 + barry/products/mv_metadata.asc | 120 ++++++ barry/products/orderline.txt | 1 + barry/products/pricing.txt | 1 + barry/products/products.txt | 34 ++ barry/products/route.txt | 1 + barry/products/salestax.asc | 1 + barry/products/shipping.asc | 45 +++ barry/products/state.txt | 183 ++++++++++ barry/products/transactions.txt | 1 + barry/products/ups_zone.asc | 153 ++++++++ barry/products/userdb.txt | 2 + barry/products/variable.txt | 59 +++ barry/session/.empty | 1 + barry/special_pages/badsearch.html | 16 + barry/special_pages/canceled.html | 19 + barry/special_pages/cc_not_valid.html | 22 ++ barry/special_pages/confirmation.html | 16 + barry/special_pages/failed.html | 22 ++ barry/special_pages/interact.html | 62 ++++ barry/special_pages/missing.html | 17 + barry/special_pages/needfield.html | 49 +++ barry/special_pages/nomatch.html | 14 + barry/special_pages/noproduct.html | 17 + barry/special_pages/notfound.html | 16 + barry/special_pages/order_security.html | 26 ++ barry/special_pages/reconfig.html | 14 + barry/special_pages/sec_faq.html | 138 +++++++ barry/special_pages/security.html | 34 ++ barry/special_pages/violation.html | 74 ++++ barry/templates/fullwidth | 12 + barry/templates/leftonly | 12 + barry/templates/standard | 14 + barry/tmp/.empty | 1 + barry/upload/.empty | 1 + 463 files changed, 22115 insertions(+), 0 deletions(-) create mode 100644 art/.cvsignore create mode 100644 art/backup/.empty create mode 100644 art/catalog.cfg create mode 100644 art/config/.empty create mode 100644 art/config/additional_fields create mode 100644 art/config/additional_help create mode 100644 art/config/blue1/copyright create mode 100644 art/config/blue1/leftside create mode 100644 art/config/blue1/logobar create mode 100644 art/config/blue1/menubar create mode 100644 art/config/blue1/menubottom create mode 100644 art/config/blue1/no_right create mode 100644 art/config/blue1/only_logo create mode 100644 art/config/blue1/rightside create mode 100644 art/config/brown1/copyright create mode 100644 art/config/brown1/leftside create mode 100644 art/config/brown1/logobar create mode 100644 art/config/brown1/menubar create mode 100644 art/config/brown1/menubottom create mode 100644 art/config/brown1/no_right create mode 100644 art/config/brown1/only_logo create mode 100644 art/config/brown1/rightside create mode 100644 art/config/postcopy_commands create mode 100644 art/config/precopy_commands create mode 100644 art/config/yellow1/copyright create mode 100644 art/config/yellow1/leftside create mode 100644 art/config/yellow1/logobar create mode 100644 art/config/yellow1/menubar create mode 100644 art/config/yellow1/menubottom create mode 100644 art/config/yellow1/no_right create mode 100644 art/config/yellow1/only_logo create mode 100644 art/config/yellow1/rightside create mode 100644 art/etc/area.recordnumber create mode 100644 art/etc/cat.recordnumber create mode 100644 art/etc/log_entry create mode 100644 art/etc/log_transaction create mode 100644 art/etc/mail_receipt create mode 100644 art/etc/profiles.login create mode 100644 art/etc/profiles.order create mode 100644 art/etc/receipt.html create mode 100644 art/etc/report create mode 100644 art/etc/ship_notice create mode 100644 art/html/.empty create mode 100644 art/html/index.html create mode 100644 art/images/bg.gif create mode 100644 art/images/blue1/cart.png create mode 100644 art/images/blue1/go.png create mode 100644 art/images/blue1/logo.png create mode 100644 art/images/blue1/menu.png create mode 100644 art/images/blue1/submit.png create mode 100644 art/images/brown1/cart.png create mode 100644 art/images/brown1/go.png create mode 100644 art/images/brown1/logo.png create mode 100644 art/images/brown1/menu.png create mode 100644 art/images/brown1/submit.png create mode 100644 art/images/clear.gif create mode 100644 art/images/download.png create mode 100644 art/images/items/00-0011.jpg create mode 100644 art/images/items/00-0011a.png create mode 100644 art/images/items/00-341.jpg create mode 100644 art/images/items/00-342.jpg create mode 100644 art/images/items/00-343.jpg create mode 100755 art/images/items/19-203.jpg create mode 100755 art/images/items/19-204.jpg create mode 100644 art/images/items/21-221.jpg create mode 100644 art/images/items/34-101.png create mode 100644 art/images/items/chair_car.jpg create mode 100644 art/images/items/golconde.jpg create mode 100644 art/images/items/illumined_pleasures.jpg create mode 100644 art/images/items/irises.jpg create mode 100644 art/images/items/lastsupp.jpg create mode 100644 art/images/items/loose_hair.jpg create mode 100644 art/images/items/magnificat.jpg create mode 100644 art/images/items/my_gems.jpg create mode 100644 art/images/items/okeefe1.jpg create mode 100644 art/images/items/okeeffe6.jpg create mode 100644 art/images/items/paul_harlequin.jpg create mode 100644 art/images/items/pol1.jpg create mode 100644 art/images/items/pol2.jpg create mode 100644 art/images/items/poweredby.gif create mode 100755 art/images/items/tshirt.jpg create mode 100644 art/images/items/two_fridas.jpg create mode 100644 art/images/items/womanfan.jpg create mode 100644 art/images/items/young_man.jpg create mode 100644 art/images/mvlogo.png create mode 100644 art/images/mvlogo_dark.png create mode 100644 art/images/new.png create mode 100644 art/images/perl_id_313c.png create mode 100644 art/images/poweredby.gif create mode 100644 art/images/smallamex.png create mode 100644 art/images/smalldisc.png create mode 100644 art/images/smallmc.png create mode 100644 art/images/smallvisa.png create mode 100644 art/images/yellow1/cart.png create mode 100644 art/images/yellow1/go.png create mode 100644 art/images/yellow1/logo.png create mode 100644 art/images/yellow1/menu.png create mode 100644 art/images/yellow1/submit.png create mode 100644 art/logs/.empty create mode 100644 art/mysql/affiliate.mysql create mode 100644 art/mysql/area.mysql create mode 100644 art/mysql/cat.mysql create mode 100644 art/mysql/country.mysql create mode 100644 art/mysql/inventory.mysql create mode 100644 art/mysql/merchandising.mysql create mode 100644 art/mysql/orderline.mysql create mode 100644 art/mysql/pricing.mysql create mode 100644 art/mysql/products.mysql create mode 100644 art/mysql/transactions.mysql create mode 100644 art/mysql/userdb.mysql create mode 100644 art/orders/.empty create mode 100644 art/pages/about.html create mode 100644 art/pages/account.html create mode 100644 art/pages/action/get_password.html create mode 100644 art/pages/browse.html create mode 100644 art/pages/browse1.html create mode 100644 art/pages/canceled.html create mode 100644 art/pages/deliver.html create mode 100644 art/pages/examples/test_banner.html create mode 100644 art/pages/feedback.html create mode 100644 art/pages/flypage.html create mode 100644 art/pages/index.html create mode 100644 art/pages/last_search.html create mode 100644 art/pages/login.html create mode 100644 art/pages/logout.html create mode 100644 art/pages/multi/b_address.html create mode 100644 art/pages/multi/basket.html create mode 100644 art/pages/multi/checkout.html create mode 100644 art/pages/multi/final.html create mode 100644 art/pages/multi/nobasket.html create mode 100644 art/pages/multi/shipping.html create mode 100644 art/pages/new_account.html create mode 100644 art/pages/news.html create mode 100644 art/pages/no_cookie.html create mode 100644 art/pages/nothing.html create mode 100644 art/pages/ord/basket.html create mode 100644 art/pages/ord/checkout.html create mode 100644 art/pages/ord/nobasket.html create mode 100644 art/pages/privacy.html create mode 100644 art/pages/quantity.html create mode 100644 art/pages/query/check_orders.html create mode 100644 art/pages/query/order_detail.html create mode 100644 art/pages/results.html create mode 100644 art/pages/special/feedback.html create mode 100644 art/pages/special/needfield.html create mode 100644 art/pages/splash.html create mode 100644 art/pages/srchform.html create mode 100644 art/pgsql/area.pgsql create mode 100644 art/pgsql/cat.pgsql create mode 100644 art/pgsql/country.pgsql create mode 100644 art/pgsql/inventory.pgsql create mode 100644 art/pgsql/merchandising.pgsql create mode 100644 art/pgsql/orderline.pgsql create mode 100644 art/pgsql/pricing.pgsql create mode 100644 art/pgsql/products.pgsql create mode 100644 art/pgsql/transactions.pgsql create mode 100644 art/pgsql/userdb.pgsql create mode 100644 art/products/2ndDayAir.csv create mode 100644 art/products/2ndDayAirAM.csv create mode 100644 art/products/3DaySelect.csv create mode 100644 art/products/3DaySelectRes.csv create mode 100644 art/products/450.csv create mode 100644 art/products/Ground.csv create mode 100644 art/products/GroundComm.csv create mode 100644 art/products/GroundRes.csv create mode 100644 art/products/NextDayAir.csv create mode 100644 art/products/NextDayAirSaver.csv create mode 100644 art/products/access.asc create mode 100644 art/products/affiliate.txt create mode 100644 art/products/area.txt create mode 100644 art/products/banner.txt create mode 100644 art/products/cat.txt create mode 100644 art/products/country.txt create mode 100644 art/products/inventory.txt create mode 100644 art/products/locale.txt create mode 100644 art/products/merchandising.txt create mode 100644 art/products/mv_metadata.asc create mode 100644 art/products/orderline.txt create mode 100644 art/products/pricing.txt create mode 100644 art/products/products.txt create mode 100644 art/products/route.txt create mode 100644 art/products/salestax.asc create mode 100644 art/products/shipping.asc create mode 100644 art/products/state.txt create mode 100644 art/products/transactions.txt create mode 100644 art/products/ups_zone.asc create mode 100644 art/products/userdb.txt create mode 100644 art/products/variable.txt create mode 100644 art/session/.empty create mode 100644 art/special_pages/badsearch.html create mode 100644 art/special_pages/canceled.html create mode 100644 art/special_pages/cc_not_valid.html create mode 100644 art/special_pages/confirmation.html create mode 100644 art/special_pages/failed.html create mode 100644 art/special_pages/interact.html create mode 100644 art/special_pages/missing.html create mode 100644 art/special_pages/needfield.html create mode 100644 art/special_pages/nomatch.html create mode 100644 art/special_pages/noproduct.html create mode 100644 art/special_pages/notfound.html create mode 100644 art/special_pages/order_security.html create mode 100644 art/special_pages/reconfig.html create mode 100644 art/special_pages/sec_faq.html create mode 100644 art/special_pages/security.html create mode 100644 art/special_pages/violation.html create mode 100644 art/templates/standalone create mode 100644 art/templates/standard create mode 100644 art/tmp/.empty create mode 100644 art/upload/.empty create mode 100644 barry/backup/.empty create mode 100644 barry/catalog.cfg create mode 100644 barry/config/additional_fields create mode 100644 barry/config/additional_help create mode 100644 barry/config/copyright create mode 100644 barry/config/leftonly create mode 100644 barry/config/leftside create mode 100644 barry/config/logobar create mode 100644 barry/config/menubar create mode 100644 barry/config/menubottom create mode 100644 barry/config/no_left create mode 100644 barry/config/no_right create mode 100644 barry/config/postcopy_commands create mode 100644 barry/config/precopy_commands create mode 100644 barry/config/rightside create mode 100644 barry/etc/area.recordnumber create mode 100644 barry/etc/cat.recordnumber create mode 100644 barry/etc/log_entry create mode 100644 barry/etc/log_transaction create mode 100644 barry/etc/mail_receipt create mode 100644 barry/etc/profiles.login create mode 100644 barry/etc/profiles.order create mode 100644 barry/etc/receipt.html create mode 100644 barry/etc/report create mode 100644 barry/etc/ship_notice create mode 100644 barry/html/index.html create mode 100644 barry/images/about.gif create mode 100644 barry/images/addtocart.gif create mode 100644 barry/images/addtocart2.gif create mode 100644 barry/images/banner.gif create mode 100644 barry/images/bg.gif create mode 100644 barry/images/bikeparts.gif create mode 100644 barry/images/bikes.gif create mode 100644 barry/images/bookpick.gif create mode 100644 barry/images/books.gif create mode 100644 barry/images/clamps.gif create mode 100644 barry/images/clear.gif create mode 100644 barry/images/cleardot.gif create mode 100644 barry/images/contactus.gif create mode 100644 barry/images/cranky.gif create mode 100644 barry/images/create.gif create mode 100644 barry/images/customer.gif create mode 100644 barry/images/download.png create mode 100644 barry/images/front_collage.gif create mode 100644 barry/images/go.gif create mode 100644 barry/images/header_about.gif create mode 100644 barry/images/header_bikes.gif create mode 100644 barry/images/header_books.gif create mode 100644 barry/images/header_contactus.gif create mode 100644 barry/images/header_customerservice.gif create mode 100644 barry/images/header_feedback.gif create mode 100644 barry/images/header_help.gif create mode 100644 barry/images/header_login.gif create mode 100644 barry/images/header_multi/basket.gif create mode 100644 barry/images/header_new_account.gif create mode 100644 barry/images/header_newaccount.gif create mode 100644 barry/images/header_ord/basket.gif create mode 100644 barry/images/header_parts.gif create mode 100644 barry/images/header_sandals.gif create mode 100644 barry/images/header_search.gif create mode 100644 barry/images/header_shoes.gif create mode 100644 barry/images/help.gif create mode 100644 barry/images/home.gif create mode 100644 barry/images/items/KHS.soft99.jpg create mode 100644 barry/images/items/RST.381R.jpg create mode 100644 barry/images/items/aspen.gif create mode 100644 barry/images/items/avid.arch50.jpg create mode 100644 barry/images/items/barbntrini.gif create mode 100644 barry/images/items/charlesnfox.gif create mode 100644 barry/images/items/chrono.deepV.jpg create mode 100644 barry/images/items/george.gif create mode 100644 barry/images/items/housefelt.gif create mode 100644 barry/images/items/jurassic.gif create mode 100644 barry/images/items/kore.elite.stem.jpg create mode 100644 barry/images/items/man.99sxti.GIF create mode 100644 barry/images/items/manhattan.gif create mode 100644 barry/images/items/mystery.gif create mode 100644 barry/images/items/oklahoma.gif create mode 100644 barry/images/items/panaracer.mach.gif create mode 100644 barry/images/items/pedal.jpg create mode 100644 barry/images/items/racing.gif create mode 100644 barry/images/items/rf.lpcrank.jpg create mode 100644 barry/images/items/rf.system.jpg create mode 100644 barry/images/items/river.gif create mode 100644 barry/images/items/shimano.pedal.434.JPG create mode 100644 barry/images/items/shimano.pedal.jpg create mode 100644 barry/images/items/shimano.xtr.jpg create mode 100644 barry/images/items/shoebox.gif create mode 100644 barry/images/items/shoeleather.gif create mode 100644 barry/images/items/spinergy.spox.jpg create mode 100644 barry/images/items/terry.men.gif create mode 100644 barry/images/items/tire.conti.gif create mode 100644 barry/images/items/women.gif create mode 100644 barry/images/items/xtr.cassette.jpg create mode 100644 barry/images/items/xtrcrank.jpg create mode 100644 barry/images/items/zinn.gif create mode 100644 barry/images/leftside.gif create mode 100644 barry/images/leftside_b.gif create mode 100644 barry/images/login.gif create mode 100644 barry/images/mvlogo.png create mode 100644 barry/images/mvlogo_dark.png create mode 100644 barry/images/new.png create mode 100644 barry/images/next.gif create mode 100644 barry/images/order.gif create mode 100644 barry/images/poweredby.gif create mode 100644 barry/images/rightside.gif create mode 100644 barry/images/rightside_b.gif create mode 100644 barry/images/sandals.gif create mode 100644 barry/images/satisfied.gif create mode 100644 barry/images/search.gif create mode 100644 barry/images/shoes.gif create mode 100644 barry/images/shoppingcart.gif create mode 100644 barry/images/smallamex.png create mode 100644 barry/images/smalldisc.png create mode 100644 barry/images/smallmc.png create mode 100644 barry/images/smallvisa.png create mode 100644 barry/images/space.gif create mode 100644 barry/images/specials.gif create mode 100644 barry/images/tan_line.gif create mode 100644 barry/images/thumb/KHS.soft99.jpg create mode 100644 barry/images/thumb/RST.381R.jpg create mode 100644 barry/images/thumb/aspen.gif create mode 100644 barry/images/thumb/avid.arch50.jpg create mode 100644 barry/images/thumb/barbntrini.gif create mode 100644 barry/images/thumb/charlesnfox.gif create mode 100644 barry/images/thumb/chrono.deepV.jpg create mode 100644 barry/images/thumb/george.gif create mode 100644 barry/images/thumb/housefelt.gif create mode 100644 barry/images/thumb/jurassic.gif create mode 100644 barry/images/thumb/kore.elite.stem.jpg create mode 100644 barry/images/thumb/man.99sxti.GIF create mode 100644 barry/images/thumb/manhattan.gif create mode 100644 barry/images/thumb/mystery.gif create mode 100644 barry/images/thumb/oklahoma.gif create mode 100644 barry/images/thumb/panaracer.mach.gif create mode 100644 barry/images/thumb/pedal.jpg create mode 100644 barry/images/thumb/racing.gif create mode 100644 barry/images/thumb/rf.lpcrank.jpg create mode 100644 barry/images/thumb/rf.system.jpg create mode 100644 barry/images/thumb/river.gif create mode 100644 barry/images/thumb/shimano.pedal.434.JPG create mode 100644 barry/images/thumb/shimano.pedal.jpg create mode 100644 barry/images/thumb/shimano.xtr.jpg create mode 100644 barry/images/thumb/shoebox.gif create mode 100644 barry/images/thumb/shoeleather.gif create mode 100644 barry/images/thumb/spinergy.spox.jpg create mode 100644 barry/images/thumb/terry.men.gif create mode 100644 barry/images/thumb/tire.conti.gif create mode 100644 barry/images/thumb/women.gif create mode 100644 barry/images/thumb/xtr.cassette.jpg create mode 100644 barry/images/thumb/xtrcrank.jpg create mode 100644 barry/images/thumb/zinn.gif create mode 100644 barry/images/white_line.gif create mode 100644 barry/logs/.empty create mode 100644 barry/mysql/affiliate.mysql create mode 100644 barry/mysql/area.mysql create mode 100644 barry/mysql/cat.mysql create mode 100644 barry/mysql/country.mysql create mode 100644 barry/mysql/inventory.mysql create mode 100644 barry/mysql/merchandising.mysql create mode 100644 barry/mysql/orderline.mysql create mode 100644 barry/mysql/pricing.mysql create mode 100644 barry/mysql/products.mysql create mode 100644 barry/mysql/transactions.mysql create mode 100644 barry/mysql/userdb.mysql create mode 100644 barry/orders/.empty create mode 100644 barry/pages/about.html create mode 100644 barry/pages/account.html create mode 100644 barry/pages/action/get_password.html create mode 100644 barry/pages/browse.html create mode 100644 barry/pages/browse1.html create mode 100644 barry/pages/canceled.html create mode 100644 barry/pages/contact.html create mode 100644 barry/pages/deliver.html create mode 100644 barry/pages/examples/test_banner.html create mode 100644 barry/pages/flypage.html create mode 100644 barry/pages/help.html create mode 100644 barry/pages/index.html create mode 100644 barry/pages/last_search.html create mode 100644 barry/pages/login.html create mode 100644 barry/pages/logout.html create mode 100644 barry/pages/multi/b_address.html create mode 100644 barry/pages/multi/basket.html create mode 100644 barry/pages/multi/checkout.html create mode 100644 barry/pages/multi/final.html create mode 100644 barry/pages/multi/nobasket.html create mode 100644 barry/pages/multi/shipping.html create mode 100644 barry/pages/new_account.html create mode 100644 barry/pages/news.html create mode 100644 barry/pages/no_cookie.html create mode 100644 barry/pages/nothing.html create mode 100644 barry/pages/ord/basket.html create mode 100644 barry/pages/ord/checkout.html create mode 100644 barry/pages/ord/nobasket.html create mode 100644 barry/pages/privacy.html create mode 100644 barry/pages/quantity.html create mode 100644 barry/pages/query/check_orders.html create mode 100644 barry/pages/query/order_detail.html create mode 100644 barry/pages/results.html create mode 100644 barry/pages/special/feedback.html create mode 100644 barry/pages/special/needfield.html create mode 100644 barry/pages/splash.html create mode 100644 barry/pages/srchform.html create mode 100644 barry/pages/subcat.html create mode 100644 barry/pgsql/area.pgsql create mode 100644 barry/pgsql/cat.pgsql create mode 100644 barry/pgsql/country.pgsql create mode 100644 barry/pgsql/inventory.pgsql create mode 100644 barry/pgsql/merchandising.pgsql create mode 100644 barry/pgsql/orderline.pgsql create mode 100644 barry/pgsql/pricing.pgsql create mode 100644 barry/pgsql/products.pgsql create mode 100644 barry/pgsql/transactions.pgsql create mode 100644 barry/pgsql/userdb.pgsql create mode 100644 barry/products/2ndDayAir.csv create mode 100644 barry/products/2ndDayAirAM.csv create mode 100644 barry/products/3DaySelect.csv create mode 100644 barry/products/3DaySelectRes.csv create mode 100644 barry/products/450.csv create mode 100644 barry/products/Ground.csv create mode 100644 barry/products/GroundComm.csv create mode 100644 barry/products/GroundRes.csv create mode 100644 barry/products/NextDayAir.csv create mode 100644 barry/products/NextDayAirSaver.csv create mode 100644 barry/products/access.asc create mode 100644 barry/products/affiliate.txt create mode 100644 barry/products/area.txt create mode 100644 barry/products/banner.txt create mode 100644 barry/products/cat.txt create mode 100644 barry/products/country.txt create mode 100644 barry/products/inventory.txt create mode 100644 barry/products/locale.txt create mode 100644 barry/products/merchandising.txt create mode 100644 barry/products/mv_metadata.asc create mode 100644 barry/products/orderline.txt create mode 100644 barry/products/pricing.txt create mode 100644 barry/products/products.txt create mode 100644 barry/products/route.txt create mode 100644 barry/products/salestax.asc create mode 100644 barry/products/shipping.asc create mode 100644 barry/products/state.txt create mode 100644 barry/products/transactions.txt create mode 100644 barry/products/ups_zone.asc create mode 100644 barry/products/userdb.txt create mode 100644 barry/products/variable.txt create mode 100644 barry/session/.empty create mode 100644 barry/special_pages/badsearch.html create mode 100644 barry/special_pages/canceled.html create mode 100644 barry/special_pages/cc_not_valid.html create mode 100644 barry/special_pages/confirmation.html create mode 100644 barry/special_pages/failed.html create mode 100644 barry/special_pages/interact.html create mode 100644 barry/special_pages/missing.html create mode 100644 barry/special_pages/needfield.html create mode 100644 barry/special_pages/nomatch.html create mode 100644 barry/special_pages/noproduct.html create mode 100644 barry/special_pages/notfound.html create mode 100644 barry/special_pages/order_security.html create mode 100644 barry/special_pages/reconfig.html create mode 100644 barry/special_pages/sec_faq.html create mode 100644 barry/special_pages/security.html create mode 100644 barry/special_pages/violation.html create mode 100644 barry/templates/fullwidth create mode 100644 barry/templates/leftonly create mode 100644 barry/templates/standard create mode 100644 barry/tmp/.empty create mode 100644 barry/upload/.empty diff --git a/art/.cvsignore b/art/.cvsignore new file mode 100644 index 0000000..d3a4c58 --- /dev/null +++ b/art/.cvsignore @@ -0,0 +1 @@ +download diff --git a/art/backup/.empty b/art/backup/.empty new file mode 100644 index 0000000..e69de29 diff --git a/art/catalog.cfg b/art/catalog.cfg new file mode 100644 index 0000000..bdab3ef --- /dev/null +++ b/art/catalog.cfg @@ -0,0 +1,525 @@ +# Set the sitewide information. The initial settings +# in the "variable" table are shown below; subsequent +# changes are only in the database, not below. + +VariableDatabase variable + +### These reflect the initial settings set +### above; if you uncomment them they will override +### it. +# +#Variable SERVER_NAME __MVC_SERVERNAME__ +#Variable CGI_URL __MVC_CGIURL__ +#Variable SECURE_SERVER http://__MVC_SERVERNAME__ +#Variable ORDERS_TO __MVC_MAILORDERTO__ +#Variable IMAGE_DIR __MVC_IMAGEURL__ +#Variable DOCROOT __MVC_DOCUMENTROOT__ +#Variable SAMPLEHTML __MVC_SAMPLEHTML__ +#Variable SAMPLEURL __MVC_SAMPLEURL__ +# +#Variable TEMPLATE __MVC_TEMPLATE__ +#Variable COMPANY __MVC_COMPANY__ +#Variable ADDRESS __MVC_ADDRESS__ +#Variable CITY __MVC_CITY__ +#Variable PHONE __MVC_PHONE__ +#Variable TOLLFREE __MVC_TOLLFREE__ +#Variable FAX __MVC_FAX__ +#Variable LOGO __MVC_LOGO__ +#Variable SMLOGO __MVC_SMLOGO__ +#Variable ENCRYPTOR __MVC_ENCRYPTOR__ +#Variable TAXAREA __MVC_TAXAREA__ +#Variable TAXRATE __MVC_TAXRATE__ +#Variable TAXSHIPPING __MVC_TAXSHIPPING__ +#Variable MULTIORDER __MVC_MULTIORDER__ +# +#Variable SOMESQL __MVC_MYSQL____MVC_PGSQL__ +#Variable MYSQL __MVC_MYSQL__ +#Variable PGSQL __MVC_PGSQL__ +#Variable SQLDSN __MVC_SQLDSN__ +#Variable SQLDB __MVC_SQLDB__ +#Variable SQLUSER __MVC_SQLUSER__ +#Variable SQLPASS __MVC_SQLPASS__ + +# Set multi-page order style if MULTIORDER variable set + +Variable ORDER_STYLE ord +#ifdef MULTIORDER +Variable ORDER_STYLE multi +#endif + +## Whether to encrypt passwords in UserDB +UserDB default crypt 0 +## Change a field to something that doesn't conflict in MySQL +UserDB default time_field mod_time +## Don't want people setting their credit_limit directly +UserDB default scratch credit_limit + +# Comment out to not allow cookie-set logins +CookieLogin Yes + +#ifdef TEMPLATE eq 'brown1' +Variable BARBG MAROON +Variable BARTEXT #FFFFFF +Variable BODY BGCOLOR=WHITE LINK=BLACK +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#C6A563 +Variable HEADERTEXT MAROON +Variable LINECOLOR #000000 +Variable TABLEFG BGCOLOR=#E3D5B5 +Variable TITLEBG NAVY +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +#ifdef TEMPLATE eq 'blue1' +Variable BARBG #FF6701 +Variable BARTEXT #FFFFFF +Variable BODY BGCOLOR=WHITE LINK=BLACK +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#4F87CB +Variable HEADERTEXT #CCFF99 +Variable LINECOLOR #000000 +Variable TABLEFG BGCOLOR=LIGHTBLUE +Variable TITLEBG NAVY +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +#ifdef TEMPLATE eq 'yellow1' +Variable BARBG #000000 +Variable BARTEXT #FFFFFF +Variable BODY BGCOLOR=WHITE LINK=BLACK +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#FFE88D +Variable HEADERTEXT #000000 +Variable LINECOLOR #000000 +Variable TABLEFG BGCOLOR=MOCCASIN +Variable TITLEBG #000000 +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +## Set some menubars and headers +## Use [include ...] with low traffic settings (from minivend.cfg) +## Put in memory with high traffic settings (from minivend.cfg) +ParseVariables Yes + +# Better performance this way +#ifdef @TRAFFIC =~ /high/i +ConfigDir config/__TEMPLATE__ +Variable TIMED_CATOPT [timed-build minutes=10 file=tmp/catoptions] +Variable TIMED_CATLIST [timed-build minutes=10 file=tmp/catlist] +Variable END_TIMED [/timed-build] +Variable LEFTSIDE and other tags within +# HTML tags, use [pragma no_html_parse 0] to enable on a page +Pragma no_html_parse + +MailOrderTo __ORDERS_TO__ +VendURL http://__SERVER_NAME____CGI_URL__ +SecureURL __SECURE_SERVER____CGI_URL__ + + +#ifndef SOMESQL +Database affiliate affiliate.txt TAB +Database area area.txt TAB +Database area AUTO_NUMBER 1 +Database cat cat.txt TAB +Database country country.txt TAB +Database inventory inventory.txt TAB +Database merchandising merchandising.txt TAB +Database products products.txt TAB +Database pricing pricing.txt TAB +Database pricing KEY sku +Database pricing NUMERIC q2 +Database products HOT 1 +Database products INDEX category:c +Database orderline orderline.txt TAB +Database transactions transactions.txt TAB +Database userdb userdb.txt TAB +#endif + +#ifndef SQLDSN +Variable SQLDSN __MVC_SQLDSN__ +#endif + +#ifdef MYSQL + +Message Using MySQL, DSN=__SQLDSN__ + +# Uncomment if needed +#Variable SQLUSER foo +#Variable SQLPASS bar + +# The tables are in separate files in the mysql directory + +#include mysql/* + +#endif + +#ifdef PGSQL + +Message Using Postgres, DSN=__SQLDSN__... + +# Uncomment if needed +#Variable SQLPASS foo +#Variable SQLUSER bar + +# The tables are in separate files in the mysql directory + +#include pgsql/* + +#endif + +# We are always keeping these in DBM, can be in SQL if you wish +Database access access.asc TAB +Database mv_metadata mv_metadata.asc TAB +Database banner banner.txt TAB +Database banner NUMERIC weight +Database locale locale.txt TAB +Database 2ndDayAir 2ndDayAir.csv CSV +Database Ground Ground.csv CSV +Database NextDayAir NextDayAir.csv CSV + +ProductFiles products + +AlwaysSecure ord/checkout multi/checkout +AsciiTrack logs/tracking.asc + +# Here is one that sets up "Mix and match" based upon the price_group field +# in the "pricing" database. +AutoModifier pricing:price_group +CommonAdjust <{deliverable} = $CGI->{mv_arg}; + $CGI->{mv_nextpage} = 'deliver'; + return 1; +} +EOR + +ActionMap get_password <{NoSearch} = ''; + $CGI->{mv_nextpage} = $CGI->{mv_search_page} = 'action/get_password'; + $CGI->{mv_todo} = 'search'; + $Tag->update('process'); + return; +} +EOR + +ParseVariables Yes +Route log attach 0 +Route log cybermode "" +Route log empty 1 +Route log encrypt 0 +Route log increment 0 +Route log report etc/log_transaction +Route log supplant 0 +Route log track logs/log + +Route log_entry attach 0 +Route log_entry cybermode "" +Route log_entry empty 1 +Route log_entry encrypt 0 +Route log_entry increment 0 +Route log_entry report etc/log_entry +Route log_entry supplant 0 +Route log_entry track logs/log + +Route copy_user attach 0 +Route copy_user cybermode "" +Route copy_user empty 1 +Route copy_user encrypt 0 +Route copy_user increment 0 +Route copy_user report etc/mail_receipt +Route copy_user supplant 0 +Route copy_user track logs/log + +# Main route must be last to make default +Route main attach 0 +Route main credit_card 0 +Route main cybermode "" +Route main default 1 +Route main email '__ORDERS_TO__' +Route main encrypt 0 +Route main encrypt_program '__ENCRYPTOR__' +Route main errors_to '__ORDERS_TO__' +Route main increment 0 +Route main pgp_cc_key "" +Route main pgp_key "" +Route main receipt etc/receipt.html +Route main report etc/report +Route main supplant 1 +Route main individual_track orders +Route main track logs/tracking.asc + +# Order routes can be maintained in a database, empty in demo +# CHANGES TO THIS WILL OVERRIDE THE ROUTES ABOVE +RouteDatabase route + +SalesTax state +TaxShipping __TAXSHIPPING__ +SeparateItems Yes +SpecialPage catalog index +SpecialPage checkout __ORDER_STYLE__/checkout +SpecialPage order __ORDER_STYLE__/basket +SpecialPage report ../etc/report +SpecialPage receipt ../etc/receipt + +NoCache reconfig special config query ord multi action admin feedback +Static __CATALOG_STATIC__ +StaticLogged __LOGGED_STATIC__ +StaticAll Yes +StaticDBM static +StaticDepth 2 +StaticDir __SAMPLEHTML__/pages +StaticFly Yes +StaticPath __SAMPLEURL__/pages + +#ifdef UI_TRAFFIC_STATS +TrackFile __UI_TRAFFIC_STATS__ +#endif + +UpsZoneFile products/450.csv +UseModifier size color + +UserTag quick-table HasEndTag +UserTag quick_table Interpolate +UserTag quick-table Order border +UserTag quick_table Routine <Test. +# Will do multiple tables. +#
Test.
+# [/table-font] +# +UserTag table-font Order face +UserTag table-font PosNumber 1 +UserTag table-font addAttr 1 +UserTag table-font hasEndTag +UserTag table-font Routine <{$_}; + } + push(@parms, $opt->{extra}) + if $opt->{extra}; + my $front = "'; + $table =~ s:(]*>):$1$front:ig; + $table =~ s:():$1:ig; + return $table; +} +EOR + +History 10 +UserTag history-scan Order find exclude default +UserTag history-scan addAttr +UserTag history-scan Routine <{History} + or return $Tag->area($default || $Config->{SpecialPage}{catalog}); + my ($hist, $href, $cgi); + $exclude = qr/$exclude/ if $exclude; + for(my $i = $#$ref; $i >= 0; $i--) { + #Log("checking $ref->[$i][0] for $exclude"); + if ($exclude and $ref->[$i][0] =~ $exclude) { + next; + } + if($find) { + next unless $ref->[$i][0] =~ /$find/; + } + ($href, $cgi) = @{$ref->[$i]}; + last; + } + return $Tag->area($default || $Config->{SpecialPage}{catalog}) + if ! $href; + my $form = ''; + for(grep !$var_exclude{$_}, keys %$cgi) { + $form .= "\n$_="; + $form .= join("\n$_=", split /\0/, $cgi->{$_}); + } + return $Tag->area( { href => $href, form => $form} ); +} +EOR + +WritePermission group + +# Here you can set up fatal errors if a necessary sub or usertag +# doesn't exist, uncomment one of next lines to test +#Require usertag nevairbe + +Require usertag email +Require usertag email_raw +Require usertag loc +Require usertag reconfig +Require usertag summary +Require usertag title_bar +Require usertag var diff --git a/art/config/.empty b/art/config/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/config/.empty @@ -0,0 +1 @@ + diff --git a/art/config/additional_fields b/art/config/additional_fields new file mode 100644 index 0000000..087f13e --- /dev/null +++ b/art/config/additional_fields @@ -0,0 +1,116 @@ +COMPANY +Your company name +The Art Store + +ADDRESS +Your company address +123 Any St. + +CITY +Your company city/state/zip +Anytown, USA 00000 + +PHONE +Your company phone +(555) 555-5555 + +FAX +Your company fax number +(555) 555-5556 + +TOLLFREE +Your company tollfree number (if any) +(888) 555-5555 + +TEMPLATE +Select the template to use +yellow1 blue1 brown1 + +MULTIORDER +Set to 1 to enable multi-page order screens +0 1 + +LOGO +URL to your logo image +template/logo.png + +TAXAREA +Area(s) to tax in +OH IL + +TAXRATE +Percentage rate(s) for tax in different areas +OH=6, IL=7.25 + +TAXSHIPPING +Areas(s) that tax shipping + OH IL + +UPSADDER +Amount to add on to standard UPS costs +3.00 + +UPSORIGIN +Origin zip code for UPS lookups +45056 00000 + +SOMESQL +Set to 1 if you want to use MySQL or Postgres +0 1 + +{SOMESQL}MYSQL +Set to 1 if you want to use MySQL +1 0 + +{MYSQL}SQLDB +Database to use (will be created) +test___MVC_CATALOGNAME__ minivend + +{MYSQL}SQLDSN +DBI DSN to use +dbi:mysql:__MVC_SQLDB__ + +{MYSQL}SQLUSER +Username for MySQL (if any) + minivend + +{MYSQL}SQLPASS +Password for MySQL (if any) + pass + +{MYSQL}SQLCREATE +Set to 1 to create '__MVC_SQLDB__' with mysqladmin +1 0 + +{SQLCREATE}SQLCREATEOPT +Extra options for creation + -p -u root -p + +{SOMESQL and ! '__MVC_MYSQL__'}PGSQL +Set to 1 if you want to use PostGres +1 0 + +{PGSQL}SQLDB +Database to use (will be created) +test___MVC_CATALOGNAME__ minivend + +{PGSQL}SQLDSN +DBI DSN to use +dbi:Pg:dbname=__MVC_SQLDB__ + +{PGSQL}SQLUSER +Username for Postgres (if any) + minivend + +{PGSQL}SQLPASS +Password for Postgres (if any) + pass + + +SUPERUSER +Account name that will control this catalog +__MVC_CATUSER__ minivend + +CRYPTPW +Administrative password +pass nevairbe diff --git a/art/config/additional_help b/art/config/additional_help new file mode 100644 index 0000000..b5555a4 --- /dev/null +++ b/art/config/additional_help @@ -0,0 +1,118 @@ +LOGO +. +This can be an absolute image URL, or can be just a file +name that will go in your image directory. That directory +should be /home/mickey/www/simple/images. + +TAXAREA +. +For the US, this is usually the state(s) your business is +located in. Non-US users will probably have to set this +differently depending on their tax laws. + +TAXRATE +. +For US users, this looks like STATE=RATE, where the rate +is in percent. The default below taxes Ohio at 6% and +Illinois at 7.25 percent. More states can be added or +you can have only one. Should correspond to TAXAREA. + +SOMESQL +. +Interchange has a workable internal database, but many things will +work better (and a few worse) if you use a SQL database. Interchange +can configure MySQL and Postgres in a test configuration. + +MYSQL +. +You can select this to use MySQL in your test catalog. Careful! +This requires the ability to create a database named "test_simple", +and is highly dependent on your Perl and MySQL configuration. Don't +be too surprised if this doesn't work. + +SQLCREATE +. +We can try and use mysqladmin to create the database in +MySQL. In many default Mysql distributions, any user can create +a database beginning with "test". +. +Use the next option to add parameters. If your Mysql is password-protected +(and you know the password) you may want to add "-u root -p". + +SQLCREATEOPT +. +To create the database you may need to supply a password and +username. To do that, add the option "-u USERNAME -p", where +USERNAME is a Mysql user with permission to create databases. +This is often the user "root". + +PGSQL +. +You can select this to use PostGres in your test catalog. +This requires the ability to create a database named "test_simple", +and is highly dependent on your Perl and system configuration. Don't +be too surprised if this doesn't work. + +TAXSHIPPING +. +If your state charges salestax on shipping, then enter +the state code. (Again, Non-US users will have this vary +based on their locale.) + +MULTIORDER +. +Interchange can do order pages in any way; two examples are provided. +The default is single-page. + +TEMPLATE +. +There are three color schemes available as an example of +how you might template catalogs. Select one of: +. + brown1 blue1 yellow1 + +UPSADDER +. +For the UPS lookup, the standard UPS tables are normally +used. If you want to add a handling charge, do it here. + +SUPERUSER +. +You can use Interchange's companion configuration interface to +do upload/download of files, manipulation of the database, +reconfiguration of the catalog, and much more. +. +To enable the admin interface, you will need a "super-user" +account name that has full access. + +NOCRYPT +. +If you set this to 0, passwords will be encrypted in the user +database. If you set this to anything other than zero or a blank +value, passwords will not be encrypted and will be readable in +the user database. You can build encrypted passwords with +the htpasswd command, or other means. +. +Don't expect to be able to email out forgotten passwords if you +set encryption. 8-) +. +You can use your up arrow to look at the encrypted form of +"pass" if you have Term::ReadLine installed. + +SUPASSWD +. +You can use Interchange's companion configuration +interface, to do upload/download of files, manipulation of +the database, reconfiguration of the catalog, and much more. +. +To enable the UI, you will need a "super-user" account +name that has full access. +. +The initial password is "pass". CHANGE IT! You can do this +by going to the admin menu and selecting the superuser and +then "Change password". + +CRYPTPW +. +You should set a password for the administrative account. +Remember this! It will be encrypted. diff --git a/art/config/blue1/copyright b/art/config/blue1/copyright new file mode 100644 index 0000000..e69de29 diff --git a/art/config/blue1/leftside b/art/config/blue1/leftside new file mode 100644 index 0000000..0e9836a --- /dev/null +++ b/art/config/blue1/leftside @@ -0,0 +1,71 @@ + + + + + + + + +
+ +[loop + prefix=box + search=" + fi=area + st=db + tf=sort + ac=0 + ac=0 + co=yes + + sf=sel + op=eq + [if scratch left_bar] + se=[scratch left_bar][set left_bar][/set] + [else] + se=left + [/else] + [/if] + + sf=which_page + op=rm + [if scratch page_class] + se=all|[scratch page_class][set page_class][/set] + [else] + se=all|@@MV_PAGE@@ + [/else] + [/if] + "] + + + + + + + + + +[loop + prefix=cat + search=" + fi=cat + st=db + tf=sort + tf=name + rf=code,name + sf=sel + se=[box-code] + "] + + + +[/loop] + + + + + + +[/loop] +
[box-exec bar_link]area[/box-exec]

+   [cat-exec bar_link]cat[/cat-exec]
+
+
diff --git a/art/config/blue1/logobar b/art/config/blue1/logobar new file mode 100644 index 0000000..a4ee6c2 --- /dev/null +++ b/art/config/blue1/logobar @@ -0,0 +1,168 @@ +[if scratch members_only] + [set members_only][/set] + [if !session logged_in] + [set mv_successpage]@@MV_PAGE@@[/set] + [bounce page=login] + [/if] +[/if] + + + [scratch page_title] + + +
+ + + + + + + + + + + + + + + + + + + +
 [if session logged_in][value fname] [value lname] [else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+ + + + + + + +
Search for product +

+ + + +    + +
+
+     +
+    Expanded search +
+
+
+ + + + + + + + + + +
+
+
+ + + + +
Account

+ + [if items] + + + + + + + + + + + + + + [else] + + + + + [/else] + [/if] +[if session logged_in] + + + + + + + + + + [if type=data term="__UI_ACCESS_TABLE__::username::[data session username]"] + + + + + + + + [/if] +[else] + + + + + + + + + + + +[/else] +[/if] +
[page __ORDER_STYLE__/basket]Basket    [page __ORDER_STYLE__/checkout]Check out
 
 
  
Log out    [page account]Preferences
[page feedback]Feedback    Order Status +

[page admin/index]Admin    Reports +
+
+    Login:
+ + +

+    Password:
+
+
+
Lost it?      
+ +
diff --git a/art/config/blue1/menubar b/art/config/blue1/menubar new file mode 100644 index 0000000..e69de29 diff --git a/art/config/blue1/menubottom b/art/config/blue1/menubottom new file mode 100644 index 0000000..0cb7335 --- /dev/null +++ b/art/config/blue1/menubottom @@ -0,0 +1,26 @@ + + + + + + + + + + + + + +
+Home +        Profile +        Products +        Contact +        Registration +
+ +
+ + + + diff --git a/art/config/blue1/no_right b/art/config/blue1/no_right new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/blue1/no_right @@ -0,0 +1,3 @@ +
diff --git a/art/config/blue1/only_logo b/art/config/blue1/only_logo new file mode 100644 index 0000000..5e98e0f --- /dev/null +++ b/art/config/blue1/only_logo @@ -0,0 +1,48 @@ + + + [scratch page_title] + + + +
+ + + + + + + + + + + + +
[if session logged_in][value fname] [value lname][else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+   + + + + + +
+ +
+
 
diff --git a/art/config/blue1/rightside b/art/config/blue1/rightside new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/blue1/rightside @@ -0,0 +1,3 @@ + + + diff --git a/art/config/brown1/copyright b/art/config/brown1/copyright new file mode 100644 index 0000000..e69de29 diff --git a/art/config/brown1/leftside b/art/config/brown1/leftside new file mode 100644 index 0000000..0e9836a --- /dev/null +++ b/art/config/brown1/leftside @@ -0,0 +1,71 @@ + + + + + + + + +
+ +[loop + prefix=box + search=" + fi=area + st=db + tf=sort + ac=0 + ac=0 + co=yes + + sf=sel + op=eq + [if scratch left_bar] + se=[scratch left_bar][set left_bar][/set] + [else] + se=left + [/else] + [/if] + + sf=which_page + op=rm + [if scratch page_class] + se=all|[scratch page_class][set page_class][/set] + [else] + se=all|@@MV_PAGE@@ + [/else] + [/if] + "] + + + + + + + + + +[loop + prefix=cat + search=" + fi=cat + st=db + tf=sort + tf=name + rf=code,name + sf=sel + se=[box-code] + "] + + + +[/loop] + + + + + + +[/loop] +
[box-exec bar_link]area[/box-exec]

+   [cat-exec bar_link]cat[/cat-exec]
+
+
diff --git a/art/config/brown1/logobar b/art/config/brown1/logobar new file mode 100644 index 0000000..a4ee6c2 --- /dev/null +++ b/art/config/brown1/logobar @@ -0,0 +1,168 @@ +[if scratch members_only] + [set members_only][/set] + [if !session logged_in] + [set mv_successpage]@@MV_PAGE@@[/set] + [bounce page=login] + [/if] +[/if] + + + [scratch page_title] + + +
+ + + + + + + + + + + + + + + + + + + +
 [if session logged_in][value fname] [value lname] [else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+ + + + + + + +
Search for product +

+ + + +    + +
+
+     +
+    Expanded search +
+
+
+ + + + + + + + + + +
+
+
+ + + + +
Account

+ + [if items] + + + + + + + + + + + + + + [else] + + + + + [/else] + [/if] +[if session logged_in] + + + + + + + + + + [if type=data term="__UI_ACCESS_TABLE__::username::[data session username]"] + + + + + + + + [/if] +[else] + + + + + + + + + + + +[/else] +[/if] +
[page __ORDER_STYLE__/basket]Basket    [page __ORDER_STYLE__/checkout]Check out
 
 
  
Log out    [page account]Preferences
[page feedback]Feedback    Order Status +

[page admin/index]Admin    Reports +
+
+    Login:
+ + +

+    Password:
+
+
+
Lost it?      
+ +
diff --git a/art/config/brown1/menubar b/art/config/brown1/menubar new file mode 100644 index 0000000..e69de29 diff --git a/art/config/brown1/menubottom b/art/config/brown1/menubottom new file mode 100644 index 0000000..0cb7335 --- /dev/null +++ b/art/config/brown1/menubottom @@ -0,0 +1,26 @@ + + + + + + + + + + + + + +
+Home +        Profile +        Products +        Contact +        Registration +
+ +
+ + + + diff --git a/art/config/brown1/no_right b/art/config/brown1/no_right new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/brown1/no_right @@ -0,0 +1,3 @@ +
diff --git a/art/config/brown1/only_logo b/art/config/brown1/only_logo new file mode 100644 index 0000000..5e98e0f --- /dev/null +++ b/art/config/brown1/only_logo @@ -0,0 +1,48 @@ + + + [scratch page_title] + + + +
+ + + + + + + + + + + + +
[if session logged_in][value fname] [value lname][else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+   + + + + + +
+ +
+
 
diff --git a/art/config/brown1/rightside b/art/config/brown1/rightside new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/brown1/rightside @@ -0,0 +1,3 @@ + + + diff --git a/art/config/postcopy_commands b/art/config/postcopy_commands new file mode 100644 index 0000000..8b29eb2 --- /dev/null +++ b/art/config/postcopy_commands @@ -0,0 +1,3 @@ +ln -s __MVC_DOCUMENTROOT____MVC_IMAGEURL__ __MVC_CATROOT__ +To enable image upload feature, you need to make a symbolic +link of the image base directory into your catalog directory. diff --git a/art/config/precopy_commands b/art/config/precopy_commands new file mode 100644 index 0000000..1c60134 --- /dev/null +++ b/art/config/precopy_commands @@ -0,0 +1,13 @@ +{MYSQL}mysqladmin __MVC_SQLCREATEOPT__ create __MVC_SQLDB__ +Since you selected the MySQL option, you need to create +a database named "__MVC_SQLDB__". In a default MySQL +configuration, any user may create and drop and modify +test_* databases, but some administrators disable this. + + +{PGSQL}createdb __MVC_SQLDB__ +Since you selected the PostgreSQL option, you need to create +a database named "__MVC_SQLDB__". This will only work if +your administrator allowed it. + + diff --git a/art/config/yellow1/copyright b/art/config/yellow1/copyright new file mode 100644 index 0000000..e69de29 diff --git a/art/config/yellow1/leftside b/art/config/yellow1/leftside new file mode 100644 index 0000000..0e9836a --- /dev/null +++ b/art/config/yellow1/leftside @@ -0,0 +1,71 @@ + + + + + + + + +
+ +[loop + prefix=box + search=" + fi=area + st=db + tf=sort + ac=0 + ac=0 + co=yes + + sf=sel + op=eq + [if scratch left_bar] + se=[scratch left_bar][set left_bar][/set] + [else] + se=left + [/else] + [/if] + + sf=which_page + op=rm + [if scratch page_class] + se=all|[scratch page_class][set page_class][/set] + [else] + se=all|@@MV_PAGE@@ + [/else] + [/if] + "] + + + + + + + + + +[loop + prefix=cat + search=" + fi=cat + st=db + tf=sort + tf=name + rf=code,name + sf=sel + se=[box-code] + "] + + + +[/loop] + + + + + + +[/loop] +
[box-exec bar_link]area[/box-exec]

+   [cat-exec bar_link]cat[/cat-exec]
+
+
diff --git a/art/config/yellow1/logobar b/art/config/yellow1/logobar new file mode 100644 index 0000000..a4ee6c2 --- /dev/null +++ b/art/config/yellow1/logobar @@ -0,0 +1,168 @@ +[if scratch members_only] + [set members_only][/set] + [if !session logged_in] + [set mv_successpage]@@MV_PAGE@@[/set] + [bounce page=login] + [/if] +[/if] + + + [scratch page_title] + + +
+ + + + + + + + + + + + + + + + + + + +
 [if session logged_in][value fname] [value lname] [else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+ + + + + + + +
Search for product +

+ + + +    + +
+
+     +
+    Expanded search +
+
+
+ + + + + + + + + + +
+
+
+ + + + +
Account

+ + [if items] + + + + + + + + + + + + + + [else] + + + + + [/else] + [/if] +[if session logged_in] + + + + + + + + + + [if type=data term="__UI_ACCESS_TABLE__::username::[data session username]"] + + + + + + + + [/if] +[else] + + + + + + + + + + + +[/else] +[/if] +
[page __ORDER_STYLE__/basket]Basket    [page __ORDER_STYLE__/checkout]Check out
 
 
  
Log out    [page account]Preferences
[page feedback]Feedback    Order Status +

[page admin/index]Admin    Reports +
+
+    Login:
+ + +

+    Password:
+
+
+
Lost it?      
+ +
diff --git a/art/config/yellow1/menubar b/art/config/yellow1/menubar new file mode 100644 index 0000000..e69de29 diff --git a/art/config/yellow1/menubottom b/art/config/yellow1/menubottom new file mode 100644 index 0000000..0cb7335 --- /dev/null +++ b/art/config/yellow1/menubottom @@ -0,0 +1,26 @@ + + + + + + + + + + + + + +
+Home +        Profile +        Products +        Contact +        Registration +
+ +
+ + + + diff --git a/art/config/yellow1/no_right b/art/config/yellow1/no_right new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/yellow1/no_right @@ -0,0 +1,3 @@ +
diff --git a/art/config/yellow1/only_logo b/art/config/yellow1/only_logo new file mode 100644 index 0000000..5e98e0f --- /dev/null +++ b/art/config/yellow1/only_logo @@ -0,0 +1,48 @@ + + + [scratch page_title] + + + +
+ + + + + + + + + + + + +
[if session logged_in][value fname] [value lname][else]Unregistered customer[/else][/if][tag time]%b %d, %Y %H:%M[/tag]   
+ + + + + + + + + + + + + + + + + +
+   + + + + + +
+ +
+
 
diff --git a/art/config/yellow1/rightside b/art/config/yellow1/rightside new file mode 100644 index 0000000..eeb0254 --- /dev/null +++ b/art/config/yellow1/rightside @@ -0,0 +1,3 @@ + + + diff --git a/art/etc/area.recordnumber b/art/etc/area.recordnumber new file mode 100644 index 0000000..9762c7c --- /dev/null +++ b/art/etc/area.recordnumber @@ -0,0 +1,2 @@ +#COUNTER-1.0 +100 diff --git a/art/etc/cat.recordnumber b/art/etc/cat.recordnumber new file mode 100644 index 0000000..29087f5 --- /dev/null +++ b/art/etc/cat.recordnumber @@ -0,0 +1,2 @@ +#COUNTER-1.0 +101 diff --git a/art/etc/log_entry b/art/etc/log_entry new file mode 100644 index 0000000..c8be094 --- /dev/null +++ b/art/etc/log_entry @@ -0,0 +1,152 @@ +#### begin [value mv_order_number] ##### +[seti transaction_record] +[tag flag write]transactions orderline userdb inventory[/tag] +[if cgi new_customer_id] +[or !cgi customer_id] +Add new customer: [value name=customer_id set="[counter etc/customer.number]"] +Set password: [value name=password set="[value name=zip filter='word uc']"] +[/if] +Update userdb: [perl table=userdb] + my $id = $Values->{username} = $Values->{customer_id}; + @always = qw/ + company + fname + lname + address1 + address2 + city + state + zip + country + phone_day + mv_shipmode + mv_credit_card_type + mv_credit_card_exp_month + mv_credit_card_exp_year + email + phone_night + fax_order + email_copy + mail_list + /; + @sometimes = qw/ + password + b_fname + b_lname + b_address1 + b_address2 + b_city + b_state + b_zip + b_country + b_phone + fax + credit_limit + /; + + my $db = $Db{userdb}; + + if(! $db->record_exists($id)) { + $db->set_row($id); + $db->set_field($id, 'password', $Values->{password}); + } + + for(@always) { + $db->set_field($id, $_, $Values->{$_}); + } + + for (@sometimes) { + next unless $Values->{$_} =~ /\S/; + $db->set_field($id, $_, $Values->{$_}); + } + + return "Updated customer record."; +[/perl] + + +[perl] Log("Starting entry."); [/perl] + +[try] +[perl] Log("Past ACL update user."); [/perl] +Add main order [data + table=userdb + column=order_numbers + key="[value customer_id]" + value=" [value mv_order_number]" + append="1" + ] to transactions: [import table=transactions type=LINE continue=NOTES] +code: [value mv_order_number] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [value username] +shipmode: [value mv_shipmode] ([shipping-desc]) +shipping: [shipping noformat=1] +nitems: [nitems] +subtotal: [subtotal noformat=1] +handling: [handling noformat=1] +salestax: [salestax noformat=1] +total_cost: [total-cost noformat=1] +fname: [value filter=strip name=fname] +lname: [value filter=strip name=lname] +company: [value filter=strip name=company] +address1: [value filter=strip name=address1] +address2: [value filter=strip name=address2] +city: [value filter=strip name=city] +state: [value name=state filter="strip uc"] +zip: [value name=zip filter="word uc"] +country: [value country] +phone_day: [value filter=strip name=phone_day] +phone_night: [value filter=strip name=phone_night] +b_fname: [value filter=strip name=b_fname] +b_lname: [value filter=strip name=b_lname] +b_address1: [value filter=strip name=b_address1] +b_address2: [value filter=strip name=b_address2] +b_city: [value filter=strip name=b_city] +b_state: [value filter=strip name=b_state] +b_zip: [value filter=strip name=b_zip] +b_country: [value filter=strip name=b_country] +b_phone: [value filter=strip name=b_phone] +payment_method: [value mv_payment] +order_date: [value name=order_date set="[tag time]%Y%m%d %H:%M:%S[/tag]"] +order_ymd: [value name=order_date set="[tag time]%Y%m%d[/tag]"] +order_wday: [value name=order_wday set="[tag time]%u[/tag]"] +status: pending +affiliate: ORDER_DESK +po_number: [value filter=strip po_number] +deleted: 0 +archived: 0 +complete: 0 +comments: [value filter=mac name=gift_note] +[/import] +[perl] Log("Past transactions entry."); [/perl][item-list]Added [item-code] to orderline: [import table=orderline type=LINE continue=NOTES] +code: [value mv_order_number]-[item-increment] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [value username] +shipmode: [item-modifier mv_shipmode] +sku: [item-code] +quantity: [item-quantity] +price: [item-price noformat] +subtotal: [item-subtotal noformat] +size: [item-modifier size] +color: [item-modifier color] +order_date: [value order_date] +affiliate: ORDER_DESK +campaign: [value campaign] +status: pending +[/import] +Inventory now: [data table=inventory col=quantity key="[item-code]" increment=1 value="-[item-quantity]"] +[/item-list][/try] +[catch] There was an error adding to the transaction log. [/catch] +[perl] Log("Past add data entry."); [/perl] + +[perl] Log("Past all transaction log."); [/perl] +[/seti][perl] + my $out = $Scratch->{transaction_record}; + $out =~ s/^\s+//; + $out =~ s/\s+$//; + return $out; +[/perl] +#### end [value mv_order_number] ##### diff --git a/art/etc/log_transaction b/art/etc/log_transaction new file mode 100644 index 0000000..49848cf --- /dev/null +++ b/art/etc/log_transaction @@ -0,0 +1,115 @@ +#### begin [value mv_order_number] ##### +[seti transaction_record] +[tag flag write]transactions orderline userdb inventory[/tag] +[if !session logged_in] +[or session login_table ne 'userdb'] + [if session logged_in] [userdb logout] [/if] + [set auto_create]1[/set] + [if type=explicit compare=| + [userdb + function=new_account + assign_username=1 + password='[value zip]' + verify='[value zip]' + ] + |] + [comment][perl] Log("User create succeeded."); [/perl][/comment] + [else] + [comment][perl] Log("Failed user create."); [/perl][/comment] + [/else] + [/if] +[/if] +[comment][perl] Log("Starting report."); [/perl][/comment] + +[try] +[comment][perl] Log("Past ACL create log."); [/perl][/comment] +Add main order[data + table=userdb + column=order_numbers + key="[data session username]" + value=" [value mv_order_number]" + append="1" + ] to transactions: [import table=transactions type=LINE continue=NOTES] +code: [value mv_order_number] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [data session username] +shipmode: [value mv_shipmode] ([shipping-desc]) +shipping: [shipping noformat=1] +nitems: [nitems] +subtotal: [subtotal noformat=1] +handling: [handling noformat=1] +salestax: [salestax noformat=1] +total_cost: [total-cost noformat=1] +fname: [value filter=strip name=fname] +lname: [value filter=strip name=lname] +company: [value filter=strip name=company] +address1: [value filter="strip mac" name=address1] +address2: [value filter="strip mac" name=address2] +city: [value filter=strip name=city] +state: [value name=state filter="strip uc"] +zip: [value name=zip filter=word] +country: [value country] +email: [value name=email filter="strip"] +phone_day: [value filter=strip name=phone_day] +phone_night: [value filter=strip name=phone_night] +b_fname: [value filter=strip name=b_fname] +b_lname: [value filter=strip name=b_lname] +b_address1: [value filter="strip mac" name=b_address1] +b_address2: [value filter="strip mac" name=b_address2] +b_city: [value filter=strip name=b_city] +b_state: [value filter=strip name=b_state] +b_zip: [value filter=strip name=b_zip] +b_country: [value filter=strip name=b_country] +b_phone: [value filter=strip name=b_phone] +payment_method: [value mv_payment] +order_date: [value name=order_date set="[tag time]%Y%m%d %H:%M:%S[/tag]"] +order_ymd: [value name=order_date set="[tag time]%Y%m%d[/tag]"] +order_wday: [value name=order_wday set="[tag time]%u[/tag]"] +status: pending +deleted: 0 +archived: 0 +complete: 0 +comments: [value filter=mac name=gift_note] +affiliate: [data session source] +campaign: [value campaign] +parent: __PARENT__ +po_number: [value filter=strip po_number] +[/import] +[comment][perl] Log("Past transactions entry."); [/perl][/comment][item-list]Added [item-code] to orderline: [import table=orderline type=LINE continue=NOTES] +code: [value mv_order_number]-[item-increment] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [data session username] +shipmode: [item-modifier mv_shipmode] +sku: [item-code] +quantity: [item-quantity] +price: [item-price noformat] +subtotal: [item-subtotal noformat] +size: [item-modifier size] +color: [item-modifier color] +order_date: [value order_date] +affiliate: [data session source] +campaign: [value campaign] +status: pending +description: [filter mac][item-description][/filter] +[/import] +Inventory now: [data table=inventory col=quantity key="[item-code]" increment=1 value="-[item-quantity]"] +[/item-list][/try] +[catch] There was an error adding to the transaction log. [/catch] +[if scratch auto_create] + Logout auto-created user: [userdb logout] + [value name=mv_username set=""] +[/if] +[comment][perl] Log("Past add data entry."); [/perl][/comment] + +[comment][perl] Log("Past all transaction log."); [/perl][/comment] +[/seti][perl] + my $out = $Scratch->{transaction_record}; + $out =~ s/^\s+//; + $out =~ s/\s+$//; + return $out; +[/perl] +#### end [value mv_order_number] ##### diff --git a/art/etc/mail_receipt b/art/etc/mail_receipt new file mode 100644 index 0000000..ab70048 --- /dev/null +++ b/art/etc/mail_receipt @@ -0,0 +1,114 @@ +[if value email_copy] +Sending email copy of order [value mv_order_number] to [value email]: [email to="[value email]" + subject="Thank you for your order [value mv_order_number]!" + from=|"__COMPANY__ Customer Service" <__ORDERS_TO__>| ] +Dear __COMPANY__ customer, + +Thank you for your order #[value mv_order_number], it is being electronically +processed. + + Name: [value fname] [value lname] +[if value company] Company: [value company][/if] + Email address: [value email] + + Address: [value address1][if value address2] + [value address2][/if] +City, State, Zip: [value city], [value state] [value zip] + Country: [value country] + + Payment Method: [value mv_payment] + Shipping Method: [shipping_desc] + + Daytime Phone: [value phone_day] + Evening Phone: [value phone_night] + +[if value b_address1] + Billing Name: [value b_fname] [value b_lname] + Billing Address: [value b_address1] [value b_address2] +City, State, Zip: [value b_city][if value b_state], [value b_state] [value b_zip][/if] +[if value b_country] Billing Country: [value b_country][/if] +[/if] + +Quan Item No. Description Price Extension +---- ----------- ------------------------------- -------------- ---------------- +[item-list][row 82] +[column width=5 gutter=1 align=right] [item-quantity] [/column] +[column width=12 gutter=1] [item-code] [/column] +[column width=32 gutter=1 align=left wrap=1] +[item-description] +[if-modifier size]SIZE-->[item-modifier size][/if-modifier][if-modifier color] COLOR-->[item-modifier color][/if-modifier] +[/column] +[column width=15 gutter=1 align=r] [item-price] [/column] +[column width=16 gutter=0 align=r] [item-subtotal] [/column] +[/row] + +[/item-list] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SUBTOTAL[/column] +[column width=16 gutter=0 align=r][subtotal][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SALES TAX[/column] +[column width=16 align=right gutter=0][salestax][/column] +[/row] +[row 82] + [column width=5 align=right][/column] + [column width=12 gutter=1][/column] + [column width=32 align=R wrap=1 gutter=1][/column] + [column width=15 gutter=1]SHIPPING[/column] + [column width=16 align=right gutter=0][shipping][/column] +[/row] + +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]ORDER TOTAL[/column] +[column width=16 align = right gutter=0][total-cost][/column] +[/row] + +[if value gift_note] +Note for Gift +-------------- +[value gift_note] +[/if] + +Should you have a question about your order, or about other __COMPANY__ +products, please reply to this message and let us help. + +Always reference your Order Number when calling for a status. [if !session logged_in] +Or you can check status via this URL: + + [area form=' + mv_username=[data + table=transactions + col=username + key="[value mv_order_number]" + ] + mv_password=[value zip] + mv_click=Login + mv_todo=return + mv_nextpage=query/check_orders + '] +[/if] +Remember, you can always visit our site at: + + __SERVER_NAME__ + +Regards and thanks for your business! + +__COMPANY__ +__ADDRESS__ +__CITY__ +__PHONE__ +__TOLLFREE__ +FAX: __FAX__ +[/email] +[else]Email copy of order [value mv_order_number] NOT REQUESTED for [value email].[/else] +[/if] diff --git a/art/etc/profiles.login b/art/etc/profiles.login new file mode 100644 index 0000000..b4cb701 --- /dev/null +++ b/art/etc/profiles.login @@ -0,0 +1,22 @@ + +__NAME__ Logout + +[if type=explicit compare="[userdb logout]"] +mv_nextpage=[either][cgi mv_successpage][or][cgi mv_nextpage][/either] +[else] +mv_nextpage=[either][cgi mv_failpage][or][cgi mv_nextpage][/either] +[/else] +[/if] + +__END__ + +__NAME__ Login + +[if type=explicit compare="[userdb login]"] +mv_nextpage=[either][cgi mv_successpage][or][cgi mv_nextpage][/either] +[else] +mv_nextpage=[either][cgi mv_failpage][or][cgi mv_nextpage][/either] +[/else] +[/if] + +__END__ diff --git a/art/etc/profiles.order b/art/etc/profiles.order new file mode 100644 index 0000000..09bcce6 --- /dev/null +++ b/art/etc/profiles.order @@ -0,0 +1,121 @@ +__NAME__ invalid +&fatal = yes +mv_failpage= interact +&set = mv_junk 0 +__END__ + +__NAME__ checkout_profile +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] + +&fatal = yes +email=required +email=email + +&set = mv_payment Incomplete + +[if value fax_order == 1] +&set = mv_payment Check or Money Order (will call) + +[elsif value fax_order == 2] +&set = mv_payment Purchase order [value po_number] +[value name=tmp_total set="[total-cost noformat=1]" hide=1] +[perl tables="pricing products userdb"] + $CGI->{credit_limit_ok} = 1; + my $total = delete $Values->{tmp_total}; + return unless $limit = tag_data('userdb', 'credit_limit', $Session->{username}); + delete $CGI->{credit_limit_ok}; + #Log("credit_limit=$limit total=$total"); + if($limit >= $total) { + $CGI->{credit_limit_ok} = 1; + } + return; +[/perl] +credit_limit_ok=mandatory Credit limit exceeded. +[/elsif] + +[elsif value fax_order == 3] +&set = mv_payment COD +[value name=mv_handling set=cod hide=1] +[/elsif] +[elsif variable MV_PAYMENT_MODE] +&credit_card=standard keep __CREDIT_CARDS_ACCEPTED__ +&charge=[var MV_PAYMENT_MODE][cgi mv_payment_test] +&set=mv_payment Real-time ([var MV_PAYMENT_MODE]) Credit Card +[/elsif] + +[elsif config CyberCash] +&fail=../special_pages/failed +&charge=[var CYBER_MODE] +[/elsif] + +[elsif config CreditCardAuto] +mv_credit_card_valid=required Credit card fails tests. +&set=mv_payment Credit Card (%c) +[/elsif] + +[else] +&credit_card=standard __CREDIT_CARDS_ACCEPTED__ +&set=mv_payment Credit Card (%c) +[/else] +[/if] + +&calc = $Values->{mv_payment} =~ s/\%c/$Values->{mv_credit_card_type}/g; 1; +&final = yes +&setcheck=mv_email [value email] + +__END__ + +__NAME__ shipping_address +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] +email=required + +&fatal = yes + +email=email + +__END__ + + +__NAME__ account_change +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] +email=required +&fatal = yes +email=email + +__END__ diff --git a/art/etc/receipt.html b/art/etc/receipt.html new file mode 100644 index 0000000..bc9a0af --- /dev/null +++ b/art/etc/receipt.html @@ -0,0 +1,99 @@ +__LOGOBAR__ +__MENUBAR__ +
+

Receipt

+

SOLD TO:

+
+ + +[html-table fr='__TABLEFG__ WIDTH="20%"'] +ORDER NUMBER [value mv_order_number] +Name [value fname] [value lname] +[if value company]Company [value company] +[/if]Email address [value email] +Address [value address1][if value address2] + [value address2][/if] +City, State, Zip [value city], [value state] [value zip] +Country [value country] +Payment Method [value mv_payment] [if value mv_credit_card_reference]([value mv_credit_card_reference])[/if] +Shipping Method [shipping_desc] +Daytime Phone [value phone_day]  +Evening Phone [value phone_night]  +[if value b_fname]Billing Name [value b_fname] [value b_lname] +[/if] +[if value b_address1]Billing Address [value b_address1][if value b_address2] + [value b_address2][/if] +City, State, Zip [value b_city], [value b_state] [value b_zip] +[/if][if value b_country] +Billing Country [value b_country][/if] +[/html-table] +
+ +[comment] Handle downloadables [/comment] +[set download_present][/set] +[item-list] + [if-item-field download] + [if !value fax_order] + [set download_present]1[/set] + [userdb + function=set_file_acl + mode="expire 7 days" + location="[item-code]" + ] + [/if] + [/if-item-field] +[/item-list] +[perl products] + sub get_download { + if (! $Scratch->{download_present}) { + return '(Must pay by credit card to download now.)'; + } + my $sku = shift; + return '' unless tag_data('products', 'download', $sku); + my $loc = tag_data('products', 'dl_location', $sku); + my $save = delete $Scratch->{mv_add_dot_html}; + my $url = $Tag->area( { href => "deliver/$loc", arg => $sku } ); + $Scratch->{mv_add_dot_html} = $save if $save; + return qq{
}; + } + return; +[/perl] + + +[html-table] +Quan Item No. Description
Price
Extension +[item-list][item-quantity] [item-code] [item-description]
[if-modifier size]SIZE-->[item-modifier size][/if-modifier][if-modifier color] COLOR-->[item-modifier color][/if-modifier][if-item-field download][calc]get_download('[item-code]')[/calc][/if-item-field]
[item-price]
[item-subtotal] +[/item-list] + SUBTOTAL
[subtotal] + SALES TAX
[salestax] + SHIPPING
[shipping] + ORDER TOTAL
[total-cost] +[/html-table] +
+[if !session logged_in] +

+Bookmark this link to check your order status +

+[/if] +[if value gift_note] +Note for Gift:
+
+[value gift_note]
+
+[/if] +

+

+(Please print this receipt for your records. Thank you for your order!) +

+__MENUBOTTOM__ +__COPYRIGHT__ diff --git a/art/etc/report b/art/etc/report new file mode 100644 index 0000000..2e6bb84 --- /dev/null +++ b/art/etc/report @@ -0,0 +1,95 @@ +[seti order_text] +- ORDER DATE: [tag time]%c[/tag] + ORDER NUMBER: [value mv_order_number] + LEAD SOURCE: [data session source] + REFERRING URL: [data session referer] + + Name: [value fname] [value lname] +[if value company] Company: [value company][/if] + Email address: [value email][if value email_copy] - EMAIL COPY REQUESTED[/if] + Mail List Req: [if value mail_list]REQUESTED TO BE ON LIST[/if] + + Address: [value address1][if value address2] + [value address2][/if] +City, State, Zip: [value city], [value state] [value zip] + Country: [value country] +[if value mv_credit_card_info] +Credit Card Info: +[value mv_credit_card_info] +[else] +[/else][/if] + Payment Method: [value mv_payment] + Shipping Method: [shipping-desc] + + Daytime Phone: [value phone_day] + Evening Phone: [value phone_night] +[if value b_fname] +[or value b_address1] + Billing Name: [value b_fname] [value b_lname] + Billing Address: [value b_address1][if value b_address2] + [value b_address2][/if] +City, State, Zip: [value b_city], [value b_state] [value b_zip][/if] +[if value b_country] Billing Country: [value b_country] +[/if] + +Quan Item No. Description Price Extension +---- ----------- -------------------------------- ------------- --------------- +[item-list][row 82] +[column width=5 gutter=1 align=right] [item-quantity] [/column] +[column width=12 gutter=1] [item-code] [/column] +[column width=32 align=left gutter=1 wrap=1] +[item-description] +[if-modifier size]SIZE-->[item-modifier size][/if-modifier][if-modifier color] COLOR-->[item-modifier color][/if-modifier] +[/column] +[column width=14 align=right gutter=1][item-price][/column] +[column width=15 align=right gutter=0][item-subtotal][/column] +[/row] + +[/item-list] +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]SUBTOTAL[/column] +[column width=15 align=right gutter=0][subtotal][/column] +[/row] +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]SALES TAX[/column] +[column width=15 align=right gutter=0][salestax][/column] +[/row] +[row 82] + [column width=5 align=right gutter=1][/column] + [column width=12 gutter=1][/column] + [column width=32 align=right gutter=1 wrap=1][/column] + [column width=14 gutter=1]SHIPPING[/column] + [column width=15 align=right gutter=0][shipping][/column] +[/row] + +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]ORDER TOTAL[/column] +[column width=15 align=right gutter=0][total-cost][/column] +[/row] + +[if value gift_note] +Gift Note or Special Instructions: +--------------------------------------------------- +[value gift_note] +[/if] +[/seti] +[tag op=mime description="Order Text" interpolate=1] +[scratch order_text] +[/tag] +[if value mv_credit_card_info] +[tag op=mime + interpolate=1 + type=application/pgp-encrypted + description="CreditCard_[value mv_order_number]"] +[value mv_credit_card_info] +[/tag] +[/if] diff --git a/art/etc/ship_notice b/art/etc/ship_notice new file mode 100644 index 0000000..a33f5b0 --- /dev/null +++ b/art/etc/ship_notice @@ -0,0 +1,139 @@ +[loop list="[scratch ship_notice_order_number]"] +To: [scratch ship_notice_email] +Subject: Your order number [loop-code] has [if scratch ship_now_complete]completely shipped![elsif !scratch ship_notice_complete]partially shipped[/elsif][else]shipped![/else][/if] +From: __COMPANY__ Customer Service <[either]__EMAIL_INFO__[or]__ORDERS_TO__[/either]> +Reply-to: [either]__EMAIL_SERVICE__[or]__EMAIL_INFO__[or]__ORDERS_TO__[/either] + +Dear [loop-data transactions fname] [loop-data transactions lname], + +[if scratch ship_now_complete] +We have made the last shipment of your order #[loop-code], it is now complete! +[elsif scratch ship_notice_complete] +Your order #[loop-code] has been shipped! +[/elsif] +[else] +We have made a partial shipment of your order #[loop-code]. +[/else] +[/if] + + Name: [loop-data transactions fname] [loop-data transactions lname] +[if-loop-data transactions company] Company: [loop-data transactions company][/if-loop-data] + Email address: [loop-data transactions email] + + Address: [loop-data transactions address1][if-loop-data transactions address2] + [loop-data transactions address2][/if-loop-data] +City, State, Zip: [loop-data transactions city], [loop-data transactions state] [loop-data transactions zip] + Country: [loop-data transactions country] + + Payment Method: [loop-data transactions payment_method] + Shipping Method: [shipping-desc [loop-data transactions shipmode]] + + Daytime Phone: [loop-data transactions phone_day] + Evening Phone: [loop-data transactions phone_night] + +[if-loop-data transactions b_address1] + Billing Name: [loop-data transactions b_fname] [loop-data transactions b_lname] + Billing Address: [loop-data transactions b_address1] [loop-data transactions b_address2] +City, State, Zip: [loop-data transactions b_city], [loop-data transactions b_state] [loop-data transactions b_zip] + Billing Country: [value b_country] +[/if-loop-data] + +Quan Item No. Description Price Extension +---- ----------- ------------------------------- -------------- ---------------- +[loop prefix=item search=" + fi=orderline + st=db + sf=order_number + se=[loop-code] + ml=1000 + "][row 82] +[column width=5 gutter=1 align=right] [item-data orderline quantity] [/column] +[column width=12 gutter=1] [item-data orderline sku] [/column] +[column width=32 gutter=1 align=left wrap=1][item-data orderline description] +[if-item-data transactions size]SIZE-->[item-item-data transactions size][/if-item-data][if-item-data transactions color] COLOR-->[item-item-data transactions color][/if-item-data] +[/column] +[column width=15 gutter=1 align=r][currency][item-data orderline price][/currency][/column] +[column width=16 gutter=0 align=r][currency][item-data orderline subtotal][/currency][/column] +[/row] +[row 82] +[column width=5 gutter=1 align=right][/column] +[column width=12 gutter=1][/column] +[column width=60 gutter=1 align=left wrap=1][calc] + my $status = q{[display + table=orderline + column=status + key="[item-code]" + arbitrary=order_view + ]}; + $status =~ s:<.*>::s; + if($status !~ /\S/i) { + $status = q{[item-data orderline status]}; + } + $status = uc $status; + my $mesg = q{[data + table=inventory + column=stock_message + key="[item-data orderline sku]" + ]}; + if(!mesg and $status !~ /^\s*shipped\b/i) { + $status .= " ($mesg)"; + } + $status .= q{ time: [convert-date][item-data orderline update_date][/convert-date]}; + return $status; +[/calc] +[/column] +[/row] + +[/loop] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SUBTOTAL[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions subtotal][/currency][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SALES TAX[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions salestax][/currency][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SHIPPING[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions shipping][/currency][/column] +[/row] + +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]ORDER TOTAL[/column] +[column width=16 align = right gutter=0][currency][loop-data transactions total_cost][/currency][/column] +[/row] + +[if-loop-data transactions comments] +Your comments or gift note +---------------------------- +[loop-data transactions comments] +[/if-loop-data] + +Should you have a question about your items, or about other __COMPANY__ +products, please reply to this message and let us help. + +Remember, you can always visit our site at: + + __SERVER_NAME__ + +Regards and thanks for your business! + +__COMPANY__ +__ADDRESS__ +__CITY__ +__PHONE__ +__TOLLFREE__ +FAX: __FAX__ +[/loop] diff --git a/art/html/.empty b/art/html/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/html/.empty @@ -0,0 +1 @@ + diff --git a/art/html/index.html b/art/html/index.html new file mode 100644 index 0000000..4baa4db --- /dev/null +++ b/art/html/index.html @@ -0,0 +1,214 @@ + + + Welcome to the Art Store -- an Interchange demonstration + + +

+ + + + + + + + + + + + + + + + + + + +
 Unregistered customerFeb 06, 2000 12:18   
+ + + + + + + + + + + + + + + + + +
+ + + + + + + +
Search for product +

+ + + +    + +
+
+     +
+    Expanded search +
+
+
+ + + + + + + + + + +
+
+
+ + + + +
Account

+ + + + + + + + + + + + + + + + + + + + +
  
+
+    Login:
+ + +

+    Password:
+
+
+
Lost it?      
+ +
+ + +
+

Welcome to the Art Store!

+

+Enter +

+This version of Interchange introduces the Interchange user interface: +

+Admin +

+
+This is the "simple" demonstration of the Interchange 4.5.x electronic +catalog system. Links that will help you to use this software: +

+

+ + + + + + + + + + + + + + +
+Home +        Profile +        Products +        Contact +        Registration +
+ +

+ + + + + + + diff --git a/art/images/bg.gif b/art/images/bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..4be3e88964bb8ffa3ca810f02b51a904bbeb447f GIT binary patch literal 43 qcmZ?wbhEHbWMW`qXkcJSo527Cia%KxL9`Bt0Ld^gF|`CTSOWl&c?FID literal 0 HcmV?d00001 diff --git a/art/images/blue1/cart.png b/art/images/blue1/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..27d60b8efbdd2e950f9a65be4e59e36a4cbb7f70 GIT binary patch literal 288 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 R_9~#w44$rjF6*2UngCVPP&)ts literal 0 HcmV?d00001 diff --git a/art/images/brown1/cart.png b/art/images/brown1/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..27d60b8efbdd2e950f9a65be4e59e36a4cbb7f70 GIT binary patch literal 288 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 R_9~#w44$rjF6*2UngCVPP&)ts literal 0 HcmV?d00001 diff --git a/art/images/clear.gif b/art/images/clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..4be3e88964bb8ffa3ca810f02b51a904bbeb447f GIT binary patch literal 43 qcmZ?wbhEHbWMW`qXkcJSo527Cia%KxL9`Bt0Ld^gF|`CTSOWl&c?FID literal 0 HcmV?d00001 diff --git a/art/images/download.png b/art/images/download.png new file mode 100644 index 0000000000000000000000000000000000000000..b784bb59fa9c19ae321676ce005192177d9b4502 GIT binary patch literal 2175 zcmV-_2!QvAP)f$jHXV z#>B+L!^6YE!otD9!N9=4zrx73y1=ow#J#<}zP`S>xw*Q!y1To(wYa{uwY9dkwzIRd zu&}VIu)U|Px~#0MuCA`Cs;a4}sidc^rKP2&rlz5xp`xOqo20j%r@EA(x|O24o1w0e zp0|maxQ&{#kDRpt005AdqnV$qlAErWo1ue{sf(1SfQ_b|ot>YbpO~1Ko12@KmX?&1 zl#!8t6OxZRBfPDZlO$RqD5t-Z+w+xbdz>`iEMU@XLOBVZH8ZRm{Dq-S89+? zXq!!DnMz}pQDJ~xZH!iFk5XleU220*Vu(&*heKYJNnCTSi8@n;G);glO^h#0g&#*emHI5E9iUu=`1u}~bHG~2$hy*QweSLj; zdU|JY;SLGXlQ6^YHDU_Z)9X-W@ct$Vq#Wf zd|YLCU1W1#VrWoZc0p8nPFr+MT60)lYgt@k0000)QEEU*I&CUF zV;wzw8ajCZ000vK~6BQK|85t1~5gs1iy?dBO zLl!rrW$UGSLKY(vd7Fr)8#xV}7zv=@G<^OuF4{7kUz%v{QmaT4Bp{OjO+;T0PpXDs zYN-{z9KQrI5(c<5?L8XOVbMgyjUv+A_&Kn|=N{@9KdjW_2Emf8j`8zws4AT^9eSc! z=oo$mG5fu{ zrq8FpD#=l0BQk>#@Egv+<)+8|1WI?^OFMM4Q&9@*37P3QPrFlXSFsmz&KL41t{IZt zUq{H8J1u00U>+)5c6G8qlEfhbk((3{0t~xK64mHXfob@sg%UenUsTq2P6H~iVmo#N z4*1|EX5KX5_rtM_S;NlBfe+3>SG8%}1eHi9I5pvw<4#~TiorD^Z!S1i^wJK-lu?vU zD%9xXQc&act{Scr)7E<|WQ2pndwM(LbS}Ho>rL&+no=Usxr!M>Q8rPdQbJJk-;X$2 zu9!eYDHW+ygsQ?-)jd#Qv^<)NJ0neNXKDr~CyRub$K9YGY$Qp2w1boTXwChSj6`ly zfb|%|uFU;(D)g$$wTcD@>fyR}L1X^&(?7A`P%QoC3>r5ZK0UkCrVmAB?y`?j_ZW^d&3w6e ztPq?TMEGQ(3cW6!1T{cmMFRb~CviT!H=_o1B7URy$Y9N94i-z`j7a#zr9x-EZBR6E zUT=CY5?`{;PGVQ~6;e~;oFp#8?)7>TSkvY*kb%XVA$(#{p*E+WXgcA&=_HNV@t??! zt5p+r(Is7^E^XCx&R4TD%G6cEfLHE~y|v^vemTQ#c@}pJ&}Rb=BpPnVG~j8wh1`XQ z?SM0mFA9?K^^7Zfsy*DQtg(c!=Hi|NArPipTbMt0`zi|Ysg#HPdn(txTY!yI;4i%% zFJoDSJrCbd)$*0LEHwM*ciqj_%ng!>Iy0~WU!;j`9#P(6V9kpmtjqDW*V;Y|d%#U7 z+KR&3TLq$hkUzD02EICuhRL)E{Dp$IrnQAhY9mW*bMf=Hz&0u9DI3JCfi)qmdr_4s z{(G3w@b5%HwSzXE!ol^=;RuRqijjX9`>CU4%OWht0VPa-6**o0cwT)o=&4NM*1(!= zp{x_;uS-+jnQlFTVSb#I^#YdeDtQ#xH+FO$j?`vcLH)n_;vWKDtM$;wWDJ}K{N&?o zR@OCbJ6zjA@Pldrur{y zN+pwa3;=V>kOG(re;}J2G<^TVB4_nWB)RCU03u-|3!{HlIAHcx0=x zWj7EWVOrpqGtJNfE6;d$L z8^sdzuzO{VE`(KYFz}VsyS1xS?LV9X>4Jp!t7iZJ002ovPDHLkV1kA? B_dWms literal 0 HcmV?d00001 diff --git a/art/images/items/00-0011.jpg b/art/images/items/00-0011.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f7154df63f73363fd69a8aaeaef331560c48342 GIT binary patch literal 2574 zcmb7?XE@sn8;Ac%j2JPa_J~lkgoM!AZH!Y&P^%oPr}iGNn6+xu3e{2^6g8@JQ1diK ztk$MAqFNDJY0+pEMZNmrz0T+N_w{~$_j5hh^_1-J-6 zSy)(En4zq!tZZyhc1}2qlY@g(n2(nTL>0AMf(0)a4rK}?X}Lm)7~3t{3zFsm8zL#81sJL?iW=&reo%4Ka}t+=1BcM~ulcvH=j)~kXl=EO)d&+%FVtL409SQQ zYm(2lhEW>ReSr_A<4U5%TDRZ%2cXf@&0DNw$}C%ydz)r$u6O9hKWGxNq3#S}Q{h@1 z|EI3M1p1bU%aW!!mQf}))2qw@881JW=vY3^pFqgc%IrQB7#!ySLhx>Qkz;cM%u%p8~z|pmN z{@j@^v$7r4Gq`9?CO~=m28ii2al3-CV11S<) z%!1EK>iMd;<+*vNY3QgCfro=aUdbXYJnGB4t zl8O};U*-me9&x84|w=WtxY}#LJjYD zk~Ke7=pB1SdWcD4rh4O@O`w=r{wt|C5~(GDk>{bB{hC{9 zKTpoa)uQ7|6u$|0i%h<%br@^E6-x1Y?h}LVV+9Fz5$=Sp;EAa@-!9u^x&0YGlMo=9 zEPHZ98<}5WzgS{Z!t$=gmj$9X?yt;T#vG z^=ZymYpHJ}7#TH@G{~Y?4m|k1?Dbj~0aK=AsxB)=XRxyn6O*1dRZ@jib zpRd=zA#%IVNi0uG;OV0yckI|=!s|P~IhY@Zf6HZq=aWlx%37_1EJxbvid4k#Bts8yjraRk(}r;mSJB;Eo;2il46){H$S z+Nb0eo#uQ)KeBg}2jdO?@XXvVgx=mZo!oFb`bWtz*Cw6C{loZ(-pk!*?!qX4?B26j zOMTeLYIh;Juy1~Q=NsxZbvA`l9}(LjS$b zPrXf_c1bukf(#R7NZ1;`38C8XogIuk9`2)+zn(n-)_hzHkgW#S{@w|<8^Ih1if+4~ zK5fiF(Uj@p(&6ZU1{-!+u`KCfCzr|lyaHip)ksDc<6Lk{3TRng`di2e@L&eU;L$OJ zYq5y(_SPBO3NlyBQ_a=|q@hxfsZ^mHO7^;FMm8X{3lI;9vx?q_WKm_f{V-S|D^Bwg zcy0$nQmfd3%7m$gm)SESC_6TC`sG1%T#RgsbB(2Wb3v`2T70zs?Sb3kYd4s=-ooR( z!q1PNvtobq;wH`f*f`Ci9N|%+)>+iJ9qnbpc=4imWDAbav4EMFjim(QI|!?bUXx3L zWkckRlDlDca=J-ENd;t_aFlvG0^zLFi|6_d>kp|;bonw6!NZl-lc|7%ET1__qsu>V)6_O$k*_*}dLLCU-0Y4`$if={ zH*I|+qmBpQ!1Id-Rfz`)vyDALYB9>hjTNT_S=ZSwo-p1<;!1a;(Cky`tX5p2{ literal 0 HcmV?d00001 diff --git a/art/images/items/00-0011a.png b/art/images/items/00-0011a.png new file mode 100644 index 0000000000000000000000000000000000000000..27712516a348fdc97a0590aad8307896460dc7e5 GIT binary patch literal 8525 zcmV-TA+p|zO-@G*3K|Lk0010KNJLTq004df003M700Za%000000000000000000AM z1i(%J000U`QbA1s00IC200003=y286IRF3v4M|8uQUCw|egFUfTnGXH001W?mf`>a z00v@9M??U<0KEXcX+qVg001BWNkl zdrE&^nz=o^{#Kcv{!|J-JRTnZFTk&RR(~$q&pz-!{^&oHx_?Ld`=9>L&wu~l1LQZv z|Fdio2>j0PKK|jK%%xu>NQsZn67+S?@Rzd@xZfI?0?xATc-rgV{g=0oPx{92{24TU z>vj1jfB)g(t`WB!brPGxpBj;{4hB_{q<{A^lg@9{1Z{{~LdO z_w@7i#d7i1v^anJ?`(eK2Y2&h(7=0Z4uH^8z`(6Fe=O)RAn=|jJaW=6bO8bIDNw;X zVj=_)%)bFW1-Dcoa~uL_y*Uh@g9NswS=dPr27>Acx!nZl?C(i0`fuPO!Wef65J`xF zNJ=6hq2WS_v``os$~yss^c#QcVV+M#`7-H$`1cIGA6!YVn!*Bz zE{P}+^VX_CAS=2wHNxq^gJ1;(0!@NQlcuU5=Z%YqiZD+1ZdE4i9VW0(j6fwkpuiX$ zKo}&LSaWc}1JxMJcR^jl2sEh{09b&;d`US>D51TdGOr4|xN!evsXtUbRa8K$fohlX z88pcx05zp7lnbq7kSU=Qf-p5Icv~I-TIFn<%>m4WNCQd$P>_TUP7Q4b2$X+afJp{bFv)i?OY&JLNSB&6gsL%B#3d7+i-|c&QA!?18W1+KQi**bXj8

9O_^OsPx`k!;p6ZkVLvvyG`7=)k2f*=OFZ9 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 HAt3kF|9&ZL literal 0 HcmV?d00001 diff --git a/art/images/items/00-341.jpg b/art/images/items/00-341.jpg new file mode 100644 index 0000000000000000000000000000000000000000..382e2d475688f24c955e1d6cfb1b21b21e59198b GIT binary patch literal 2621 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 literal 0 HcmV?d00001 diff --git a/art/images/items/19-204.jpg b/art/images/items/19-204.jpg new file mode 100755 index 0000000000000000000000000000000000000000..c1b811f0161be40c941dbf04fda1123e5adff622 GIT binary patch literal 6233 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 Dc0j8` literal 0 HcmV?d00001 diff --git a/art/images/items/21-221.jpg b/art/images/items/21-221.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f698a1be9ec58263ac6c6520ec4c5ba7913b6cb2 GIT binary patch literal 4184 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 literal 0 HcmV?d00001 diff --git a/art/images/items/34-101.png b/art/images/items/34-101.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2bf2655e461fadfa635048ccce81d5e39f4262 GIT binary patch literal 2743 zcmc&$c{tPy7oHdyGnSu7b~CcCV<%*ovF}TkAt8oA2oX1$?3AlAVPuJv{TA6PyF!v> zWUL`s$4w)<%;)>B@9*z?H&j$q{#^q&9FBy;{qEspCXxP!`F;EU;1j8n+rM8pAx`3V z=AXv{0|WoO=a66L5E1XpW|KF3)5*KTHw?H@&?EK3^!GcRc^F6YVjD12#O@7d zD&zJxyijCMQbh0ik#+Z9i!c#As_9#j;&?z|t!6A_upS*mFFt&qVf|}aL^pP2J?yn& zb8PS-Y+f;8WN#O}$5^*1iGDKj^T-M9kwu)!cWoJs`tTN@{tSMG**D$D@p z58{$N9hTP2PYqoPe$HQdRL8DenNA#GC?d*$w41e$nITmW_$zjGj^wiAJk?h&f16&2 zcxha_7ibqTTjq6-)hI(=Yn>@_hx)METBfU~jt>^A+8ODq3 ztI;K8r`q2ghtL-Rz~#YXS}Honxv0%B&UNUd57Y88-}Q$R z_JSJW4whx`7Wgr|;{1k3MpFg6km)b# zdTPn>ab4q&4Kag=vtzA@#&qSRA21MTn_n{eeVpz{3Td@w~;a(n$WcmE?4zojG7;hShR zU)0}L5+w73^BxHR|*UwtBsil%w4)!};v3|*c9Z2`i5G5|o1e;^gDF877w}5Xs(48usj0j@VY!g1G?vw&XN7Xzz$VgOyhj*~0 z?>jahCYcp!P6^=oR!TWfu8ZSEIM=dwsxreMq9GbZeHC+rRC&icEcq0ln~N_Z;SnxV z1D#2Olh23|j`Gj63G5aVs3*^i!^;LZRB!4d+VAw;FfDTN8cFyC`KGBg!(SXHKyHum z^8#PHuMbFQVGx}q3a1Bm5$&(4d1&fnEAjC4O{UVQl^!5v@WG!S18-%Yj}!E6o#a^; zppITq2#}AsEE~DBPn#V3))hdKww8@wwv9d$W+3E3c>fg!Nk^QSa)=d=ylY;Clb)t( z3-vHXdKdPyin@EY8<>;m=^TZ_*JY_^83vGvKI+Uf=oJeGZX_{SQ6PX!)~QWsqNVWW z0?`*HJevbJD%57{BHW@d{&}JDOOLR^Rf}Om4Wl&(ceUb{P4alSB0Q*Wh~V1x{DMHj zs57-~VbGJa4PU7Y_oB!w5Mf;b(gknsSt$kXWb6XZg@;=ebf)K=`@e6Kn}?>7a(WVV z=gV63&wdG~pm^ElO>YA?fhvC*zsimy>~c|OR=~k0(dGHjCwDBF2hFlX@8-f{w^=*o z%sr9GSjxzT$t^nh>Tta=xhYDuH!{p=WvAAi*GavVg3CO-JVq`h?qw;8R-&~la&fSj zV9icJeR(EpSR;ZOKs8Z$}cSNW-JlGJD8|K;y7dB6~j9km}+Ff>>JnFiyCJrzsE*Ms&fy zLsT}fxplUyL^-O`ah0*IjoY9lU+iNV*lk@!`n+Y$8(;Kk#O!IbRoIoQjgPndyFCC^)Q1Po!V{ z&%+sjvS*$da=eb1j3fD=QT|h+fuq5%~F15T%+f! a#w0z$^x>WptsVI9BVcN1h55_CBkn&qKkJhK literal 0 HcmV?d00001 diff --git a/art/images/items/chair_car.jpg b/art/images/items/chair_car.jpg new file mode 100644 index 0000000000000000000000000000000000000000..237bc4cb57f5a63aa68a7be8875397f2541da103 GIT binary patch literal 3495 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 literal 0 HcmV?d00001 diff --git a/art/images/items/golconde.jpg b/art/images/items/golconde.jpg new file mode 100644 index 0000000000000000000000000000000000000000..028dddef524f680e181a94f024b141efcf7d4c60 GIT binary patch literal 4154 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 literal 0 HcmV?d00001 diff --git a/art/images/items/illumined_pleasures.jpg b/art/images/items/illumined_pleasures.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5f3109cf7873caa59562b19177dae8213136331 GIT binary patch literal 3228 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 literal 0 HcmV?d00001 diff --git a/art/images/items/irises.jpg b/art/images/items/irises.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18e530a9d7132f096143ce2afaec31813de793ef GIT binary patch literal 5058 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 O(Wk)7I(`1L&;JMIT#@(y literal 0 HcmV?d00001 diff --git a/art/images/items/loose_hair.jpg b/art/images/items/loose_hair.jpg new file mode 100644 index 0000000000000000000000000000000000000000..256dfcf9643303d244056061fb046a4438bbb7ab GIT binary patch literal 5015 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 literal 0 HcmV?d00001 diff --git a/art/images/items/my_gems.jpg b/art/images/items/my_gems.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30f84bb6e2e094289991c7ef2ae6fc2d5a25e0c3 GIT binary patch literal 3087 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 literal 0 HcmV?d00001 diff --git a/art/images/items/okeeffe6.jpg b/art/images/items/okeeffe6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..660a0badf12ddc53e3df3cd0c575049a7e7272c6 GIT binary patch literal 4023 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 literal 0 HcmV?d00001 diff --git a/art/images/items/paul_harlequin.jpg b/art/images/items/paul_harlequin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0526a6875c976373607560c46b25f0b6c6ce721 GIT binary patch literal 4289 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 JEbesje*j>;{PzF= literal 0 HcmV?d00001 diff --git a/art/images/items/pol1.jpg b/art/images/items/pol1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6f04e3ecc688d9a20e035ec72480e0d4a2c3409 GIT binary patch literal 5045 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 literal 0 HcmV?d00001 diff --git a/art/images/items/poweredby.gif b/art/images/items/poweredby.gif new file mode 100644 index 0000000000000000000000000000000000000000..2eaac4229905b9090bc2a76220d4e73d7ec4d660 GIT binary patch literal 2031 zcmeHG|4*BB9{)T~pSDl?wB>1Ox2heq3@_N0JS7+CrR+74En#^Xi)oOLQT;1K>ZnwL? zzkg_GXn1&dWMqWrd7sZ02n2$`U^pC(L?W?REFO=iQmJ%0y|S{B&1MUQLa|s}-vB@n zAiECfA{5pkUVxP%qzVwpLU09!Q{YR(ND5+E2(LgO4SWiQ;^2;fD+2XF&<21G0O^Bl z5z+-1jzfP8x+7o>LsJk88>|ly55*1VEJRiymmVK4`wJ^)%DkUa2l z7>+@I1iClm0WfT6MBCqW|N6aslHnt$+CfA^~Bf&KV6YjFaWt`mRN1Y^cK2 zccT=2_39tAn1?mZSVW^0?M9iT`#SS7{m`bKzs-dcQaQ47q2&dE9Bu3Sti%Z>UXtrr z6f)c(rewMvma^vP@$(rRmY*@R&UN1J(3G|GI7Q99In)MLPq zLR^ba)83`Am+&3epQJ+AxbQwy_sth2d`zmHZlmLQ7*@emCJTjmG-zz-LvY!C-f?HlG^R`=9t#C46oFaJ!5nwf5Ib? z;fb-by-t#m?7GYFjAcG&D?4zF%#mHjUrjKzYo-a>Qc5Hx`)U{L>g~zHv!^P9v{2q@ z>b0txnK|Om=wg&t+4|;c#*B3{gaQ#W8Xs?#j!Zb>2mJ`@X!L-eby-z0!Q| zXj1VoIWw+s-MDsm%F(inBgb9O&9M6UkU(XYDQ#sZ$6Q{ji?HxzkCO05yX3;)`U1I? zmE;ecwm+v&QqJ~eTw=ehw@c26Fss6$RT5O^s_RWhgDJnHtPLFH)y+NL zMWq9o?8-{@f|WK8%-?csYOov%^ymy3X>H$~#TTqb7hhf!DU+AWlyi1f)tSpB z#g?F!P&_tWvT98FJGiv6>H}6{uFeyY8vQ#qO^t3}MkD(=TB80mX?)9CGtV^y4*1z5 zwf~Kbm9mlEF$wll$)>UB@=Meg*=I9k?L~&ax`Xt7Pc>@2N#)MaZ?2Or+(o>d=yh6Yi2Rgo1Y$BCJ6EXyV^yjXr_o7x()g6Up=lzd|J~c*_>M<-Z~w z^B0Gf@Gyjo;Do1$W1a*~()!0On`wmUbI4eo)~gbW=*s<9EQxIdA- zx?7m0tHrHcS2N9p)z!EFeek=|=EZv}W-+3!kB~;+exW`0{QO>|ef_T-PKS6Io#<}& zr@pJ9pW0^pDu1Na-`EfqNUnt(EiAfy`k0US9AQ;Qu^(^#qfJCJ0u{}zX$J6KlEXJ~ zLQyM=4mFXLnv+QOgWoWC4>zc0JI?DSa8d5eEiHpq^aJ>JZ49Q%#eXy*vv`@qNk1n% y-njMZQpN56Jo5fs&9Gh)V8k6KRTC#dC*D>6y1D;peec&VpM^W`87yiVwfzjkRbj~h literal 0 HcmV?d00001 diff --git a/art/images/items/tshirt.jpg b/art/images/items/tshirt.jpg new file mode 100755 index 0000000000000000000000000000000000000000..b18181027d900baefe180c0feef0adbcce2d8892 GIT binary patch literal 3756 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 literal 0 HcmV?d00001 diff --git a/art/images/items/womanfan.jpg b/art/images/items/womanfan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..729a4662a239f83f4947096a33a3336e58c4e1ba GIT binary patch literal 4011 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 literal 0 HcmV?d00001 diff --git a/art/images/items/young_man.jpg b/art/images/items/young_man.jpg new file mode 100644 index 0000000000000000000000000000000000000000..173db9c8e660b47734412dd07fe9506bb75d64d5 GIT binary patch literal 3550 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 literal 0 HcmV?d00001 diff --git a/art/images/mvlogo.png b/art/images/mvlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..d09559ca289d63039b12cadf23036370ffdc9ad2 GIT binary patch literal 1435 zcmeAS@N?(olHy`uVBq!ia0vp^wm_`Q!3-p|vL-t)FfcO&_=LFr|NkE-GJwF?*f`DD z7|j7`Y3L$o3drLEtx7XaL)Hrv0D_rmD1tx*GiRoqnVI%~Cb~GXUi@rhL)*B084L_e>Ygr+Ar*7phFEX9ZNPJ+c8-?#M5#xio_r6l&&cChwxLE~ zmEau@@r_ck?)i>h=hAHqpQ=rs=^(~CF-E6Ob{J(tf7N=Xd<~{k<7k2Mz z4%*rNqICV|044c%Darf)So8DcZ>x_FUd6Ayz5j^Zovp@Nh3l3sk-zJ3QFG<$vlA+3 zUfWXiKCkfPTj}eM8lP7y-CMoS+H2RLq^A#^Ri0)PXXdWj>$f#}=g00$bz#{Ln-*HK zF4eiRar$D_^vGa=iwom+K8%}H^xo3*!QxYotmJI&KWNHGw={b_BmeC0-OuNI+HfS- zOn3gd9PQ{mdygA1z5QGhKR+ZqFIg$-v03z<^Xu2T8b6ACn)J;0|Dxo`;y9(hKVE-d zEAvagQ>{{Rg_f883=and--8-2SBLx(+imKzn)_yxm*Ss0Ss-JRJ3(oZLn)6;?KfSQxTy6GNb~EQttBV49iYAYXHBtgP8wwxs z-ZicHeNTjKt_%Bv8LG=|9;CGMrfyGS{F5f`^lp~lY^OCfLYIED{!|HjvF$qV-$kF# ztmO+*yrwpF%~Hi_-?%PVPl#SPtAnqZG5bf*m%Ox@8MYb%cm8EGIPFlld41{WCa?9% zFJBgKe68s$dGBdnZpE`)_N_Z3?-p{mbH2-QW%j<<@wS3#FYg@T4R>^d=4`e8o;NRk z*G;3ZdH446Y}+=|`}G%x8RpAhrGL7%kka13G);b1ZSLFWann? zx$8rv)g;;Dop+-O#bUPz|LI&}p8xEuhuW|0@n%1t{cYc>bm`90W{&q~j~MLep0?1n zGsAM{ivM%(NAtg3ynES4p?W9g758o&t=XMY@Xf?jz+dQ>($};-=4LWacgmHvTHT6S z*sh#y>#e_RW8IJ9wv6CLCcz6V;vEJ|p2gFpZFJVIbDMfq&?Wq!e^##jnw1J{BA$!8 zk4Af_s5Z^~s?=uu>=@&d7l|j=m|eA~%Zv$R{L^xw`@lvKo2t0C+c($Dsm^FcktJmr_1_W#WMX!WJu(`45hBx<)V;pH=kQ{Axg#hMFU6GOOk z=eTkjy%E~@u;H-Z&hkU2;@6md4%okC!`GzQ?UR}1mfV^4$!Kf1z)Qi9`{K6}7e1R8 zWZL~g$18131^0fHOV4~;vd=^uefv})>{`SMp2hRGOtblBd?NbrvDUoS>?AL9bM+?? z4L=lx?(aHVyvlr6gSyOKEeFPM7s<(?**m{_y?Yv_`E0=GW$<+Mb6Mw<&;$TOK`tQx literal 0 HcmV?d00001 diff --git a/art/images/new.png b/art/images/new.png new file mode 100644 index 0000000000000000000000000000000000000000..a524257539356fe756c20d9602caa96442c3ae44 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^@<7bP#0(^#H}%a2Qk(%kA+G=b{|7RGMDW{$LqHZ| zNswPKgTu2MX+VxxiEBhjaDG}zd16s2LwaVKQ9)k1f{~tqo}q2rz6_v>2u~Nskcv6U z2?-ei2@wYvSbVg@3fDejFbZotz@^|^{PfC}sS0fA&(@@BJ9b&5`^AcJCS~Z&-Dh9Qr)n=x(~E9gvo}-pg2#lDJW@QoF+4mBKb|Q%MxXn35NHR3r>mdKI;Vst E0D)gdod5s; literal 0 HcmV?d00001 diff --git a/art/images/perl_id_313c.png b/art/images/perl_id_313c.png new file mode 100644 index 0000000000000000000000000000000000000000..c0cf0d3ec6ebf5bbeba23c4da133258b8fe439c7 GIT binary patch literal 3155 zcmd^>S5ylF$9?!!2oxb$A4bSr63*4AebLKDAe(RE5OYIF7NN_ zCM+)_Cv!v1j^GXeu-=1cYnp`>QV`JGsh0Bzt$N|IEipiVsP8%x|$_?S8RV~^p z`8mFmUb=8=i8iHFe8jVk^)8~D61%;8(TwjKrEfP4OE<@Oj>GaQZ~ib7P-w*$aBV$k zKRmV2-g3@z^>(F&w?wW{>oQ)(nzWye@;bKaON8=Z$4dr3{4Nm&TwEJN9iTZ`@y8Gn zv*@x7fj?uLC=ssj8qAgW)mGhuhw`hyo`CR|Y-YgWJC(!kLo@Bpk84OBHFLwt6{{|c z69&ZziJOAOa!?06fW?mhH%bS;H42UYxX5eE&dmp4+e~n_%N?fiVs^MQt|1#0{SC*X z&*m7?f_ZBIarMT<_)xqo+0C#13t2_i;Bzk9rp=qLd?f~(jxRY(0+;S&Q0>SqRiokMH`#Qj+l6n{X6dZU za+OB8So0EFSXWYve{5xn?bNt?)`fM73Ase^#ELyP*1COU5=HZT%4D*;xja{7g(Epy z>@WR##cHo`t943$ABczxwRU6{rD%yQc>ufK@ zr=s%kjgTpki6Idu_$}aU?1A8d_iL=G^(#O5xQDH7xIkFfGs`_ScLQnPhNfRANFr}C zTHpy9rTb}COn4f>QqEQFoh#@RarK=F9n@F-YSMmJ%kI+k+qw;1n|4St==YHD@rA>NMKms$eB-T|C8Z*rJ60H{__Dd=kIwCJU>l^eu+m zf)8%7u7uvbR7~{69a%5XvpmB0vV6G$GC6tTGUqy+A#TnBbV|)&+?PXBiKo53Zt~s+ zApfc5`$1&oGi@E$GY;sBB7sOGhaqa=`rw}OCo5O|MM1wCIYEO;P3h6QtybN88%%}L zHY7@R#PazLusb2NBthWLREcJK$o6{QvK~wAzMUpA|2pTPXwFv7L1dR0G{_!`nF-J!rnGU0bW>B+ z`SQG5b9G(5MCZ;au%bi}=2VQ(DYVcklJS0evL?4<&z;v!f(a#FWhw!LzIup?^+QoMKeTMlXDqlvc;DSoVx@(BGHlsG=sQj=w-3vIVW z%8RiKa)xnufQkmj1RL1UT;8%*DXhlFTxEpcC*vC?u42#0p)}{``1$gEA=o>Z=Y^hC zAxSBN;;`aFj_xviGlSA4{(@F8m)4g=#w&34tWpT`XZck7PXXhxFZJns$YIBJL^`Q& zX9RQ?(yA{ZWm(L9$395}Ckl1rP2V`c)=h`wG@)<|kcE-yZT|S$S^0@@Q^h0my>!Kl zZ;cnB^UV#Ro61a0#y{#2GATD{vHHW^dO9}dd5LX|n>rg27aE*GXC|FgB8Dz|S)E0X z0^{1>^WM|HqMN1Mds?&0V4&j(B?0K)!$>zTD0i~fV2s0Z)U+{_lQC(EzKkC_^G176 zkozJD!3hCDEUI6f!h1S%wzCU6HB=s|VbUD`xO4QN#zuVX%^|mFVOcHuGRZb@tTTh{ zah_`GR?X)n^LWXHcMM+AyBe*RAj*&w9q#Ai*@hC5iKZMVn84fcLJvj<;A~&i2Mt#C zn_Ehpz{$)9GU*H6_gV`BhdGvJq;}(!M^4LXcJ|nqiSyfLC+q-l-`ZuoVC^AjK;(m) zs**S;ADV(?{s>#T8-r}m+=kl9Gx+~lFo-Id3bo8`0+?PUW~viM^kPNSVeWdX7Md;$ z85aEr)w={YUR&t*IKca%YO7c?lRi8jt>_cOu2!3^3}`{TXC=fGvX`40 zaSuqkM=B=Rba5>l5qNm5a!5=60(rhqYFE!lZ$gy3y5>Agj*^#1w7JrY| zxZvSiUcf%`OPRgdX%ijnT*$QxeW9j}&NnAYdKKyV5&SV-)PavL>T7+Ai?x%!mR3nC zq&B{`464VTa#U~ZbGElm2?FEIS4^NjtH9E6B@@_tytX?eED4M)9hZ#&*X0wUI75E% z+{-;ZF}$1E-@WqfqV@|t(qP3L{#GZW`r}>^|0ip5CN{wq*V{77(cR_bYMod~x40}8 zrY0wP7c`^8{w23|+B7JR&^=q5_M|4qf4>HFJE85o$nt^uHa1iv%ro?T8)t@dW(eVN zOPd6{?3oqg=I!s)>?aEfjAr%~M6tNW>P5K5Wy|RRFS=TmR>#b(-w4dm`3}x-c1PiB zUC{&6&obg?i#XT6?#5SSrvlK`x&6v~$(ajhj5=h&yZg>lw>PENtOvRbo@4Ph`PkhC zclzWp(eagX3Db;jN2%Xm3bP_%ImvpUMk%2~96`!uw7Ejkdo~$0Ig;<}v-M>sM+4LB z+rM9-pb_OG;SUptk8BSl#HJs&0@qzKzd$$i3$2g=4;{j%(&^NhKgh?Tz6?8s!I2HN z%Etmi{?LaLm|A6Yexx3Yfmetx5%&+f_~r%gE0R;~!S|m~6ss#c zQaS^FEl~=q21D|@#`vV84djH1qPOr^yO~kphv`%ac;tpFZ9t5@PIBDc@Q2IbtCtN{ zK=qyjFk)zEjKM#VRK6W@tr-GjTU0N-tMMU6Wy~?sL?Lg!D~*O4+B+g1RmNxphPypF zA7KpYxa@AqtNLwogFIj@9X9{aU~8nOEHLc(`~4lzC;9%`iK9lU`@u3^a9+$e&{vt+ zrk~?}`10`1T=%n2J#A<70m)Pkwa#ItP05Z^Q#BPKJ=A<^i2zNFM>_rU%nQZ3j+MPM dx-Ff3Y_?XJ)01Ox2heq3@_N0JS7+CrR+74En#^Xi)oOLQT;1K>ZnwL? zzkg_GXn1&dWMqWrd7sZ02n2$`U^pC(L?W?REFO=iQmJ%0y|S{B&1MUQLa|s}-vB@n zAiECfA{5pkUVxP%qzVwpLU09!Q{YR(ND5+E2(LgO4SWiQ;^2;fD+2XF&<21G0O^Bl z5z+-1jzfP8x+7o>LsJk88>|ly55*1VEJRiymmVK4`wJ^)%DkUa2l z7>+@I1iClm0WfT6MBCqW|N6aslHnt$+CfA^~Bf&KV6YjFaWt`mRN1Y^cK2 zccT=2_39tAn1?mZSVW^0?M9iT`#SS7{m`bKzs-dcQaQ47q2&dE9Bu3Sti%Z>UXtrr z6f)c(rewMvma^vP@$(rRmY*@R&UN1J(3G|GI7Q99In)MLPq zLR^ba)83`Am+&3epQJ+AxbQwy_sth2d`zmHZlmLQ7*@emCJTjmG-zz-LvY!C-f?HlG^R`=9t#C46oFaJ!5nwf5Ib? z;fb-by-t#m?7GYFjAcG&D?4zF%#mHjUrjKzYo-a>Qc5Hx`)U{L>g~zHv!^P9v{2q@ z>b0txnK|Om=wg&t+4|;c#*B3{gaQ#W8Xs?#j!Zb>2mJ`@X!L-eby-z0!Q| zXj1VoIWw+s-MDsm%F(inBgb9O&9M6UkU(XYDQ#sZ$6Q{ji?HxzkCO05yX3;)`U1I? zmE;ecwm+v&QqJ~eTw=ehw@c26Fss6$RT5O^s_RWhgDJnHtPLFH)y+NL zMWq9o?8-{@f|WK8%-?csYOov%^ymy3X>H$~#TTqb7hhf!DU+AWlyi1f)tSpB z#g?F!P&_tWvT98FJGiv6>H}6{uFeyY8vQ#qO^t3}MkD(=TB80mX?)9CGtV^y4*1z5 zwf~Kbm9mlEF$wll$)>UB@=Meg*=I9k?L~&ax`Xt7Pc>@2N#)MaZ?2Or+(o>d=yh6Yi2Rgo1Y$BCJ6EXyV^yjXr_o7x()g6Up=lzd|J~c*_>M<-Z~w z^B0Gf@Gyjo;Do1$W1a*~()!0On`wmUbI4eo)~gbW=*s<9EQxIdA- zx?7m0tHrHcS2N9p)z!EFeek=|=EZv}W-+3!kB~;+exW`0{QO>|ef_T-PKS6Io#<}& zr@pJ9pW0^pDu1Na-`EfqNUnt(EiAfy`k0US9AQ;Qu^(^#qfJCJ0u{}zX$J6KlEXJ~ zLQyM=4mFXLnv+QOgWoWC4>zc0JI?DSa8d5eEiHpq^aJ>JZ49Q%#eXy*vv`@qNk1n% y-njMZQpN56Jo5fs&9Gh)V8k6KRTC#dC*D>6y1D;peec&VpM^W`87yiVwfzjkRbj~h literal 0 HcmV?d00001 diff --git a/art/images/smallamex.png b/art/images/smallamex.png new file mode 100644 index 0000000000000000000000000000000000000000..b46c08532415f4b3915a7c10f956777931eb50b8 GIT binary patch literal 1137 zcmeAS@N?(olHy`uVBq!ia0vp^DnKmG!3-or3}ja_Fferl_=LFr|NkE-f(HJdIfE`T z6I}#N0WsV&|No!)k8aKx5SWRq{me|D0E!5*Eb;7_|If_)k75qUU{t$+rp*L_G&Eyp zreTN}ql=(vNkg>@D4TX>X4)APU1>m@FziYL0b^v-(u{!uC?d$R#IucOrWwyfF$ZKY zs$D?Sj6ne1R15)h1w`>N>;hWGfX(Puk!nGpiDD(L5hcO-X(i=}MX3zwnQ2A^dFcv9 zdIoxiwsHG17#J9vJY5_^D(3VCElhfBz{9J3D?a3e^4WL|6(=bzE4wGkfX$8X zv%9k2VvF;yxt@KyWwNKOyOc;H)br(;Z$a+|pr+{Lg$a`@*GPbSvfd^v>7k60?kAL z)BKqr{5o-{`2WQqHC5pznriZJrO6(OK=xdB)k=FMAfv{g`AIuS(m|KOOB!T8Ciry- zB$md?@MR*SlMu*lN}{Yl@}~i_mmZrRJ4p6R2BV$^m<8f76tgoMvVznggX$nd2zQMd zRJgz$q~`r9&F3?rQpoCo?Al-{h=>gfOSLn@V?&USj18cIKz37!N3gdHL=BLkdLJ~t~zMcbeKOE%yYr@$SGS0bU zF`y!x7frN9KmaJR%O2{xYcmn@OYKo&FkYn>6ue?3t`Q}{`DrEPiAAXl>6vLp1$pTT zMtTN%hPHA0GJx6Qil>WXNX4AcNgK0897T?`M+=K3esBG-X{vz4o<{*we0T0}4C_1^ ztIE>1#Kz#D6Zi7T6ADTlm=b53H1&pel}i2ZeY>V9A@Sqaedfm1J7*_7GyME)@B6>^ zjN3R3=G?oH%^dlryt&-ZEG&E8qZiX=Ss(5=-5~Vw$qSu4mGYlUwr%^X5_W5%bM?~o z5BGw*uN0n#Ob9rOYyXuhl-f` ziL0sI9Tptn_ZKM0wO!kEP(0vFW7+n)IA-><-9NKCLoZ0W&Fm<6U%2rHUp?!b>jhWM zxqHOzY#LpJI1dCIuX2>}P_%CEV9HII^Y_-oh%5GPDq2lm`O|)e@u;yrES^_f;4op8 zj7ZbAp1+gXg?wNAU;Cs#l#N9$v41DSQjd#!?@n&|7dEvxUPtbq#e`Suo)~WNIrl8{ z)ZK9FmPZ9s7bka5%lPv=B>9z($kEicwx|VLzI|J=&7Sc$L+)(7c@8^0trnK}-(`M$ z6vLp1$pTT zMtTN%hPHA0G8h;b6+B%WLn`L!DjGy*TX8^M0;b zuk6w^;RO>+ez%7GJNMwOPT<2IzMV(qIla=Wmr2f5eXGyLY2%ru`nT(l&czF-3U7x7 z#Lml_5|gj7YD$oNwb?{x2Zn6vY~84uoGl*T^YS~KlN3B$jxZRV>Cjj|F?Q;9ZwJO1 z8g6w8!i-8@9@`jRPu|jBW3k~0%e%OUYjazA`=>5FcU$wv9;3$RY@3(F|COxoaVUK{ z<=o<3FQc{;9e%oC`})hQ(sEu$^|%_VX8jIHu{`41ly&vY43`(lGW!)%ls%ZQecgNS bqx26p28mYo__-A|pv2(m>gTe~DWM4f(OT$m literal 0 HcmV?d00001 diff --git a/art/images/smallvisa.png b/art/images/smallvisa.png new file mode 100644 index 0000000000000000000000000000000000000000..a54fe06e2fa01a0909c742e1c2ab4521db9321a1 GIT binary patch literal 929 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 R_9~#w44$rjF6*2UngCVPP&)ts literal 0 HcmV?d00001 diff --git a/art/logs/.empty b/art/logs/.empty new file mode 100644 index 0000000..e69de29 diff --git a/art/mysql/affiliate.mysql b/art/mysql/affiliate.mysql new file mode 100644 index 0000000..d591488 --- /dev/null +++ b/art/mysql/affiliate.mysql @@ -0,0 +1,9 @@ +Database affiliate affiliate.txt __SQLDSN__ +#ifdef SQLUSER +Database affiliate USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database affiliate PASS __SQLPASS__ +#endif +Database affiliate COLUMN_DEF "code=char(12) NOT NULL PRIMARY KEY" +Database affiliate DEFAULT_TYPE text diff --git a/art/mysql/area.mysql b/art/mysql/area.mysql new file mode 100644 index 0000000..197b939 --- /dev/null +++ b/art/mysql/area.mysql @@ -0,0 +1,11 @@ +Database area area.txt __SQLDSN__ +#ifdef SQLUSER +Database area USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database area PASS __SQLPASS__ +#endif +Database area DEFAULT_TYPE text +Database area COLUMN_DEF "code=char(12) NOT NULL PRIMARY KEY" +Database area COLUMN_DEF "name=char(128) DEFAULT '' NOT NULL, index(name)" +Database area COLUMN_DEF "sort=char(3) DEFAULT '00' NOT NULL, index(sort)" diff --git a/art/mysql/cat.mysql b/art/mysql/cat.mysql new file mode 100644 index 0000000..9f5c41a --- /dev/null +++ b/art/mysql/cat.mysql @@ -0,0 +1,12 @@ +Database cat cat.txt __SQLDSN__ +#ifdef SQLUSER +Database cat USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database cat PASS __SQLPASS__ +#endif +Database cat DEFAULT_TYPE text +Database cat COLUMN_DEF "code=char(20) NOT NULL PRIMARY KEY" +Database cat COLUMN_DEF "sel=CHAR(64) DEFAULT '' NOT NULL, index(sel)" +Database cat COLUMN_DEF "name=CHAR(64) DEFAULT '' NOT NULL, index(name)" +Database cat COLUMN_DEF "sort=CHAR(4) DEFAULT 'ZZ' NOT NULL, index(sort)" diff --git a/art/mysql/country.mysql b/art/mysql/country.mysql new file mode 100644 index 0000000..86d3bbf --- /dev/null +++ b/art/mysql/country.mysql @@ -0,0 +1,11 @@ +Database country country.txt __SQLDSN__ +#ifdef SQLUSER +Database country USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database country PASS __SQLPASS__ +#endif +Database country COLUMN_DEF "code=CHAR(3) NOT NULL PRIMARY KEY" +Database country COLUMN_DEF "selector=CHAR(3) NOT NULL" +Database country COLUMN_DEF "shipmodes=CHAR(64)" +Database country COLUMN_DEF "name=CHAR(32) NOT NULL, index(name)" diff --git a/art/mysql/inventory.mysql b/art/mysql/inventory.mysql new file mode 100644 index 0000000..8d6b24a --- /dev/null +++ b/art/mysql/inventory.mysql @@ -0,0 +1,14 @@ +Database inventory inventory.txt __SQLDSN__ +#ifdef SQLUSER +Database inventory USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database inventory PASS __SQLPASS__ +#endif +Database inventory KEY sku +Database inventory COLUMN_DEF "sku=char(14) NOT NULL PRIMARY KEY" +Database inventory COLUMN_DEF "quantity=INT" +Database inventory COLUMN_DEF "stock_msg=char(64)" +Database inventory COLUMN_DEF "account=char(128)" +Database inventory COLUMN_DEF "cogs_account=char(128)" +Database inventory NUMERIC quantity diff --git a/art/mysql/merchandising.mysql b/art/mysql/merchandising.mysql new file mode 100644 index 0000000..29b677d --- /dev/null +++ b/art/mysql/merchandising.mysql @@ -0,0 +1,12 @@ +Database merchandising merchandising.txt __SQLDSN__ +#ifdef SQLUSER +Database merchandising USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database merchandising PASS __SQLPASS__ +#endif +Database merchandising DEFAULT_TYPE text +Database merchandising COLUMN_DEF "sku=char(20) NOT NULL PRIMARY KEY" +Database merchandising COLUMN_DEF "featured=CHAR(32) NOT NULL, index(featured)" +Database merchandising COLUMN_DEF "start=CHAR(24) NOT NULL, index(start)" +Database merchandising COLUMN_DEF "finish=CHAR(24) NOT NULL, index(finish)" diff --git a/art/mysql/orderline.mysql b/art/mysql/orderline.mysql new file mode 100644 index 0000000..4800c49 --- /dev/null +++ b/art/mysql/orderline.mysql @@ -0,0 +1,27 @@ + +Database orderline orderline.txt __SQLDSN__ +#ifdef SQLUSER +Database orderline USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database orderline PASS __SQLPASS__ +#endif +Database orderline COLUMN_DEF "code=char(14) NOT NULL PRIMARY KEY" +Database orderline COLUMN_DEF "store_id=CHAR(9) DEFAULT '' NOT NULL, index(store_id)" +Database orderline COLUMN_DEF "order_number=CHAR(14) NOT NULL, index(order_number)" +Database orderline COLUMN_DEF "session=CHAR(32) NOT NULL" +Database orderline COLUMN_DEF "username=CHAR(20) default '' NOT NULL" +Database orderline COLUMN_DEF "shipmode=CHAR(32) default '' NOT NULL" +Database orderline COLUMN_DEF "sku=CHAR(14) NOT NULL" +Database orderline COLUMN_DEF "quantity=CHAR(9) NOT NULL" +Database orderline COLUMN_DEF "price=CHAR(12) NOT NULL" +Database orderline COLUMN_DEF "subtotal=CHAR(12) NOT NULL" +Database orderline COLUMN_DEF "shipping=CHAR(12)" +Database orderline COLUMN_DEF "taxable=CHAR(3)" +Database orderline COLUMN_DEF "size=VARCHAR(30)" +Database orderline COLUMN_DEF "color=VARCHAR(30)" +Database orderline COLUMN_DEF "options=VARCHAR(255)" +Database orderline COLUMN_DEF "order_date=varchar(32) NOT NULL" +Database orderline COLUMN_DEF "update_date=timestamp" +Database orderline COLUMN_DEF "status=VARCHAR(32)" +Database orderline COLUMN_DEF "parent=CHAR(9)" diff --git a/art/mysql/pricing.mysql b/art/mysql/pricing.mysql new file mode 100644 index 0000000..2b9d9cf --- /dev/null +++ b/art/mysql/pricing.mysql @@ -0,0 +1,19 @@ +# Interchange database definition +Database pricing pricing.txt __SQLDSN__ +#ifdef SQLUSER +Database pricing USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database pricing PASS __SQLPASS__ +#endif +Database pricing KEY sku +Database pricing COLUMN_DEF "q2=char(12)" +Database pricing COLUMN_DEF "price_group=CHAR(2) DEFAULT '' NOT NULL, index(price_group)" +Database pricing COLUMN_DEF "sku=CHAR(9) NOT NULL PRIMARY KEY" +Database pricing COLUMN_DEF "q5=CHAR(12)" +Database pricing COLUMN_DEF "q10=CHAR(12)" +Database pricing COLUMN_DEF "q25=CHAR(12)" +Database pricing COLUMN_DEF "q100=CHAR(12)" +Database pricing COLUMN_DEF "XL=CHAR(12)" +Database pricing COLUMN_DEF "S=CHAR(12)" +Database pricing COLUMN_DEF "red=CHAR(12)" diff --git a/art/mysql/products.mysql b/art/mysql/products.mysql new file mode 100644 index 0000000..70c0aa5 --- /dev/null +++ b/art/mysql/products.mysql @@ -0,0 +1,25 @@ +# Interchange database definition +Database products products.txt __SQLDSN__ +#ifdef SQLUSER +Database products USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database products PASS __SQLPASS__ +#endif +Database products KEY sku +Database products COLUMN_DEF "sku=char(14) NOT NULL PRIMARY KEY" +Database products COLUMN_DEF "description=VARCHAR(128) NOT NULL" +Database products COLUMN_DEF "title=VARCHAR(128) DEFAULT '' NOT NULL, index(title)" +Database products COLUMN_DEF "artist=VARCHAR(128) DEFAULT '' NOT NULL, index(artist)" +Database products COLUMN_DEF "comment=TEXT" +Database products COLUMN_DEF "display=VARCHAR(128)" +Database products COLUMN_DEF "image=VARCHAR(64)" +Database products COLUMN_DEF "price=DECIMAL(12,2) NOT NULL, index(price)" +Database products COLUMN_DEF "category=VARCHAR(64) NOT NULL, index(category)" +Database products COLUMN_DEF "nontaxable=CHAR(3)" +Database products COLUMN_DEF "weight=VARCHAR(12) DEFAULT '0' NOT NULL" +Database products COLUMN_DEF "size=VARCHAR(96)" +Database products COLUMN_DEF "color=VARCHAR(96)" +Database products COLUMN_DEF "related=text" +Database products COLUMN_DEF "featured=VARCHAR(32)" +Database products NUMERIC price diff --git a/art/mysql/transactions.mysql b/art/mysql/transactions.mysql new file mode 100644 index 0000000..d458d4a --- /dev/null +++ b/art/mysql/transactions.mysql @@ -0,0 +1,54 @@ +Database transactions transactions.txt __SQLDSN__ +#ifdef SQLUSER +Database transactions USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database transactions PASS __SQLPASS__ +#endif +Database transactions transactions.raw SQL +Database transactions COLUMN_DEF "code=char(14) NOT NULL PRIMARY KEY" +Database transactions COLUMN_DEF "store_id=CHAR(9) DEFAULT '' NOT NULL, index(store_id)" +Database transactions COLUMN_DEF "order_number=CHAR(14) NOT NULL, index(order_number)" +Database transactions COLUMN_DEF "session=CHAR(32) NOT NULL" +Database transactions COLUMN_DEF "username=CHAR(20) default '' NOT NULL" +Database transactions COLUMN_DEF "shipmode=CHAR(32) NOT NULL" +Database transactions COLUMN_DEF "nitems=CHAR(9) NOT NULL" +Database transactions COLUMN_DEF "subtotal=CHAR(12) NOT NULL" +Database transactions COLUMN_DEF "shipping=CHAR(12) NOT NULL" +Database transactions COLUMN_DEF "handling=CHAR(12)" +Database transactions COLUMN_DEF "salestax=CHAR(12)" +Database transactions COLUMN_DEF "total_cost=CHAR(16) NOT NULL" +Database transactions COLUMN_DEF "fname=VARCHAR(30)" +Database transactions COLUMN_DEF "lname=VARCHAR(30)" +Database transactions COLUMN_DEF "company=VARCHAR(30)" +Database transactions COLUMN_DEF "address1=VARCHAR(30)" +Database transactions COLUMN_DEF "address2=VARCHAR(30)" +Database transactions COLUMN_DEF "city=VARCHAR(30) NOT NULL" +Database transactions COLUMN_DEF "state=VARCHAR(10)" +Database transactions COLUMN_DEF "zip=CHAR(10) DEFAULT '00000' NOT NULL" +Database transactions COLUMN_DEF "country=CHAR(10) DEFAULT '' NOT NULL" +Database transactions COLUMN_DEF "phone_day=VARCHAR(20)" +Database transactions COLUMN_DEF "phone_night=VARCHAR(20)" +Database transactions COLUMN_DEF "fax=VARCHAR(20)" +Database transactions COLUMN_DEF "email=VARCHAR(42)" +Database transactions COLUMN_DEF "b_fname=VARCHAR(30)" +Database transactions COLUMN_DEF "b_lname=VARCHAR(30)" +Database transactions COLUMN_DEF "b_company=VARCHAR(30)" +Database transactions COLUMN_DEF "b_address1=VARCHAR(30)" +Database transactions COLUMN_DEF "b_address2=VARCHAR(30)" +Database transactions COLUMN_DEF "b_city=VARCHAR(30)" +Database transactions COLUMN_DEF "b_state=VARCHAR(10)" +Database transactions COLUMN_DEF "b_zip=CHAR(10) DEFAULT '00000' NOT NULL" +Database transactions COLUMN_DEF "b_country=CHAR(10) DEFAULT '' NOT NULL" +Database transactions COLUMN_DEF "b_phone=VARCHAR(20)" +Database transactions COLUMN_DEF "payment_method=varchar(32)" +Database transactions COLUMN_DEF "avs=varchar(32)" +Database transactions COLUMN_DEF "order_id=varchar(32)" +Database transactions COLUMN_DEF "order_date=varchar(32) NOT NULL" +Database transactions COLUMN_DEF "update_date=timestamp" +Database transactions COLUMN_DEF "status=VARCHAR(32)" +Database transactions COLUMN_DEF "parent=CHAR(9)" +Database transactions COLUMN_DEF "archived=CHAR(1)" +Database transactions COLUMN_DEF "deleted=CHAR(1) DEFAULT ''" +Database transactions COLUMN_DEF "complete=CHAR(1)" +Database transactions COLUMN_DEF "comments=text" diff --git a/art/mysql/userdb.mysql b/art/mysql/userdb.mysql new file mode 100644 index 0000000..d949c6b --- /dev/null +++ b/art/mysql/userdb.mysql @@ -0,0 +1,56 @@ +Database userdb userdb.txt __SQLDSN__ +#ifdef SQLUSER +Database userdb USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database userdb PASS __SQLPASS__ +#endif +Database userdb COLUMN_DEF "code=char(20) NOT NULL PRIMARY KEY" +Database userdb COLUMN_DEF "password=CHAR(20) NOT NULL" +Database userdb COLUMN_DEF "acl=text" +Database userdb COLUMN_DEF "mod_time=timestamp" +Database userdb COLUMN_DEF "s_nickname=text" +Database userdb COLUMN_DEF "company=CHAR(30)" +Database userdb COLUMN_DEF "fname=CHAR(20)" +Database userdb COLUMN_DEF "lname=CHAR(30)" +Database userdb COLUMN_DEF "address1=CHAR(64)" +Database userdb COLUMN_DEF "address2=CHAR(64)" +Database userdb COLUMN_DEF "address3=CHAR(64)" +Database userdb COLUMN_DEF "city=CHAR(30)" +Database userdb COLUMN_DEF "state=CHAR(10)" +Database userdb COLUMN_DEF "zip=CHAR(10)" +Database userdb COLUMN_DEF "country=CHAR(10)" +Database userdb COLUMN_DEF "phone_day=CHAR(20)" +Database userdb COLUMN_DEF "mv_shipmode=CHAR(64)" +Database userdb COLUMN_DEF "b_nickname=text" +Database userdb COLUMN_DEF "b_fname=CHAR(20)" +Database userdb COLUMN_DEF "b_lname=CHAR(30)" +Database userdb COLUMN_DEF "b_address1=CHAR(64)" +Database userdb COLUMN_DEF "b_address2=CHAR(64)" +Database userdb COLUMN_DEF "b_address3=CHAR(64)" +Database userdb COLUMN_DEF "b_city=CHAR(30)" +Database userdb COLUMN_DEF "b_state=CHAR(10)" +Database userdb COLUMN_DEF "b_zip=CHAR(10)" +Database userdb COLUMN_DEF "b_country=CHAR(10)" +Database userdb COLUMN_DEF "b_phone=CHAR(20)" +Database userdb COLUMN_DEF "mv_credit_card_type=CHAR(16)" +Database userdb COLUMN_DEF "mv_credit_card_exp_month=CHAR(2)" +Database userdb COLUMN_DEF "mv_credit_card_exp_year=CHAR(4)" +Database userdb COLUMN_DEF "p_nickname=text" +Database userdb COLUMN_DEF "email=VARCHAR(42)" +Database userdb COLUMN_DEF "fax=CHAR(20)" +Database userdb COLUMN_DEF "phone_night=CHAR(20)" +Database userdb COLUMN_DEF "fax_order=CHAR(2)" +Database userdb COLUMN_DEF "address_book=BLOB" +Database userdb COLUMN_DEF "accounts=BLOB" +Database userdb COLUMN_DEF "preferences=BLOB" +Database userdb COLUMN_DEF "carts=BLOB" +Database userdb COLUMN_DEF "owner=char(20)" +Database userdb COLUMN_DEF "file_acl=BLOB" +Database userdb COLUMN_DEF "db_acl=BLOB" +Database userdb COLUMN_DEF "order_numbers=TEXT" +Database userdb COLUMN_DEF "email_copy=char(1)" +Database userdb COLUMN_DEF "mail_list=varchar(64)" +Database userdb COLUMN_DEF "project_id=char(20)" +Database userdb COLUMN_DEF "account_id=char(20)" +Database userdb COLUMN_DEF "order_dest=char(32)" diff --git a/art/orders/.empty b/art/orders/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/orders/.empty @@ -0,0 +1 @@ + diff --git a/art/pages/about.html b/art/pages/about.html new file mode 100644 index 0000000..023c3e8 --- /dev/null +++ b/art/pages/about.html @@ -0,0 +1,43 @@ +[comment] +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_description: members_only : Members only +ui_control_description: page_title : Page title +ui_control_element: members_only : 0=No,1=Yes +ui_control_element: page_title : +ui_template: Yes +ui_template_name: templates/standard +[/comment] + +[set members_only]0[/set] +[set page_title]About Us[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[comment] + More Interchange variables used to roll the setting of the + company name, address, etc. +[/comment] + +

+ __COMPANY__
+ __ADDRESS__
+ __CITY__
+

+ Phone: __PHONE__
+ Fax: __FAX__
+ [if variable TOLLFREE] + Tollfree: __TOLLFREE__
+ [/if] +

+

+ + + + + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ diff --git a/art/pages/account.html b/art/pages/account.html new file mode 100644 index 0000000..8a92c4d --- /dev/null +++ b/art/pages/account.html @@ -0,0 +1,404 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top logo bar. menu bar and copyright at bottom. +ui_control_element: page_title: +ui_control_element: members_only: 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set members_only]1[/set] +[set page_title]Maintain your account[/set] +__LOGOBAR__ +__MENUBAR__ + + +[title-bar width=630 color="__BARBG__"]Account Maintenance +[/title-bar] + + +Change password  Mail preferences  Shipping preferences  Billing preferences
+ +[userdb function=get_billing_names] +[userdb function=get_shipping_names] + +
+ +
+ + +[if type=explicit compare="[error all=1 show_var=1 keep=1]"] +

+There were errors in your last submission. +They are shown in __CONTRAST__ below. +

+[/if] + +[comment] + +[/comment] + + + + + + +[set Save_database] +[userdb save] +[/set] +[title-bar 500 4]Shipping Address Book[/title-bar] + + +
+ + + + Yes, delete +
+ + +[title-bar 500 4]Shipping Address[/title-bar] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ [error name=fname std_label="First Name" required=1] + + [error name=lname std_label=Last required=1]  +
[error name=address1 std_label=Address required=1] + +
  + +
+ [error name=city std_label="City" required=1] + + + + + + + + + +
+ + + [error name=state std_label="State/Province" required=1] + + + + [error name=zip std_label="Zip/Postal Code" required=1] + + +
+
[error name=email std_label="Email Address" required=1] + +
+ Country + + [if value country =~ /(^$|US|CA)/] + + [else] + + [/else] + [/if] (will update display) +
[error name=phone_day std_label="Daytime Phone" required=1] + + + + + + +
+ + + Evening + + +
+
+ Shipping method + + +
+ We need the bold fields to process your order +
+ +[title-bar 500 3] + + + [if items] + [set Save, go to checkout] + mv_nextpage=__ORDER_STYLE__/checkout + [/set] + + No change, go to checkout + [/if] + +[/title-bar] + + +Change password  Mail preferences  Shipping preferences  Billing preferences
+[title-bar 500 4]Mailing status[/title-bar] + + Send an email copy of my receipt
+ + + Put me on your email list of infrequent offers +

+ + +Change password  Mail preferences  Shipping preferences  Billing preferences
+[title-bar 500 4]Billing Address Book[/title-bar] + + + +
+ + + + Yes, delete +
+[title-bar 500 4]Billing Address (if different)[/title-bar] + + + + + + + + + + + + + + + + + + + + + + +
Name + + +
Address + + +
City, State, Postal Code + + + +
Country + +
+ Payment method + + + Pay by credit card
+ + I will call with payment information
+
+ +[title-bar 500 3] + + + [if items] + [set Save, go to checkout] + mv_nextpage=__ORDER_STYLE__/checkout + [/set] + + No change, go to checkout + [/if] + +[/title-bar] + +

+
+ + + + + + + + + + +
+ [title-bar 200 2]Change your password[/title-bar] + + [title-bar 200 2]Order Tracking[/title-bar] +
+
+ + + + + + + + + + + + + + + + + + + + +
Old password +
New password +
Verify +

+
+ + + Save username/password (sets cookie) +
+ [page no_cookie]Stop logging me in automatically[/page] +
+
+
+
+ Check cart ([nitems] items)
+ [if items] + Check out
+ [/if] + Check status of placed orders
+
    + [loop list="[data table=userdb col=order_numbers key='[data session username]']"] + [if-loop-data transactions order_number] +
  • #[loop-code] + [/if-loop-data] + [/loop] +
+
+
+ +Change password  Mail preferences  Shipping preferences  Billing preferences
+ +
+ + +__MENUBOTTOM__ +__COPYRIGHT__ + +[set Save shipping] +[value name=s_nickname set="[cgi s_nickname]" filter="nullselect no_white" hide=1] +[userdb function=set_shipping] +[/set] + +[set Recall shipping] +[value name=s_nickname set="[cgi s_nickname]" filter="nullselect no_white" hide=1] +[userdb function=get_shipping] +[/set] + +[set DELETE shipping] +[if cgi verify] +[value name=s_nickname set="[cgi s_nickname]" filter="nullselect no_white" hide=1] +[userdb function=delete_shipping] +[/if] +[/set] + +[set Save billing] +[value name=b_nickname set="[cgi b_nickname]" filter="nullselect no_white" hide=1] +[userdb function=set_billing] +[/set] + +[set Recall billing] +[value name=b_nickname set="[cgi b_nickname]" filter="nullselect no_white" hide=1] +[userdb function=get_billing] +[/set] + +[set DELETE billing] +[if cgi verify] +[value name=b_nickname set="[cgi b_nickname]" filter="nullselect no_white" hide=1] +[userdb function=delete_billing] +[/if] +[/set] + + + diff --git a/art/pages/action/get_password.html b/art/pages/action/get_password.html new file mode 100644 index 0000000..0b2b7a1 --- /dev/null +++ b/art/pages/action/get_password.html @@ -0,0 +1,100 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Trying to retrieve....[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + +

Trying to retrieve....

+[perl] + $CGI->{mv_todo} = 'search'; + $Config->{NoSearch} = ''; +[/perl] +[update process] +[search-region] +[set get_id_matches][search-list][if-item-data userdb email][item-code][/if-item-data][/search-list][/set] +[no-match] +

Sorry, no match for that. Try again?

+[include forms/get_id] +[/no-match] +[/search-region] + +[perl] + $Config->{NoSearch} = 'userdb'; + return; +[/perl] + +[if value mv_search_match_count > 1] +

That one generated more than one match. [page login]Try again[/page] with more info?

+[elsif scratch get_id_matches] +[set name=id_ok][/set] +[set name=id_ok interpolate=1][loop arg="[scratch get_id_matches]"][email + to="[loop-data userdb email]" + subject="Your login information" + from="__COMPANY__ password minder <__ORDERS_TO__>" + reply="__ORDERS_TO__"] + +Hello! You requested that your ID and password be sent to your +email address of record. The information is: + + Username: [loop-code] + Password: [loop-data userdb password] + +You can log in at: + + [area login] + +Please contact us if we can be of service, and thank you for doing +business with us. +[/email][/loop][/set] +[if !scratch id_ok] +Something went wrong when mailing, perhaps a typo in your email address? Please +either [page new_account]create a new account[/page] or [page feedback]contact us.[/page]. +[else] +

ID sent by fastest available email method!

+[/else] +[/if] + +

+[if session failure] +[data session failure] +[/if] +

+

+ + + + + UserName:
+
+ Password:

+
+ +
+ +
+ +
+ + Create a new account

+[/elsif] +[elsif value mv_search_match_count] +We appear to have found you, but you didn't leave an email address!

+Please either [page new_account]create a new account[/page] or [page +feedback]contact us.[/page]. +[/elsif] +[/if] + + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/browse.html b/art/pages/browse.html new file mode 100644 index 0000000..af80045 --- /dev/null +++ b/art/pages/browse.html @@ -0,0 +1,120 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Browse the Art Store[/set] + +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[comment] + + This page just uses an in page search (the [loop search=...]) + to return all products from the database. The parameter + "ra=yes" sets the Interchange search variable mv_return_all to "yes", + meaning just start returning records from the file. + + If there are more than 50 then it will be truncated because of + the mv_matchlimit default of 100. If you wanted to return up + to 100 then you would set the search setting to "ra=yes/ml=100". + + See the browse1.html page for a page that returns 1 or more + at a time with paging. + +[/comment] + +

+ [L]Browse[/L] [page browse1 1:1]one + or [page browse1 1:2]two at a time
+
+ + + +[loop search="ra=yes/tf=category/tf=title"] +[comment] + The [loop-next] simply skips a product if it is in the + category "Accessory". The [calc] tag is a little embedded + Perl. +[/comment] +[loop-next][calc]'[loop-field category]' eq 'Accessory'[/calc][/loop-next] + +[comment] + [loop-change] is a way of setting up headers. You place a possibly + changing value in the [condition] container, and when the value + changes the contents of the [loop-change] container are output. + There can also be an [else] [/else] area. +[/comment] + + +[loop-change 1][condition][loop-field category][/condition] + + + + + +[/loop-change 1] + + + + + + + + + + +[/loop] +
[if-loop-data merchandising banner_text][loop-data merchandising banner_text][else][loop-field category][/else][/if-loop-data]
+ + + + + + + + + + + + + + + + + + + + + + + +
[if-loop-field image][loop-field title][/if-loop-field][loop-field title]
+by [filter namecase][loop-field artist]

+Price: [loop-price]   buy now

+[loop-field comments]

+More [filter lower][loop-field category][/filter]...
+
+ +

+ + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/browse1.html b/art/pages/browse1.html new file mode 100644 index 0000000..b01887b --- /dev/null +++ b/art/pages/browse1.html @@ -0,0 +1,157 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Browse __COMPANY__[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + + +[comment] + This embedded Perl reads the argument passed to it, which + should be two colon-separated numbers. The first is the sequential + number where display should start; the second (optional) number + is the "chunk" size, or number of products to display per + page. Uncomment these links to play: + + Start at 2, display 5 + Start at 3, display 2 +[/comment] +[perl] + $start = $Session->{arg} || 1; + $chunk = 1; + if($start =~ /(\d+):(\d*)/) { + $start = $1; + $chunk = $2 || 1; + } + $prev = $start - $chunk; + if($prev < 1) { + $prev = 0; + } + $Scratch->{start} = $start; + $Scratch->{chunk} = $chunk; + $Scratch->{next} = $start + $chunk; + $Scratch->{prev} = $prev; + $Scratch->{not_shown} = 1; + return; +[/perl] + + +[comment] + +The below is an extended Interchange in-page search. + +The [search-region] container will interpret several +things: + + [search-list] + What should display if anything is found + [/search-list] + + [no-match] + What should display if nothing is found + [/no-match] + + [more-list] + To be displayed if more than mv_matchlimit + matches are found. The [more] tag shows + the previous/next and/or pages. + [/more-list] + +[/comment] + + + +[search-region arg=" + co=yes + sf=category + op=ne + se=Accessory + fm=[scratch start] + ml=[scratch chunk] + tf=category + to=f + tf=price + to=rn + "] +[item-change 1][condition][item-field category][/condition] + + + + +[/item-change 1] + + + + + + + + + + +[/search-region] + + + + +
[if-item-data merchandising banner_text][item-data merchandising banner_text][else][item-field category][/else][/if-item-data]
+ + + + + + + + + + + + + + + + + + + + + + + +
[if-item-field image][item-field artist]: [item-field title][/if-item-field][item-field title]
+by [filter op="namecase name"][item-field artist][/filter]

+Price: [item-price]   buy now

+[item-field comments]

+More [filter lower][item-field category][/filter]...
+
+[if scratch prev] +[page href=browse1 arg="[scratch prev]:[scratch chunk]"] + Previous   +[/if] +[if type=explicit compare="[value mv_search_match_count] > [scratch next]"] +[page href=browse1 arg="[scratch next]:[scratch chunk]"][L]Next[/L] +[/if] +
+
+ + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/canceled.html b/art/pages/canceled.html new file mode 100644 index 0000000..6a128b7 --- /dev/null +++ b/art/pages/canceled.html @@ -0,0 +1,55 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Stop shopping[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +

+

[L]Stop shopping[/L]

+
+ +
+ + + + +
[L]If you click Remove Contents[/L], +[L]only the items you have placed in your basket will be removed.[/L] + +

+[L]If you click Erase All Information[/L], +[L]your name, address, and credit card information will be removed from our system. You will have to enter it again to buy anything.[/L] + +

+[L]If you wish to do neither, just use the buttonbar or your browser's Back function to return to shopping.[/L] +[item-list] + +[/item-list] + +

+ + + + +
+
+
+[set [L]Erase All Information[/L]] +mv_todo=cancel +[/set] + + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/deliver.html b/art/pages/deliver.html new file mode 100644 index 0000000..35599ca --- /dev/null +++ b/art/pages/deliver.html @@ -0,0 +1,34 @@ +[seti authorized] +[userdb + function=check_file_acl + location="[scratch deliverable]" + mode=expire +][/seti][perl products] + my $auth = $Scratch->{authorized}; + if($auth !~ /1/) { + Log("Not authorized for $Scratch->{deliverable}, 403"); + $Document->header('Status: 403 Not authorized'); + $Document->hot(1); + $Document->write(<{deliverable}. Buy it first, please. +EOF + return; + } + my $type = tag_data('products', 'dl_type', $Scratch->{deliverable}); + my $location = tag_data('products', 'dl_location', $Scratch->{deliverable}); + my $content = $Tag->file($location); + my $len = length($content); + if(! $len) { + Log("Not found: $Scratch->{deliverable} type=$type at $location, 404"); + $Document->header('Status: 404 not found'); + $Document->hot(1); + $Document->write(<{deliverable} not found. +EOF + return; + } + $Document->header("Content-Type: $type\nContent-Length: $len"); + $Document->hot(1); + $Document->write($content); + return; +[/perl] diff --git a/art/pages/examples/test_banner.html b/art/pages/examples/test_banner.html new file mode 100644 index 0000000..b965b2d --- /dev/null +++ b/art/pages/examples/test_banner.html @@ -0,0 +1,12 @@ +[comment] + Displays several examples of banners, with rotation and weighting. + Modify the 'banner' database to see changes in pattern. +[/comment] +
+W   [banner weighted=1]
+C   [banner]
+C   Renaissance: [banner category=Renaissance]
+C   Americana: [banner category=Americana]
+W,C Renaissance: [banner weighted=1 category=Renaissance]
+W,C Americana: [banner weighted=1 category=Americana]
+
diff --git a/art/pages/feedback.html b/art/pages/feedback.html new file mode 100644 index 0000000..f97ce77 --- /dev/null +++ b/art/pages/feedback.html @@ -0,0 +1,98 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Send us feedback[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + + +[comment] + The check_form area is a Interchange scratch variable. + It simply sets an area in the user session to a particular + value. + + If this is referenced in an mv_click or mv_check variable, + though, the Interchange tags inside will be interpreted + and other variables may be set. + + mv_click sets variable values BEFORE they are put + in the user's session. It is a way of setting + multiple variables in one click; or of running + a "subroutine". + + mv_check sets variable values AFTER they are put + in the user's session. It is a way of checking + for out of bounds conditions, or running + subroutines that should occur after values + are set. + + The below checks for a value in the variable "feedback" + to make sure an empty message is not submitted. It also + checks for a subject. If both are present, then it + sets a tracking number with the [counter] UserTag + (probably defined in flycat.cfg) and sets mv_nextpage to + a place that will submit the form contents with a + subroutine called "form_mail". + +[/comment] +[set check_form] + [if !value feedback_message] + form_errors=An empty message won't do us much good! + mv_nextpage=@@MV_PAGE@@ + [elsif !value feedback_subject] + form_errors=Please give us a subject so we can track the message + mv_nextpage=@@MV_PAGE@@ + [/elsif] + [else] + tracking_number=[counter etc/feedback.counter] + mv_nextpage=special/feedback + [/else] + [/if] +[/set] + + +[comment] + [quick-table] is a UserTag that just makes + a little two-column table. +[/comment] + + + + + + + + +
+ +[set feedback_active]1[/set] +
+ + +[quick-table] +:[title-bar 400 4]Feedback[/title-bar] +[if value form_errors] : [value form_errors][value name=form_errors set=""][/if] +Subject: +Name: (optional) +Email: (optional) +Message: +: +[/quick-table] +
+ +
+ + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/flypage.html b/art/pages/flypage.html new file mode 100644 index 0000000..e47a8a4 --- /dev/null +++ b/art/pages/flypage.html @@ -0,0 +1,215 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title][item-description][/set] +[flag type=build] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[comment] + This the special "flypage". When a page is called that + corresponds to a part number in the database, and that + page doesn't exist, this page is used to display it. + + Everywhere you see [item-code] the part number will + be displayed. + + [item-field title] displays the title field in the + products database. [item-data products title] is the + same in this case, but if the products database contained + more than one table (with ProductFiles) then [item-field title] + could come from another table. +[/comment] +[comment] + This next is an Interchange UserTag -- if you see it in the page, then + you don't have it defined in catalog.cfg. +[/comment] +[table-font FACE="verdana,arial, helvetica" SIZE=3] + + + + + + + + + + + + + + + +
[item-field category]
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
[if-item-field image][item-field title][/if-item-field][item-field title]
+by +[filter name namecase][item-field artist][/filter]

+Price: [item-price]   buy now

+[item-field comments]

+More [filter lower][item-field category][/filter]...
+
+ [page quantity [item-code]][L]Quantity Pricing[/L][/page]
+
+ [L]Catalog[/L] [L]Number[/L]: [item-code] +

+ + [item-data products comment] + +

+ [if ordered [item-code]] +

+ + This item is currently in your shopping cart. + +

+ [/if] + [if-item-field size] +

+ [calc] + $qty = q{[cgi prospective_price]} || 1; + return ''; + [/calc] +

+ + + + + + + + +
+ + + + + + +
+ [item-accessories size][item-accessories color] +
+ + + + + + + + + [loop prefix=color list="[item-accessories color, options]"] + + + + [loop prefix=size arg="[item-accessories size, options]"] + + [/loop] + + [/loop] +
+ Quick-order
+ [loop arg="1 5 10 25 100"] + [if cgi prospective_price == [loop-code]] + [loop-code] + [elsif !value prospective_price] + [loop-code] + [/elsif] + [/if] + [/loop]
+ +
+ Color + + Sizes +
+ [color-code] + - - > + + [size-code] +
+
+
+
+ [else] +
[order [item-code]]Order Now

+ [/else] + [/if-item-field] + +
+
+ + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/index.html b/art/pages/index.html new file mode 100644 index 0000000..b416a48 --- /dev/null +++ b/art/pages/index.html @@ -0,0 +1,136 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]__COMPANY__ Catalog[/set] +[comment] + The __VALUES__ below are Interchange Variable settings. + In this case, they come from these settings in catalog.cfg: + + ## Set some menubars and headers + ConfigDir pages + Variable LEFTSIDE + + +[comment] +This is the default page of the catalog. +[/comment] + + +[comment] + + This [loop] repeats the container code for every product + code returned by the search with a random parameter. The random=2 + causes a random set (of 2) of the results returned from the search + to be iterated over. + + The effect is to have a changing "specials" display on + the front page. + +[/comment] + + +[loop random=3 + search= | + fi=merchandising + st=db + sf=featured + se=front + ml=25 + | +] + + + + + + + + + + + + + + +[/loop] +
[if-loop-data merchandising banner_text][loop-data merchandising banner_text][else][loop-field category][/else][/if-loop-data]
+ + + + + + + + + + + + + + + + + + + + + + + +
[if-loop-field image][loop-field title][/if-loop-field][loop-field title]
+by +[filter name namecase][loop-field artist][/filter]

+Price: [loop-price]   buy now

+[loop-field comments]

+More [filter lower][loop-field category][/filter]...
+
+ + +[comment] And the footer as above. [/comment] + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/last_search.html b/art/pages/last_search.html new file mode 100644 index 0000000..b92bf07 --- /dev/null +++ b/art/pages/last_search.html @@ -0,0 +1,14 @@ +[if session last_search] + [set name=arg interpolate=1][data session last_search][/set] +[else] + [set name=arg]/[/set] +[/else] +[/if] +[tag op=header interpolate=1] +Status: 302 moved +Location: [area href="[scratch arg]"] +[/tag][comment] + This page redirects the user to the last search + that was saved. If no search is present, then + they will go to the index page. +[/comment] diff --git a/art/pages/login.html b/art/pages/login.html new file mode 100644 index 0000000..fb1a701 --- /dev/null +++ b/art/pages/login.html @@ -0,0 +1,118 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Log in[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +
+ + +
+ Log in +
+ +
+[if session failure] +

+[data session failure] +

+[/if] +If you have an account with us, please enter your user name and password. (test/test for testing) +

+

+
+ + + + + + + + + + + + + +
Username +
Password +    +
  Log me in automatically
+ +
+

+

+ + + + + + + + + + + + + + + + + + +
+ Lost your customer ID? +
+
+ Just complete enough to ensure one match. +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ First Name +
+ Last Name +
+ Email +
+ Zip Code +
 
+
+
+
+ +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/logout.html b/art/pages/logout.html new file mode 100644 index 0000000..d2eaf18 --- /dev/null +++ b/art/pages/logout.html @@ -0,0 +1,33 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Nuke the cookies[/set] +[set name=done int][userdb function=logout clear=1][/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[if scratch done] + +

Bye Bye!

+Thanks for stopping in! + +[else] +

OOPS!

+You refuse to be logged out. +[/else] +[/if] + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/multi/b_address.html b/art/pages/multi/b_address.html new file mode 100644 index 0000000..4e9fc85 --- /dev/null +++ b/art/pages/multi/b_address.html @@ -0,0 +1,73 @@ +[set page_title]Enter Billing Address[/set] +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ + +
+Billing Address (if different) +
+ +
+ + + + + + + + + + + + + + + + + + + +
Name + + +
Address + + +
City, State, Postal Code + + + +
Country + +
+ +[if session logged_in] + +   + + + If you want to save this address in your address book, + [if value address_book]or recall a saved address,[/if] + click the button below.
+ + +
+ + +[/if] + +[if value mv_shipmode] + Use shipping mode [shipping-desc] ([shipping]) + Change shipping +[else] + Select shipping +[/else] +[/if] +

+ +

+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/multi/basket.html b/art/pages/multi/basket.html new file mode 100644 index 0000000..451e2ae --- /dev/null +++ b/art/pages/multi/basket.html @@ -0,0 +1,281 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Shopping Cart Contents[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + +[if type=explicit compare="q{[read-cookie MV_SESSION_ID]}"] +[elsif scratch tried] +You must have cookies set to leave the basket. Check out now or forever +lose your shopping cart. +[/elsif] +[else] +[set tried]1[/set] +[bounce href="[area multi/basket]"] +[/else] +[/if] +
+ + + + + +[comment] + This next is an Interchange UserTag -- if you see it in the page, then + you don't have it defined in catalog.cfg. +[/comment] + +[table-font FACE="verdana,arial, helvetica" size="2"] + + + + + + + + + + + + + + + + + + + + + +[if items] +[then] +[item-list] + + + + + + + + + + +[/item-list] +[/then] +[else] + +[/else] +[/if] + + + + + + + + +
Shopping Cart Contents
+

SKU

+
  +

Description

+
+

Quantity

+
+

Price

+
  +

Extension

+
+ [item-code]
remove
  + [page [item-code]][item-description] + [if-item-data pricing sku] +
[page quantity [item-code]] + QUANTITY PRICING + + [/if-item-data] + [if-item-field weight]
+ WEIGHT: [summary amount=`[item-quantity] * [item-field weight]`] + [/if-item-field] +
+ [if-item-field related] + [if !ordered [item-field related]] + + [loop arg="[item-field related]"] + [loop-change 1][condition]1[/condition] + + + [/loop-change 1] + [if !ordered [loop-code]] + + + + + [/if] + [/loop] +
Other items you may like:
[loop-field title]
+ [/if] + [/if-item-field][item-accessories size][item-accessories color] +
+ + + + [discount-price] + [if discount [item-code]] +
Item is discounted + [item-discount] + + [/if] +
  + [item-subtotal] +
+

No items at the moment.

+
+[summary format="Shipping weight: %s" total=1]       Subtotal [subtotal]
+ + + + [if session logged_in] + [and !value show_saved] +
Show saved carts + [/if] +
+
+
+ +[if session logged_in] +[and value show_saved] +[userdb function=get_cart_names hide=1] +

+

+ + + + + + + + + + + + + + + + + +[set Save to new cart] +[value name=c_nickname set="[value c_nickname0]"] +[userdb function=set_cart nickname="[value name=c_nickname filter='nullselect no_white']"] +[/set] + +[set Save to existing cart] +[userdb function=set_cart nickname="[value c_nickname]"] +[/set] + +[set Recall cart(s)] +[userdb function=get_cart nickname="[value c_nickname]"] +[/set] + +[set DELETE cart] +[if value c_delete] +[value name=c_delete set=""] +[userdb function=delete_cart nickname="[value c_nickname]"] +[else] +[set c_delete_message]Must click the checkbox.[/set] +[/else] +[/if] +[/set] + + +
Cart Storage Area
+

New Cart Name

+
+

Existing Cart Name

+
+

Confirm

+
+   + + + + Yes, delete + [scratch c_delete_message] + [set c_delete_message][/set] +
+ + + + +
Hide saved carts +
+
+[/if] +[/table-font] + +[set Continue shopping] +[bounce href='[history-scan exclude="^/ord|^/multi/|^/process" default=browse]'] +mv_nextpage=nothing +[/set] + +[set Stop shopping] +mv_todo=return +mv_nextpage=canceled +[/set] + +[set Check out] +mv_todo=return +mv_nextpage=multi/checkout +[/set] + +
+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/multi/checkout.html b/art/pages/multi/checkout.html new file mode 100644 index 0000000..a80b6a4 --- /dev/null +++ b/art/pages/multi/checkout.html @@ -0,0 +1,216 @@ +[set name=page_title interpolate=1]Check out with [nitems] items in basket[/set] +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ + +[if !session logged_in] + + +
+ Create a new account +
+

+
+It is not required, but if you frequently do business with us you can +create a new account. +

+Or if you already have an account, you can log in. +

+[/if] + +

+ + + + + +[if type=explicit compare="[error all=1 show_var=1 keep=1]"] +

+There were errors in your last submission. +They are shown in __CONTRAST__ below. +

+[/if] + +
+Shipping Address +[if !items] +

+(no items ordered) +[/if] +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[if session logged_in] + + + + +[/if] +
+ [error name=fname std_label="First Name" required=1] + + [error name=lname std_label=Last required=1]  +
[error name=address1 std_label=Address required=1] + +
  + +
+ [error name=city std_label="City" required=1] + + + + + + + + + +
+ + + [error name=state std_label="State/Province" required=1] + + + + [error name=zip std_label="Zip/Postal Code" required=1] + + +
+
[error name=email std_label="Email Address" required=1] + +
+ Country + + [if value country =~ /(^$|US|CA)/] + + [else] + + [/else] + [/if] (will update display) +
[error name=phone_day std_label="Daytime Phone" required=1] + + + + + + +
+ + + Evening + + +
+
+ We need the bold fields to process your order +
  + [set Go to address book] + mv_todo=refresh + mv_nextpage=account + [/set] + + [set Save_database] + [userdb save] + [/set] + + + If you want to save this address in your address book, + [if value address_book]or recall a saved address,[/if] + click the button below.
+ + +
+
+[set scrub_bill] +b_lname= +b_fname= +b_address1= +b_address2= +b_city= +b_state= +b_zip= +b_country= +mv_nextpage=multi/shipping +[/set] +[set xfer_bill] +[perl] + for ( qw/ lname fname address1 address2 city state zip country /) { + $Values->{"b_$_"} = $Values->{$_} + if ! $Values->{"b_$_"}; + } + return; +[/perl] +mv_nextpage=multi/b_address +[/set] +[if value b_address1] + + Billing same as shipping    + + Separate billing address +[else] + + Billing same as shipping + + Separate billing address +[/else] +[/if] +

+ +

+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/multi/final.html b/art/pages/multi/final.html new file mode 100644 index 0000000..877b765 --- /dev/null +++ b/art/pages/multi/final.html @@ -0,0 +1,232 @@ +[set name=page_title interpolate=1]Check out with [nitems] items in basket[/set] + +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ + +
+
+ + + + + +[if items] +[then] + + + +[item-list] + + + + + + +[/item-list] + + + + + + + + + + + + + + + + + + + + +
+ Review order details +
+ remove + + + [item-description] + [item-quantity] @ [item-price][item-subtotal]
Back to cart
Subtotal[subtotal]
Sales Tax[salestax]
Shipping[shipping]
TOTAL[total-cost]
+[/then] +[else] + +

No items in your basket.

+

+You can enter information, and it will be saved, but no checkout will happen until you order something! + +[/else] +[/if] + + +[if type=explicit compare="[error all=1 show_var=1 keep=1]"] +

+There were errors in your last submission. +They are shown in __CONTRAST__ below. +

+[/if] + +[if variable CREDIT_CARDS_ACCEPTED =~ /\S/] +
+[error std_label="Credit Card Information" name=mv_credit_card_valid]      [calc] + my $accepted = $Variable->{CREDIT_CARDS_ACCEPTED}; + my (@out); + my (@cc); + my $out; + push @cc, 'visa' if $accepted =~ /visa/; + push @cc, 'mc' if $accepted =~ /mc/; + push @cc, 'disc' if $accepted =~ /discover/; + push @cc, 'amex' if $accepted =~ /amex/; + for (@cc) { + push @out, qq{}; + } + return join '  ', @out; +[/calc] +
+ + + +
+Card Number (test number 4111 1111 1111 1111)
+ +[if variable MV_PAYMENT_MODE =~ /minivend_test/] +
Interchange test should yield: + Success + Failure +[/if] + +
+ Expires +
+ + +
+
+[if scratch some_downloadable] + To download items, you must pay by credit card [if variable PO_ACCEPTED]or purchase order[/if]
+ [value name=fax_order set=0 hide=1] +[/if] + + + Pay by credit card
+ [if value tried_credit_card] + + Force this card number to be taken
+ [/if] +[/if] + +[if variable CHECK_ACCEPTED] + + I will call with payment information
+[/if] + +[if variable PO_ACCEPTED] + + I will pay by purchase order + [error name=credit_limit_ok std_label="PO Number" required=1]  + [if type=data + term="userdb::credit_limit::[data session username]" + op=">" + compare=0.01] +
+ Current credit limit: + [currency] + [data table=userdb col=credit_limit key="[data session username]"] + [/currency] + + [if type=data + term="userdb::credit_limit::[data session username]" + op=< + compare="[total-cost noformat=1]" + ] +
+ Order total [total-cost] exceeds credit limit, please call. + [/if] +
+ [/if] +
+[/if] + +[if variable COD_ACCEPTED] + + I will pay by COD ([handling cod] extra charge will be added)
+[/if] + +
+
+ +
+Email preferences +
+ + + + + + + + + + +
+ Yes + No + + Send an email copy of my receipt +
+ Yes + No + + Put me on your email list of infrequent offers +
+ +

+
+
+ + + +
+Gift note or Special Instructions
+
+ +
+
+
+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/multi/nobasket.html b/art/pages/multi/nobasket.html new file mode 100644 index 0000000..7d9a5f4 --- /dev/null +++ b/art/pages/multi/nobasket.html @@ -0,0 +1,5 @@ +[tag op=header interpolate=1] +Status: 302 moved +Content-type: text/html +Location: [area href="[data session last_search]"] +[/tag][set mv_no_cache]1[/set] diff --git a/art/pages/multi/shipping.html b/art/pages/multi/shipping.html new file mode 100644 index 0000000..d4df577 --- /dev/null +++ b/art/pages/multi/shipping.html @@ -0,0 +1,86 @@ +[set page_title]Select Shipping mode[/set] +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ +[set only_downloadable]1[/set] +[set some_downloadable][/set] +[item-list] + [if-item-field weight][set only_downloadable][/set][/if-item-field] + [if-item-field download][set some_downloadable]1[/set][/if-item-field] +[/item-list] +[if scratch only_downloadable] + [bounce href="[area href=multi/final secure=1]"] +[/if] + + +
+ + +[if !scratch only_downloadable] +

+
+Choose your shipping method +
+ +

+ + + + + + +
+ +
+[if session ship_message] +
Note: [data session ship_message]
+[/if] +
+ +[else] +

+ You only have downloadable products. There is no shipping cost; you will + be able to download after purchase. +
+[/else] +[/if] + + +

+ +

+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/new_account.html b/art/pages/new_account.html new file mode 100644 index 0000000..7e0d719 --- /dev/null +++ b/art/pages/new_account.html @@ -0,0 +1,266 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top logo bar. menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set members_only][/set] +[set page_title]__COMPANY__ -- [L]Create a new account[/L][/set] +__LOGOBAR__ +__MENUBAR__ + + +[title-bar 500 4]Create an account at __COMPANY__[/title-bar] +[set NewAccount] +[if type=explicit compare="[userdb new_account]"] +mv_nextpage=account +[else] +mv_nextpage=new_account +[/else] +[/if] +[/set] + +

+[if session failure] +[data session failure] +[data base=session field=failure value=""] +[/if] +

+

+ + + + + + + + + + + + + + + + + +
Username +
Password +
Verify +

+ + Log me in automatically (sets cookie) +
+ +[title-bar 500 2] +
You are not required to give us the below information yet, but it will +be retained for your checkout. We have a privacy policy +that protects you.
+[/title-bar] + +[title-bar 500 4]Shipping Address[/title-bar] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ [error name=fname std_label="First Name" required=1] + + [error name=lname std_label=Last required=1]  +
[error name=address1 std_label=Address required=1] + +
  + +
+ [error name=city std_label="City" required=1] + + + + + + + + + +
+ + + [error name=state std_label="State/Province" required=1] + + + + [error name=zip std_label="Zip/Postal Code" required=1] + + +
+
[error name=email std_label="Email Address" required=1] + +
+ Country + + [if value country =~ /(^$|US|CA)/] + + [else] + + [/else] + [/if] (will update display) +
[error name=phone_day std_label="Daytime Phone" required=1] + + + + + + +
+ + + Evening + + +
+
+ Shipping method + + +
+ We need the bold fields to process your order +
+ +[title-bar 500 3] + + + +[/title-bar] + + +[title-bar 500 4]Mailing status
+ + + Send an email copy of my receipt
+ + + Put me on your email list of infrequent offers +

[/title-bar] + +[title-bar 500 4]Billing Address (if different)[/title-bar] + + + + + + + + + + + + + + + + + + + + + + +
Name + + +
Address + + +
City, State, Postal Code + + + +
Country + +
+ Payment method + + + Pay by credit card
+ + I will call with payment information
+
+ +[title-bar 500 3] + + + +[/title-bar] + +

+ + +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/news.html b/art/pages/news.html new file mode 100644 index 0000000..5a763c4 --- /dev/null +++ b/art/pages/news.html @@ -0,0 +1,254 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]News[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +
+ +You may note a new look for Interchange's "simple" demo. +

+[page reconfig/reconfig]Reconfigure the catalog[/page] +(must be user minivend) +

+[page reconfig/upload]Upload/download files[/page] +(must be user minivend) + +

+ +

New features

+
    +
  • You can order items on the fly: +

    +Order it +

    +You can set quantities: +

    +Order 10 of it +

    +You can use a form: +

    + + + + Qty: + + + +
    +

    +You can order more than one item: +

    + Order two different items +

    + +You can use a form here, too: +

    +

    + + + + Qty:
    + + + + Qty:
    + + +
    +

    +[mvasp] +

  • A new ASP-style syntax is supported (and is used in this section): +
    +        <HTML MV=mvasp><BODY>This is HTML
    +        <%
    +            $Document->write('This is code');
    +        %>
    +        HTML again.
    +        <%
    +            $Document->write('Code again.');
    +        %>
    +
    +
  • A new Perl object set is there to support the ASP, but + it also is available via + + [perl arg=new] + $Document-&gt;write("Your name is $Values-&gt;{name}"); + [/perl] + + Objects supported are: + + $CGI->{key} Hash reference to submitted values + $Document->write() Writes to page + $Carts->{cartname} Direct reference to shopping carts + $Config->{key} Direct reference to $Vend::Cfg + $Items->[n] Direct reference to current cart + $Scratch->{key} Direct reference to scratch area + $Session->{key} Direct reference to session area + $Tag->tagname(@args) Call a tag as a routine (UserTag too!) + $Values->{key} Direct reference to user form values + $Variable->{key} Direct reference to Interchange Variable + &Log($msg) Log to the error log + + +<% = "Here is a ", + $Tag->page('mvasp'), + "test link generated by MV's ASP-style syntax."; + %> +

    +

  • Tag parameters quoted with parameter=`code` are the equivalent of + parameter="[calc]code[/calc]". + +
  • Tag parameters can be quoted with | to strip whitespace: + + + [page href=| + [value name="whatever"] + |] + + is equivalent to + + + [page href="[value name="whatever"]"] + + +
  • Tag parameters can be quoted with | to strip whitespace: + + + [page href=| + [value name="whatever"] + |] + + + is equivalent to + + [page href="[value name="whatever"]"] + +
  • Tag parameters can be quoted with @ to insert a scratch + value: + + [value name=foo set=@bar@] + [value name=foo set="[scratch bar]"] + + This can be useful when setting large values into variables, + as it is much more efficient than the previous method. + +
  • Input values filters can be set up by quoting with ! and + an operation: + + <INPUT TYPE=text NAME=phone VALUE="[value name=!phone:digits!]"> + + This guarantees that the value of "phone" will be digits only + when sent to Interchange. Filters include: +
    +          uc          UPPER CASE 
    +          lc          lower case 
    +          digits      only digits
    +          word        only A-Z a-z _ 0-9
    +          urlencode   space becomes %20
    +          entities    < becomes <
    +          strip       strip leading/trailing whitespace
    +          no_white    strip all whitespace
    +          gate        set to blank unless scratch variable
    +                       with same name is non-blank
    +          n           (where n is an integer) length limit
    +          remove      delete existing filter (if any)
    +
    + Filters can also be created with Filter directive + and/or [input-filter op="uc"][/input-filter] + +
  • Filter directive allows filtering of certain CGI variables + for input conditioning; this is not session dependent and + automatically operates on any iteration of the variable... +
    + Filter phone digits 10 +
    + That removes all non-digit values from the variable "phone", + then limits length to 10. Any session-based filters are applied + after this one. + +
  • Small improvements in the parser, notably optimization when + positional parameters are used. + +
  • ECML is supported via the Vend::ECML module. To map the + checkout form values from Interchange UserDB names, with an [ecml ...] + tag: + + [ecml state] + + is equivalent to: + + <INPUT TYPE=text + VALUE="[value state]" + NAME=Ecom_ShipTo_Postal_StateProv + SIZE=2> + +
  • The [price] tag now supports pricing with attributes (size/color etc.). + If you do + + [price code=99-102 size=XL color=RED] + [price code=99-102 size=L color=RED] + [price code=99-102 size=L color=BLUE] + + in the demo, this will demonstrate it. + +
  • The idiom: + + #include directory/* + + now is supported (and used in the demo minivend.cfg file). This + includes all files in that directory (but not subdirectories) + and allows you to include the whole directory. It should make + maintaining multiple servers a bit easier. + +
  • Made some minor changes in the demo: +
      +
    1. updated flypage to show attribute-based price tag +
    2. added [email to=addr from=addr subject=subj] message [/email] + UserTag which is better then the form_mail GlobalSub. It will + allow $Tag->email() to be used, among other things. +
    3. Static build should work out of the box if you + have DBM and define: +
    + + StaticDBM static + +
+
+[/mvasp] + + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/no_cookie.html b/art/pages/no_cookie.html new file mode 100644 index 0000000..a909d47 --- /dev/null +++ b/art/pages/no_cookie.html @@ -0,0 +1,28 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Nuke the cookies[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + + +[set-cookie name=MV_USERNAME value="0" expires="01-Jan-2020 00:00:01 GMT"] +[set-cookie name=MV_PASSWORD value="0" expires="01-Jan-2020 00:00:01 GMT"] + +

Bye-Bye Cookies!

+You will no longer be automatically logged in. + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/nothing.html b/art/pages/nothing.html new file mode 100644 index 0000000..e69de29 diff --git a/art/pages/ord/basket.html b/art/pages/ord/basket.html new file mode 100644 index 0000000..db332a6 --- /dev/null +++ b/art/pages/ord/basket.html @@ -0,0 +1,281 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Shopping Cart Contents[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + +[if type=explicit compare="q{[read-cookie MV_SESSION_ID]}"] +[elsif scratch tried] +You must have cookies set to leave the basket. Check out now or forever +lose your shopping cart. +[/elsif] +[else] +[set tried]1[/set] +[bounce href="[area ord/basket]"] +[/else] +[/if] +
+ + + + + +[comment] + This next is an Interchange UserTag -- if you see it in the page, then + you don't have it defined in catalog.cfg. +[/comment] + +[table-font FACE="verdana,arial, helvetica" size="2"] + + + + + + + + + + + + + + + + + + + + + +[if items] +[then] +[item-list] + + + + + + + + + + +[/item-list] +[/then] +[else] + +[/else] +[/if] + + + + + + + + +
Shopping Cart Contents
+

SKU

+
  +

Description

+
+

Quantity

+
+

Price

+
  +

Extension

+
+ [item-code]
remove
  + [page [item-code]][item-description] + [if-item-data pricing sku] +
[page quantity [item-code]] + QUANTITY PRICING + + [/if-item-data] + [if-item-field weight]
+ WEIGHT: [summary amount=`[item-quantity] * [item-field weight]`] + [/if-item-field] +
+ [if-item-field related] + [if !ordered [item-field related]] + + [loop arg="[item-field related]"] + [loop-change 1][condition]1[/condition] + + + [/loop-change 1] + [if !ordered [loop-code]] + + + + + [/if] + [/loop] +
Other items you may like:
[loop-field title]
+ [/if] + [/if-item-field][item-accessories size][item-accessories color] +
+ + + + [discount-price] + [if discount [item-code]] +
Item is discounted + [item-discount] + + [/if] +
  + [item-subtotal] +
+

No items at the moment.

+
+[summary format="Shipping weight: %s" total=1]       Subtotal [subtotal]
+ + + + [if session logged_in] + [and !value show_saved] +
Show saved carts + [/if] +
+
+
+ +[if session logged_in] +[and value show_saved] +[userdb function=get_cart_names hide=1] +

+

+ + + + + + + + + + + + + + + + + +[set Save to new cart] +[value name=c_nickname set="[value c_nickname0]"] +[userdb function=set_cart nickname="[value name=c_nickname filter='nullselect no_white']"] +[/set] + +[set Save to existing cart] +[userdb function=set_cart nickname="[value c_nickname]"] +[/set] + +[set Recall cart(s)] +[userdb function=get_cart nickname="[value c_nickname]"] +[/set] + +[set DELETE cart] +[if value c_delete] +[value name=c_delete set=""] +[userdb function=delete_cart nickname="[value c_nickname]"] +[else] +[set c_delete_message]Must click the checkbox.[/set] +[/else] +[/if] +[/set] + + +
Cart Storage Area
+

New Cart Name

+
+

Existing Cart Name

+
+

Confirm

+
+   + + + + Yes, delete + [scratch c_delete_message] + [set c_delete_message][/set] +
+ + + + +
Hide saved carts +
+
+[/if] +[/table-font] + +[set Continue shopping] +[bounce href='[history-scan exclude="^/ord|^/multi/|^/process" default=browse]'] +mv_nextpage=nothing +[/set] + +[set Stop shopping] +mv_todo=return +mv_nextpage=canceled +[/set] + +[set Check out] +mv_todo=return +mv_nextpage=ord/checkout +[/set] + +
+ +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/ord/checkout.html b/art/pages/ord/checkout.html new file mode 100644 index 0000000..5f5071a --- /dev/null +++ b/art/pages/ord/checkout.html @@ -0,0 +1,583 @@ +[set page_title]Check out -- __COMPANY__[/set] +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ + +
+NOTE: If you access something above, it will not save anything you have entered.
+ + +[if !items] + + + + + +
+ No Items? +
+You have no items in your shopping cart. +

This usually means that one of several things has occurred: +

    +
  • You have cookies turned off. This is not fatal unless you travel through +a proxy server to get to the net (don't worry if you don't know what that means). +You can confirm this by [page form=" + mv_nextpage=ord/checkout + mv_todo=return +"]going to the checkout page in non-secure mode. +
  • Our server is misconfigured. +
+Try calling us at __PHONE__ [if variable TOLLFREE]or __TOLLFREE__[/if] +to place the order. +
+[/if] + +[if session logged_in] +[then] + +[set Log out] +mv_todo=return +mv_nextpage=ord/checkout +[userdb function=logout clear=1] +[/set] + +[/then] +[else] + +[title-bar 400 5]Create a new account[/title-bar] +

+It is not required, but if you frequently do business with us you can +create a new account. +

+[title-bar 400 5]Log in[/title-bar] + +[if session failure] +

+[data session failure] +

+[/if] +If you have an account with us, please enter your user name and password. (test/test for testing) +

+

+ + + + + + + + + + + + +
Username +
Password +    +
  Log me in automatically
+ +
+ +[/else][/if] + + +
+ + +[if type=explicit compare="[error all=1 show_var=1 keep=1]"] +

+There were errors in your last submission. +They are shown in this color below. +

+[/if] + + +[comment] + + +[/comment] + + + +
+Shipping Address +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[if session logged_in] + + + + +[/if] + +
+ [error name=fname std_label="First Name" required=1] + +
+ [error name=lname std_label="Last Name" required=1] + + +
[error name=address1 std_label=Address required=1] + +
  + +
+ [error name=city std_label="City" required=1] + + +
+ [error name=state std_label="State/Province" required=1] + + +
+ [error name=zip std_label="Zip/Postal Code" required=1] + + +
[error name=email std_label="Email Address" required=1] + +
+ Country + + [if value country =~ /(^$|US|CA)/] + + [else] + + [/else] + [/if] (will update display) +
[error name=phone_day std_label="Daytime Phone" required=1] + +
+ [error name=phone_night std_label="Evening Phone" required=0] + + +
  + We need the bold fields to process your order +
  + [set Go to address book] + mv_todo=refresh + mv_nextpage=account + [/set] + + [set Save_database] + [userdb save] + [/set] + + + If you want to save this address in your address book, + [if value address_book]or recall a saved address,[/if] + click the button below.
+ + +
+
+[set only_downloadable]1[/set] +[set some_downloadable][/set] +[item-list] + [if-item-field weight][set only_downloadable][/set][/if-item-field] + [if-item-field download][set some_downloadable]1[/set][/if-item-field] +[/item-list] +[if !scratch only_downloadable] +

+
+Choose your shipping method +
+ +

+ + + + + + + +
+ +
+[if session ship_message] +
Note: [data session ship_message]
+[/if] +
+[/if] + +[if variable CREDIT_CARDS_ACCEPTED =~ /\S/] +
+[error std_label="Credit Card Information" name=mv_credit_card_valid]      [calc] + my $accepted = $Variable->{CREDIT_CARDS_ACCEPTED}; + my (@out); + my (@cc); + my $out; + push @cc, 'visa' if $accepted =~ /visa/; + push @cc, 'mc' if $accepted =~ /mc/; + push @cc, 'disc' if $accepted =~ /discover/; + push @cc, 'amex' if $accepted =~ /amex/; + for (@cc) { + push @out, qq{}; + } + return join '  ', @out; +[/calc] +
+ +

+ +
+Card Number (test number 4111 1111 1111 1111)
+ +[if variable MV_PAYMENT_MODE =~ /minivend_test/] +
Interchange test should yield: + Success + Failure +[/if] +
+ Expires +
+ + +
+[if scratch some_downloadable] + To download items, you must pay by credit card [if variable PO_ACCEPTED]or purchase order[/if]
+ [value name=fax_order set=0 hide=1] +[/if] + + + Pay by credit card
+ [if value tried_credit_card] + + Force this card number to be taken
+ [/if] +[/if] + +[if variable CHECK_ACCEPTED] + + I will call with payment information
+[/if] + +[if variable PO_ACCEPTED] + + I will pay by purchase order + [error name=credit_limit_ok std_label="PO Number" required=1]  + [if type=data + term="userdb::credit_limit::[data session username]" + op=">" + compare=0.01] +
+ Current credit limit: + [currency] + [data table=userdb col=credit_limit key="[data session username]"] + [/currency] + + [if type=data + term="userdb::credit_limit::[data session username]" + op=< + compare="[total-cost noformat=1]" + ] +
+ Order total [total-cost] exceeds credit limit, please call. + [/if] +
+ [/if] +
+[/if] + +[if variable COD_ACCEPTED] + + I will pay by COD ([handling cod] extra charge will be added)
+[/if] + +
+Billing Address (if different) +
+ + + + + + + + + + + + + + + + + + + + +[if session logged_in] + + + + +[/if] + +
Name + + +
Address + + +
City/ST/Zip + + + +
Country + +
  + + If you want to save this address in your address book, + [if value address_book]or recall a saved address,[/if] + click the button below.
+ + +
+
+ +[set Place Order!] +mv_todo=submit +[/set] + +
+Email preferences +
+ + + + + + + + + + +
+ Yes + No + + Send an email copy of my receipt +
+ Yes + No + + Put me on your email list of infrequent offers +
+ +[if items] +[then] + + + +[item-list] + + + + + + +[/item-list] + + + + + + + + + + + + + + + + + + + + +
+ Review order details +
+ remove + + + [item-description] + [item-quantity] @ [item-price][item-subtotal]
Back to cart
Subtotal[subtotal]
Sales Tax[salestax]
Shipping[shipping]
TOTAL[total-cost]
+

+

+
+
+[/then] +[else] + +

No items in your basket.

+

+You can enter information, and it will be saved, but no checkout will happen until you order something! + +[/else] +[/if] +

+ +
+ +

+Gift note or Special Instructions
+ + +[error all=1 hide=1 comment="Clear errors"] +

+NOTE: If you access something below, it will not save anything you have entered. + +

+__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/ord/nobasket.html b/art/pages/ord/nobasket.html new file mode 100644 index 0000000..7d9a5f4 --- /dev/null +++ b/art/pages/ord/nobasket.html @@ -0,0 +1,5 @@ +[tag op=header interpolate=1] +Status: 302 moved +Content-type: text/html +Location: [area href="[data session last_search]"] +[/tag][set mv_no_cache]1[/set] diff --git a/art/pages/privacy.html b/art/pages/privacy.html new file mode 100644 index 0000000..ccb19be --- /dev/null +++ b/art/pages/privacy.html @@ -0,0 +1,32 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Privacy Policy[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[title-bar 400 4]Privacy Policy[/title-bar] +
+ +
    +
  • We will only send you email directly related to orders you place. +
  • We will not assume that you want promotional email just because +you ordered from us. +
  • We will not give your information to anyone else. +
+
+ + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/quantity.html b/art/pages/quantity.html new file mode 100644 index 0000000..1ac1b53 --- /dev/null +++ b/art/pages/quantity.html @@ -0,0 +1,94 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[loop arg="[data session arg]"] +[set page_title][loop-description][/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[if-loop-field category][L]Category[/L]: [loop-field category][/if-loop-field] +

+[if-loop-field image] + +

+[order [loop-code]][L]ORDER NOW[/L][/order] +

+[/if-loop-field] +

[loop-field title]

+

[loop-field artist]

+

+ + + + + + + + + + + + + + + + + + + +
+ +

[L]Quantity Pricing[/L]

+ [if type=explicit compare="[calc] + return 1 if q{[loop-price 1 noformat]} > 1000; + return 0; + [/calc]"] + Remember, an original costs more! + [/if]
+ + Part No. + + + 1 + + + 2 + + + 5 + + + 10 + + + 25 +
[loop-code] + [order code="[loop-code]" quantity=1][loop-price 1] + + [order code="[loop-code]" quantity=2][loop-price 2] + + [order code="[loop-code]" quantity=5][loop-price 5] + + [order code="[loop-code]" quantity=10][loop-price 10] + + [order code="[loop-code]" quantity=25][loop-price 25]

+ +

+ + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ +[/loop] + diff --git a/art/pages/query/check_orders.html b/art/pages/query/check_orders.html new file mode 100644 index 0000000..057d1a8 --- /dev/null +++ b/art/pages/query/check_orders.html @@ -0,0 +1,207 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top logo bar. menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set members_only]1[/set] +[set page_title]__COMPANY__ -- Order Status[/set] +__LOGOBAR__ +__MENUBAR__ + + +[comment] ++----------------+---------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++----------------+---------------+------+-----+---------+-------+ +| code | varchar(14) | | PRI | | | +| store_id | varchar(9) | | MUL | | | +| order_number | varchar(14) | | MUL | | | +| session | varchar(32) | | | | | +| username | varchar(20) | | | | | +| shipmode | varchar(32) | | | | | +| nitems | varchar(9) | | | | | +| subtotal | varchar(12) | | | | | +| shipping | varchar(12) | | | | | +| handling | varchar(12) | YES | | NULL | | +| total_cost | varchar(16) | | | | | +| fname | varchar(30) | YES | | NULL | | +| lname | varchar(30) | YES | | NULL | | +| company | varchar(30) | YES | | NULL | | +| address1 | varchar(30) | YES | | NULL | | +| address2 | varchar(30) | YES | | NULL | | +| city | varchar(30) | | | | | +| state | varchar(10) | YES | | NULL | | +| zip | varchar(10) | | | 00000 | | +| country | varchar(10) | | | | | +| phone_day | varchar(20) | YES | | NULL | | +| phone_night | varchar(20) | YES | | NULL | | +| fax | varchar(20) | YES | | NULL | | +| email | varchar(42) | YES | | NULL | | +| b_fname | varchar(30) | YES | | NULL | | +| b_lname | varchar(30) | YES | | NULL | | +| b_company | varchar(30) | YES | | NULL | | +| b_address1 | varchar(30) | YES | | NULL | | +| b_address2 | varchar(30) | YES | | NULL | | +| b_city | varchar(30) | YES | | NULL | | +| b_state | varchar(10) | YES | | NULL | | +| b_zip | varchar(10) | | | 00000 | | +| b_country | varchar(10) | | | | | +| b_phone | varchar(20) | YES | | NULL | | +| order_date | varchar(32) | | | | | +| payment_method | varchar(32) | YES | | NULL | | +| avs | varchar(32) | YES | | NULL | | +| order_id | varchar(32) | YES | | NULL | | +| update_date | timestamp(14) | YES | | NULL | | +| status | varchar(32) | YES | | NULL | | +| parent | varchar(9) | YES | | NULL | | ++----------------+---------------+------+-----+---------+-------+ +[/comment] +

 

+ + +
+ Order Status +
+[query st=db arrayref=orders + sql="SELECT + code,status,nitems,subtotal,shipping,handling,total_cost,payment_method,order_date + FROM transactions + WHERE username = '[data base=session field=username filter=sql]' + ORDER by code + "][/query] +[mvasp tables=transactions] +<% + my $uid = $Session->{username}; + + if (! $uid) { + $Document->write ("

You are not logged in.

"); + return; + } + + my $orders = $Tmp->{orders}; + + if(! $orders or scalar @$orders == 0) { + $Document->write( "No pending orders for $uid."); + return; + } + + HTML ""; + + my $header_template = <<'EOF'; + + + + + + + + + + +EOF + + my $line_template = <<'EOF'; + + + + + + + + + + +EOF + + my %hash; + + my @fields = qw/order_number status nitems subtotal shipping + handling total_cost payment_method order_date/; + + my $row; + + my %summary; + my $first; + my $record; + HTML $header_template; + foreach $record (@$orders) { + my $line = $line_template; + @hash{@fields} = @$record; + $hash{detail_url} = $Tag->area( { + href => 'query/order_detail', + arg => $hash{order_number}, + }); + if($hash{status} =~ /\d/) { + my @ids = grep /\S/, split /\s+/, $hash{status}; + $hash{status} = ''; + for(@ids) { + $hash{status} .= <UPS $_ +EOF + } + } + else { + $hash{status} = <$hash{status} +EOF + } + for(qw/subtotal shipping total_cost/) { + $hash{$_} = $Tag->currency ({ body=> $hash{$_} }); + } + if($hash{handling}) { + $hash{handling} = "
(handling " . + $Tag->currency ({ body=> $hash{handling} }) . + ")"; + } + else { + $hash{handling} = ''; + } + $line =~ s/\$(\w+)/$hash{$1}/g; + HTML $line; + } + + HTML "
+ DATE + + ORDER ID + + QTY
TOTAL
+
+ PAYMENT
METHOD
+
+ SUBTOTAL + + SHIPPING
HANDLING
+
+ SUBTOTAL + + STATUS +
+ $order_date + + $order_number + + $nitems + + $payment_method  + + $subtotal + + $shipping$handling + + $total_cost + + $status +
"; +%> +[/mvasp] + +
+ +__MENUBOTTOM__ +__COPYRIGHT__ diff --git a/art/pages/query/order_detail.html b/art/pages/query/order_detail.html new file mode 100644 index 0000000..a148388 --- /dev/null +++ b/art/pages/query/order_detail.html @@ -0,0 +1,196 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top logo bar. menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set members_only]1[/set] +[set page_title] __COMPANY__ -- Order Detail [/set] +__LOGOBAR__ +__MENUBAR__ + + +[comment] + ++----------------+---------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++----------------+---------------+------+-----+---------+-------+ +| code | varchar(14) | | PRI | | | +| store_id | varchar(9) | | MUL | | | +| order_number | varchar(14) | | MUL | | | +| session | varchar(32) | | | | | +| username | varchar(20) | | | | | +| shipmode | varchar(32) | | | | | +| nitems | varchar(9) | | | | | +| subtotal | varchar(12) | | | | | +| shipping | varchar(12) | | | | | +| handling | varchar(12) | YES | | NULL | | +| salestax | varchar(12) | YES | | NULL | | +| total_cost | varchar(16) | | | | | +| fname | varchar(30) | YES | | NULL | | +| lname | varchar(30) | YES | | NULL | | +| company | varchar(30) | YES | | NULL | | +| address1 | varchar(30) | YES | | NULL | | +| address2 | varchar(30) | YES | | NULL | | +| city | varchar(30) | | | | | +| state | varchar(10) | YES | | NULL | | +| zip | varchar(10) | | | 00000 | | +| country | varchar(10) | | | | | +| phone_day | varchar(20) | YES | | NULL | | +| phone_night | varchar(20) | YES | | NULL | | +| fax | varchar(20) | YES | | NULL | | +| email | varchar(42) | YES | | NULL | | +| b_fname | varchar(30) | YES | | NULL | | +| b_lname | varchar(30) | YES | | NULL | | +| b_company | varchar(30) | YES | | NULL | | +| b_address1 | varchar(30) | YES | | NULL | | +| b_address2 | varchar(30) | YES | | NULL | | +| b_city | varchar(30) | YES | | NULL | | +| b_state | varchar(10) | YES | | NULL | | +| b_zip | varchar(10) | | | 00000 | | +| b_country | varchar(10) | | | | | +| b_phone | varchar(20) | YES | | NULL | | +| order_date | varchar(32) | | | | | +| payment_method | varchar(32) | YES | | NULL | | +| avs | varchar(32) | YES | | NULL | | +| order_id | varchar(32) | YES | | NULL | | +| update_date | timestamp(14) | YES | | NULL | | +| status | varchar(32) | YES | | NULL | | +| parent | varchar(9) | YES | | NULL | | ++----------------+---------------+------+-----+---------+-------+ + ++--------------+---------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------+---------------+------+-----+---------+-------+ +| code | varchar(14) | | PRI | | | +| store_id | varchar(9) | | MUL | | | +| order_number | varchar(14) | | MUL | | | +| session | varchar(32) | | | | | +| username | varchar(20) | | | | | +| shipmode | varchar(32) | | | | | +| sku | varchar(14) | | | | | +| quantity | varchar(9) | | | | | +| price | varchar(12) | | | | | +| subtotal | varchar(12) | | | | | +| shipping | varchar(12) | YES | | NULL | | +| taxable | char(3) | YES | | NULL | | +| size | varchar(30) | YES | | NULL | | +| color | varchar(30) | YES | | NULL | | +| options | varchar(255) | YES | | NULL | | +| order_date | varchar(32) | | | | | +| update_date | timestamp(14) | YES | | NULL | | +| status | varchar(32) | YES | | NULL | | +| parent | varchar(9) | YES | | NULL | | ++--------------+---------------+------+-----+---------+-------+ + +[/comment] + +[comment] +Do some security checking +[/comment] +[if session arg] + [seti arg][data session arg][/seti] +[else] + [bounce href="[area special/violation arg_missing]"] +[/else] + +[/if] + +[value name=test_user + set="[data + table=transactions + col=username + key='[scratch arg]' + ]" + hide=1] + +[if value test_user] +[else] + [bounce href="[area special/violation user_missing]&user=[value test_user]&arg=[scratch arg]"] +[/else] +[/if] +[if type=explicit compare=` + return 1 if ! $Session->{username}; + return 0 if $Session->{username} eq $Values->{test_user}; + return 1; + `] +[bounce href="[area special/user_violation username_no_match]&s=[data session username]&v=[value test_user]"] +[/if] + + +

 

+ + +
+ Order Detail: [scratch arg] +
+ +[loop list="[scratch arg]"] + +[html-table fr='__TABLEFG__'] +ORDER NUMBER [loop-data transactions mv_order_number] +Name [loop-data transactions fname] [loop-data transactions lname] +[if-loop-data transactions company]Company [loop-data transactions company] +[/if-loop-data]Address [loop-data transactions address1][if-loop-data transactions address2] + [loop-data transactions address2][/if-loop-data] +City, State, Zip [loop-data transactions city], [loop-data transactions state] [loop-data transactions zip] +Country [loop-data transactions country] +Payment Method [loop-data transactions payment_method] +Shipping Method [loop-data transactions shipmode] +Daytime Phone [loop-data transactions phone_day] +Evening Phone [loop-data transactions phone_night] +[if-loop-data transactions b_fname]Billing Name [loop-data transactions b_fname] [loop-data transactions b_lname] +[/if-loop-data][if-loop-data transactions b_address1]Billing Address [loop-data transactions b_address1] + [loop-data transactions b_address2] +City, State, Zip [loop-data transactions b_city], [loop-data transactions b_state] [loop-data transactions b_zip] +[/if-loop-data][if-loop-data transactions b_country]Shipping Country [loop-data transactions b_country][/if-loop-data] +[/html-table] +
+ + +[perl products userdb] + sub get_download { + my $sku = shift; + return '' unless tag_data('products', 'download', $sku); + my $loc = tag_data('products', 'dl_location', $sku); + my $save = delete $Scratch->{mv_add_dot_html}; + my $url = $Tag->area( { href => "deliver/$loc", arg => $sku } ); + $Scratch->{mv_add_dot_html} = $save if $save; + return qq{
}; + } + return; +[/perl] +[html-table interpolate=1 td="VALIGN=TOP"] +Quan Item No. Description
Price
Extension +[query + list=1 + st=db + sql=| + SELECT * FROM orderline + WHERE order_number = '[scratch arg]' + ORDER BY code + | +][sql-param quantity] [sql-param sku] [description [sql-param sku]]
[if-sql-data orderline size]SIZE-->[sql-param size][/if-sql-data][if-sql-data orderline color] COLOR-->[sql-param color][/if-sql-data][calc] +return unless + q{[userdb function=check_file_acl mode=expire location="[sql-param sku]"]}; + return get_download(q{[sql-param sku]}); +[/calc]
[currency][sql-param price][/currency]
[currency][sql-param subtotal][/currency] +[/query] + SUBTOTAL
[currency][loop-data transactions subtotal][/currency] + SALES TAX
[currency][loop-data transactions salestax][/currency] + SHIPPING
[currency][loop-data transactions shipping][/currency][if-loop-data transactions handling] + HANDLING
[currency][loop-data transactions handling][/currency][/if-loop-data] + ORDER TOTAL
[currency][loop-data transactions total_cost][/currency] +[/html-table] +
+[/loop] + +
+ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/results.html b/art/pages/results.html new file mode 100644 index 0000000..ad699b2 --- /dev/null +++ b/art/pages/results.html @@ -0,0 +1,122 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set name=page_title int]Search results -- [value-extended name=mv_searchspec joiner=" | "][/set] +[flag type=build] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[comment] + This is the default search results page. You can have + as many as you like as long as you set the mv_search_page + variable to match the page you wish to use to build + search results. +[/comment] + +[search-region] + + +[search-list] + + +[item-change 1][condition][item-field category][/condition] + + + +[/item-change 1] + + + + + + + + + + +[/search-list] +
[if value link_banner][value link_banner][value name=link_banner set=""][else][item-data products category][/else][/if]
+ + + + + + + + + + + + + + + + + + + + + + + +
[if-item-field image][item-field title][/if-item-field][item-field title]
+by + [filter namecase][item-field artist][/filter]

+Price: [item-price]   buy now

+[item-field comments]

+ +[loop prefix=cat list="[item-field category]"] +More [filter lc][cat-code][/filter]...
[/loop]
+
+ +[no-match] +

+Sorry, no matches for [value-extended name=mv_searchspec joiner=" | "]. +[if value mv_search_error] +

Errors: +
[value-extended name=mv_search_error joiner="
"] +
+[/if] +

+[/no-match] +
+[more-list] +
+Matches [matches] of +[if value mv_search_match_count > 1] + [value mv_search_match_count] found. +[/if] +
[more]
+
+[/more-list] + +[/search-region] +

+ + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/pages/special/feedback.html b/art/pages/special/feedback.html new file mode 100644 index 0000000..eeed98e --- /dev/null +++ b/art/pages/special/feedback.html @@ -0,0 +1,88 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title]Thanks for the feedback![/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + +[if !scratch feedback_active] +Hey! This needs to come from a feedback form. +[else] +[set feedback_active][/set] +[set name=feedback_sent interpolate=1] +[perl arg=sub interpolate=1] + form_mail + ( + q{__ORDERS_TO__}, + q{[value feedback_subject]}, + q{[value feedback_email]}, + <<'EOMail' ) +Subject: [value feedback_subject] + From: [value feedback_name] + Email: [value feedback_email] +Message +-------- +[value feedback_message] +EOMail +[/perl] +[/set] + +[if scratch feedback_sent] +

Thank you for your feedback!

+ + + + + + + + + + + + + + + + + + +
+ From + + [value feedback_name] +
+ Subject + + [value feedback_subject] +
+ Email + + [value feedback_email] +
+ Message + +
+		[value feedback_message]
+	
+
+[else] Error sending feedback.[/else] +[/if] + +[/else] +[/if] + + +__RIGHTSIDE__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/special/needfield.html b/art/pages/special/needfield.html new file mode 100644 index 0000000..c2ea605 --- /dev/null +++ b/art/pages/special/needfield.html @@ -0,0 +1,59 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top logo bar. menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set members_only][/set] +[set page_title]We need some more information![/set] +__LOGOBAR__ +__MENUBAR__ + + +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +We need to have some fields entered to be able +to process your order. Please [page __ORDER_STYLE__/checkout]go back and fill out +the information. +

+Problem: +

+[perl] + my $msg = q{[subject]}; + sub redo_message { + my($param,$word) = @_; + if($param =~ /mv_credit/) { + "

  • You need to validate your credit card information.\n"; + } + elsif ($word =~ /not_a_state/i) { + return "
  • We need a valid two-letter state code like CA.\n"; + } + elsif ($word =~ /phone_day=/i) { + return "
  • Is that really a phone number?\n"; + } + elsif ($word =~ /not_a_zip_code/i) { + return "
  • We need a zip code for UPS lookup.\n"; + } + elsif ($word =~ /mv_contingent/) { + return "
  • You need to select your method of payment.\n"; + } + else { return "
  • $param: $word\n" } + } + @msg = split /\n/, $msg; + $msg = '
      '; + for(@msg) { + ($var, $val) = split /:\s*/, $_; + $msg .= redo_message($var, $val); + } + $msg .= '
    '; + $msg; +[/perl] +

    + +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pages/splash.html b/art/pages/splash.html new file mode 100644 index 0000000..84afc78 --- /dev/null +++ b/art/pages/splash.html @@ -0,0 +1,34 @@ +[set mv_add_dot_html]1[/set] +[set mv_no_session_id]1[/set] +[set mv_no_count]1[/set] +__LOGOBAR__ +

    +

    Welcome to the Art Store!

    +

    +Enter +

    +This version of Interchange introduces a new user interface: +

    +Admin +

    +
    +This is the "simple" demonstration of the Interchange 4.5.x electronic +catalog system. Links that will help you to use this software: +

    +

    + +__MENUBOTTOM__ + + diff --git a/art/pages/srchform.html b/art/pages/srchform.html new file mode 100644 index 0000000..8a730c1 --- /dev/null +++ b/art/pages/srchform.html @@ -0,0 +1,273 @@ +[comment] +ui_template: Yes +ui_template_name: templates/standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title: Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title][L]Search[/L] __COMPANY__[/set] +__LOGOBAR__ +__MENUBAR__ +__LEFTSIDE__ + + + + +[seti option_list] +[table-font face="arial,helvetica" size=-2] + + + + + + + + + + + + + + +
    CompareNumericCaseNegation
    + + + + + +
    +[/table-font] +[/seti] + +[table-font face="arial,helvetica"] +

    + + + + + + + + + + + +
    + Full-text Search +
    + Keywords: + + +
    + + Match All
    + Match Any +

    + Match whole words only
    + Match partial words +

    + Ignore Case
    + Do not ignore case +

    +
    + + Match specific fields:

    + + + + + + + + + +
    Artist Title
    Museum Description
    +
    Matches per page:
    + + + + +
    + + +
    +
    +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Specialized Search + Page size + + +
    + Field + + Search for:
    +
    + [scratch option_list] +
     
    + Field + + Search for:
    +
    + [scratch option_list] +
     
    + Field + + Search for:
    +
    + [scratch option_list] +
     
    + Field + + Search for:
    +
    + [scratch option_list] +
     
    + Category + + +
    +[/table-font] +
    + + + +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/pgsql/area.pgsql b/art/pgsql/area.pgsql new file mode 100644 index 0000000..0ad5b63 --- /dev/null +++ b/art/pgsql/area.pgsql @@ -0,0 +1,14 @@ +Database area area.txt __SQLDSN__ +#ifdef SQLUSER +Database area USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database area PASS __SQLPASS__ +#endif +Database area DEFAULT_TYPE text +Database area COLUMN_DEF "code=VARCHAR(12) NOT NULL PRIMARY KEY" +Database area COLUMN_DEF "name=VARCHAR(128) DEFAULT '' NOT NULL" +Database area COLUMN_DEF "sort=VARCHAR(3) DEFAULT '00' NOT NULL" +Database area POSTCREATE "create index area_sort on area (sort)" +Database area POSTCREATE "create index area_name on area (name)" +Database area ChopBlanks 1 diff --git a/art/pgsql/cat.pgsql b/art/pgsql/cat.pgsql new file mode 100644 index 0000000..f70af07 --- /dev/null +++ b/art/pgsql/cat.pgsql @@ -0,0 +1,13 @@ +Database cat cat.txt __SQLDSN__ +#ifdef SQLUSER +Database cat USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database cat PASS __SQLPASS__ +#endif +Database cat DEFAULT_TYPE text +Database cat COLUMN_DEF "code=char(20) NOT NULL PRIMARY KEY" +Database cat COLUMN_DEF "sel=char(64) DEFAULT '' NOT NULL" +Database cat COLUMN_DEF "name=char(64) DEFAULT '' NOT NULL" +Database cat COLUMN_DEF "sort=char(4) DEFAULT 'ZZ' NOT NULL" +Database cat ChopBlanks 1 diff --git a/art/pgsql/country.pgsql b/art/pgsql/country.pgsql new file mode 100644 index 0000000..736bc99 --- /dev/null +++ b/art/pgsql/country.pgsql @@ -0,0 +1,12 @@ +Database country country.txt __SQLDSN__ +#ifdef SQLUSER +Database country USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database country PASS __SQLPASS__ +#endif +Database country COLUMN_DEF "code=CHAR(3) NOT NULL PRIMARY KEY" +Database country COLUMN_DEF "selector=CHAR(3) NOT NULL" +Database country COLUMN_DEF "shipmodes=CHAR(64)" +Database country COLUMN_DEF "name=CHAR(32) NOT NULL" +Database country ChopBlanks 1 diff --git a/art/pgsql/inventory.pgsql b/art/pgsql/inventory.pgsql new file mode 100644 index 0000000..1d32b05 --- /dev/null +++ b/art/pgsql/inventory.pgsql @@ -0,0 +1,12 @@ +Database inventory inventory.txt __SQLDSN__ +#ifdef SQLUSER +Database inventory USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database inventory PASS __SQLPASS__ +#endif +Database inventory KEY sku +Database inventory COLUMN_DEF "sku=VARCHAR(14) NOT NULL PRIMARY KEY" +Database inventory COLUMN_DEF "quantity=VARCHAR(12) NOT NULL" +Database inventory COLUMN_DEF "account=char(128)" +Database inventory COLUMN_DEF "cogs_account=char(128)" diff --git a/art/pgsql/merchandising.pgsql b/art/pgsql/merchandising.pgsql new file mode 100644 index 0000000..41a9196 --- /dev/null +++ b/art/pgsql/merchandising.pgsql @@ -0,0 +1,12 @@ +Database merchandising merchandising.txt __SQLDSN__ +#ifdef SQLUSER +Database merchandising USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database merchandising PASS __SQLPASS__ +#endif +Database merchandising DEFAULT_TYPE text +Database merchandising COLUMN_DEF "sku=char(20) NOT NULL PRIMARY KEY" +Database merchandising COLUMN_DEF "featured=CHAR(32) NOT NULL" +Database merchandising COLUMN_DEF "start=CHAR(24) NOT NULL" +Database merchandising COLUMN_DEF "finish=CHAR(24) NOT NULL" diff --git a/art/pgsql/orderline.pgsql b/art/pgsql/orderline.pgsql new file mode 100644 index 0000000..67cc07e --- /dev/null +++ b/art/pgsql/orderline.pgsql @@ -0,0 +1,28 @@ + +Database orderline orderline.txt __SQLDSN__ +#ifdef SQLUSER +Database orderline USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database orderline PASS __SQLPASS__ +#endif +Database orderline COLUMN_DEF "code=VARCHAR(14) NOT NULL PRIMARY KEY" +Database orderline COLUMN_DEF "store_id=VARCHAR(9) DEFAULT '' NOT NULL" +Database orderline COLUMN_DEF "order_number=VARCHAR(14) NOT NULL" +Database orderline COLUMN_DEF "session=VARCHAR(32) NOT NULL" +Database orderline COLUMN_DEF "username=VARCHAR(20) default '' NOT NULL" +Database orderline COLUMN_DEF "shipmode=VARCHAR(32) default '' NOT NULL" +Database orderline COLUMN_DEF "sku=VARCHAR(14) NOT NULL" +Database orderline COLUMN_DEF "quantity=VARCHAR(9) NOT NULL" +Database orderline COLUMN_DEF "price=VARCHAR(12) NOT NULL" +Database orderline COLUMN_DEF "subtotal=VARCHAR(12) NOT NULL" +Database orderline COLUMN_DEF "shipping=VARCHAR(12)" +Database orderline COLUMN_DEF "taxable=VARCHAR(3)" +Database orderline COLUMN_DEF "size=VARCHAR(30)" +Database orderline COLUMN_DEF "color=VARCHAR(30)" +Database orderline COLUMN_DEF "options=VARCHAR(255)" +Database orderline COLUMN_DEF "order_date=varchar(32) NOT NULL" +Database orderline COLUMN_DEF "update_date=timestamp" +Database orderline COLUMN_DEF "status=VARCHAR(32)" +Database orderline COLUMN_DEF "parent=VARCHAR(9)" +Database orderline ChopBlanks 1 diff --git a/art/pgsql/pricing.pgsql b/art/pgsql/pricing.pgsql new file mode 100644 index 0000000..20c97ab --- /dev/null +++ b/art/pgsql/pricing.pgsql @@ -0,0 +1,20 @@ +# Interchange database definition +Database pricing pricing.txt __SQLDSN__ +#ifdef SQLUSER +Database pricing USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database pricing PASS __SQLPASS__ +#endif +Database pricing KEY sku +Database pricing COLUMN_DEF "q2=VARCHAR(12)" +Database pricing COLUMN_DEF "price_group=VARCHAR(2) DEFAULT '' NOT NULL" +Database pricing COLUMN_DEF "sku=VARCHAR(9) NOT NULL PRIMARY KEY" +Database pricing COLUMN_DEF "q5=VARCHAR(12)" +Database pricing COLUMN_DEF "q10=VARCHAR(12)" +Database pricing COLUMN_DEF "q25=VARCHAR(12)" +Database pricing COLUMN_DEF "q100=VARCHAR(12)" +Database pricing COLUMN_DEF "XL=VARCHAR(12)" +Database pricing COLUMN_DEF "S=VARCHAR(12)" +Database pricing COLUMN_DEF "red=VARCHAR(12)" +Database pricing ChopBlanks 1 diff --git a/art/pgsql/products.pgsql b/art/pgsql/products.pgsql new file mode 100644 index 0000000..5f861c1 --- /dev/null +++ b/art/pgsql/products.pgsql @@ -0,0 +1,25 @@ +# Interchange database definition +Database products products.txt __SQLDSN__ +#ifdef SQLUSER +Database products USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database products PASS __SQLPASS__ +#endif +Database products KEY sku +Database products COLUMN_DEF "sku=VARCHAR(14) NOT NULL PRIMARY KEY" +Database products COLUMN_DEF "description=VARCHAR(128) NOT NULL" +Database products COLUMN_DEF "title=VARCHAR(128) DEFAULT '' NOT NULL" +Database products COLUMN_DEF "artist=VARCHAR(128) DEFAULT '' NOT NULL" +Database products COLUMN_DEF "comment=TEXT" +Database products COLUMN_DEF "display=VARCHAR(128)" +Database products COLUMN_DEF "image=VARCHAR(64)" +Database products COLUMN_DEF "price=VARCHAR(12) NOT NULL" +Database products COLUMN_DEF "category=VARCHAR(64) NOT NULL" +Database products COLUMN_DEF "nontaxable=VARCHAR(3)" +Database products COLUMN_DEF "weight=VARCHAR(12)" +Database products COLUMN_DEF "size=VARCHAR(96)" +Database products COLUMN_DEF "color=VARCHAR(96)" +Database products COLUMN_DEF "related=text" +Database products COLUMN_DEF "featured=VARCHAR(32)" +Database products ChopBlanks 1 diff --git a/art/pgsql/transactions.pgsql b/art/pgsql/transactions.pgsql new file mode 100644 index 0000000..54f1a31 --- /dev/null +++ b/art/pgsql/transactions.pgsql @@ -0,0 +1,52 @@ +Database transactions transactions.txt __SQLDSN__ +#ifdef SQLUSER +Database transactions USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database transactions PASS __SQLPASS__ +#endif +Database transactions transactions.raw SQL +Database transactions COLUMN_DEF "code=VARCHAR(14) NOT NULL PRIMARY KEY" +Database transactions COLUMN_DEF "store_id=VARCHAR(9)" +Database transactions COLUMN_DEF "order_number=VARCHAR(14) NOT NULL" +Database transactions COLUMN_DEF "session=VARCHAR(32) NOT NULL" +Database transactions COLUMN_DEF "username=VARCHAR(20) DEFAULT '' NOT NULL" +Database transactions COLUMN_DEF "shipmode=VARCHAR(32)" +Database transactions COLUMN_DEF "nitems=VARCHAR(9) NOT NULL" +Database transactions COLUMN_DEF "subtotal=VARCHAR(12) NOT NULL" +Database transactions COLUMN_DEF "shipping=VARCHAR(12) NOT NULL" +Database transactions COLUMN_DEF "handling=VARCHAR(12)" +Database transactions COLUMN_DEF "salestax=VARCHAR(12)" +Database transactions COLUMN_DEF "total_cost=VARCHAR(16) NOT NULL" +Database transactions COLUMN_DEF "fname=VARCHAR(30)" +Database transactions COLUMN_DEF "lname=VARCHAR(30)" +Database transactions COLUMN_DEF "company=VARCHAR(30)" +Database transactions COLUMN_DEF "address1=VARCHAR(30)" +Database transactions COLUMN_DEF "address2=VARCHAR(30)" +Database transactions COLUMN_DEF "city=VARCHAR(30) NOT NULL" +Database transactions COLUMN_DEF "state=VARCHAR(10)" +Database transactions COLUMN_DEF "zip=VARCHAR(10) DEFAULT '00000' NOT NULL" +Database transactions COLUMN_DEF "country=VARCHAR(10) DEFAULT '' NOT NULL" +Database transactions COLUMN_DEF "phone_day=VARCHAR(20)" +Database transactions COLUMN_DEF "phone_night=VARCHAR(20)" +Database transactions COLUMN_DEF "fax=VARCHAR(20)" +Database transactions COLUMN_DEF "email=VARCHAR(42)" +Database transactions COLUMN_DEF "b_fname=VARCHAR(30)" +Database transactions COLUMN_DEF "b_lname=VARCHAR(30)" +Database transactions COLUMN_DEF "b_company=VARCHAR(30)" +Database transactions COLUMN_DEF "b_address1=VARCHAR(30)" +Database transactions COLUMN_DEF "b_address2=VARCHAR(30)" +Database transactions COLUMN_DEF "b_city=VARCHAR(30)" +Database transactions COLUMN_DEF "b_state=VARCHAR(10)" +Database transactions COLUMN_DEF "b_zip=VARCHAR(10)" +Database transactions COLUMN_DEF "b_country=VARCHAR(10)" +Database transactions COLUMN_DEF "b_phone=VARCHAR(20)" +Database transactions COLUMN_DEF "payment_method=varchar(32)" +Database transactions COLUMN_DEF "avs=varchar(32)" +Database transactions COLUMN_DEF "order_id=varchar(32)" +Database transactions COLUMN_DEF "order_date=varchar(32) NOT NULL" +Database transactions COLUMN_DEF "update_date=timestamp" +Database transactions COLUMN_DEF "status=VARCHAR(32)" +Database transactions COLUMN_DEF "parent=VARCHAR(9)" +Database transactions COLUMN_DEF "comments=text" +Database transactions ChopBlanks 1 diff --git a/art/pgsql/userdb.pgsql b/art/pgsql/userdb.pgsql new file mode 100644 index 0000000..6e87032 --- /dev/null +++ b/art/pgsql/userdb.pgsql @@ -0,0 +1,60 @@ +Database userdb userdb.txt __SQLDSN__ +#ifdef SQLUSER +Database userdb USER __SQLUSER__ +#endif +#ifdef SQLPASS +Database userdb PASS __SQLPASS__ +#endif +Database userdb COLUMN_DEF "code=VARCHAR(20) NOT NULL PRIMARY KEY" +Database userdb COLUMN_DEF "password=VARCHAR(20)" +Database userdb COLUMN_DEF "acl=text" +Database userdb COLUMN_DEF "mod_time=timestamp DEFAULT '2000-01-01'" +Database userdb COLUMN_DEF "s_nickname=text" +Database userdb COLUMN_DEF "company=VARCHAR(30)" +Database userdb COLUMN_DEF "fname=VARCHAR(20)" +Database userdb COLUMN_DEF "lname=VARCHAR(30)" +Database userdb COLUMN_DEF "address1=VARCHAR(64)" +Database userdb COLUMN_DEF "address2=VARCHAR(64)" +Database userdb COLUMN_DEF "address3=VARCHAR(64)" +Database userdb COLUMN_DEF "city=VARCHAR(30)" +Database userdb COLUMN_DEF "state=VARCHAR(10)" +Database userdb COLUMN_DEF "zip=VARCHAR(10)" +Database userdb COLUMN_DEF "country=VARCHAR(10)" +Database userdb COLUMN_DEF "phone_day=VARCHAR(20)" +Database userdb COLUMN_DEF "mv_shipmode=VARCHAR(64)" +Database userdb COLUMN_DEF "b_nickname=text" +Database userdb COLUMN_DEF "b_fname=VARCHAR(20)" +Database userdb COLUMN_DEF "b_lname=VARCHAR(30)" +Database userdb COLUMN_DEF "b_address1=VARCHAR(64)" +Database userdb COLUMN_DEF "b_address2=VARCHAR(64)" +Database userdb COLUMN_DEF "b_address3=VARCHAR(64)" +Database userdb COLUMN_DEF "b_city=VARCHAR(30)" +Database userdb COLUMN_DEF "b_state=VARCHAR(10)" +Database userdb COLUMN_DEF "b_zip=VARCHAR(10)" +Database userdb COLUMN_DEF "b_country=VARCHAR(10)" +Database userdb COLUMN_DEF "b_phone=VARCHAR(20)" +Database userdb COLUMN_DEF "mv_credit_card_type=VARCHAR(16)" +Database userdb COLUMN_DEF "mv_credit_card_exp_month=VARCHAR(2)" +Database userdb COLUMN_DEF "mv_credit_card_exp_year=VARCHAR(4)" +Database userdb COLUMN_DEF "p_nickname=text" +Database userdb COLUMN_DEF "email=VARCHAR(42)" +Database userdb COLUMN_DEF "fax=VARCHAR(20)" +Database userdb COLUMN_DEF "phone_night=VARCHAR(20)" +Database userdb COLUMN_DEF "fax_order=VARCHAR(2)" +Database userdb COLUMN_DEF "address_book=TEXT" +Database userdb COLUMN_DEF "accounts=TEXT" +Database userdb COLUMN_DEF "preferences=TEXT" +Database userdb COLUMN_DEF "carts=TEXT" +Database userdb COLUMN_DEF "owner=VARCHAR(20)" +Database userdb COLUMN_DEF "file_acl=TEXT" +Database userdb COLUMN_DEF "db_acl=TEXT" +Database userdb COLUMN_DEF "order_numbers=TEXT" +Database userdb COLUMN_DEF "email_copy=VARCHAR(1)" +Database userdb COLUMN_DEF "mail_list=varchar(64)" +Database userdb COLUMN_DEF "project_id=VARCHAR(20)" +Database userdb COLUMN_DEF "account_id=VARCHAR(20)" +Database userdb COLUMN_DEF "order_dest=VARCHAR(32)" +Database userdb ChopBlanks 1 + +# Prevent problems with abstime representation +UserDB default time_field none diff --git a/art/products/2ndDayAir.csv b/art/products/2ndDayAir.csv new file mode 100644 index 0000000..e70ceeb --- /dev/null +++ b/art/products/2ndDayAir.csv @@ -0,0 +1,152 @@ +Exceed,202,203,204,205,206,207,208,224,225,226 +Letter,6.20,6.50,6.70,7.00,7.30,7.60,7.80,11.10,11.10,15.50 +1,6.40,6.70,7.20,7.80,8.30,8.80,9.10,13.20,13.20,24.20 +2,6.60,7.20,8.00,8.80,9.60,10.20,10.50,14.60,14.60,25.60 +3,7.10,7.70,8.90,10.00,11.00,11.60,12.00,16.10,16.10,27.10 +4,7.60,8.20,9.90,11.20,12.30,13.10,13.60,17.60,17.60,28.60 +5,8.20,8.90,10.80,12.50,13.80,14.60,15.30,19.30,19.30,30.30 +6,8.90,9.70,11.60,13.60,15.30,16.20,17.10,20.90,20.90,31.90 +7,9.40,10.50,12.60,14.80,16.90,18.00,18.90,22.40,22.40,33.40 +8,9.90,11.30,13.60,16.10,18.60,19.80,20.70,24.00,24.00,35.00 +9,10.40,12.00,14.60,17.30,20.40,21.60,22.50,25.80,25.80,36.80 +10,10.90,12.70,15.60,18.50,22.10,23.40,24.30,27.60,27.60,38.60 +11,11.40,13.40,16.50,19.50,23.80,25.10,26.00,29.20,29.20,40.20 +12,12.10,14.10,17.30,20.70,25.30,26.60,27.50,30.50,30.50,41.50 +13,12.90,14.90,18.10,22.00,26.60,27.90,29.00,32.00,32.00,43.00 +14,13.50,15.50,19.10,23.20,27.90,29.20,30.30,33.30,33.30,44.30 +15,14.00,16.00,20.00,24.30,29.40,30.70,31.80,34.80,34.80,45.80 +16,14.40,16.70,21.00,25.30,30.90,32.30,33.40,36.40,36.40,47.40 +17,14.90,17.40,22.00,26.30,32.40,34.10,35.20,38.20,38.20,49.20 +18,15.40,17.90,22.80,27.30,34.00,35.90,37.00,40.00,40.00,51.00 +19,15.90,18.40,23.50,28.40,35.40,37.50,38.60,41.60,41.60,52.60 +20,16.50,19.10,24.30,29.40,36.90,39.00,40.10,42.90,42.90,53.90 +21,17.00,19.90,25.20,30.40,38.40,40.60,41.70,44.20,44.20,55.20 +22,17.50,20.60,26.00,31.40,40.00,42.20,43.40,45.70,45.70,56.70 +23,18.00,21.20,26.80,32.40,41.40,43.70,45.00,47.30,47.30,58.30 +24,18.50,21.90,27.60,33.40,42.70,45.30,46.60,48.90,48.90,59.90 +25,19.00,22.50,28.30,34.60,44.00,46.80,48.20,50.50,50.50,61.50 +26,19.60,23.10,29.20,35.80,45.30,48.30,49.70,52.00,52.00,63.00 +27,20.30,23.80,30.00,36.90,46.60,49.70,51.20,53.50,53.50,64.50 +28,21.00,24.50,30.90,37.90,47.90,51.00,52.80,55.10,55.10,66.10 +29,21.50,25.10,31.70,38.90,49.20,52.30,54.30,56.60,56.60,67.60 +30,22.00,25.80,32.70,40.00,50.70,53.80,55.80,57.80,57.80,68.80 +31,22.50,26.50,33.70,41.00,52.10,55.30,57.30,59.10,59.10,70.10 +32,23.00,27.10,34.70,42.00,53.40,56.90,58.90,60.40,60.40,71.40 +33,23.50,27.60,35.50,43.00,54.90,58.50,60.50,62.00,62.00,73.00 +34,24.00,28.30,36.20,44.10,56.20,60.10,62.10,63.40,63.40,74.40 +35,24.50,29.10,37.00,45.10,57.70,61.70,63.70,64.70,64.70,75.70 +36,25.00,29.80,37.80,46.10,59.10,63.20,65.30,66.10,66.10,77.10 +37,25.50,30.40,38.60,47.20,60.40,64.80,66.90,67.40,67.40,78.40 +38,26.00,30.90,39.60,48.20,61.70,66.40,68.50,68.80,68.80,79.80 +39,26.70,31.60,40.40,49.20,63.20,67.90,70.00,70.30,70.30,81.30 +40,27.50,32.40,41.20,50.30,64.70,69.50,71.60,71.90,71.90,82.90 +41,28.20,33.10,41.90,51.30,66.10,71.00,73.10,73.40,73.40,84.40 +42,28.80,33.80,42.60,52.30,67.40,72.50,74.60,74.90,74.90,85.90 +43,29.30,34.50,43.40,53.30,68.70,73.90,76.00,76.30,76.30,87.30 +44,29.80,35.00,44.20,54.10,70.00,75.40,77.50,77.80,77.80,88.80 +45,30.30,35.70,44.90,54.80,71.30,76.80,78.90,79.20,79.20,90.20 +46,30.80,36.30,45.80,55.70,72.80,78.30,80.40,80.70,80.70,91.70 +47,31.30,37.00,46.60,56.50,74.20,79.90,82.00,82.30,82.30,93.30 +48,32.00,37.80,47.40,57.30,75.50,81.50,83.60,83.90,83.90,94.90 +49,32.60,38.50,48.20,58.30,76.80,83.00,85.10,85.40,85.40,96.40 +50,33.10,39.10,49.00,59.30,78.10,84.30,86.40,86.70,86.70,97.70 +51,33.60,39.60,49.80,60.30,79.40,85.80,87.90,88.20,88.20,99.20 +52,34.10,40.30,50.50,61.30,80.70,87.20,89.30,89.60,89.60,100.60 +53,34.80,41.10,51.30,62.40,82.00,88.50,90.60,90.90,90.90,101.90 +54,35.30,41.90,52.10,63.40,83.30,89.80,91.90,92.20,92.20,103.20 +55,35.90,42.50,52.80,64.40,84.60,91.30,93.40,93.70,93.70,104.70 +56,36.40,43.00,53.60,65.50,85.90,92.90,95.00,95.30,95.30,106.30 +57,36.90,43.70,54.60,66.50,87.20,94.40,96.50,96.80,96.80,107.80 +58,37.40,44.20,55.40,67.50,88.50,95.70,98.00,98.30,98.30,109.30 +59,37.90,44.70,56.20,68.60,90.00,97.20,99.50,99.80,99.80,110.80 +60,38.40,45.30,57.20,69.60,91.30,98.80,101.10,101.40,101.40,112.40 +61,39.10,46.00,58.00,70.60,92.60,100.40,102.70,103.00,103.00,114.00 +62,39.90,46.80,58.80,71.70,94.00,102.00,104.40,104.70,104.70,115.70 +63,40.60,47.50,59.50,72.70,95.30,103.80,106.20,106.50,106.50,117.50 +64,41.20,48.20,60.20,73.70,96.60,105.40,108.00,108.30,108.30,119.30 +65,41.70,48.90,61.00,74.80,98.10,106.90,109.80,110.10,110.10,121.10 +66,42.20,49.50,62.00,76.00,99.70,108.50,111.60,111.90,111.90,122.90 +67,42.70,50.20,62.80,77.30,101.20,110.00,113.20,113.50,113.50,124.50 +68,43.20,50.90,63.80,78.60,102.50,111.50,114.80,115.10,115.10,126.10 +69,43.70,51.60,64.80,79.90,104.00,113.00,116.30,116.60,116.60,127.60 +70,44.20,52.30,65.60,81.20,105.70,114.70,118.00,118.30,118.30,129.30 +71,44.90,53.10,66.40,82.50,107.20,116.20,119.50,119.80,119.80,130.80 +72,45.50,53.90,67.40,83.80,108.80,117.80,121.10,121.40,121.40,132.40 +73,46.00,54.60,68.40,85.10,110.30,119.30,122.80,123.10,123.10,134.10 +74,46.50,55.20,69.20,86.30,111.60,120.80,124.40,124.70,124.70,135.70 +75,47.20,55.90,70.20,87.40,112.90,122.10,126.00,126.30,126.30,137.30 +76,47.80,56.50,71.00,88.40,114.20,123.60,127.50,127.80,127.80,138.80 +77,48.50,57.20,71.80,89.50,115.70,125.20,129.10,129.40,129.40,140.40 +78,49.00,57.90,72.80,90.70,117.10,126.70,130.60,130.90,130.90,141.90 +79,49.70,58.60,73.80,92.00,118.60,128.30,132.20,132.50,132.50,143.50 +80,50.30,59.30,74.80,93.30,120.00,129.90,133.80,134.10,134.10,145.10 +81,50.80,60.00,75.60,94.40,121.50,131.40,135.30,135.50,135.50,146.50 +82,51.30,60.70,76.40,95.40,122.80,133.00,136.90,137.10,137.10,148.10 +83,51.80,61.40,77.40,96.40,124.10,134.50,138.50,138.70,138.70,149.70 +84,52.50,62.10,78.20,97.50,125.40,136.00,140.00,140.20,140.20,151.20 +85,53.10,62.80,79.20,98.70,126.70,137.40,141.60,141.80,141.80,152.80 +86,53.60,63.40,80.20,100.00,128.00,138.70,143.10,143.30,143.30,154.30 +87,54.10,64.10,81.00,101.10,129.50,140.20,144.60,144.80,144.80,155.80 +88,54.80,64.80,81.70,102.10,130.90,141.70,146.20,146.40,146.40,157.40 +89,55.50,65.50,82.50,103.10,132.20,143.30,147.80,148.00,148.00,159.00 +90,56.10,66.10,83.40,104.10,133.70,144.90,149.50,149.70,149.70,160.70 +91,56.70,66.90,84.20,105.30,135.20,146.50,151.10,151.30,151.30,162.30 +92,57.40,67.60,85.00,106.40,136.60,148.00,152.70,152.90,152.90,163.90 +93,57.90,68.30,85.80,107.50,138.10,149.50,154.20,154.40,154.40,165.40 +94,58.40,68.90,86.80,108.50,139.50,151.00,155.80,156.00,156.00,167.00 +95,58.90,69.60,87.80,109.50,140.80,152.50,157.30,157.50,157.50,168.50 +96,59.40,70.20,88.80,110.60,142.10,154.10,158.90,159.10,159.10,170.10 +97,60.10,70.90,89.60,111.60,143.40,155.60,160.40,160.60,160.60,171.60 +98,60.70,71.50,90.40,112.60,144.70,156.90,161.70,161.90,161.90,172.90 +99,61.20,72.00,91.10,113.70,146.00,158.30,163.20,163.40,163.40,174.40 +100,61.70,72.70,91.90,114.70,147.30,159.60,164.50,164.70,164.70,175.70 +101,62.40,73.50,92.90,115.70,148.60,161.10,166.00,166.20,166.20,177.20 +102,62.90,74.30,93.70,116.80,150.10,162.60,167.60,167.80,167.80,178.80 +103,63.40,74.90,94.40,117.80,151.60,164.10,169.10,169.30,169.30,180.30 +104,63.90,75.60,95.20,118.80,153.10,165.60,170.60,170.80,170.80,181.80 +105,64.40,76.10,96.00,119.90,154.70,167.20,172.20,172.40,172.40,183.40 +106,64.90,76.80,96.80,121.10,156.30,168.90,173.90,174.10,174.10,185.10 +107,65.60,77.60,97.80,122.20,157.70,170.60,175.60,175.80,175.80,186.80 +108,66.20,78.30,98.70,123.40,159.20,172.10,177.20,177.40,177.40,188.40 +109,66.70,78.90,99.50,124.50,160.70,173.60,178.70,178.90,178.90,189.90 +110,67.40,79.60,100.30,125.50,162.10,175.10,180.20,180.40,180.40,191.40 +111,67.90,80.40,101.30,126.60,163.60,176.70,181.80,182.00,182.00,193.00 +112,68.40,81.20,102.10,127.80,165.20,178.30,183.40,183.60,183.60,194.60 +113,69.10,81.90,103.10,128.90,166.60,179.80,185.10,185.30,185.30,196.30 +114,69.90,82.70,103.90,130.10,167.90,181.50,186.80,187.00,187.00,198.00 +115,70.50,83.50,104.90,131.20,169.20,183.20,188.50,188.70,188.70,199.70 +116,71.20,84.20,105.90,132.20,170.70,184.70,190.00,190.20,190.20,201.20 +117,71.70,84.90,106.70,133.30,172.20,186.20,191.70,191.90,191.90,202.90 +118,72.30,85.60,107.70,134.50,173.60,187.60,193.20,193.40,193.40,204.40 +119,73.00,86.30,108.50,135.80,174.90,189.20,194.80,195.00,195.00,206.00 +120,73.50,87.00,109.30,136.90,176.40,190.80,196.40,196.60,196.60,207.60 +121,74.00,87.80,110.30,137.90,177.90,192.30,198.10,198.30,198.30,209.30 +122,74.70,88.50,111.30,138.90,179.50,193.90,199.70,199.90,199.90,210.90 +123,75.30,89.10,112.10,140.00,180.90,195.70,201.50,201.70,201.70,212.70 +124,76.00,89.80,113.10,141.20,182.20,197.30,203.30,203.50,203.50,214.50 +125,76.70,90.60,114.00,142.50,183.70,199.10,205.10,205.30,205.30,216.30 +126,77.30,91.40,115.00,143.60,185.20,200.70,206.70,206.90,206.90,217.90 +127,77.80,92.00,116.00,144.60,186.60,202.20,208.20,208.40,208.40,219.40 +128,78.50,92.70,117.00,145.60,187.90,203.80,209.80,210.00,210.00,221.00 +129,79.00,93.40,117.80,146.70,189.20,205.30,211.30,211.50,211.50,222.50 +130,79.60,94.20,118.60,147.90,190.70,206.90,213.10,213.30,213.30,224.30 +131,80.30,95.00,119.60,149.20,192.20,208.50,214.70,214.90,214.90,225.90 +132,80.80,95.70,120.40,150.30,193.60,210.00,216.50,216.70,216.70,227.70 +133,81.40,96.50,121.20,151.30,195.10,211.60,218.10,218.30,218.30,229.30 +134,82.10,97.30,122.20,152.50,196.60,213.30,219.80,220.00,220.00,231.00 +135,82.60,97.90,123.20,153.60,198.20,215.00,221.50,221.70,221.70,232.70 +136,83.10,98.60,124.20,154.80,199.60,216.50,223.00,223.20,223.20,234.20 +137,83.80,99.30,125.00,155.90,200.90,218.10,224.60,224.80,224.80,235.80 +138,84.30,100.10,125.80,157.00,202.20,219.70,226.30,226.50,226.50,237.50 +139,84.90,100.80,126.80,158.20,203.70,221.20,227.80,228.00,228.00,239.00 +140,85.60,101.60,127.60,159.30,205.20,223.00,229.60,229.80,229.80,240.80 +141,86.30,102.30,128.60,160.50,206.80,224.60,231.20,231.40,231.40,242.40 +142,86.90,102.90,129.60,161.80,208.20,226.20,232.90,233.10,233.10,244.10 +143,87.60,103.60,130.40,163.00,209.50,227.70,234.40,234.60,234.60,245.60 +144,88.10,104.40,131.40,164.00,211.00,229.30,236.00,236.20,236.20,247.20 +145,88.70,105.10,132.40,165.00,212.50,230.80,237.60,237.80,237.80,248.80 +146,89.40,105.80,133.20,166.00,213.90,232.40,239.40,239.60,239.60,250.60 +147,90.10,106.50,134.00,167.00,215.40,234.00,241.00,241.20,241.20,252.20 +148,90.90,107.30,135.00,168.10,216.90,235.50,242.80,243.00,243.00,254.00 +149,91.50,108.00,136.00,169.30,218.50,237.30,244.60,244.80,244.80,255.80 +150,92.00,108.70,136.80,170.60,220.00,238.90,246.50,246.70,246.70,257.70 diff --git a/art/products/2ndDayAirAM.csv b/art/products/2ndDayAirAM.csv new file mode 100644 index 0000000..ab0274a --- /dev/null +++ b/art/products/2ndDayAirAM.csv @@ -0,0 +1,152 @@ +Exceed,242,243,244,245,246,247,248 +Letter,6.90,7.20,7.50,7.80,8.00,8.40,8.90 +1,7.10,7.50,7.90,8.80,9.30,9.90,10.20 +2,7.40,8.00,9.00,9.90,10.80,11.50,11.80 +3,7.90,8.50,10.00,11.00,12.30,13.10,13.60 +4,8.40,9.20,11.00,12.40,13.90,14.80,15.30 +5,9.10,10.00,12.00,13.90,15.40,16.50,17.10 +6,9.80,11.00,13.10,15.20,17.10,18.30,19.10 +7,10.50,11.80,14.10,16.60,18.90,20.10,21.20 +8,11.20,12.60,15.10,17.90,20.90,22.10,23.20 +9,11.70,13.60,16.30,19.40,22.70,24.20,25.30 +10,12.20,14.50,17.40,20.90,24.70,26.20,27.30 +11,12.90,15.20,18.40,22.20,26.50,28.00,29.10 +12,13.60,15.90,19.40,23.40,28.20,29.70,30.80 +13,14.40,16.70,20.50,24.70,29.70,31.20,32.40 +14,15.10,17.40,21.50,26.00,31.30,32.80,34.00 +15,15.80,18.10,22.50,27.20,33.00,34.50,35.70 +16,16.30,18.80,23.50,28.40,34.60,36.20,37.40 +17,16.80,19.40,24.50,29.50,36.30,38.10,39.30 +18,17.40,20.00,25.50,30.70,38.20,40.10,41.30 +19,18.10,20.70,26.30,31.90,40.00,41.90,43.10 +20,18.60,21.50,27.30,33.10,41.60,43.70,44.90 +21,19.10,22.30,28.30,34.20,43.30,45.50,46.90 +22,19.60,23.00,29.20,35.40,44.90,47.10,48.80 +23,20.30,23.70,30.20,36.40,46.40,48.90,50.60 +24,20.80,24.40,31.00,37.60,47.90,50.80,52.50 +25,21.30,25.20,32.00,38.90,49.30,52.50,54.20 +26,21.90,25.90,33.00,40.30,50.80,54.00,55.80 +27,22.60,26.60,33.80,41.50,52.10,55.70,57.50 +28,23.30,27.30,34.80,42.70,53.60,57.20,59.10 +29,24.00,28.20,35.80,43.70,55.20,58.80,60.80 +30,24.50,28.90,36.80,44.90,56.70,60.40,62.50 +31,25.20,29.60,37.90,46.00,58.40,62.10,64.20 +32,25.80,30.30,38.90,47.30,59.90,63.70,65.80 +33,26.30,30.90,39.90,48.40,61.40,65.50,67.60 +34,26.80,31.60,40.70,49.60,63.00,67.40,69.50 +35,27.50,32.40,41.50,50.60,64.50,69.20,71.30 +36,28.00,33.10,42.40,51.60,66.10,70.90,73.10 +37,28.50,34.00,43.30,52.80,67.70,72.60,74.80 +38,29.20,34.70,44.30,53.90,69.20,74.50,76.70 +39,30.00,35.50,45.30,55.10,70.70,76.20,78.40 +40,30.80,36.30,46.20,56.20,72.20,77.90,80.10 +41,31.50,37.00,47.20,57.40,73.90,79.70,81.90 +42,32.20,37.70,48.00,58.40,75.50,81.30,83.50 +43,32.80,38.40,48.70,59.40,77.00,82.90,85.10 +44,33.30,39.10,49.60,60.40,78.40,84.60,86.90 +45,33.80,39.80,50.40,61.40,79.90,86.20,88.50 +46,34.50,40.60,51.40,62.40,81.40,87.90,90.20 +47,35.10,41.30,52.40,63.40,83.10,89.60,91.90 +48,35.80,42.10,53.20,64.40,84.60,91.40,93.70 +49,36.30,42.80,54.20,65.40,86.00,93.00,95.30 +50,37.00,43.60,55.00,66.40,87.50,94.50,96.90 +51,37.60,44.40,55.80,67.60,89.00,96.00,98.50 +52,38.10,45.20,56.60,68.90,90.40,97.60,100.10 +53,38.80,45.90,57.50,70.00,91.90,99.20,101.70 +54,39.60,46.80,58.40,71.20,93.30,100.70,103.20 +55,40.20,47.60,59.40,72.20,94.80,102.30,104.80 +56,40.70,48.20,60.20,73.20,96.30,104.10,106.60 +57,41.40,48.90,61.20,74.40,97.70,105.70,108.20 +58,41.90,49.60,62.20,75.60,99.20,107.20,109.70 +59,42.40,50.10,63.20,76.80,100.70,108.90,111.40 +60,43.10,50.80,64.20,77.90,102.20,110.80,113.30 +61,43.90,51.60,65.00,79.10,103.80,112.60,115.10 +62,44.70,52.40,66.00,80.20,105.20,114.30,116.90 +63,45.40,53.10,66.80,81.50,106.80,116.00,118.90 +64,46.20,53.90,67.60,82.70,108.30,117.90,121.00 +65,46.80,54.60,68.60,84.00,109.90,119.60,123.10 +66,47.30,55.30,69.60,85.30,111.60,121.50,125.00 +67,47.80,56.10,70.60,86.80,113.20,123.30,126.80 +68,48.50,56.90,71.60,88.30,114.80,124.90,128.50 +69,49.00,57.60,72.60,89.60,116.60,126.70,130.40 +70,49.50,58.50,73.60,91.10,118.40,128.50,132.30 +71,50.20,59.50,74.60,92.40,120.10,130.30,134.10 +72,51.00,60.30,75.60,93.90,121.90,132.10,135.90 +73,51.70,61.00,76.60,95.20,123.50,133.80,137.60 +74,52.20,61.80,77.60,96.40,125.00,135.30,139.30 +75,52.90,62.50,78.60,97.70,126.50,136.80,141.10 +76,53.60,63.40,79.50,99.00,128.10,138.50,142.80 +77,54.30,64.10,80.50,100.30,129.60,140.40,144.70 +78,55.00,64.80,81.50,101.50,131.30,142.10,146.40 +79,55.70,65.70,82.50,102.80,133.00,143.80,148.10 +80,56.40,66.50,83.50,104.10,134.70,145.60,149.90 +81,56.90,67.20,84.50,105.50,136.20,147.40,151.70 +82,57.40,67.90,85.50,106.70,137.70,149.00,153.40 +83,58.10,68.60,86.60,108.00,139.20,150.70,155.20 +84,58.80,69.50,87.70,109.40,140.70,152.50,157.00 +85,59.40,70.20,88.70,110.60,142.00,154.20,158.70 +86,60.00,71.10,89.70,111.90,143.50,155.70,160.40 +87,60.70,71.80,90.70,113.20,145.00,157.20,162.10 +88,61.40,72.50,91.50,114.40,146.60,158.80,163.80 +89,62.10,73.40,92.50,115.50,148.10,160.60,165.70 +90,62.90,74.20,93.50,116.70,149.80,162.40,167.50 +91,63.50,74.90,94.50,117.90,151.30,164.30,169.40 +92,64.20,75.60,95.30,119.20,153.00,166.00,171.10 +93,64.80,76.30,96.30,120.40,154.50,167.70,172.80 +94,65.50,77.10,97.30,121.60,156.20,169.40,174.50 +95,66.00,77.80,98.30,122.60,157.70,171.00,176.10 +96,66.50,78.60,99.30,123.70,159.30,172.70,177.90 +97,67.20,79.30,100.30,124.90,160.80,174.40,179.70 +98,67.90,80.10,101.10,126.10,162.30,176.00,181.30 +99,68.50,80.80,102.10,127.30,163.60,177.50,182.80 +100,69.00,81.50,102.90,128.40,165.10,179.00,184.30 +101,69.70,82.20,103.80,129.60,166.60,180.50,186.00 +102,70.40,83.00,104.80,130.70,168.10,182.20,187.80 +103,71.00,83.80,105.60,131.90,169.80,184.00,189.60 +104,71.50,84.50,106.60,133.00,171.60,185.80,191.40 +105,72.20,85.30,107.40,134.30,173.20,187.50,193.10 +106,72.70,86.00,108.40,135.50,175.00,189.30,194.90 +107,73.40,86.80,109.40,136.90,176.70,191.00,196.70 +108,74.00,87.50,110.40,138.10,178.20,192.80,198.50 +109,74.80,88.30,111.40,139.40,179.90,194.50,200.20 +110,75.50,89.10,112.20,140.50,181.60,196.30,202.00 +111,76.00,90.10,113.20,141.80,183.30,198.00,203.80 +112,76.70,90.90,114.30,143.00,185.00,199.70,205.60 +113,77.40,91.90,115.30,144.40,186.60,201.50,207.40 +114,78.20,92.70,116.30,145.60,188.20,203.30,209.30 +115,79.10,93.60,117.30,146.90,189.80,205.20,211.20 +116,79.80,94.40,118.30,148.20,191.30,206.90,213.00 +117,80.30,95.10,119.40,149.50,192.80,208.70,214.80 +118,80.90,95.80,120.40,150.70,194.40,210.40,216.50 +119,81.60,96.70,121.40,152.00,196.00,212.00,218.30 +120,82.30,97.50,122.50,153.40,197.50,213.80,220.20 +121,82.80,98.30,123.50,154.60,199.20,215.60,222.00 +122,83.50,99.00,124.50,155.80,200.80,217.40,223.90 +123,84.40,99.90,125.50,157.00,202.50,219.20,225.80 +124,85.10,100.60,126.60,158.20,204.10,221.10,227.80 +125,85.80,101.30,127.80,159.50,205.80,222.90,229.70 +126,86.50,102.10,128.80,160.90,207.30,224.70,231.50 +127,87.10,102.90,129.80,162.10,209.00,226.50,233.30 +128,87.80,103.90,130.80,163.30,210.50,228.40,235.20 +129,88.60,104.70,131.90,164.50,212.10,230.10,237.00 +130,89.20,105.50,132.90,165.70,213.60,231.80,238.70 +131,89.90,106.50,133.90,167.00,215.10,233.60,240.60 +132,90.50,107.30,135.00,168.30,216.80,235.30,242.60 +133,91.30,108.10,136.00,169.60,218.50,237.20,244.50 +134,92.00,108.80,137.00,170.80,220.30,239.20,246.50 +135,92.50,109.70,138.00,172.10,221.90,241.00,248.30 +136,93.20,110.40,139.00,173.30,223.50,242.70,250.00 +137,93.90,111.30,140.10,174.70,225.10,244.50,251.80 +138,94.50,112.10,141.10,176.10,226.70,246.40,253.70 +139,95.30,112.90,142.10,177.30,228.20,248.10,255.40 +140,96.00,113.90,143.20,178.60,229.90,249.90,257.30 +141,96.70,114.70,144.20,179.80,231.50,251.80,259.20 +142,97.30,115.40,145.20,181.10,233.20,253.60,261.00 +143,98.00,116.10,146.20,182.60,234.70,255.30,262.70 +144,98.70,116.90,147.20,184.00,236.20,257.00,264.50 +145,99.60,117.80,148.20,185.20,237.90,258.70,266.30 +146,100.30,118.60,149.30,186.30,239.60,260.40,268.10 +147,101.00,119.30,150.40,187.50,241.20,262.20,270.00 +148,101.80,120.10,151.40,188.70,242.90,264.00,272.00 +149,102.40,121.00,152.40,189.90,244.80,265.90,274.10 +150,103.10,121.70,153.40,191.20,246.60,267.70,276.30 diff --git a/art/products/3DaySelect.csv b/art/products/3DaySelect.csv new file mode 100644 index 0000000..6c41e66 --- /dev/null +++ b/art/products/3DaySelect.csv @@ -0,0 +1,151 @@ +Exceed,302,303,304,305,306,307,308 +1,4.40,4.60,4.90,5.20,6.00,6.40,6.60 +2,4.60,4.80,5.20,5.90,6.90,7.40,7.70 +3,5.00,5.30,5.90,6.60,8.00,8.50,8.90 +4,5.40,5.80,6.50,7.30,8.90,9.40,10.00 +5,5.70,6.30,7.10,8.00,9.80,10.40,11.10 +6,6.10,6.80,7.70,8.70,10.70,11.30,12.10 +7,6.50,7.30,8.30,9.40,11.50,12.40,13.30 +8,6.90,7.80,8.90,10.10,12.40,13.40,14.40 +9,7.30,8.30,9.50,10.80,13.30,14.40,15.50 +10,7.70,8.80,10.10,11.40,14.10,15.40,16.70 +11,8.10,9.30,10.70,12.10,15.10,16.50,17.80 +12,8.50,9.80,11.30,12.80,16.00,17.50,19.00 +13,8.90,10.30,11.90,13.50,16.90,18.50,20.10 +14,9.30,10.80,12.50,14.20,17.80,19.50,21.30 +15,9.70,11.30,13.10,15.00,18.70,20.50,22.40 +16,10.10,11.80,13.80,15.70,19.60,21.50,23.50 +17,10.50,12.20,14.40,16.50,20.50,22.50,24.60 +18,10.90,12.70,15.10,17.20,21.50,23.60,25.70 +19,11.30,13.20,15.70,17.90,22.40,24.60,26.80 +20,11.70,13.70,16.30,18.60,23.30,25.60,27.80 +21,12.10,14.20,16.90,19.30,24.10,26.50,28.80 +22,12.50,14.70,17.50,20.00,24.90,27.40,29.90 +23,12.90,15.20,18.10,20.80,25.80,28.40,30.90 +24,13.30,15.70,18.70,21.50,26.70,29.40,32.00 +25,13.80,16.20,19.30,22.20,27.70,30.40,33.10 +26,14.20,16.70,19.90,22.90,28.60,31.40,34.20 +27,14.60,17.20,20.60,23.60,29.60,32.50,35.40 +28,15.00,17.60,21.20,24.30,30.50,33.50,36.50 +29,15.40,18.10,21.80,25.00,31.40,34.50,37.60 +30,15.80,18.60,22.40,25.70,32.40,35.50,38.70 +31,16.20,19.10,23.00,26.40,33.30,36.50,39.70 +32,16.60,19.60,23.70,27.10,34.30,37.50,40.80 +33,17.00,20.10,24.30,27.80,35.10,38.40,41.90 +34,17.40,20.60,24.90,28.50,35.90,39.30,42.90 +35,17.80,21.10,25.50,29.20,36.80,40.20,43.90 +36,18.20,21.60,26.10,29.90,37.60,41.10,44.90 +37,18.60,22.10,26.70,30.60,38.50,42.00,45.80 +38,19.00,22.60,27.20,31.30,39.30,42.90,46.80 +39,19.40,23.00,27.80,32.00,40.10,43.80,47.80 +40,19.80,23.50,28.40,32.70,41.00,44.70,48.80 +41,20.20,24.00,29.00,33.40,41.80,45.60,49.90 +42,20.60,24.50,29.60,34.10,42.80,46.70,51.10 +43,21.00,25.00,30.20,34.80,43.70,47.70,52.20 +44,21.40,25.50,30.80,35.50,44.60,48.60,53.30 +45,21.80,26.00,31.40,36.30,45.50,49.60,54.40 +46,22.20,26.50,32.00,37.00,46.30,50.60,55.50 +47,22.60,27.00,32.60,37.70,47.30,51.70,56.60 +48,23.00,27.50,33.20,38.40,48.10,52.60,57.70 +49,23.40,28.00,33.80,39.10,48.90,53.50,58.70 +50,23.80,28.50,34.40,39.80,49.90,54.60,59.80 +51,24.20,29.00,35.00,40.50,50.80,55.60,60.90 +52,24.60,29.40,35.60,41.20,51.70,56.60,62.00 +53,25.00,29.90,36.20,41.90,52.50,57.60,63.10 +54,25.40,30.40,36.80,42.60,53.40,58.60,64.30 +55,25.80,30.90,37.40,43.30,54.40,59.70,65.50 +56,26.20,31.40,38.00,44.00,55.30,60.70,66.60 +57,26.60,31.90,38.60,44.70,56.30,61.80,67.80 +58,27.00,32.40,39.20,45.40,57.20,62.80,68.90 +59,27.40,32.90,39.80,46.10,58.20,63.90,70.10 +60,27.80,33.40,40.40,46.80,59.10,64.90,71.30 +61,28.20,33.90,41.00,47.50,60.10,66.00,72.50 +62,28.60,34.40,41.60,48.20,61.00,67.00,73.70 +63,29.00,34.90,42.20,48.90,61.90,67.90,74.80 +64,29.40,35.30,42.80,49.60,62.90,69.00,75.90 +65,29.80,35.80,43.40,50.30,63.80,69.90,77.00 +66,30.30,36.30,44.00,51.00,64.80,71.00,78.10 +67,30.70,36.80,44.60,51.70,65.70,72.00,79.20 +68,31.10,37.30,45.20,52.40,66.70,73.10,80.30 +69,31.50,37.80,45.80,53.10,67.50,74.00,81.30 +70,31.90,38.30,46.40,53.80,68.30,75.00,82.40 +71,32.30,38.80,47.00,54.50,69.30,76.00,83.60 +72,32.70,39.30,47.60,55.20,70.30,77.10,84.70 +73,33.10,39.80,48.20,55.90,71.20,78.00,85.80 +74,33.50,40.30,48.80,56.60,72.10,79.00,86.90 +75,33.90,40.80,49.40,57.30,73.00,80.00,88.00 +76,34.30,41.30,50.00,58.00,73.90,81.00,89.10 +77,34.70,41.80,50.70,58.70,74.80,82.10,90.20 +78,35.10,42.30,51.30,59.40,75.70,83.10,91.40 +79,35.50,42.80,51.90,60.20,76.60,84.00,92.50 +80,35.90,43.20,52.50,61.00,77.50,84.90,93.60 +81,36.30,43.70,53.10,61.70,78.30,86.00,94.60 +82,36.70,44.20,53.70,62.40,79.10,87.00,95.80 +83,37.10,44.70,54.30,63.10,80.10,88.00,96.90 +84,37.50,45.20,54.90,63.80,81.00,89.00,98.00 +85,37.90,45.70,55.50,64.50,81.80,89.90,99.00 +86,38.30,46.20,56.10,65.20,82.80,91.00,100.20 +87,38.70,46.70,56.70,65.90,83.60,92.00,101.30 +88,39.10,47.20,57.30,66.60,84.50,93.00,102.50 +89,39.50,47.70,57.90,67.30,85.40,94.10,103.50 +90,39.90,48.20,58.50,68.00,86.40,95.10,104.70 +91,40.30,48.60,59.10,68.70,87.20,96.10,105.80 +92,40.70,49.10,59.70,69.50,88.10,97.10,106.90 +93,41.10,49.60,60.30,70.20,89.00,98.10,108.00 +94,41.50,50.10,61.00,70.90,89.90,99.10,109.10 +95,41.90,50.60,61.60,71.60,90.90,100.20,110.20 +96,42.30,51.10,62.20,72.30,91.80,101.10,111.30 +97,42.70,51.60,62.80,73.00,92.70,102.10,112.40 +98,43.10,52.10,63.40,73.70,93.70,103.10,113.50 +99,43.50,52.60,64.00,74.40,94.50,104.00,114.50 +100,44.00,53.10,64.70,75.10,95.40,105.00,115.60 +101,44.40,53.50,65.30,75.80,96.30,105.90,116.70 +102,44.80,54.00,65.90,76.50,97.30,107.00,117.90 +103,45.20,54.50,66.50,77.20,98.10,108.00,119.10 +104,45.60,55.00,67.10,77.90,98.90,108.90,120.10 +105,46.00,55.50,67.70,78.60,99.90,110.00,121.20 +106,46.40,56.00,68.30,79.30,100.70,111.00,122.30 +107,46.80,56.50,68.90,80.00,101.70,112.10,123.50 +108,47.20,57.00,69.50,80.70,102.60,113.00,124.60 +109,47.60,57.50,70.10,81.40,103.50,114.00,125.70 +110,48.00,58.00,70.70,82.10,104.50,115.10,126.80 +111,48.40,58.50,71.30,82.80,105.40,116.00,128.00 +112,48.80,59.00,71.90,83.50,106.30,117.00,129.10 +113,49.20,59.40,72.50,84.30,107.20,118.00,130.20 +114,49.60,59.90,73.10,85.00,108.20,119.00,131.30 +115,50.00,60.40,73.70,85.70,109.00,119.90,132.30 +116,50.40,61.00,74.30,86.40,109.90,120.80,133.40 +117,50.80,61.50,74.90,87.10,110.90,121.90,134.50 +118,51.20,62.00,75.50,87.80,111.70,122.90,135.60 +119,51.60,62.40,76.10,88.50,112.70,123.90,136.70 +120,52.00,62.90,76.70,89.20,113.60,124.90,137.80 +121,52.40,63.40,77.30,89.90,114.50,125.80,138.90 +122,52.80,63.90,77.90,90.60,115.40,126.70,139.90 +123,53.20,64.40,78.50,91.30,116.30,127.70,141.10 +124,53.60,64.90,79.10,92.00,117.20,128.70,142.20 +125,54.00,65.40,79.70,92.70,118.10,129.60,143.30 +126,54.40,65.90,80.30,93.50,119.10,130.70,144.40 +127,54.80,66.40,80.90,94.20,120.00,131.60,145.50 +128,55.20,66.90,81.50,94.90,120.80,132.50,146.50 +129,55.60,67.40,82.10,95.60,121.80,133.60,147.70 +130,56.00,67.90,82.70,96.30,122.70,134.50,148.80 +131,56.40,68.30,83.30,97.00,123.60,135.50,150.00 +132,56.80,68.80,83.90,97.70,124.50,136.50,151.10 +133,57.20,69.30,84.50,98.40,125.30,137.40,152.10 +134,57.60,69.80,85.10,99.10,126.20,138.40,153.20 +135,58.00,70.30,85.70,99.80,127.10,139.40,154.40 +136,58.40,70.80,86.30,100.50,128.00,140.40,155.50 +137,58.80,71.30,86.90,101.30,128.90,141.40,156.60 +138,59.20,71.80,87.50,102.00,129.80,142.40,157.60 +139,59.60,72.30,88.10,102.70,130.70,143.40,158.80 +140,60.00,72.80,88.70,103.40,131.50,144.40,159.90 +141,60.50,73.30,89.30,104.10,132.50,145.40,161.00 +142,60.90,73.80,89.90,104.80,133.40,146.40,162.10 +143,61.30,74.20,90.50,105.50,134.30,147.40,163.20 +144,61.70,74.70,91.10,106.20,135.10,148.30,164.30 +145,62.10,75.20,91.70,106.90,136.00,149.30,165.30 +146,62.50,75.70,92.30,107.60,136.90,150.40,166.50 +147,62.90,76.20,92.90,108.30,137.80,151.30,167.50 +148,63.30,76.70,93.50,109.00,138.80,152.40,168.70 +149,63.70,77.20,94.10,109.70,139.60,153.30,169.80 +150,64.10,77.70,94.70,110.40,140.40,154.40,171.00 diff --git a/art/products/3DaySelectRes.csv b/art/products/3DaySelectRes.csv new file mode 100644 index 0000000..f7fb116 --- /dev/null +++ b/art/products/3DaySelectRes.csv @@ -0,0 +1,151 @@ +Exceed,302,303,304,305,306,307,308 +1,5.40,5.60,5.90,6.20,7.00,7.40,7.60 +2,5.60,5.80,6.20,6.90,7.90,8.40,8.70 +3,6.00,6.30,6.90,7.60,9.00,9.50,9.90 +4,6.40,6.80,7.50,8.30,9.90,10.40,11.00 +5,6.70,7.30,8.10,9.00,10.80,11.40,12.10 +6,7.10,7.80,8.70,9.70,11.70,12.30,13.10 +7,7.50,8.30,9.30,10.40,12.50,13.40,14.30 +8,7.90,8.80,9.90,11.10,13.40,14.40,15.40 +9,8.30,9.30,10.50,11.80,14.30,15.40,16.50 +10,8.70,9.80,11.10,12.40,15.10,16.40,17.70 +11,9.10,10.30,11.70,13.10,16.10,17.50,18.80 +12,9.50,10.80,12.30,13.80,17.00,18.50,20.00 +13,9.90,11.30,12.90,14.50,17.90,19.50,21.10 +14,10.30,11.80,13.50,15.20,18.80,20.50,22.30 +15,10.70,12.30,14.10,16.00,19.70,21.50,23.40 +16,11.10,12.80,14.80,16.70,20.60,22.50,24.50 +17,11.50,13.20,15.40,17.50,21.50,23.50,25.60 +18,11.90,13.70,16.10,18.20,22.50,24.60,26.70 +19,12.30,14.20,16.70,18.90,23.40,25.60,27.80 +20,12.70,14.70,17.30,19.60,24.30,26.60,28.80 +21,13.10,15.20,17.90,20.30,25.10,27.50,29.80 +22,13.50,15.70,18.50,21.00,25.90,28.40,30.90 +23,13.90,16.20,19.10,21.80,26.80,29.40,31.90 +24,14.30,16.70,19.70,22.50,27.70,30.40,33.00 +25,14.80,17.20,20.30,23.20,28.70,31.40,34.10 +26,15.20,17.70,20.90,23.90,29.60,32.40,35.20 +27,15.60,18.20,21.60,24.60,30.60,33.50,36.40 +28,16.00,18.60,22.20,25.30,31.50,34.50,37.50 +29,16.40,19.10,22.80,26.00,32.40,35.50,38.60 +30,16.80,19.60,23.40,26.70,33.40,36.50,39.70 +31,17.20,20.10,24.00,27.40,34.30,37.50,40.70 +32,17.60,20.60,24.70,28.10,35.30,38.50,41.80 +33,18.00,21.10,25.30,28.80,36.10,39.40,42.90 +34,18.40,21.60,25.90,29.50,36.90,40.30,43.90 +35,18.80,22.10,26.50,30.20,37.80,41.20,44.90 +36,19.20,22.60,27.10,30.90,38.60,42.10,45.90 +37,19.60,23.10,27.70,31.60,39.50,43.00,46.80 +38,20.00,23.60,28.20,32.30,40.30,43.90,47.80 +39,20.40,24.00,28.80,33.00,41.10,44.80,48.80 +40,20.80,24.50,29.40,33.70,42.00,45.70,49.80 +41,21.20,25.00,30.00,34.40,42.80,46.60,50.90 +42,21.60,25.50,30.60,35.10,43.80,47.70,52.10 +43,22.00,26.00,31.20,35.80,44.70,48.70,53.20 +44,22.40,26.50,31.80,36.50,45.60,49.60,54.30 +45,22.80,27.00,32.40,37.30,46.50,50.60,55.40 +46,23.20,27.50,33.00,38.00,47.30,51.60,56.50 +47,23.60,28.00,33.60,38.70,48.30,52.70,57.60 +48,24.00,28.50,34.20,39.40,49.10,53.60,58.70 +49,24.40,29.00,34.80,40.10,49.90,54.50,59.70 +50,24.80,29.50,35.40,40.80,50.90,55.60,60.80 +51,25.20,30.00,36.00,41.50,51.80,56.60,61.90 +52,25.60,30.40,36.60,42.20,52.70,57.60,63.00 +53,26.00,30.90,37.20,42.90,53.50,58.60,64.10 +54,26.40,31.40,37.80,43.60,54.40,59.60,65.30 +55,26.80,31.90,38.40,44.30,55.40,60.70,66.50 +56,27.20,32.40,39.00,45.00,56.30,61.70,67.60 +57,27.60,32.90,39.60,45.70,57.30,62.80,68.80 +58,28.00,33.40,40.20,46.40,58.20,63.80,69.90 +59,28.40,33.90,40.80,47.10,59.20,64.90,71.10 +60,28.80,34.40,41.40,47.80,60.10,65.90,72.30 +61,29.20,34.90,42.00,48.50,61.10,67.00,73.50 +62,29.60,35.40,42.60,49.20,62.00,68.00,74.70 +63,30.00,35.90,43.20,49.90,62.90,68.90,75.80 +64,30.40,36.30,43.80,50.60,63.90,70.00,76.90 +65,30.80,36.80,44.40,51.30,64.80,70.90,78.00 +66,31.30,37.30,45.00,52.00,65.80,72.00,79.10 +67,31.70,37.80,45.60,52.70,66.70,73.00,80.20 +68,32.10,38.30,46.20,53.40,67.70,74.10,81.30 +69,32.50,38.80,46.80,54.10,68.50,75.00,82.30 +70,32.90,39.30,47.40,54.80,69.30,76.00,83.40 +71,33.30,39.80,48.00,55.50,70.30,77.00,84.60 +72,33.70,40.30,48.60,56.20,71.30,78.10,85.70 +73,34.10,40.80,49.20,56.90,72.20,79.00,86.80 +74,34.50,41.30,49.80,57.60,73.10,80.00,87.90 +75,34.90,41.80,50.40,58.30,74.00,81.00,89.00 +76,35.30,42.30,51.00,59.00,74.90,82.00,90.10 +77,35.70,42.80,51.70,59.70,75.80,83.10,91.20 +78,36.10,43.30,52.30,60.40,76.70,84.10,92.40 +79,36.50,43.80,52.90,61.20,77.60,85.00,93.50 +80,36.90,44.20,53.50,62.00,78.50,85.90,94.60 +81,37.30,44.70,54.10,62.70,79.30,87.00,95.60 +82,37.70,45.20,54.70,63.40,80.10,88.00,96.80 +83,38.10,45.70,55.30,64.10,81.10,89.00,97.90 +84,38.50,46.20,55.90,64.80,82.00,90.00,99.00 +85,38.90,46.70,56.50,65.50,82.80,90.90,100.00 +86,39.30,47.20,57.10,66.20,83.80,92.00,101.20 +87,39.70,47.70,57.70,66.90,84.60,93.00,102.30 +88,40.10,48.20,58.30,67.60,85.50,94.00,103.50 +89,40.50,48.70,58.90,68.30,86.40,95.10,104.50 +90,40.90,49.20,59.50,69.00,87.40,96.10,105.70 +91,41.30,49.60,60.10,69.70,88.20,97.10,106.80 +92,41.70,50.10,60.70,70.50,89.10,98.10,107.90 +93,42.10,50.60,61.30,71.20,90.00,99.10,109.00 +94,42.50,51.10,62.00,71.90,90.90,100.10,110.10 +95,42.90,51.60,62.60,72.60,91.90,101.20,111.20 +96,43.30,52.10,63.20,73.30,92.80,102.10,112.30 +97,43.70,52.60,63.80,74.00,93.70,103.10,113.40 +98,44.10,53.10,64.40,74.70,94.70,104.10,114.50 +99,44.50,53.60,65.00,75.40,95.50,105.00,115.50 +100,45.00,54.10,65.70,76.10,96.40,106.00,116.60 +101,45.40,54.50,66.30,76.80,97.30,106.90,117.70 +102,45.80,55.00,66.90,77.50,98.30,108.00,118.90 +103,46.20,55.50,67.50,78.20,99.10,109.00,120.10 +104,46.60,56.00,68.10,78.90,99.90,109.90,121.10 +105,47.00,56.50,68.70,79.60,100.90,111.00,122.20 +106,47.40,57.00,69.30,80.30,101.70,112.00,123.30 +107,47.80,57.50,69.90,81.00,102.70,113.10,124.50 +108,48.20,58.00,70.50,81.70,103.60,114.00,125.60 +109,48.60,58.50,71.10,82.40,104.50,115.00,126.70 +110,49.00,59.00,71.70,83.10,105.50,116.10,127.80 +111,49.40,59.50,72.30,83.80,106.40,117.00,129.00 +112,49.80,60.00,72.90,84.50,107.30,118.00,130.10 +113,50.20,60.40,73.50,85.30,108.20,119.00,131.20 +114,50.60,60.90,74.10,86.00,109.20,120.00,132.30 +115,51.00,61.40,74.70,86.70,110.00,120.90,133.30 +116,51.40,62.00,75.30,87.40,110.90,121.80,134.40 +117,51.80,62.50,75.90,88.10,111.90,122.90,135.50 +118,52.20,63.00,76.50,88.80,112.70,123.90,136.60 +119,52.60,63.40,77.10,89.50,113.70,124.90,137.70 +120,53.00,63.90,77.70,90.20,114.60,125.90,138.80 +121,53.40,64.40,78.30,90.90,115.50,126.80,139.90 +122,53.80,64.90,78.90,91.60,116.40,127.70,140.90 +123,54.20,65.40,79.50,92.30,117.30,128.70,142.10 +124,54.60,65.90,80.10,93.00,118.20,129.70,143.20 +125,55.00,66.40,80.70,93.70,119.10,130.60,144.30 +126,55.40,66.90,81.30,94.50,120.10,131.70,145.40 +127,55.80,67.40,81.90,95.20,121.00,132.60,146.50 +128,56.20,67.90,82.50,95.90,121.80,133.50,147.50 +129,56.60,68.40,83.10,96.60,122.80,134.60,148.70 +130,57.00,68.90,83.70,97.30,123.70,135.50,149.80 +131,57.40,69.30,84.30,98.00,124.60,136.50,151.00 +132,57.80,69.80,84.90,98.70,125.50,137.50,152.10 +133,58.20,70.30,85.50,99.40,126.30,138.40,153.10 +134,58.60,70.80,86.10,100.10,127.20,139.40,154.20 +135,59.00,71.30,86.70,100.80,128.10,140.40,155.40 +136,59.40,71.80,87.30,101.50,129.00,141.40,156.50 +137,59.80,72.30,87.90,102.30,129.90,142.40,157.60 +138,60.20,72.80,88.50,103.00,130.80,143.40,158.60 +139,60.60,73.30,89.10,103.70,131.70,144.40,159.80 +140,61.00,73.80,89.70,104.40,132.50,145.40,160.90 +141,61.50,74.30,90.30,105.10,133.50,146.40,162.00 +142,61.90,74.80,90.90,105.80,134.40,147.40,163.10 +143,62.30,75.20,91.50,106.50,135.30,148.40,164.20 +144,62.70,75.70,92.10,107.20,136.10,149.30,165.30 +145,63.10,76.20,92.70,107.90,137.00,150.30,166.30 +146,63.50,76.70,93.30,108.60,137.90,151.40,167.50 +147,63.90,77.20,93.90,109.30,138.80,152.30,168.50 +148,64.30,77.70,94.50,110.00,139.80,153.40,169.70 +149,64.70,78.20,95.10,110.70,140.60,154.30,170.80 +150,65.10,78.70,95.70,111.40,141.40,155.40,172.00 diff --git a/art/products/450.csv b/art/products/450.csv new file mode 100644 index 0000000..63d16e1 --- /dev/null +++ b/art/products/450.csv @@ -0,0 +1,153 @@ +"ZONE CHART" +"UPS Ground/UPS 3 Day Select/UPS 2nd Day Air/UPS 2nd Day Air A.M./UPS Next Day Air Saver/UPS Next Day Air" + +"For shipments originating in ZIP Codes 450-01 to 452-99. To determine zone" +"take the first three digits of the receiver's ZIP Code and refer to the chart below:" + +"ZONES" +Dest. ZIP,Ground,3 Day Select,2nd Day Air,2nd Day Air A.M.,Next Day Air Saver,Next Day Air + +004-005,4,304,204,244,134,104 +006-007,-,-,225,-,-,125 +008,-,-,[1],-,-,[1] +009,-,-,225,-,-,125 +010-067,5,305,205,245,135,105 +068-089,4,304,204,244,134,104 +090-099,-,-,-,-,-,- +100-118,4,304,204,244,134,104 +119-123,5,305,205,245,135,105 +124-127,4,304,204,244,134,104 +128-129,5,305,205,245,135,105 +130-149,4,304,204,244,134,104 +150-157,3,303,203,243,133,103 +158-159,4,304,204,244,134,104 +160-165,3,303,203,243,133,103 +166-199,4,304,204,244,134,104 +200-239,4,304,204,244,134,104 +240-244,3,303,203,243,133,103 +245,4,304,204,244,134,104 +246-253,3,303,203,243,133,103 +254,4,304,204,244,134,104 +255-257,2,302,202,242,132,102 +258-260,3,303,203,243,133,103 +261,2,302,202,242,132,102 +262-266,3,303,203,243,133,103 +267,4,304,204,244,134,104 +268,3,303,203,-,-,103 +270,4,304,204,244,134,104 +271,3,303,203,243,133,103 +272-285,4,304,204,244,134,104 +286-289,3,303,203,243,133,103 +290-299,4,304,204,244,134,104 +300-306,4,304,204,244,134,104 +307,3,303,203,243,133,103 +308-319,4,304,204,244,134,104 +320-339,5,305,205,245,135,105 +340,-,-,-,-,-,- +341-349,5,305,205,245,135,105 +350-369,4,304,204,244,134,104 +370-374,3,303,203,243,133,103 +375,4,304,204,-,-,104 +376-379,3,303,203,243,133,103 +380-381,4,304,204,244,134,104 +382,3,303,203,243,133,103 +383,4,304,204,244,134,104 +384-385,3,303,203,243,133,103 +386-394,4,304,204,244,134,104 +395,5,305,205,245,135,105 +396-399,4,304,204,244,134,104 +400-406,2,302,202,242,132,102 +407-409,3,303,203,-,133,103 +410-414,2,302,202,242,132,102 +415-416,3,303,203,-,133,103 +417-418,2,302,202,242,132,102 +420-422,3,303,203,243,133,103 +423,2,302,202,242,132,102 +424,3,303,203,243,133,103 +425-433,2,302,202,242,132,102 +434-436,3,303,203,243,133,103 +437-438,2,302,202,242,132,102 +439-447,3,303,203,243,133,103 +448-462,2,302,202,242,132,102 +463-466,3,303,203,243,133,103 +467-475,2,302,202,242,132,102 +476-477,3,303,203,243,133,103 +478-479,2,302,202,242,132,102 +480-495,3,303,203,243,133,103 +496-499,4,304,204,244,134,104 +500-509,4,304,204,244,134,104 +510-512,5,305,205,245,135,105 +513-528,4,304,204,244,134,104 +530-534,3,303,203,243,133,103 +535-555,4,304,204,244,134,104 +556-558,5,305,205,245,135,105 +559-560,4,304,204,244,134,104 +561-585,5,305,205,245,135,105 +586-593,6,306,206,246,136,106 +594,7,307,207,247,137,107 +595,6,306,206,-,-,106 +596-599,7,307,207,247,137,107 +600-611,3,303,203,243,133,103 +612,4,304,204,244,134,104 +613-622,3,303,203,243,133,103 +623,4,304,204,244,134,104 +624-633,3,303,203,243,133,103 +634-636,4,304,204,244,134,104 +637,3,303,203,243,133,103 +638-667,4,304,204,244,134,104 +668-672,5,305,205,245,135,105 +673,4,304,204,244,134,104 +674-693,5,305,205,245,135,105 +700-711,5,305,205,245,135,105 +712,4,304,204,244,134,104 +713-714,5,305,205,245,135,105 +716-717,4,304,204,244,134,104 +718,5,305,205,245,135,105 +719-729,4,304,204,244,134,104 +730-742,5,305,205,245,135,105 +743,4,304,204,244,134,104 +744-748,5,305,205,245,135,105 +749,4,304,204,-,134,104 +750-768,5,305,205,245,135,105 +769,6,306,206,246,136,106 +770-779,5,305,205,245,135,105 +780-785,6,306,206,246,136,106 +786-787,5,305,205,245,135,105 +788,6,306,206,246,136,106 +789-796,5,305,205,245,135,105 +797-799,6,306,206,246,136,106 +800-806,6,306,206,246,136,106 +807,5,305,205,245,135,105 +808-831,6,306,206,246,136,106 +832-844,7,307,207,247,137,107 +845,6,306,206,-,-,106 +846-864,7,307,207,247,137,107 +865-885,6,306,206,246,136,106 +889-893,7,307,207,247,137,107 +894-897,8,308,208,248,138,108 +898,7,307,207,-,-,107 +900-921,8,308,208,248,138,108 +922,7,307,207,247,137,107 +923-961,8,308,208,248,138,108 +962-966,-,-,-,-,-,- +967-968,-,-,[2],-,-,[2] +969,-,-,[1],-,-,[1] +970-977,8,308,208,248,138,108 +978-979,7,307,207,-,137,107 +980-989,8,308,208,248,138,108 +990-994,7,307,207,247,137,107 +995-999,-,-,[3],-,-,[3] +,,,,,, + + +"[1] For Virgin Islands, Guam, Marshall Islands, etc., please refer to the Worldwide Rate and Zone information." + +"[2] For Hawaii, the following Postal Codes are Zone 124 for Next Day Air and Zone 224 for 2nd Day Air:" +96701,96706,96707,96709,96712,96717,96730,96731,96734,96744,96759,96762,96782,96786,96789,96791,96792,96795,96797,96801,96802,96803,96804,96805,96806,96807,96808,96809,96810,96811,96812,96813,96814,96815,96816,96817,96818,96819,96820,96821,96822,96823,96824,96825,96826,96827,96828,96830,96835,96836,96837,96838,96839,96840,96841,96842,96843,96844,96845,96846,96847,96848,96849,96850,96853,96854,96857,96858,96859,96860,96861,96862,96863,96898 +"For Hawaii, the following Postal Codes are Zone 126 for Next Day Air and Zone 226 for 2nd Day Air:" +96703,96704,96705,96708,96710,96713,96714,96715,96716,96718,96719,96720,96721,96722,96725,96726,96727,96728,96729,96732,96733,96737,96738,96739,96740,96741,96742,96743,96745,96746,96747,96748,96749,96750,96751,96752,96753,96754,96755,96756,96757,96760,96761,96763,96764,96765,96766,96767,96768,96769,96770,96771,96772,96773,96774,96775,96776,96777,96778,96779,96780,96781,96783,96784,96785,96788,96790,96793,96796 + +"[3] For Alaska, the following Postal Codes are Zone 124 for Next Day Air and Zone 224 for 2nd Day Air:" +99501,99502,99503,99504,99505,99506,99507,99508,99509,99510,99511,99512,99513,99514,99515,99516,99517,99518,99519,99520,99521,99522,99523,99524,99540,99556,99567,99568,99572,99577,99587,99603,99605,99610,99611,99631,99635,99639,99645,99654,99664,99669,99672,99687,99701,99702,99703,99705,99706,99707,99708,99709,99710,99711,99712,99775 +"For Alaska, the following Postal Codes are Zone 126 for Next Day Air and Zone 226 for 2nd Day Air:" +99547,99548,99549,99550,99551,99552,99553,99554,99555,99557,99558,99559,99561,99563,99564,99565,99566,99569,99571,99573,99574,99575,99576,99578,99579,99580,99581,99583,99584,99585,99586,99588,99589,99590,99591,99602,99604,99606,99607,99608,99609,99612,99613,99614,99615,99619,99620,99621,99622,99624,99625,99626,99627,99628,99630,99632,99633,99634,99636,99637,99638,99640,99641,99643,99644,99647,99648,99649,99650,99651,99652,99653,99655,99656,99657,99658,99659,99660,99661,99662,99663,99665,99666,99667,99668,99670,99671,99674,99675,99676,99677,99678,99679,99680,99681,99682,99683,99684,99685,99686,99688,99689,99690,99691,99692,99693,99694,99695,99697,99704,99714,99716,99720,99721,99722,99723,99724,99725,99726,99727,99729,99730,99732,99733,99734,99736,99737,99738,99739,99740,99741,99742,99743,99744,99745,99746,99747,99748,99749,99750,99751,99752,99753,99754,99755,99756,99757,99758,99759,99760,99761,99762,99763,99764,99765,99766,99767,99768,99769,99770,99771,99772,99773,99774,99776,99777,99778,99779,99780,99781,99782,99783,99784,99785,99786,99788,99789,99790,99791,99801,99802,99803,99811,99820,99821,99824,99825,99826,99827,99829,99830,99832,99833,99835,99836,99840,99841,99850,99901,99903,99918,99919,99921,99922,99923,99925,99926,99927,99928,99929,99950 diff --git a/art/products/Ground.csv b/art/products/Ground.csv new file mode 100644 index 0000000..4fe39de --- /dev/null +++ b/art/products/Ground.csv @@ -0,0 +1,151 @@ +Exceed,2,3,4,5,6,7,8 +1,3.02,3.12,3.35,3.40,3.59,3.63,3.73 +2,3.08,3.28,3.61,3.71,4.00,4.09,4.35 +3,3.17,3.43,3.81,3.97,4.26,4.40,4.81 +4,3.29,3.58,4.02,4.23,4.52,4.66,5.12 +5,3.42,3.71,4.20,4.43,4.72,4.92,5.43 +6,3.57,3.84,4.35,4.64,4.93,5.18,5.69 +7,3.71,3.96,4.45,4.79,5.13,5.38,5.95 +8,3.85,4.08,4.56,4.90,5.29,5.64,6.36 +9,3.98,4.21,4.66,5.00,5.44,5.95,6.77 +10,4.11,4.32,4.76,5.16,5.65,6.36,7.24 +11,4.25,4.44,4.87,5.31,5.91,6.83,7.75 +12,4.38,4.58,4.97,5.46,6.17,7.29,8.32 +13,4.51,4.72,5.06,5.57,6.47,7.75,8.89 +14,4.62,4.87,5.16,5.67,6.84,8.22,9.45 +15,4.72,5.02,5.25,5.83,7.20,8.68,10.02 +16,4.81,5.19,5.40,6.03,7.57,9.14,10.59 +17,4.90,5.36,5.56,6.29,7.95,9.61,11.16 +18,4.99,5.55,5.76,6.60,8.33,10.07,11.72 +19,5.09,5.73,5.97,6.91,8.71,10.54,12.29 +20,5.21,5.92,6.18,7.22,9.09,10.95,12.86 +21,5.33,6.10,6.39,7.53,9.47,11.36,13.42 +22,5.46,6.29,6.61,7.84,9.86,11.77,13.99 +23,5.60,6.47,6.83,8.09,10.24,12.24,14.56 +24,5.73,6.65,7.04,8.35,10.62,12.70,15.12 +25,5.87,6.81,7.26,8.61,11.00,13.17,15.69 +26,6.00,6.97,7.47,8.87,11.38,13.58,16.21 +27,6.13,7.12,7.70,9.13,11.76,13.99,16.72 +28,6.27,7.28,7.93,9.40,12.15,14.40,17.29 +29,6.40,7.44,8.16,9.68,12.53,14.87,17.86 +30,6.54,7.62,8.37,9.96,12.91,15.33,18.42 +31,6.67,7.79,8.60,10.24,13.29,15.79,18.99 +32,6.80,7.97,8.83,10.53,13.67,16.26,19.56 +33,6.94,8.14,9.04,10.82,14.04,16.72,20.13 +34,7.06,8.32,9.27,11.10,14.41,17.19,20.68 +35,7.19,8.50,9.49,11.39,14.78,17.65,21.24 +36,7.31,8.67,9.70,11.67,15.15,18.11,21.79 +37,7.43,8.85,9.93,11.95,15.51,18.58,22.33 +38,7.56,9.02,10.16,12.23,15.86,19.04,22.87 +39,7.67,9.20,10.37,12.51,16.20,19.51,23.40 +40,7.78,9.37,10.59,12.78,16.53,19.97,23.93 +41,7.90,9.55,10.80,13.06,16.86,20.43,24.46 +42,8.01,9.72,11.02,13.34,17.19,20.90,24.97 +43,8.12,9.90,11.23,13.62,17.51,21.36,25.49 +44,8.23,10.07,11.43,13.90,17.82,21.83,26.00 +45,8.32,10.25,11.63,14.18,18.11,22.24,26.52 +46,8.40,10.41,11.83,14.45,18.40,22.65,27.03 +47,8.49,10.57,12.01,14.72,18.68,23.06,27.55 +48,8.57,10.71,12.20,14.98,18.95,23.48,28.01 +49,8.65,10.85,12.37,15.23,19.21,23.89,28.42 +50,8.73,10.97,12.55,15.47,19.45,24.25,28.79 +51,8.82,11.08,12.71,15.69,19.69,24.61,29.15 +52,8.90,11.19,12.88,15.90,19.93,24.92,29.51 +53,8.98,11.29,13.03,16.10,20.17,25.18,29.82 +54,9.06,11.39,13.19,16.31,20.40,25.38,30.07 +55,9.14,11.50,13.33,16.52,20.64,25.54,30.33 +56,9.23,11.60,13.48,16.72,20.88,25.69,30.54 +57,9.31,11.70,13.61,16.93,21.10,25.85,30.74 +58,9.39,11.80,13.74,17.08,21.32,26.00,30.95 +59,9.47,11.91,13.87,17.24,21.53,26.16,31.16 +60,9.56,12.00,13.99,17.39,21.72,26.31,31.36 +61,9.64,12.09,14.10,17.50,21.91,26.47,31.57 +62,9.72,12.19,14.22,17.60,22.08,26.62,31.78 +63,9.80,12.28,14.33,17.70,22.25,26.78,31.98 +64,9.89,12.37,14.43,17.81,22.40,26.93,32.19 +65,9.97,12.46,14.54,17.91,22.55,27.08,32.39 +66,10.05,12.56,14.63,18.02,22.68,27.24,32.60 +67,10.12,12.65,14.72,18.15,22.81,27.39,32.81 +68,10.20,12.74,14.82,18.28,22.92,27.55,33.01 +69,10.27,12.84,14.91,18.42,23.02,27.70,33.22 +70,10.33,12.93,15.00,18.58,23.13,27.86,33.43 +71,14.87,16.74,18.61,20.64,24.93,29.15,34.46 +72,18.78,20.56,22.22,23.22,26.73,30.69,35.49 +73,22.08,23.75,25.31,25.80,28.54,32.24,36.26 +74,24.35,26.13,27.63,28.37,30.34,33.53,37.03 +75,25.59,27.36,29.18,29.92,31.89,34.56,37.55 +76,26.83,28.39,29.95,30.95,33.18,35.33,38.06 +77,27.86,29.32,30.62,31.72,34.21,35.85,38.48 +78,28.79,30.20,31.24,32.50,34.98,36.31,38.89 +79,29.51,31.07,31.81,33.01,35.50,36.78,39.30 +80,30.13,31.95,32.32,33.43,35.91,37.19,39.71 +81,30.69,32.41,32.79,33.84,36.32,37.60,40.13 +82,31.21,32.87,33.24,34.25,36.73,38.01,40.54 +83,31.67,33.31,33.68,34.66,37.15,38.43,40.95 +84,32.08,33.74,34.12,35.07,37.56,38.84,41.36 +85,32.50,34.17,34.54,35.49,37.97,39.25,41.78 +86,32.91,34.58,34.95,35.90,38.38,39.66,42.19 +87,33.32,34.99,35.37,36.31,38.80,40.07,42.60 +88,33.73,35.40,35.80,36.72,39.21,40.49,43.01 +89,34.15,35.82,36.23,37.14,39.62,40.90,43.43 +90,34.56,36.23,36.65,37.55,40.03,41.31,43.84 +91,34.97,36.64,37.06,37.96,40.45,41.72,44.25 +92,35.38,37.05,37.47,38.37,40.86,42.14,44.66 +93,35.80,37.47,37.86,38.79,41.27,42.55,45.08 +94,36.21,37.88,38.23,39.20,41.68,42.96,45.49 +95,36.62,38.29,38.60,39.61,42.10,43.37,45.90 +96,37.02,38.65,38.97,40.02,42.51,43.79,46.31 +97,37.43,39.01,39.34,40.44,42.92,44.20,46.72 +98,37.83,39.37,39.71,40.85,43.33,44.61,47.14 +99,38.23,39.73,40.09,41.26,43.75,45.02,47.55 +100,38.63,40.10,40.46,41.67,44.16,45.44,47.96 +101,38.99,40.46,40.83,42.02,44.54,45.84,48.36 +102,39.35,40.82,41.20,42.37,44.92,46.24,48.77 +103,39.71,41.18,41.57,42.72,45.30,46.64,49.17 +104,40.07,41.54,41.94,43.08,45.68,47.04,49.57 +105,40.44,41.90,42.31,43.43,46.07,47.45,49.97 +106,40.80,42.26,42.68,43.78,46.45,47.85,50.37 +107,41.16,42.62,43.05,44.13,46.83,48.25,50.78 +108,41.52,42.98,43.43,44.48,47.21,48.65,51.18 +109,41.88,43.34,43.80,44.83,47.59,49.05,51.58 +110,42.24,43.70,44.17,45.18,47.97,49.46,51.98 +111,42.59,44.06,44.54,45.53,48.35,49.86,52.39 +112,42.94,44.43,44.91,45.88,48.74,50.26,52.79 +113,43.29,44.79,45.28,46.23,49.12,50.66,53.19 +114,43.64,45.15,45.65,46.58,49.50,51.07,53.59 +115,43.99,45.51,46.02,46.93,49.88,51.47,53.99 +116,44.34,45.87,46.40,47.28,50.26,51.87,54.40 +117,44.69,46.23,46.77,47.63,50.64,52.27,54.80 +118,45.04,46.59,47.14,47.98,51.02,52.67,55.20 +119,45.39,46.95,47.51,48.33,51.41,53.08,55.60 +120,45.75,47.31,47.88,48.68,51.79,53.48,56.00 +121,46.10,47.67,48.25,49.03,52.17,53.88,56.41 +122,46.45,48.03,48.62,49.38,52.55,54.28,56.81 +123,46.80,48.40,48.99,49.74,52.93,54.68,57.21 +124,47.15,48.76,49.36,50.09,53.31,55.09,57.61 +125,47.50,49.12,49.74,50.44,53.69,55.49,58.01 +126,47.85,49.48,50.11,50.79,54.08,55.89,58.42 +127,48.20,49.84,50.48,51.14,54.46,56.29,58.82 +128,48.55,50.20,50.85,51.49,54.84,56.69,59.22 +129,48.90,50.56,51.22,51.84,55.22,57.10,59.62 +130,49.25,50.92,51.59,52.19,55.60,57.50,60.02 +131,49.60,51.28,51.96,52.54,55.98,57.90,60.43 +132,49.95,51.64,52.33,52.89,56.36,58.30,60.83 +133,50.30,52.00,52.70,53.24,56.75,58.71,61.23 +134,50.65,52.36,53.08,53.59,57.13,59.11,61.63 +135,51.00,52.73,53.45,53.94,57.51,59.51,62.04 +136,51.35,53.09,53.82,54.29,57.89,59.91,62.44 +137,51.70,53.45,54.19,54.64,58.27,60.31,62.84 +138,52.06,53.81,54.56,54.99,58.65,60.72,63.24 +139,52.41,54.17,54.93,55.34,59.04,61.12,63.64 +140,52.76,54.53,55.30,55.69,59.42,61.52,64.05 +141,53.11,54.89,55.67,56.05,59.80,61.92,64.45 +142,53.46,55.25,56.05,56.40,60.18,62.32,64.85 +143,53.81,55.61,56.42,56.75,60.56,62.73,65.25 +144,54.16,55.97,56.79,57.10,60.94,63.13,65.65 +145,54.51,56.33,57.16,57.45,61.32,63.53,66.06 +146,54.86,56.69,57.53,57.80,61.71,63.93,66.46 +147,55.21,57.06,57.90,58.15,62.09,64.33,66.86 +148,55.56,57.42,58.27,58.50,62.47,64.74,67.26 +149,55.91,57.78,58.64,58.85,62.85,65.14,67.66 +150,56.26,58.14,59.01,59.20,63.23,65.54,68.07 diff --git a/art/products/GroundComm.csv b/art/products/GroundComm.csv new file mode 100644 index 0000000..4fe39de --- /dev/null +++ b/art/products/GroundComm.csv @@ -0,0 +1,151 @@ +Exceed,2,3,4,5,6,7,8 +1,3.02,3.12,3.35,3.40,3.59,3.63,3.73 +2,3.08,3.28,3.61,3.71,4.00,4.09,4.35 +3,3.17,3.43,3.81,3.97,4.26,4.40,4.81 +4,3.29,3.58,4.02,4.23,4.52,4.66,5.12 +5,3.42,3.71,4.20,4.43,4.72,4.92,5.43 +6,3.57,3.84,4.35,4.64,4.93,5.18,5.69 +7,3.71,3.96,4.45,4.79,5.13,5.38,5.95 +8,3.85,4.08,4.56,4.90,5.29,5.64,6.36 +9,3.98,4.21,4.66,5.00,5.44,5.95,6.77 +10,4.11,4.32,4.76,5.16,5.65,6.36,7.24 +11,4.25,4.44,4.87,5.31,5.91,6.83,7.75 +12,4.38,4.58,4.97,5.46,6.17,7.29,8.32 +13,4.51,4.72,5.06,5.57,6.47,7.75,8.89 +14,4.62,4.87,5.16,5.67,6.84,8.22,9.45 +15,4.72,5.02,5.25,5.83,7.20,8.68,10.02 +16,4.81,5.19,5.40,6.03,7.57,9.14,10.59 +17,4.90,5.36,5.56,6.29,7.95,9.61,11.16 +18,4.99,5.55,5.76,6.60,8.33,10.07,11.72 +19,5.09,5.73,5.97,6.91,8.71,10.54,12.29 +20,5.21,5.92,6.18,7.22,9.09,10.95,12.86 +21,5.33,6.10,6.39,7.53,9.47,11.36,13.42 +22,5.46,6.29,6.61,7.84,9.86,11.77,13.99 +23,5.60,6.47,6.83,8.09,10.24,12.24,14.56 +24,5.73,6.65,7.04,8.35,10.62,12.70,15.12 +25,5.87,6.81,7.26,8.61,11.00,13.17,15.69 +26,6.00,6.97,7.47,8.87,11.38,13.58,16.21 +27,6.13,7.12,7.70,9.13,11.76,13.99,16.72 +28,6.27,7.28,7.93,9.40,12.15,14.40,17.29 +29,6.40,7.44,8.16,9.68,12.53,14.87,17.86 +30,6.54,7.62,8.37,9.96,12.91,15.33,18.42 +31,6.67,7.79,8.60,10.24,13.29,15.79,18.99 +32,6.80,7.97,8.83,10.53,13.67,16.26,19.56 +33,6.94,8.14,9.04,10.82,14.04,16.72,20.13 +34,7.06,8.32,9.27,11.10,14.41,17.19,20.68 +35,7.19,8.50,9.49,11.39,14.78,17.65,21.24 +36,7.31,8.67,9.70,11.67,15.15,18.11,21.79 +37,7.43,8.85,9.93,11.95,15.51,18.58,22.33 +38,7.56,9.02,10.16,12.23,15.86,19.04,22.87 +39,7.67,9.20,10.37,12.51,16.20,19.51,23.40 +40,7.78,9.37,10.59,12.78,16.53,19.97,23.93 +41,7.90,9.55,10.80,13.06,16.86,20.43,24.46 +42,8.01,9.72,11.02,13.34,17.19,20.90,24.97 +43,8.12,9.90,11.23,13.62,17.51,21.36,25.49 +44,8.23,10.07,11.43,13.90,17.82,21.83,26.00 +45,8.32,10.25,11.63,14.18,18.11,22.24,26.52 +46,8.40,10.41,11.83,14.45,18.40,22.65,27.03 +47,8.49,10.57,12.01,14.72,18.68,23.06,27.55 +48,8.57,10.71,12.20,14.98,18.95,23.48,28.01 +49,8.65,10.85,12.37,15.23,19.21,23.89,28.42 +50,8.73,10.97,12.55,15.47,19.45,24.25,28.79 +51,8.82,11.08,12.71,15.69,19.69,24.61,29.15 +52,8.90,11.19,12.88,15.90,19.93,24.92,29.51 +53,8.98,11.29,13.03,16.10,20.17,25.18,29.82 +54,9.06,11.39,13.19,16.31,20.40,25.38,30.07 +55,9.14,11.50,13.33,16.52,20.64,25.54,30.33 +56,9.23,11.60,13.48,16.72,20.88,25.69,30.54 +57,9.31,11.70,13.61,16.93,21.10,25.85,30.74 +58,9.39,11.80,13.74,17.08,21.32,26.00,30.95 +59,9.47,11.91,13.87,17.24,21.53,26.16,31.16 +60,9.56,12.00,13.99,17.39,21.72,26.31,31.36 +61,9.64,12.09,14.10,17.50,21.91,26.47,31.57 +62,9.72,12.19,14.22,17.60,22.08,26.62,31.78 +63,9.80,12.28,14.33,17.70,22.25,26.78,31.98 +64,9.89,12.37,14.43,17.81,22.40,26.93,32.19 +65,9.97,12.46,14.54,17.91,22.55,27.08,32.39 +66,10.05,12.56,14.63,18.02,22.68,27.24,32.60 +67,10.12,12.65,14.72,18.15,22.81,27.39,32.81 +68,10.20,12.74,14.82,18.28,22.92,27.55,33.01 +69,10.27,12.84,14.91,18.42,23.02,27.70,33.22 +70,10.33,12.93,15.00,18.58,23.13,27.86,33.43 +71,14.87,16.74,18.61,20.64,24.93,29.15,34.46 +72,18.78,20.56,22.22,23.22,26.73,30.69,35.49 +73,22.08,23.75,25.31,25.80,28.54,32.24,36.26 +74,24.35,26.13,27.63,28.37,30.34,33.53,37.03 +75,25.59,27.36,29.18,29.92,31.89,34.56,37.55 +76,26.83,28.39,29.95,30.95,33.18,35.33,38.06 +77,27.86,29.32,30.62,31.72,34.21,35.85,38.48 +78,28.79,30.20,31.24,32.50,34.98,36.31,38.89 +79,29.51,31.07,31.81,33.01,35.50,36.78,39.30 +80,30.13,31.95,32.32,33.43,35.91,37.19,39.71 +81,30.69,32.41,32.79,33.84,36.32,37.60,40.13 +82,31.21,32.87,33.24,34.25,36.73,38.01,40.54 +83,31.67,33.31,33.68,34.66,37.15,38.43,40.95 +84,32.08,33.74,34.12,35.07,37.56,38.84,41.36 +85,32.50,34.17,34.54,35.49,37.97,39.25,41.78 +86,32.91,34.58,34.95,35.90,38.38,39.66,42.19 +87,33.32,34.99,35.37,36.31,38.80,40.07,42.60 +88,33.73,35.40,35.80,36.72,39.21,40.49,43.01 +89,34.15,35.82,36.23,37.14,39.62,40.90,43.43 +90,34.56,36.23,36.65,37.55,40.03,41.31,43.84 +91,34.97,36.64,37.06,37.96,40.45,41.72,44.25 +92,35.38,37.05,37.47,38.37,40.86,42.14,44.66 +93,35.80,37.47,37.86,38.79,41.27,42.55,45.08 +94,36.21,37.88,38.23,39.20,41.68,42.96,45.49 +95,36.62,38.29,38.60,39.61,42.10,43.37,45.90 +96,37.02,38.65,38.97,40.02,42.51,43.79,46.31 +97,37.43,39.01,39.34,40.44,42.92,44.20,46.72 +98,37.83,39.37,39.71,40.85,43.33,44.61,47.14 +99,38.23,39.73,40.09,41.26,43.75,45.02,47.55 +100,38.63,40.10,40.46,41.67,44.16,45.44,47.96 +101,38.99,40.46,40.83,42.02,44.54,45.84,48.36 +102,39.35,40.82,41.20,42.37,44.92,46.24,48.77 +103,39.71,41.18,41.57,42.72,45.30,46.64,49.17 +104,40.07,41.54,41.94,43.08,45.68,47.04,49.57 +105,40.44,41.90,42.31,43.43,46.07,47.45,49.97 +106,40.80,42.26,42.68,43.78,46.45,47.85,50.37 +107,41.16,42.62,43.05,44.13,46.83,48.25,50.78 +108,41.52,42.98,43.43,44.48,47.21,48.65,51.18 +109,41.88,43.34,43.80,44.83,47.59,49.05,51.58 +110,42.24,43.70,44.17,45.18,47.97,49.46,51.98 +111,42.59,44.06,44.54,45.53,48.35,49.86,52.39 +112,42.94,44.43,44.91,45.88,48.74,50.26,52.79 +113,43.29,44.79,45.28,46.23,49.12,50.66,53.19 +114,43.64,45.15,45.65,46.58,49.50,51.07,53.59 +115,43.99,45.51,46.02,46.93,49.88,51.47,53.99 +116,44.34,45.87,46.40,47.28,50.26,51.87,54.40 +117,44.69,46.23,46.77,47.63,50.64,52.27,54.80 +118,45.04,46.59,47.14,47.98,51.02,52.67,55.20 +119,45.39,46.95,47.51,48.33,51.41,53.08,55.60 +120,45.75,47.31,47.88,48.68,51.79,53.48,56.00 +121,46.10,47.67,48.25,49.03,52.17,53.88,56.41 +122,46.45,48.03,48.62,49.38,52.55,54.28,56.81 +123,46.80,48.40,48.99,49.74,52.93,54.68,57.21 +124,47.15,48.76,49.36,50.09,53.31,55.09,57.61 +125,47.50,49.12,49.74,50.44,53.69,55.49,58.01 +126,47.85,49.48,50.11,50.79,54.08,55.89,58.42 +127,48.20,49.84,50.48,51.14,54.46,56.29,58.82 +128,48.55,50.20,50.85,51.49,54.84,56.69,59.22 +129,48.90,50.56,51.22,51.84,55.22,57.10,59.62 +130,49.25,50.92,51.59,52.19,55.60,57.50,60.02 +131,49.60,51.28,51.96,52.54,55.98,57.90,60.43 +132,49.95,51.64,52.33,52.89,56.36,58.30,60.83 +133,50.30,52.00,52.70,53.24,56.75,58.71,61.23 +134,50.65,52.36,53.08,53.59,57.13,59.11,61.63 +135,51.00,52.73,53.45,53.94,57.51,59.51,62.04 +136,51.35,53.09,53.82,54.29,57.89,59.91,62.44 +137,51.70,53.45,54.19,54.64,58.27,60.31,62.84 +138,52.06,53.81,54.56,54.99,58.65,60.72,63.24 +139,52.41,54.17,54.93,55.34,59.04,61.12,63.64 +140,52.76,54.53,55.30,55.69,59.42,61.52,64.05 +141,53.11,54.89,55.67,56.05,59.80,61.92,64.45 +142,53.46,55.25,56.05,56.40,60.18,62.32,64.85 +143,53.81,55.61,56.42,56.75,60.56,62.73,65.25 +144,54.16,55.97,56.79,57.10,60.94,63.13,65.65 +145,54.51,56.33,57.16,57.45,61.32,63.53,66.06 +146,54.86,56.69,57.53,57.80,61.71,63.93,66.46 +147,55.21,57.06,57.90,58.15,62.09,64.33,66.86 +148,55.56,57.42,58.27,58.50,62.47,64.74,67.26 +149,55.91,57.78,58.64,58.85,62.85,65.14,67.66 +150,56.26,58.14,59.01,59.20,63.23,65.54,68.07 diff --git a/art/products/GroundRes.csv b/art/products/GroundRes.csv new file mode 100644 index 0000000..fc4b1bd --- /dev/null +++ b/art/products/GroundRes.csv @@ -0,0 +1,151 @@ +Exceed,2,3,4,5,6,7,8 +1,4.02,4.12,4.35,4.40,4.59,4.63,4.73 +2,4.08,4.28,4.61,4.71,5.00,5.09,5.35 +3,4.17,4.43,4.81,4.97,5.26,5.40,5.81 +4,4.29,4.58,5.02,5.23,5.52,5.66,6.12 +5,4.42,4.71,5.20,5.43,5.72,5.92,6.43 +6,4.57,4.84,5.35,5.64,5.93,6.18,6.69 +7,4.71,4.96,5.45,5.79,6.13,6.38,6.95 +8,4.85,5.08,5.56,5.90,6.29,6.64,7.36 +9,4.98,5.21,5.66,6.00,6.44,6.95,7.77 +10,5.11,5.32,5.76,6.16,6.65,7.36,8.24 +11,5.25,5.44,5.87,6.31,6.91,7.83,8.75 +12,5.38,5.58,5.97,6.46,7.17,8.29,9.32 +13,5.51,5.72,6.06,6.57,7.47,8.75,9.89 +14,5.62,5.87,6.16,6.67,7.84,9.22,10.45 +15,5.72,6.02,6.25,6.83,8.20,9.68,11.02 +16,5.81,6.19,6.40,7.03,8.57,10.14,11.59 +17,5.90,6.36,6.56,7.29,8.95,10.61,12.16 +18,5.99,6.55,6.76,7.60,9.33,11.07,12.72 +19,6.09,6.73,6.97,7.91,9.71,11.54,13.29 +20,6.21,6.92,7.18,8.22,10.09,11.95,13.86 +21,6.33,7.10,7.39,8.53,10.47,12.36,14.42 +22,6.46,7.29,7.61,8.84,10.86,12.77,14.99 +23,6.60,7.47,7.83,9.09,11.24,13.24,15.56 +24,6.73,7.65,8.04,9.35,11.62,13.70,16.12 +25,6.87,7.81,8.26,9.61,12.00,14.17,16.69 +26,7.00,7.97,8.47,9.87,12.38,14.58,17.21 +27,7.13,8.12,8.70,10.13,12.76,14.99,17.72 +28,7.27,8.28,8.93,10.40,13.15,15.40,18.29 +29,7.40,8.44,9.16,10.68,13.53,15.87,18.86 +30,7.54,8.62,9.37,10.96,13.91,16.33,19.42 +31,7.67,8.79,9.60,11.24,14.29,16.79,19.99 +32,7.80,8.97,9.83,11.53,14.67,17.26,20.56 +33,7.94,9.14,10.04,11.82,15.04,17.72,21.13 +34,8.06,9.32,10.27,12.10,15.41,18.19,21.68 +35,8.19,9.50,10.49,12.39,15.78,18.65,22.24 +36,8.31,9.67,10.70,12.67,16.15,19.11,22.79 +37,8.43,9.85,10.93,12.95,16.51,19.58,23.33 +38,8.56,10.02,11.16,13.23,16.86,20.04,23.87 +39,8.67,10.20,11.37,13.51,17.20,20.51,24.40 +40,8.78,10.37,11.59,13.78,17.53,20.97,24.93 +41,8.90,10.55,11.80,14.06,17.86,21.43,25.46 +42,9.01,10.72,12.02,14.34,18.19,21.90,25.97 +43,9.12,10.90,12.23,14.62,18.51,22.36,26.49 +44,9.23,11.07,12.43,14.90,18.82,22.83,27.00 +45,9.32,11.25,12.63,15.18,19.11,23.24,27.52 +46,9.40,11.41,12.83,15.45,19.40,23.65,28.03 +47,9.49,11.57,13.01,15.72,19.68,24.06,28.55 +48,9.57,11.71,13.20,15.98,19.95,24.48,29.01 +49,9.65,11.85,13.37,16.23,20.21,24.89,29.42 +50,9.73,11.97,13.55,16.47,20.45,25.25,29.79 +51,9.82,12.08,13.71,16.69,20.69,25.61,30.15 +52,9.90,12.19,13.88,16.90,20.93,25.92,30.51 +53,9.98,12.29,14.03,17.10,21.17,26.18,30.82 +54,10.06,12.39,14.19,17.31,21.40,26.38,31.07 +55,10.14,12.50,14.33,17.52,21.64,26.54,31.33 +56,10.23,12.60,14.48,17.72,21.88,26.69,31.54 +57,10.31,12.70,14.61,17.93,22.10,26.85,31.74 +58,10.39,12.80,14.74,18.08,22.32,27.00,31.95 +59,10.47,12.91,14.87,18.24,22.53,27.16,32.16 +60,10.56,13.00,14.99,18.39,22.72,27.31,32.36 +61,10.64,13.09,15.10,18.50,22.91,27.47,32.57 +62,10.72,13.19,15.22,18.60,23.08,27.62,32.78 +63,10.80,13.28,15.33,18.70,23.25,27.78,32.98 +64,10.89,13.37,15.43,18.81,23.40,27.93,33.19 +65,10.97,13.46,15.54,18.91,23.55,28.08,33.39 +66,11.05,13.56,15.63,19.02,23.68,28.24,33.60 +67,11.12,13.65,15.72,19.15,23.81,28.39,33.81 +68,11.20,13.74,15.82,19.28,23.92,28.55,34.01 +69,11.27,13.84,15.91,19.42,24.02,28.70,34.22 +70,11.33,13.93,16.00,19.58,24.13,28.86,34.43 +71,15.87,17.74,19.61,21.64,25.93,30.15,35.46 +72,19.78,21.56,23.22,24.22,27.73,31.69,36.49 +73,23.08,24.75,26.31,26.80,29.54,33.24,37.26 +74,25.35,27.13,28.63,29.37,31.34,34.53,38.03 +75,26.59,28.36,30.18,30.92,32.89,35.56,38.55 +76,27.83,29.39,30.95,31.95,34.18,36.33,39.06 +77,28.86,30.32,31.62,32.72,35.21,36.85,39.48 +78,29.79,31.20,32.24,33.50,35.98,37.31,39.89 +79,30.51,32.07,32.81,34.01,36.50,37.78,40.30 +80,31.13,32.95,33.32,34.43,36.91,38.19,40.71 +81,31.69,33.41,33.79,34.84,37.32,38.60,41.13 +82,32.21,33.87,34.24,35.25,37.73,39.01,41.54 +83,32.67,34.31,34.68,35.66,38.15,39.43,41.95 +84,33.08,34.74,35.12,36.07,38.56,39.84,42.36 +85,33.50,35.17,35.54,36.49,38.97,40.25,42.78 +86,33.91,35.58,35.95,36.90,39.38,40.66,43.19 +87,34.32,35.99,36.37,37.31,39.80,41.07,43.60 +88,34.73,36.40,36.80,37.72,40.21,41.49,44.01 +89,35.15,36.82,37.23,38.14,40.62,41.90,44.43 +90,35.56,37.23,37.65,38.55,41.03,42.31,44.84 +91,35.97,37.64,38.06,38.96,41.45,42.72,45.25 +92,36.38,38.05,38.47,39.37,41.86,43.14,45.66 +93,36.80,38.47,38.86,39.79,42.27,43.55,46.08 +94,37.21,38.88,39.23,40.20,42.68,43.96,46.49 +95,37.62,39.29,39.60,40.61,43.10,44.37,46.90 +96,38.02,39.65,39.97,41.02,43.51,44.79,47.31 +97,38.43,40.01,40.34,41.44,43.92,45.20,47.72 +98,38.83,40.37,40.71,41.85,44.33,45.61,48.14 +99,39.23,40.73,41.09,42.26,44.75,46.02,48.55 +100,39.63,41.10,41.46,42.67,45.16,46.44,48.96 +101,39.99,41.46,41.83,43.02,45.54,46.84,49.36 +102,40.35,41.82,42.20,43.37,45.92,47.24,49.77 +103,40.71,42.18,42.57,43.72,46.30,47.64,50.17 +104,41.07,42.54,42.94,44.08,46.68,48.04,50.57 +105,41.44,42.90,43.31,44.43,47.07,48.45,50.97 +106,41.80,43.26,43.68,44.78,47.45,48.85,51.37 +107,42.16,43.62,44.05,45.13,47.83,49.25,51.78 +108,42.52,43.98,44.43,45.48,48.21,49.65,52.18 +109,42.88,44.34,44.80,45.83,48.59,50.05,52.58 +110,43.24,44.70,45.17,46.18,48.97,50.46,52.98 +111,43.59,45.06,45.54,46.53,49.35,50.86,53.39 +112,43.94,45.43,45.91,46.88,49.74,51.26,53.79 +113,44.29,45.79,46.28,47.23,50.12,51.66,54.19 +114,44.64,46.15,46.65,47.58,50.50,52.07,54.59 +115,44.99,46.51,47.02,47.93,50.88,52.47,54.99 +116,45.34,46.87,47.40,48.28,51.26,52.87,55.40 +117,45.69,47.23,47.77,48.63,51.64,53.27,55.80 +118,46.04,47.59,48.14,48.98,52.02,53.67,56.20 +119,46.39,47.95,48.51,49.33,52.41,54.08,56.60 +120,46.75,48.31,48.88,49.68,52.79,54.48,57.00 +121,47.10,48.67,49.25,50.03,53.17,54.88,57.41 +122,47.45,49.03,49.62,50.38,53.55,55.28,57.81 +123,47.80,49.40,49.99,50.74,53.93,55.68,58.21 +124,48.15,49.76,50.36,51.09,54.31,56.09,58.61 +125,48.50,50.12,50.74,51.44,54.69,56.49,59.01 +126,48.85,50.48,51.11,51.79,55.08,56.89,59.42 +127,49.20,50.84,51.48,52.14,55.46,57.29,59.82 +128,49.55,51.20,51.85,52.49,55.84,57.69,60.22 +129,49.90,51.56,52.22,52.84,56.22,58.10,60.62 +130,50.25,51.92,52.59,53.19,56.60,58.50,61.02 +131,50.60,52.28,52.96,53.54,56.98,58.90,61.43 +132,50.95,52.64,53.33,53.89,57.36,59.30,61.83 +133,51.30,53.00,53.70,54.24,57.75,59.71,62.23 +134,51.65,53.36,54.08,54.59,58.13,60.11,62.63 +135,52.00,53.73,54.45,54.94,58.51,60.51,63.04 +136,52.35,54.09,54.82,55.29,58.89,60.91,63.44 +137,52.70,54.45,55.19,55.64,59.27,61.31,63.84 +138,53.06,54.81,55.56,55.99,59.65,61.72,64.24 +139,53.41,55.17,55.93,56.34,60.04,62.12,64.64 +140,53.76,55.53,56.30,56.69,60.42,62.52,65.05 +141,54.11,55.89,56.67,57.05,60.80,62.92,65.45 +142,54.46,56.25,57.05,57.40,61.18,63.32,65.85 +143,54.81,56.61,57.42,57.75,61.56,63.73,66.25 +144,55.16,56.97,57.79,58.10,61.94,64.13,66.65 +145,55.51,57.33,58.16,58.45,62.32,64.53,67.06 +146,55.86,57.69,58.53,58.80,62.71,64.93,67.46 +147,56.21,58.06,58.90,59.15,63.09,65.33,67.86 +148,56.56,58.42,59.27,59.50,63.47,65.74,68.26 +149,56.91,58.78,59.64,59.85,63.85,66.14,68.66 +150,57.26,59.14,60.01,60.20,64.23,66.54,69.07 diff --git a/art/products/NextDayAir.csv b/art/products/NextDayAir.csv new file mode 100644 index 0000000..1d18c90 --- /dev/null +++ b/art/products/NextDayAir.csv @@ -0,0 +1,152 @@ +Exceed,102,103,104,105,106,107,108,124,125,126 +Letter,12.00,13.00,13.75,14.00,14.25,14.50,15.00,15.25,15.25,21.25 +1,14.25,16.00,19.00,20.25,21.50,22.25,22.75,24.25,24.25,35.25 +2,15.25,17.00,21.25,22.50,23.75,24.75,25.25,26.75,26.75,37.75 +3,16.25,18.00,23.50,25.00,26.25,27.25,28.00,29.50,29.50,40.50 +4,17.25,19.25,25.50,27.25,28.75,29.75,30.50,32.00,32.00,43.00 +5,18.25,20.25,27.75,29.75,31.25,32.25,33.00,34.50,34.50,45.50 +6,19.00,21.50,30.00,32.00,33.75,34.75,35.50,36.75,36.75,47.75 +7,19.75,22.50,32.00,34.25,36.25,37.25,38.00,39.00,39.00,50.00 +8,20.50,23.50,34.00,36.50,38.75,39.75,40.50,41.25,41.25,52.25 +9,21.25,24.50,36.25,38.75,41.00,42.25,43.00,43.75,43.75,54.75 +10,22.00,25.50,38.50,41.00,43.50,44.75,45.25,46.00,46.00,57.00 +11,22.75,26.75,40.50,43.25,45.75,47.25,47.75,48.25,48.25,59.25 +12,23.75,27.75,42.50,45.25,48.00,49.50,50.25,50.75,50.75,61.75 +13,24.50,29.00,44.50,47.50,50.25,51.75,52.75,53.25,53.25,64.25 +14,25.25,30.00,46.50,49.50,52.25,53.75,55.00,55.50,55.50,66.50 +15,26.00,31.00,48.25,51.25,54.25,55.75,57.25,57.50,57.50,68.50 +16,26.75,32.00,49.75,53.00,56.00,57.50,59.25,59.50,59.50,70.50 +17,27.50,33.00,51.25,54.75,57.50,59.25,61.00,61.25,61.25,72.25 +18,28.25,33.75,52.75,56.25,59.00,60.75,62.75,63.00,63.00,74.00 +19,29.00,34.50,54.25,57.75,60.50,62.25,64.50,64.75,64.75,75.75 +20,29.75,35.25,55.75,59.25,62.00,63.75,66.25,66.50,66.50,77.50 +21,30.50,36.00,57.25,60.75,63.50,65.50,68.00,68.25,68.25,79.25 +22,31.25,36.75,58.75,62.25,65.00,67.00,69.50,69.75,69.75,80.75 +23,32.00,37.50,60.25,63.75,66.50,68.50,71.00,71.25,71.25,82.25 +24,32.75,38.50,61.75,65.25,68.00,69.75,72.50,72.75,72.75,83.75 +25,33.50,39.50,63.25,67.00,69.75,71.25,73.75,74.00,74.00,85.00 +26,34.50,40.25,64.75,68.75,71.50,72.75,75.25,75.50,75.50,86.50 +27,35.25,41.00,66.50,70.50,73.00,74.25,76.75,77.00,77.00,88.00 +28,36.00,41.75,68.25,72.25,74.75,75.75,78.50,78.75,78.75,89.75 +29,36.75,42.50,69.75,73.75,76.25,77.25,80.25,80.50,80.50,91.50 +30,37.50,43.25,71.25,75.50,77.75,79.00,82.00,82.25,82.25,93.25 +31,38.50,44.25,73.00,77.25,79.25,80.75,83.75,84.00,84.00,95.00 +32,39.25,45.25,74.75,79.00,81.00,82.75,85.75,86.00,86.00,97.00 +33,40.25,46.25,76.50,80.75,82.75,84.50,87.50,87.75,87.75,98.75 +34,41.00,47.25,78.00,82.50,84.50,86.25,89.50,89.75,89.75,100.75 +35,41.75,48.25,79.75,84.50,86.50,88.25,91.50,91.75,91.75,102.75 +36,42.50,49.00,81.25,86.25,88.25,90.00,93.25,93.50,93.50,104.50 +37,43.25,49.75,82.75,88.00,90.00,92.00,95.25,95.50,95.50,106.50 +38,44.00,50.50,84.25,89.75,91.75,93.75,97.25,97.50,97.50,108.50 +39,44.75,51.50,85.75,91.50,93.50,95.75,99.25,99.50,99.50,110.50 +40,45.50,52.50,87.50,93.25,95.25,97.75,101.25,101.50,101.50,112.50 +41,46.25,53.25,89.25,95.00,97.25,99.75,103.25,103.50,103.50,114.50 +42,47.00,54.25,91.00,96.75,99.00,101.75,105.25,105.50,105.50,116.50 +43,47.75,55.25,92.50,98.50,101.00,103.75,107.25,107.50,107.50,118.50 +44,48.75,56.25,94.25,100.00,102.75,105.50,109.00,109.25,109.25,120.25 +45,49.75,57.25,96.00,101.75,104.50,107.25,110.75,111.00,111.00,122.00 +46,50.75,58.25,97.50,103.25,106.50,109.00,112.75,113.00,113.00,124.00 +47,51.50,59.25,99.00,104.75,108.25,110.75,114.75,115.00,115.00,126.00 +48,52.25,60.25,100.75,106.25,110.00,112.50,116.50,116.75,116.75,127.75 +49,53.00,61.50,102.50,108.00,111.75,114.25,118.25,118.50,118.50,129.50 +50,54.00,62.75,104.00,109.50,113.75,116.25,120.25,120.50,120.50,131.50 +51,55.00,64.00,105.50,111.00,115.75,118.25,122.25,122.50,122.50,133.50 +52,56.00,65.50,107.25,112.50,117.50,120.25,124.50,124.75,124.75,135.75 +53,57.00,66.75,108.75,114.00,119.50,122.25,126.50,126.75,126.75,137.75 +54,58.00,68.00,110.50,115.75,121.50,124.50,128.75,129.00,129.00,140.00 +55,59.00,69.50,112.00,117.50,123.50,126.75,131.00,131.25,131.25,142.25 +56,60.00,70.75,113.50,119.25,125.50,128.75,133.25,133.50,133.50,144.50 +57,61.00,72.25,115.25,121.00,127.25,131.00,135.50,135.75,135.75,146.75 +58,62.25,73.50,117.00,123.00,129.25,133.00,137.75,138.00,138.00,149.00 +59,63.25,75.00,119.00,124.75,131.25,135.25,140.25,140.50,140.50,151.50 +60,64.50,76.50,121.00,126.75,133.25,137.50,143.00,143.25,143.25,154.25 +61,65.75,78.00,122.75,129.00,135.50,140.00,145.50,145.75,145.75,156.75 +62,67.00,79.50,124.50,131.00,137.50,142.25,148.00,148.25,148.25,159.25 +63,68.25,81.00,126.25,133.00,139.75,144.75,150.75,151.00,151.00,162.00 +64,69.50,82.75,128.00,135.25,142.00,147.00,153.25,153.50,153.50,164.50 +65,70.75,84.50,130.00,137.75,144.50,149.50,156.00,156.25,156.25,167.25 +66,72.00,86.00,132.00,140.00,146.75,151.75,158.50,158.75,158.75,169.75 +67,73.25,87.50,134.00,142.25,149.25,154.25,161.00,161.25,161.25,172.25 +68,74.50,89.25,136.00,144.50,151.50,157.00,163.75,164.00,164.00,175.00 +69,76.00,91.00,138.00,146.50,153.75,159.50,166.25,166.50,166.50,177.50 +70,77.50,92.50,140.00,148.75,156.00,162.25,169.00,169.25,169.25,180.25 +71,78.75,94.00,142.25,151.00,158.25,164.75,171.50,171.75,171.75,182.75 +72,80.00,95.50,144.25,153.50,160.75,167.50,174.25,174.50,174.50,185.50 +73,81.25,97.00,146.50,155.75,163.00,170.25,177.00,177.25,177.25,188.25 +74,82.75,98.75,148.75,158.00,165.50,173.00,179.75,180.00,180.00,191.00 +75,84.00,100.50,151.25,160.25,168.00,175.75,182.50,182.75,182.75,193.75 +76,85.50,102.25,153.50,162.50,170.25,178.25,185.00,185.25,185.25,196.25 +77,87.00,104.00,155.75,164.75,172.50,180.50,187.50,187.75,187.75,198.75 +78,88.50,106.00,158.00,167.00,175.00,183.00,190.00,190.25,190.25,201.25 +79,90.00,107.75,160.50,169.25,177.50,185.50,192.50,192.75,192.75,203.75 +80,91.25,109.50,163.00,171.50,180.00,188.00,195.25,195.50,195.50,206.50 +81,92.75,111.25,165.50,173.75,182.50,190.50,197.75,198.00,198.00,209.00 +82,94.25,113.00,168.00,176.00,184.75,193.00,200.25,200.50,200.50,211.50 +83,95.75,114.75,170.25,178.25,187.25,195.50,202.75,203.00,203.00,214.00 +84,97.00,116.50,172.50,180.50,189.50,197.75,205.25,205.50,205.50,216.50 +85,98.25,118.50,174.75,182.75,192.00,200.25,207.75,208.00,208.00,219.00 +86,99.50,120.50,177.25,185.00,194.25,202.50,210.25,210.50,210.50,221.50 +87,100.75,122.50,179.50,187.25,196.50,205.00,212.75,213.00,213.00,224.00 +88,102.00,124.25,181.75,189.50,199.00,207.50,215.25,215.50,215.50,226.50 +89,103.25,126.00,184.00,191.75,201.25,210.00,218.00,218.25,218.25,229.25 +90,104.50,127.75,186.00,194.00,203.75,212.50,220.50,220.75,220.75,231.75 +91,105.75,129.50,188.00,196.25,206.00,214.75,223.00,223.25,223.25,234.25 +92,107.25,131.25,190.25,198.50,208.50,217.25,225.50,225.75,225.75,236.75 +93,108.50,133.00,192.25,200.50,211.00,219.75,228.00,228.25,228.25,239.25 +94,109.75,134.50,194.50,202.75,213.25,222.25,230.75,231.00,231.00,242.00 +95,111.00,136.00,196.50,204.75,215.75,224.75,233.25,233.50,233.50,244.50 +96,112.25,137.75,198.50,206.75,218.00,227.00,235.75,236.00,236.00,247.00 +97,113.50,139.25,200.50,208.75,220.00,229.25,238.25,238.50,238.50,249.50 +98,114.75,140.75,202.50,210.75,222.00,231.50,240.75,241.00,241.00,252.00 +99,116.00,142.25,204.25,213.00,224.25,233.75,243.00,243.25,243.25,254.25 +100,117.25,143.75,206.00,215.00,226.25,235.75,245.25,245.50,245.50,256.50 +101,118.50,145.25,207.75,217.00,228.50,238.00,247.50,247.75,247.75,258.75 +102,119.75,146.75,209.75,219.00,230.75,240.25,249.75,250.00,250.00,261.00 +103,121.00,148.25,211.75,221.00,233.00,242.75,252.25,252.50,252.50,263.50 +104,122.25,149.75,213.75,223.25,235.25,245.00,254.75,255.00,255.00,266.00 +105,123.50,151.25,215.75,225.50,237.25,247.25,257.25,257.50,257.50,268.50 +106,124.75,152.75,218.00,227.50,239.50,249.50,259.75,260.00,260.00,271.00 +107,126.00,154.25,220.00,229.50,242.00,252.00,262.25,262.50,262.50,273.50 +108,127.25,155.75,222.00,231.50,244.25,254.50,264.75,265.00,265.00,276.00 +109,128.50,157.25,224.00,233.75,246.50,256.75,267.00,267.25,267.25,278.25 +110,129.75,158.75,226.25,236.00,248.75,259.00,269.25,269.50,269.50,280.50 +111,131.00,160.25,228.25,238.25,251.00,261.25,271.50,271.75,271.75,282.75 +112,132.25,161.75,230.25,240.50,253.25,263.75,274.00,274.25,274.25,285.25 +113,133.50,163.25,232.25,242.50,255.50,266.25,276.50,276.75,276.75,287.75 +114,134.75,164.75,234.25,244.50,258.00,268.75,279.00,279.25,279.25,290.25 +115,136.00,166.25,236.25,246.50,260.25,271.00,281.25,281.50,281.50,292.50 +116,137.25,167.75,238.25,248.50,262.50,273.50,283.75,284.00,284.00,295.00 +117,138.50,169.25,240.50,250.75,264.75,275.75,286.00,286.25,286.25,297.25 +118,139.75,170.75,242.50,252.75,267.00,278.00,288.50,288.75,288.75,299.75 +119,141.00,172.25,244.50,255.00,269.25,280.25,290.75,291.00,291.00,302.00 +120,142.25,173.75,246.50,257.00,271.50,282.75,293.25,293.50,293.50,304.50 +121,143.25,175.25,248.50,259.00,273.75,285.00,295.75,296.00,296.00,307.00 +122,144.25,176.75,250.75,261.25,276.25,287.50,298.25,298.50,298.50,309.50 +123,145.50,178.25,252.75,263.50,278.50,289.75,300.75,301.00,301.00,312.00 +124,146.75,179.75,254.75,265.50,280.75,292.00,303.25,303.50,303.50,314.50 +125,148.00,181.25,256.75,267.50,282.75,294.50,305.75,306.00,306.00,317.00 +126,149.25,182.75,258.75,269.50,285.00,296.75,308.25,308.50,308.50,319.50 +127,150.25,184.25,260.75,271.75,287.25,299.00,310.50,310.75,310.75,321.75 +128,151.25,185.75,263.00,274.00,289.50,301.50,313.00,313.25,313.25,324.25 +129,152.25,187.25,265.00,276.25,291.75,304.00,315.50,315.75,315.75,326.75 +130,153.50,188.75,267.00,278.50,294.00,306.25,318.25,318.50,318.50,329.50 +131,154.75,190.25,269.00,280.50,296.25,308.50,320.75,321.00,321.00,332.00 +132,156.00,191.75,271.00,282.75,298.50,310.75,323.25,323.50,323.50,334.50 +133,157.00,193.25,273.25,285.00,300.75,313.00,325.75,326.00,326.00,337.00 +134,158.00,194.75,275.25,287.00,303.00,315.50,328.25,328.50,328.50,339.50 +135,159.00,196.25,277.25,289.00,305.25,317.75,330.75,331.00,331.00,342.00 +136,160.00,197.50,279.25,291.00,307.50,320.00,333.00,333.25,333.25,344.25 +137,161.00,198.75,281.25,293.25,309.75,322.50,335.50,335.75,335.75,346.75 +138,161.75,200.00,283.25,295.25,312.00,325.00,338.00,338.25,338.25,349.25 +139,162.50,201.25,285.25,297.25,314.50,327.50,340.50,340.75,340.75,351.75 +140,163.25,202.50,287.25,299.50,316.75,329.75,342.75,343.00,343.00,354.00 +141,164.00,203.75,289.25,301.75,319.00,332.25,345.25,345.50,345.50,356.50 +142,164.50,204.75,291.25,304.00,321.25,334.50,347.75,348.00,348.00,359.00 +143,165.25,206.00,293.25,306.25,323.50,336.75,350.00,350.25,350.25,361.25 +144,166.00,207.00,295.00,308.50,326.00,339.25,352.50,352.75,352.75,363.75 +145,166.75,208.00,296.50,310.75,328.25,341.50,355.00,355.25,355.25,366.25 +146,167.50,208.75,298.00,313.00,330.75,344.00,357.50,357.75,357.75,368.75 +147,168.25,209.50,299.50,315.00,333.00,346.25,360.00,360.25,360.25,371.25 +148,168.75,210.25,300.75,317.00,335.25,348.50,362.25,362.50,362.50,373.50 +149,169.25,211.00,302.00,319.00,337.50,350.75,364.50,364.75,364.75,375.75 +150,170.00,211.75,303.25,321.00,339.50,353.00,366.75,367.00,367.00,378.00 diff --git a/art/products/NextDayAirSaver.csv b/art/products/NextDayAirSaver.csv new file mode 100644 index 0000000..b53df2b --- /dev/null +++ b/art/products/NextDayAirSaver.csv @@ -0,0 +1,152 @@ +Exceed,132,133,134,135,136,137,138 +Letter,10.50,11.00,12.00,12.25,12.50,12.75,13.00 +1,12.25,13.75,16.75,18.00,18.50,19.25,20.25 +2,13.25,14.75,18.50,19.75,20.50,21.50,22.50 +3,14.00,15.75,20.25,21.75,22.75,23.75,24.75 +4,14.75,16.50,22.25,23.50,24.75,26.00,26.75 +5,15.50,17.50,24.00,25.50,27.00,28.25,29.00 +6,16.25,18.25,26.00,27.75,29.50,30.50,31.25 +7,17.00,19.25,28.00,30.00,31.75,32.75,33.25 +8,17.75,20.00,30.00,32.00,34.00,35.00,35.50 +9,18.25,21.00,32.00,34.00,36.00,37.00,37.50 +10,19.00,22.00,33.75,36.00,38.25,39.25,39.75 +11,19.50,23.00,35.50,37.75,40.25,41.25,41.75 +12,20.25,24.00,37.25,39.75,42.25,43.25,43.75 +13,21.00,24.75,39.00,41.50,44.00,45.00,46.00 +14,21.75,25.75,40.50,43.25,45.75,46.75,48.25 +15,22.50,26.50,42.00,44.75,47.25,48.50,50.25 +16,23.00,27.25,43.25,46.25,48.75,50.00,52.00 +17,23.50,28.25,44.50,47.75,50.25,51.50,53.50 +18,24.25,29.00,45.75,49.00,51.50,52.75,54.75 +19,25.00,29.75,47.25,50.50,53.00,54.25,56.25 +20,25.50,30.25,48.75,52.00,54.25,55.50,57.75 +21,26.25,31.00,50.00,53.25,55.50,57.00,59.25 +22,27.00,31.75,51.25,54.50,56.75,58.25,60.50 +23,27.50,32.50,52.50,55.75,58.00,59.50,61.75 +24,28.25,33.25,54.00,57.25,59.50,61.00,63.25 +25,29.00,34.00,55.25,58.75,61.00,62.50,64.75 +26,29.75,34.75,56.50,60.25,62.50,64.00,66.50 +27,30.25,35.25,58.00,61.75,64.00,65.50,68.00 +28,31.00,36.00,59.50,63.25,65.50,67.00,69.50 +29,31.75,36.75,61.00,64.75,67.00,68.50,71.00 +30,32.25,37.25,62.25,66.00,68.25,69.75,72.25 +31,33.00,38.00,63.75,67.50,69.75,71.25,73.75 +32,33.75,38.75,65.25,69.00,71.25,72.75,75.25 +33,34.50,39.75,66.75,70.50,72.75,74.25,76.75 +34,35.00,40.50,68.25,72.00,74.25,75.75,78.25 +35,35.75,41.25,69.75,73.50,75.75,77.25,79.75 +36,36.50,42.00,71.00,75.00,77.25,78.75,81.50 +37,37.25,42.75,72.50,76.50,78.75,80.25,83.25 +38,38.00,43.50,73.75,78.00,80.50,82.00,85.00 +39,38.50,44.25,75.00,79.75,82.25,83.75,86.75 +40,39.25,45.00,76.50,81.25,84.00,85.50,88.50 +41,39.75,45.75,78.00,82.75,85.50,87.00,90.25 +42,40.50,46.50,79.75,84.50,87.25,88.75,92.00 +43,41.25,47.50,81.25,86.25,89.00,90.50,93.75 +44,42.00,48.50,82.75,87.75,90.50,92.25,95.50 +45,42.75,49.25,84.00,89.00,92.00,93.75,97.00 +46,43.50,50.25,85.50,90.50,93.50,95.25,98.75 +47,44.25,51.25,86.75,91.75,95.00,96.75,100.25 +48,45.00,52.25,88.25,93.25,96.50,98.25,102.00 +49,45.75,53.25,89.75,94.75,98.00,99.75,103.75 +50,46.50,54.25,91.00,96.00,99.50,101.50,105.50 +51,47.25,55.25,92.50,97.50,101.00,103.25,107.25 +52,48.25,56.25,94.00,99.00,102.75,105.00,109.00 +53,49.00,57.25,95.25,100.25,104.50,106.75,110.75 +54,50.00,58.25,96.50,101.50,106.25,108.50,112.75 +55,50.75,59.50,98.00,103.00,108.00,110.50,114.75 +56,51.75,60.75,99.25,104.50,109.50,112.50,116.75 +57,52.50,62.00,100.75,106.00,111.25,114.25,118.50 +58,53.50,63.25,102.25,107.50,113.00,116.25,120.50 +59,54.50,64.75,104.00,109.25,114.75,118.25,122.50 +60,55.50,66.00,105.50,111.00,116.50,120.25,124.75 +61,56.50,67.25,107.00,113.00,118.50,122.50,127.00 +62,57.75,68.50,108.75,114.75,120.25,124.50,129.50 +63,58.75,69.75,110.75,116.75,122.25,126.75,132.00 +64,60.00,71.25,112.50,118.50,124.00,128.75,134.25 +65,61.00,72.75,114.00,120.50,126.00,131.00,136.50 +66,62.00,74.00,115.50,122.50,128.00,133.00,138.75 +67,63.00,75.25,117.25,124.25,130.25,135.25,141.00 +68,64.25,76.75,119.00,126.25,132.25,137.25,143.25 +69,65.50,78.25,120.75,128.00,134.25,139.25,145.50 +70,66.75,79.50,122.50,130.00,136.50,141.50,147.75 +71,67.75,80.75,124.25,131.75,138.50,144.00,150.25 +72,69.00,82.25,126.00,133.75,140.50,146.25,152.50 +73,70.00,83.75,128.00,135.75,142.50,148.50,154.75 +74,71.25,85.25,130.00,137.75,144.75,151.00,157.25 +75,72.50,86.75,132.25,140.00,147.00,153.25,159.50 +76,73.75,88.00,134.25,142.00,149.00,155.50,161.75 +77,75.00,89.50,136.25,144.00,151.00,157.75,164.25 +78,76.25,91.25,138.25,146.00,153.00,160.00,166.50 +79,77.25,92.75,140.25,148.00,155.00,162.00,168.75 +80,78.50,94.25,142.50,150.25,157.25,164.25,171.00 +81,79.75,95.75,144.75,152.50,159.50,166.75,173.50 +82,81.00,97.25,147.00,154.75,161.75,169.00,175.75 +83,82.25,98.75,149.00,156.75,163.75,171.00,177.75 +84,83.25,100.25,151.00,158.75,166.00,173.25,180.00 +85,84.50,102.00,153.00,160.75,168.00,175.25,182.00 +86,85.50,103.75,155.25,163.00,170.25,177.50,184.25 +87,86.50,105.25,157.25,165.00,172.25,179.50,186.25 +88,87.50,106.75,159.25,167.00,174.25,181.50,188.50 +89,88.75,108.25,161.00,168.75,176.25,183.50,190.75 +90,89.75,109.75,163.00,170.75,178.50,185.75,193.00 +91,90.75,111.25,164.75,172.50,180.50,188.00,195.25 +92,92.00,112.75,166.50,174.25,182.50,190.00,197.25 +93,93.25,114.25,168.25,176.00,184.50,192.00,199.50 +94,94.25,115.50,170.00,177.75,186.50,194.25,201.75 +95,95.50,116.75,171.75,179.50,188.50,196.50,204.00 +96,96.50,118.25,173.50,181.25,190.25,198.50,206.00 +97,97.50,119.50,175.25,183.00,192.25,200.50,208.25 +98,98.50,121.00,177.00,184.75,194.00,202.25,210.25 +99,99.75,122.25,178.75,186.50,196.00,204.25,212.25 +100,100.75,123.50,180.25,188.25,198.00,206.25,214.50 +101,101.75,125.00,181.75,189.75,200.00,208.25,216.50 +102,103.00,126.25,183.50,191.50,201.75,210.25,218.50 +103,104.00,127.50,185.25,193.25,203.75,212.25,220.75 +104,105.00,128.75,187.00,195.00,205.50,214.25,223.00 +105,106.25,130.00,188.75,197.00,207.50,216.25,225.00 +106,107.25,131.50,190.50,198.75,209.50,218.25,227.00 +107,108.25,132.75,192.25,200.50,211.75,220.50,229.25 +108,109.25,134.00,194.00,202.25,213.75,222.75,231.50 +109,110.50,135.25,195.75,204.25,215.75,224.75,233.50 +110,111.50,136.50,197.75,206.25,217.75,226.75,235.50 +111,112.50,137.75,199.50,208.25,220.00,229.00,237.75 +112,113.75,139.25,201.25,210.25,222.00,231.00,239.75 +113,114.75,140.50,203.00,212.00,223.75,233.00,242.00 +114,115.75,141.75,204.75,213.75,225.50,235.00,244.25 +115,117.00,143.25,206.50,215.50,227.50,237.00,246.25 +116,118.25,144.50,208.25,217.50,229.50,239.00,248.25 +117,119.25,145.75,210.25,219.50,231.50,241.00,250.25 +118,120.25,147.00,212.00,221.25,233.50,243.00,252.50 +119,121.25,148.25,213.75,223.00,235.50,245.00,254.50 +120,122.25,149.50,215.75,225.00,237.50,247.25,256.75 +121,123.25,150.75,217.50,226.75,239.50,249.25,258.75 +122,124.25,151.75,219.50,228.75,241.75,251.50,261.00 +123,125.25,153.00,221.25,230.50,243.75,253.50,263.25 +124,126.25,154.25,223.00,232.25,245.75,255.50,265.50 +125,127.25,155.50,224.75,234.00,247.50,257.50,267.50 +126,128.25,156.75,226.50,235.75,249.50,259.50,269.75 +127,129.25,158.00,228.25,237.50,251.50,261.50,271.75 +128,130.00,159.50,230.00,239.50,253.50,263.75,274.00 +129,131.00,161.00,231.75,241.75,255.75,266.00,276.25 +130,132.00,162.50,233.50,243.75,257.75,268.00,278.25 +131,133.00,163.75,235.25,245.50,259.50,270.00,280.50 +132,134.00,165.00,237.00,247.25,261.25,272.00,282.75 +133,135.00,166.50,239.00,249.25,263.25,274.00,285.00 +134,136.00,167.75,240.75,251.00,265.25,276.00,287.00 +135,136.75,169.00,242.50,252.75,267.25,278.00,289.00 +136,137.50,170.00,244.25,254.50,269.25,280.25,291.25 +137,138.25,171.00,246.00,256.25,271.25,282.25,293.50 +138,139.00,171.75,247.75,258.00,273.25,284.50,295.75 +139,139.75,172.75,249.50,260.00,275.25,286.50,297.75 +140,140.50,174.00,251.25,262.00,277.25,288.75,300.00 +141,141.25,175.25,253.00,264.00,279.25,290.75,302.25 +142,141.75,176.25,254.75,265.75,281.25,292.75,304.25 +143,142.25,177.00,256.50,267.75,283.25,294.75,306.50 +144,142.75,177.75,258.00,269.75,285.25,296.75,308.75 +145,143.50,178.75,259.50,271.75,287.50,299.00,311.00 +146,144.00,179.50,260.75,273.75,289.50,301.00,313.00 +147,144.75,180.25,262.00,275.50,291.25,303.00,315.00 +148,145.25,181.00,263.25,277.25,293.25,305.00,317.25 +149,145.75,181.50,264.50,279.00,295.25,307.00,319.25 +150,146.25,182.25,265.75,281.00,297.25,309.00,321.25 diff --git a/art/products/access.asc b/art/products/access.asc new file mode 100644 index 0000000..368c653 --- /dev/null +++ b/art/products/access.asc @@ -0,0 +1,6 @@ +username password name last_login super yes_tables no_tables upload acl export edit pages files config reconfig groups meta no_functions yes_functions table_control +__MVC_SUPERUSER__ __MVC_CRYPTPW__ Super User 1 +test sSPI6dOz/ciLg Papa Bear 962090612 0 2ndDayAir=vi Ground=vi NextDayAir=vix affiliate=vix area=vix country=vix inventory=vix locale=veix orderline=veix pricing=veix products=veix shipping=veix transactions=veix userdb=ex variable=ex mv_metadata access inventory pricing products cat pricing products inventory orderline pricing products ind* news* about* privacy* error.log etc/* 0 1 :orders products item=lvecd group=lv group=lv order=lvecau dbdownload laydownload orderstats userdb=lvep {'pricing' => {'no_fields' => "price_group",},'products' => {'no_keys' => "00-342",'no_fields' => "weight nontaxable",'yes_keys' => "00-0011 00-0011a 00-342 00-343 00-404",'yes_fields' => "sku artist title description comment price",},} +shipping ceJq5Qwc3ApHQ Shipping User 962075741 0 orderline transactions orderline transactions NONE etc/tracking.asc orders/* 0 0 :orders orderline transactions order=d access=vl group=vl {'transactions' => {'yes_fields' => "code status",},'orderline' => {'yes_fields' => "code status",},} +:backup Backup +:orders * Order admin 0 orderline transactions userdb userdb transactions orderline orderline transactions userdb order=d diff --git a/art/products/affiliate.txt b/art/products/affiliate.txt new file mode 100644 index 0000000..2c3fdd0 --- /dev/null +++ b/art/products/affiliate.txt @@ -0,0 +1,9 @@ +affiliate name campaigns join_date url timeout active password +bill Bill's books +joe Joe's Garage +bob Low Bob's +tim Tiny Tim's +rosie Rosy Cheeks +mary Wedding Shop +jean Denim Unlimited +judy Puppets Galore diff --git a/art/products/area.txt b/art/products/area.txt new file mode 100644 index 0000000..f9c62cf --- /dev/null +++ b/art/products/area.txt @@ -0,0 +1,4 @@ +code sel name which_page sort display_type image image_prop banner_image banner_text link_type url tab page search selector link_template +O1 left Galleries all 00 name none browse1 browse1 1 +O2 left Other Stuff all 00 name none 2 +O3 left Links all 01 name none 3 diff --git a/art/products/banner.txt b/art/products/banner.txt new file mode 100644 index 0000000..b24cf3e --- /dev/null +++ b/art/products/banner.txt @@ -0,0 +1,8 @@ +code category weight rotate banner +Renaissance Renaissance 1 0 Renaissance banner 1 +Renaissance2 Renaissance 2 0 Renaissance banner 2 +Renaissance3 Renaissance 7 0 Renaissance banner 3 +Americana Americana 1 0 Americana banner 1 +Americana2 Americana 2 0 Americana banner 2 +Americana3 Americana 7 0 Americana banner 3 +default 1 Default banner 1{or}Default banner 2{or}Default banner 3 diff --git a/art/products/cat.txt b/art/products/cat.txt new file mode 100644 index 0000000..0c9f179 --- /dev/null +++ b/art/products/cat.txt @@ -0,0 +1,12 @@ +code sel name which_page sort display_type image image_prop banner_image banner_text link_type url tab page search selector link_template +O1 O1 Abstract 00 Abstract Gallery simple products category=Abstract +O2 O1 Expressionists 00 Expressionist Gallery simple products category=Expressionists +O3 O1 Impressionists 00 simple products category=Impressionists +O4 O1 Americana 00 Americana Gallery simple products category=Americana +O5 O1 Renaissance 00 simple products category=Renaissance +O6 O1 Surrealists 00 name Surrealist Gallery complex products fi=products st=db co=1 sf=category se=Surrealists op=eq nu=0 ml=5 tf=artist to=x category=Surrealists +O7 O3 MOMA -1 external http://www.moma.org products +O8 O3 Museum of Bad Art 02 external http://glyphs.com/moba/ products +O9 O3 Artchive 00 external http://www.artchive.com products fi=products co=1 sf=title se=y op=rm nu=0 su=1 ml=50 +O10 O2 Documentation 00 Interchange Documentation simple products category=docs +O11 O2 T-Shirts 00 Wearables simple http://store.steppenwolf.com products category=shirts diff --git a/art/products/country.txt b/art/products/country.txt new file mode 100644 index 0000000..4fe51b4 --- /dev/null +++ b/art/products/country.txt @@ -0,0 +1,198 @@ +code selector shipmodes name +AD AD air_D surf_D Andorra +AE AE air_F surf_F United Arab Emirates +AF AF air_F surf_F Afghanistan +AG AG air_C surf_C Antigua and Barbuda +AI AI air_C surf_C Anguilla +AL AL air_E surf_E Albania +AM AM air_F surf_F Armenia +AN AN air_C surf_C Netherlands Antilles +AO AO air_F surf_F Angola +AP AP air_E surf_E Azores +AR AR air_F surf_F Argentina +AT AT air_D surf_D Austria +AU AU air_F surf_F Australia +AW AW air_C surf_C Aruba +AZ AZ air_F surf_F Azerbaijan +BB BB air_D surf_D Barbados +BD BD air_F surf_F Bangladesh +BE BE air_F surf_F Belgium +BF BF air_F surf_F Burkina Faso +BG BG air_F surf_F Bulgaria +BH BH air_F surf_F Bahrain +BI BI air_F surf_F Burundi +BJ BJ air_E surf_E Benin +BM BM air_C surf_C Bermuda +BN BN air_F surf_F Brunei Darussalam +BO BO air_D surf_D Bolivia +BR BR air_F surf_F Brazil +BS BS air_C surf_C Bahamas +BT BT air_F surf_F Bhutan +BW BW air_F surf_F Botswana +BY BY air_F surf_F Belarus +BZ BZ air_C surf_C Belize +CA CA air_A surf_A Canada +CF CF air_F surf_F Central African Republic +CG CG air_F surf_F Congo +CH CH air_D surf_D Switzerland +CI CI air_F surf_F Cote d` Ivoire (Ivory Coast) +CL CL air_F surf_F Chile +CM CM air_F surf_F Cameroon +CN CN air_F surf_F China +CO CO air_D surf_D Colombia +CR CR air_C surf_C Costa Rica +CV CV air_F surf_F Cape Verde +CY CY air_E surf_E Cyprus +CZ CZ air_E surf_E Czech Republic +DE DE air_D surf_D Germany +DJ DJ air_F surf_F Djibouti +DK DK air_E surf_E Denmark +DM DM air_C surf_C Dominica +DO DO air_C surf_C Dominican Republic +DZ DZ air_F surf_F Algeria +EC EC air_E surf_E Ecuador +EE EE air_F surf_F Estonia +EG EG air_F surf_F Egypt +EI EI air_E surf_E Ireland (Eire) +ER ER air_F surf_F Eritrea +ES ES air_E surf_E Spain +ET ET air_F surf_F Ethiopia +FI FI air_F surf_F Finland +FJ FJ air_D surf_D Fiji +FO FO air_E surf_E Faroe Islands +FR FR air_F surf_F France (Includes Monaco) +GA GA air_F surf_F Gabon +GD GD air_C surf_C Grenada +GE GE air_F surf_F Georgia +GF GF air_E surf_E French Guiana +GH GH air_F surf_F Ghana +GI GI air_E surf_E Gibraltar +GL GL air_F surf_F Greenland +GM GM air_D surf_D Gambia +GN GN air_D surf_D Guinea +GP GP air_C surf_C Guadeloupe +GQ GQ air_F surf_F Equatorial Guinea +GR GR air_E surf_E Greece +GT GT air_C surf_C Guatemala +GW GW air_D surf_D Guinea-Bissau +GY GY air_D surf_D Guyana +HK HK air_E surf_E Hong Kong +HN HN air_D surf_D Honduras +HR HR air_E surf_E Croatia +HT HT air_C surf_C Haiti +HU HU air_E surf_E Hungary +ID ID air_F surf_F Indonesia +IL IL air_E surf_E Israel +IN IN air_F surf_F India +IR IR air_F surf_F Iran +IS IS air_E surf_E Iceland +IT IT air_E surf_E Italy +JM JM air_C surf_C Jamaica +JO JO air_E surf_E Jordan +JP JP air_F surf_F Japan +KE KE air_F surf_F Kenya +KI KI air_D surf_D Kiribati +KM KM air_F surf_F Comoros +KR KR air_E surf_E South Korea +KW KW air_F surf_F Kuwait +KY KY air_C surf_C Cayman Islands +KZ KZ air_F surf_F Kazakhstan +LA LA air_F surf_F Laos +LB LB air_E surf_E Lebanon +LC LC air_C surf_C St. Lucia +LI LI air_D surf_D Liechtenstein +LK LK air_F surf_F Sri Lanka +LS LS air_F surf_F Lesotho +LT LT air_F surf_F Lithuania +LU LU air_D surf_D Luxembourg +LY LY air_F surf_F Libya +MA MA air_E surf_E Morocco +ME ME air_D surf_D Madeira Islands +MG MG air_F surf_F Madagascar +MK MK air_E surf_E Macedonia +ML ML air_E surf_E Mali +MM MM air_F surf_F Myanmar (Burma) +MO MO air_E surf_E Macao +MQ MQ air_C surf_C Martinique +MR MR air_F surf_F Mauritania +MS MS air_C surf_C Montserrat +MT MT air_E surf_E Malta +MU MU air_F surf_F Mauritius +MV MV air_F surf_F Maldives +MW MW air_F surf_F Malawi +MX MX air_B surf_B Mexico +MZ MZ air_F surf_F Mozambique +NA NA air_F surf_F Namibia +NC NC air_F surf_F New Caledonia +NE NE air_F surf_F Niger +NG NG air_E surf_E Nigeria +NI NI air_D surf_D Nicaragua +NL NL air_E surf_E Netherlands +NO NO air_F surf_F Norway +NP NP air_F surf_F Nepal +NR NR air_E surf_E Nauru +NV NV air_C surf_C St. Christopher and Nevis +NZ NZ air_F surf_F New Zealand +OM OM air_F surf_F Oman +PA PA air_C surf_C Panama +PE PE air_F surf_F Peru +PG PG air_F surf_F Papua New Guinea +PH PH air_F surf_F Philippines +PK PK air_F surf_F Pakistan +PL PL air_D surf_D Poland +PM PM air_C surf_C St. Pierre and Miquelon +PT PT air_E surf_E Portugal +PY PY air_F surf_F Paraguay +RE RE air_F surf_F Reunion +RW RW air_F surf_F Rwanda +SA SA air_F surf_F Saudi Arabia +Sb Sb air_E surf_E Solomon Islands +SC SC air_F surf_F Seychelles +SD SD air_F surf_F Sudan +SE SE air_F surf_F Sweden +SG SG air_F surf_F Singapore +SH SH air_E surf_E St. Helena +SI SI air_E surf_E Slovenia +SK SK air_E surf_E Slovak Republic +SL SL air_F surf_F Sierra Leone +SN SN air_F surf_F Senegal +SR SR air_D surf_D Suriname +ST ST air_F surf_F Sao Tome and Principe +SV SV air_D surf_D El Salvador +SY SY air_E surf_E Syrian Arab Republic +SZ SZ air_F surf_F Swaziland +TA TA air_F surf_F French Polynesia (Tahiti) +TC TC air_C surf_C Turks and Caicos Islands +TD TD air_F surf_F Chad +TG TG air_F surf_F Togo +TH TH air_F surf_F Thailand +TN TN air_E surf_E Tunisia +TO TO air_D surf_D Tonga +TR TR air_E surf_E Turkey +TT TT air_D surf_D Trinidad and Tobago +TV TV air_D surf_D Tuvalu +TW TW air_E surf_E Taiwan +TZ TZ air_F surf_F Tanzania +UA UA air_F surf_F Ukraine +UG UG air_F surf_F Uganda +UK UK air_E surf_E United Kingdom +US US upsg upsb upsr United States +UY UY air_D surf_D Uruguay +VC VC air_C surf_C St. Vincent and the Grenadines +VE VE air_D surf_D Venezuela +VG VG air_C surf_C British Virgin Islands +VN VN air_F surf_F Vietnam +VU VU air_D surf_D Vanuatu +WF WF air_F surf_F Wallis and Furuna Islands +WS WS air_D surf_D Western Samoa +XB XB air_E surf_E Bosnia-Herzegovina +XE XE air_F surf_F Corsica +XO XO air_D surf_D Pitcairn Island +XS XS air_E surf_E Serbia-Montenegro +XU XU air_F surf_F Tristan da Cunha +XV XV air_E surf_E Vatican City +YE YE air_F surf_F Yemen +ZA ZA air_F surf_F South Africa +ZM ZM air_F surf_F Zambia +ZR ZR air_F surf_F Zaire +ZW ZW air_F surf_F Zimbabwe diff --git a/art/products/inventory.txt b/art/products/inventory.txt new file mode 100644 index 0000000..b9f8519 --- /dev/null +++ b/art/products/inventory.txt @@ -0,0 +1,32 @@ +sku quantity stock_message account cogs_account +00-0010 10 2-4 days +00-0011 10 4-6 weeks +00-0011a 10 4-6 weeks +00-2001 10 by special order +00-2002 10 by special order +00-340 10 by special order +00-341 10 by special order +00-342 10 by special order +00-343 10 by special order +00-344 10 by special order +00-402 10 by special order +00-403 10 by special order +00-404 10 by special order +19-202 10 by special order +19-203 10 by special order +19-204 10 by special order +21-221 10 by special order +22-002 10 by special order +22-003 10 by special order +22-200 10 by special order +22-201 10 by special order +34-101 10 by special order +98-101 10 by special order +98-102 10 by special order +99-102 100 2-4 days +99-301 10 by special order +99-322 10 by special order +99-329 10 by special order +MVFAQ1 100000 immediately +MVDOC1 100000 immediately +MVTAG1 100000 immediately diff --git a/art/products/locale.txt b/art/products/locale.txt new file mode 100644 index 0000000..ec29d83 --- /dev/null +++ b/art/products/locale.txt @@ -0,0 +1,26 @@ +code en_US de_DE fr_FR +January Januar Janvier +February Februar Février +March März Mars +April April Avril +May Mai Mai +June Juni Juin +July Juli Juillet +August August Aout +September September Septembre +October October Octobre +November November Novembre +December Dezember Décembre +PriceDivide 1 0.5409 0.1632 +ProductFiles +currency_symbol $ DM FF +decimal_point . . . +default 1 0 0 +frac_digits 2 2 2 +mon_decimal_point . , , +mon_thousand_sep +mon_thousands_sep , , . +p_cs_precedes 1 +p_sep_by_space 1 +price_picture DM ### ### ###,## +products de_products produits diff --git a/art/products/merchandising.txt b/art/products/merchandising.txt new file mode 100644 index 0000000..6ff3a54 --- /dev/null +++ b/art/products/merchandising.txt @@ -0,0 +1,6 @@ +sku featured banner_text banner_image blurb_begin blurb_end start finish upsell_to cross_sell others_bought +22-200 front Featured in the Abstract Gallery 20000806 20000806 +98-101 front Featured in the Expressionist Gallery 20000805 20001005 +00-402 front 20000806 20000806 +MVFAQ1 front The Fine Documentation 20000806 20000806 +MVDOC1 front Worth a look... 20000806 20000806 diff --git a/art/products/mv_metadata.asc b/art/products/mv_metadata.asc new file mode 100644 index 0000000..733f625 --- /dev/null +++ b/art/products/mv_metadata.asc @@ -0,0 +1,122 @@ +code type width height field db name outboard options attribute label help lookup filter help_url pre_filter lookup_exclude prepend append display_filter +2ndDayAir 200 +NextDayAir 200 +access::super select 0=No, 1=Yes +affiliate text 25 affiliate,name,url,active Affiliates Data +affiliate::affiliate text 12 Affiliate ID word +affiliate::join_date text Join date +affiliate::name text 50 Affiliate Name +affiliate::timeout text 8 Timeout delay (in seconds, 0 to disable) +affiliate::url text 70 URL Default URL to redirect to +area +area::display_type select name=Name,url=URL only,icon=Icon and name, image=Image +area::image imagedir __MVC_DOCUMENTROOT____MVC_IMAGEURL__/images +area::link_type select none=No link, external=External link (http://...), internal=Interchange page, simple=Simple search, complex=Complex search +cat::area multiple 5 area code +cat::display_type select name=Name,url=URL only,icon=Icon and name, image=Image +cat::link_type select none=No link, external=External link (http://...), internal=Interchange page, simple=Simple search, complex=Complex search +cat::search textarea 50 4 +country 200 +custview::userdb::dealer display =No,1=Yes Dealer +custview::userdb::email_copy display =No, 1=Yes Payment method +custview::userdb::fax_order display =Credit Card, 1=Fax or Mail, 2=Purchase order, 3=COD Payment method +custview::userdb::mail_list display offer=Special Offers, newsletter=Newsletter, alert=Alerts and Recalls, upgrade=Upgrades null_to_space +dbconfig::mv_metadata::code hidden_text Database table +dbconfig::mv_metadata::db combo tables nullselect +dbconfig::mv_metadata::field checkbox columns:: List on select page Must have the key field (usually it is the first one) null_to_comma +dbconfig::mv_metadata::filter multiple 5 filesafe=Safe for file name, uc=Upper case, nullselect=First non-null (combo box), null_to_space=Translate null to space, null_to_comma=Translate null to comma, lc=Lower case, digits_dot=Decimal number (not negative), backslash=Remove backslashes, namecase=Name case, name=Turn LAST,FIRST into FIRST LAST, digits=Digits only, word=Word chars only (A-z0-9_), unix=DOS to UNIX, dos=UNIX to DOS, mac=UNIX to MAC, gate=Only allow if scratch set, no_white=No whitespace, strip=Strip leading/trailing whitespace, sql=Escape single quotes (SQL), text2html=Simple text to HTML, urlencode=URL encode (%20, etc), pagefile=Safe for Interchange page name, entities=HTML entities (& -> &amp;), date_change=MM/DD/YYYY to YYYYMMDD null_to_space +dbconfig::mv_metadata::height text 4 Select page rows Number of rows to display at selector page. digits +dbconfig::mv_metadata::help textarea 70 4 Help displays at top of page +dbconfig::mv_metadata::help_url text 70 4 Help URL links below help text +dbconfig::mv_metadata::lookup text 20 +dbconfig::mv_metadata::name text 70 4 Description +dbconfig::mv_metadata::type select select=Select box, text=Text entry*,textarea=Textarea,combo=Combo Select, radio=Radio box, radio_nbsp=Radio (nbsp), checkbox=Check box, check_nbsp=Checkbox (nbsp), hidden_text=Hidden (show text), multiple=Multiple Select, imagedir=Image listing, date=Date selector,display=Text of option Widget type filesafe +dbconfig::mv_metadata::width text 4 digits +inventory 25 sku,quantity +inventory::stock_message select In stock, Ships in 3-5 days, Ships in 4-6 weeks, Special order +merchandising::banner_image text Banner image if appropriate +merchandising::banner_text text Banner text for use where appropriate. +merchandising::blurb_begin text Teaser catch line for feature display +merchandising::blurb_end text Closer end text for feature display +merchandising::cross_category select products =- none - category +merchandising::featured combo =none,front=Front page,cart=Shopping cart,receipt=Receipt Where featured nullselect +merchandising::finish date End date +merchandising::sku text products sku +merchandising::start date Start date +merchandising::upsell_to multiple 10 products sku null_to_space +mv_metadata text 100 code type label +mv_metadata::code text 50 Table::Column Table::column to be operated on +mv_metadata::db combo tables nullselect +mv_metadata::filter multiple 5 filesafe=Safe for file name, uc=Upper case, nullselect=First non-null (combo box), null_to_space=Translate null to space, null_to_comma=Translate null to comma, lc=Lower case, digits_dot=Decimal number (not negative), backslash=Remove backslashes, namecase=Name case, name=Turn LAST,FIRST into FIRST LAST, digits=Digits only, word=Word chars only (A-z0-9_), unix=DOS to UNIX, dos=UNIX to DOS, mac=UNIX to MAC, gate=Only allow if scratch set, no_white=No whitespace, strip=Strip leading/trailing whitespace, sql=Escape single quotes (SQL), text2html=Simple text to HTML, urlencode=URL encode (%20, etc), pagefile=Safe for Interchange page name, entities=HTML entities (& -> &amp;), date_change=MM/DD/YYYY to YYYYMMDD null_to_space +mv_metadata::height text 4 digits +mv_metadata::help textarea 70 4 +mv_metadata::lookup text 20 +mv_metadata::options text 60 +mv_metadata::type select select=Select box, text=Text entry*,textarea=Textarea,combo=Combo Select, radio=Radio box, radio_nbsp=Radio (nbsp), checkbox=Check box, check_nbsp=Checkbox (nbsp), hidden_text=Hidden (show text), multiple=Multiple Select, imagedir=Image listing, date=Date selector,display=Text of option Widget type filesafe +mv_metadata::width text 4 digits +order_view::orderline::status display pending=Pending, shipped=Shipped, backorder=Back ordered, credit=Waiting for credit check, canceled=Canceled nullselect +order_view::transactions::status display pending=Pending, shipped=Shipped, partial=Partially shipped, backorder=Back ordered, credit=Waiting for credit check, canceled=Canceled nullselect +orderline text code,sku,description,price, quantity,subtotal +orderline::status combo pending=Pending, shipped=Shipped, backorder=Back ordered, credit=Waiting for credit check, canceled=Canceled nullselect +pricing text 2 +pricing::price_group combo pricing Discount group price_group nullselect +products text sku,description,category,price +products::artist text 30 Artist +products::category combo products Category Enter in box for new category. category nullsellect +products::color textarea 50 5 +products::comment textarea 70 8 Long Description +products::description text 60 Short Description +products::image imagedir images/items Image nullselect upload +products::nontaxable select =Yes, 1=No Taxable? +products::price text 12 Product Price digits_dot +products::related multiple 5 sku products Related items

    (space separated SKUs) +products::size textarea 50 5 +products::sku SKU/Item code +products::thumb imagedir images/thumb nullselect upload +products::title text 30 Title namecase +products::weight text 4 Weight in pounds digits_dot +shipping text description +state text name +transactions::status combo pending=Pending, shipped=Shipped, partial=Partially shipped, backorder=Back ordered, credit=Waiting for credit check, canceled=Canceled nullselect +userdb text username,company,lname,fname +userdb::address1 text 40 Address +userdb::address2 text 40 +userdb::b_address1 text 40 Billing Address +userdb::b_address2 text 40 +userdb::b_city text 40 Billing City +userdb::b_country text 10 Billing Country +userdb::b_fname text 40 Billing First Name +userdb::b_lname text 40 Billing Last Name +userdb::b_state text 10 Billing State +userdb::b_zip text 10 Billing Postcode +userdb::city text 40 City +userdb::company text 40 Company +userdb::country text 10 Country +userdb::dealer radio_nbsp =No,1=Yes Dealer +userdb::email text 40 Email Address +userdb::email_copy select =No, 1=Yes +userdb::fax_order select =Credit Card, 1=Fax or Mail, 2=Purchase order, 3=COD Payment method +userdb::fname text 30 First name +userdb::lname text 30 Last Name +userdb::mail_list check_nbsp offer=Special Offers, newsletter=Newsletter, alert=Alerts and Recalls, upgrade=Upgrades null_to_space +userdb::mod_time text 20 +userdb::phone_day text 30 Daytime Phone +userdb::phone_night text 30 Home Phone +userdb::state text 10 State +userdb::username hidden_%20text 16 Username no_white +userdb::zip text 10 Postcode uc word +variable::Variable::ADDRESS text Company Address +variable::Variable::CATALOG_STATIC select No, Yes Enabled for users? Yes will cause Interchange to generate static links where possible.

    No disables generation of static links for users; you can still send a search engine to the statically generated URL and it will spider the static links on the page. +variable::Variable::CGI_URL text CGI URL URL that calls Interchange, without the server name +variable::Variable::CHECK_ACCEPTED select 0=No, 1=Yes +variable::Variable::COD_ACCEPTED select 0=No, 1=Yes +variable::Variable::CREDIT_CARDS_ACCEPTED checkbox visa=Visa, mc=Mastercard, discover=Discover, amex=American Express null_to_space +variable::Variable::DOCROOT text Document root This is the directory where your HTML originates. It should match the DocumentRoot of your HTTP server. http://www.apache.org/docs/mod/core.html#documentroot +variable::Variable::MULTIORDER select =No,1=Yes Whether users should by default have multipage order forms. +variable::Variable::MYSQL select 0=No, 1=Yes +variable::Variable::PO_ACCEPTED select 0=No, 1=Yes +variable::Variable::STATIC_LOGGED select No, Yes Enabled for logged in users? Yes will cause Interchange to generate static links where possible, even when users are logged in. +variable::Variable::UI_ITEM_EXPUNGE text 60 Item expunge tables The tables that should have the SKU removed when you DELETE ITEM from the items menu. +variable::Variable::UI_META_LINK select 0=No, 1=Yes Meta edit links Determines whether enabled by default. They can be turned on in Preferences. +variable::code text Variable name +variable::pref_group text Preferences area diff --git a/art/products/orderline.txt b/art/products/orderline.txt new file mode 100644 index 0000000..e3b1bee --- /dev/null +++ b/art/products/orderline.txt @@ -0,0 +1 @@ +code store_id order_number session username shipmode sku quantity price subtotal shipping taxable size color options order_date update_date status parent affiliate campaign description diff --git a/art/products/pricing.txt b/art/products/pricing.txt new file mode 100644 index 0000000..e1aba78 --- /dev/null +++ b/art/products/pricing.txt @@ -0,0 +1,30 @@ +sku price_group q2 q5 q10 q25 q100 XL S red +00-340 400 200 100 50 20 +22-201 2 400 200 100 50 20 +00-0011 1000 1000 1000 500 250 +22-002 2 400 200 100 50 20 +00-0011a 50 45 40 35 30 +00-403 400 200 100 50 20 +98-102 9 400 200 100 50 20 +00-2002 400 200 100 50 20 +99-104 9 100 95 80 +00-343 400 200 100 50 20 +99-301 9 400 200 100 50 20 +00-0010 400 200 100 50 20 +19-204 1 800 500 400 300 250 +22-003 2 400 200 100 50 20 +21-221 2 400 200 100 50 20 +99-102 9 10 10 9 8 7 1 -0.5 0.75 +34-101 3 400 200 100 50 20 +00-404 400 200 100 50 20 +00-341 0 400 200 100 50 20 +99-322 9 400 200 100 50 20 +22-200 2 400 200 100 50 20 +99-105 9 100 +00-344 400 200 100 50 20 +19-203 1 800 500 400 300 250 +00-402 0 400 200 100 50 20 +98-101 9 400 200 100 50 20 +00-2001 400 200 100 50 20 +99-103 9 100 95 80 +00-342 300 200 100 50 20 diff --git a/art/products/products.txt b/art/products/products.txt new file mode 100644 index 0000000..a787f50 --- /dev/null +++ b/art/products/products.txt @@ -0,0 +1,30 @@ +sku owner description title artist comment display thumb image price category hierarchy banner nontaxable weight size color related featured download dl_type dl_location +00-0010 The Last Supper, LEONARDO da Vinci The Last Supper LEONARDO da Vinci 1498, Tempera on plaster, 460 x 880 cm (15 x 29 ft.) Convent of Santa Maria delle Grazie (Refectory), Milan lastsupp.jpg 30000000.00 Renaissance 8 00-0011a Front +00-0011 MONA LISA, Da Vinci Mona Lisa LEONARDO da Vinci What was she smiling about? The Louvre 00-0011.jpg 49999995.00 Renaissance no 8 00-0011a +00-0011a Gilded Frame signed by Da Vinci Frame Gilded 00-0011a.png 1000.00 Accessory 1 20 +00-2001 The Madonna of the Magnificat, BOTTICELLI The Madonna of the Magnificat BOTTICELLI, Sandro c. 1485, Tempera on panel, diameter 118 cm Uffizi, Florence magnificat.jpg 8000000.00 Renaissance 7 +00-2002 Portrait of a Young Man, BOTTICELLI Portrait of a Young Man BOTTICELLI, Sandro c. 1480-85, Wood, 37.5 x 28.2 cm National Gallery, London young_man.jpg 10000000.00 Renaissance 5 +00-340 Irises, VAN GOGH Irises VAN GOGH, Vincent 1889, Oil on canvas, 28 x 36 3/4 in. (71 x 93 cm) Getty Museum, Malibu, California irises.jpg 40000000.00 Impressionists 5 00-341 00-342 Front +00-341 SUNFLOWERS, by Van Gogh Sunflowers VAN GOGH, Vincent An exquisite painting showing Van Gogh at the height of his pointillist powers. The Louvre 00-341.jpg 40000000.00 Impressionists no 40 +00-342 THE STARRY NIGHT, Van Gogh The Starry Night VAN GOGH, Vincent Breathtaking example of Van Gogh's work. MOMA 00-342.jpg 30000000.00 Impressionists no 10 +00-343 PERSISTENCE OF MEMORY, Dali Persistence of Memory DALI, Salvador How does he do that? MOMA 00-343.jpg 20000000.00 Surrealists no 10 +00-344 Illumined Pleasures, DALI Illumined Pleasures DALI, Salvador 1929, Oil and collage on composition board, 9 3/8 x 13 3/4 in. The Museum of Modern Art, New York illumined_pleasures.jpg 5000000.00 Surrealists 5 00-343 +00-402 Golconde, MAGRITTE Golconde MAGRITTE, Rene 1953, Oil on canvas, 31 1/2 x 39 1/2 in. The Menil Collection, Houston, Texas golconde.jpg 7000000.00 Surrealists 5 +00-403 Self-Portrait with Loose Hair, KAHLO Self-Portrait with Loose Hair KAHLO, Frida 1947, Oil on masonite, 24 x 17 3/4 in. (61 x 45 cm) Private collection loose_hair.jpg 2000000.00 Surrealists 5 00-404 Front +00-404 The Two Fridas, KAHLO The Two Fridas KAHLO, Frida 1939, Oil on canvas, 68 x 68 in. (173 x 173 cm) Museo de Arte Moderno, Mexico City two_fridas.jpg 3000000.00 Surrealists 5 00-403 +19-203 PANORAMIC PROCESSION, Keiko Panoramic Procession KEIKO You are in a series of twisty passages.... South Beach Gallery 19-203.jpg 200000.00 Surrealists 5 food +19-204 ERA'S END, Keiko Era's End KEIKO Stranger and stranger... South Beach Gallery 19-204.jpg 299995.00 Surrealists 66 goods 1 +21-221 AMERICAN GOTHIC, by Wood American Gothic WOOD, Grant The quintessential piece of Americana. Art Institute 21-221.jpg 10000000.00 Americana no 10 99-102 Front +22-002 Paul as Harlequin, PICASSO Paul as Harlequin PICASSO, Pablo 1924, Paris, Oil on canvas, 130 x 97.5 cm Musee Picasso, Paris paul_harlequin.jpg 12000000.00 Abstract 5 +22-003 Woman with a Fan, PICASSO Woman with a Fan PICASSO, Pablo Paris, [late spring] 1908, Oil on canvas, 59 7/8 x 39 3/4 in. (152 x 101 cm.) The Hermitage Museum, St. Petersburg womanfan.jpg 10000000.00 Abstract 5 +22-200 Number 1A, 1948, POLLOCK Number 1A, 1948 POLLOCK, Jackson 1948, Oil on canvas, 68" x 8'8" The Museum of Modern Art, New York pol2.jpg 4000000.00 Abstract 10 22-201 +22-201 The Key, POLLOCK The Key POLLOCK, Jackson 1946, Oil on canvas, 59 x 84 in. The Art Institute of Chicago pol1.jpg 5000000.00 Abstract 12 22-200 +34-101 FAMILY PORTRAIT, by Langan Family Portrait LANGAN, Jean Haunting view of Grandma's Parlor Krannert 34-101.png 999995.00 Americana no 10 +98-101 Black Cross, New Mexico, O'KEEFFE Black Cross, New Mexico O'KEEFFE, Georgia 1929, Oil on canvas, 99.2 x 76.3 cm The Art Institute of Chicago okeefe1.jpg 8000000.00 Expressionists 3 98-102 Front +98-102 Red Canna, O'KEEFFE Red Canna O'KEEFFE, Georgia c. 1919, Oil on board, 12 x 9 in. (30.5 x 22.9 cm) Private collection okeeffe6.jpg 5000000.00 Expressionists 5 98-101 +99-102 THE ART STORE T-SHIRT The Art Store T-Shirt The Art Store Guaranteed to be of the finest cheap T-shirt material A Store Near You tshirt.jpg 10.00 Americana,Shirts no 1 S=Small, M=Medium, L=Large*, XL=Extra Large red=Ruby Red, blue=Sky Blue*, green=Sea Green, Black, White +99-301 Chair Car, HOPPER Chair Car HOPPER, Edward 1965, Oil on canvas, 40 x 50 inches Private collection chair_car.jpg 900000.00 Americana 5 Front +99-322 My Gems, HARNETT My Gems HARNETT, William 1888, Oil on wood, 18 x 14 in. (45.7 x 35.5 cm) National Gallery of Art, Washington my_gems.jpg 1000000.00 Americana 5 +MVFAQ1 Interchange FAQ (downloadable) Interchange 4 Frequently-Asked Questions HEINS, Mike This product is downloadable. You can pay me by reading this! poweredby.gif 1.00 Docs 1 MVDOC1 Front 1 application/octet-stream download/mvfaq.pod +MVDOC1 Interchange Documentation (downloadable) Interchange 4 Documentation HEINS, Mike This product is downloadable. You can pay me by reading this! poweredby.gif 1.00 Docs 1 MVFAQ1 Front 1 application/octet-stream download/mvdocs.pod +MVTAG1 Interchange Tag Reference (downloadable) Interchange 4 Tag Reference HEINS, Mike This product is downloadable. You can pay me by reading this! poweredby.gif 1.00 Docs 1 MVFAQ1 Front 1 application/octet-stream download/mvtags.pod diff --git a/art/products/route.txt b/art/products/route.txt new file mode 100644 index 0000000..0621fca --- /dev/null +++ b/art/products/route.txt @@ -0,0 +1 @@ +code report receipt encrypt_program encrypt pgp_key pgp_cc_key cyber_mode credit_card profile inline_profile email attach counter increment continue partial supplant track errors_to diff --git a/art/products/salestax.asc b/art/products/salestax.asc new file mode 100644 index 0000000..5325e5c --- /dev/null +++ b/art/products/salestax.asc @@ -0,0 +1 @@ +default [fly-tax] diff --git a/art/products/shipping.asc b/art/products/shipping.asc new file mode 100644 index 0000000..46a21e8 --- /dev/null +++ b/art/products/shipping.asc @@ -0,0 +1,78 @@ +code description criteria min max formula query opt +0 No shipping weight 0 99999999 e No shipping mode selected. +default No shipping weight 0 99999999 g PriceDivide + +upsg UPS Ground weight 0 0 e Nothing to ship! +upsg UPS Ground weight 0 150 u Ground [value name=zip filter=digits default=45056] __MVC_UPSADDER__ +upsg UPS Ground weight 150 999999 e @@TOTAL@@ lbs too heavy for UPS + +upsb: UPS Two Day + crit weight + min 0 + max 0 + cost e Nothing to ship! + + min 0 + max 150 + type u + zone 450 + table 2ndDayAir + geo zip + default_zip 45056 + adder __MVC_UPSADDER__ + + min 150 + max 999999 + cost e @@TOTAL@@ lbs too heavy for UPS + +upsr UPS Next Day weight 0 0 e Nothing to ship! +upsr UPS Next Day weight 0 150 u NextDayAir [value name=zip filter=digits default=45056] __MVC_UPSADDER__ +upsr UPS Next Day weight 150 999999 e @@TOTAL@@ lbs too heavy for UPS + +surf_A Int'l Surface A weight 0 0 e Nothing to ship! +surf_A Int'l Surface A weight 0 100 f 6 + @@TOTAL@@ * 2 +surf_A Int'l Surface A weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_A Int'l Air A weight 0 0 e Nothing to ship! +air_A Int'l Air A weight 0 100 f 8 + @@TOTAL@@ * 2.50 +air_A Int'l Air A weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +surf_B Int'l Surface B weight 0 0 e Nothing to ship! +surf_B Int'l Surface B weight 0 100 f 8 + @@TOTAL@@ * 3 +surf_B Int'l Surface B weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_B Int'l Air B weight 0 0 e Nothing to ship! +air_B Int'l Air B weight 0 100 f 10 + @@TOTAL@@ * 3.50 +air_B Int'l Air B weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +surf_C Int'l Surface C weight 0 0 e Nothing to ship! +surf_C Int'l Surface C weight 0 100 f 10 + @@TOTAL@@ * 4 +surf_C Int'l Surface C weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_C Int'l Air C weight 0 0 e Nothing to ship! +air_C Int'l Air C weight 0 100 f 12 + @@TOTAL@@ * 4.5 +air_C Int'l Air C weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +surf_D Int'l Surface D weight 0 0 e Nothing to ship! +surf_D Int'l Surface D weight 0 100 f 12 + @@TOTAL@@ * 5 +surf_D Int'l Surface D weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_D Int'l Air D weight 0 0 e Nothing to ship! +air_D Int'l Air D weight 0 100 f 14 + @@TOTAL@@ * 5.5 +air_D Int'l Air D weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +surf_E Int'l Surface E weight 0 0 e Nothing to ship! +surf_E Int'l Surface E weight 0 100 f 14 + @@TOTAL@@ * 6 +surf_E Int'l Surface E weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_E Int'l Air E weight 0 0 e Nothing to ship! +air_E Int'l Air E weight 0 100 f 16 + @@TOTAL@@ * 6.5 +air_E Int'l Air E weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +surf_F Int'l Surface F weight 0 0 e Nothing to ship! +surf_F Int'l Surface F weight 0 100 f 16 + @@TOTAL@@ * 7 +surf_F Int'l Surface F weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. + +air_F Int'l Air F weight 0 0 e Nothing to ship! +air_F Int'l Air F weight 0 100 f 18 + @@TOTAL@@ * 7.5 +air_F Int'l Air F weight 100 999999 e @@TOTAL@@ lbs too heavy. Charter a boat. diff --git a/art/products/state.txt b/art/products/state.txt new file mode 100644 index 0000000..ac09b08 --- /dev/null +++ b/art/products/state.txt @@ -0,0 +1,183 @@ +code country state name + AU AAT Australian Antarctic Territory + AU ACT Australian Capital Territory + AU NT Northern Territory + AU NSW New South Wales + AU QLD Queensland + AU SA South Australia + AU TAS Tasmania + AU VIC Victoria + AU WA Western Australia + BR AC Acre + BR AL Alagoas + BR AM Amazonas + BR AP Amapa + BR BA Baia + BR CE Ceara + BR DF Distrito Federal + BR ES Espirito Santo + BR FN Fernando de Noronha + BR GO Goias + BR MA Maranhao + BR MG Minas Gerais + BR MS Mato Grosso do Sul + BR MT Mato Grosso + BR PA Para + BR PB Paraiba + BR PE Pernambuco + BR PI Piaui + BR PR Parana + BR RJ Rio de Janeiro + BR RN Rio Grande do Norte + BR RO Rondonia + BR RR Roraima + BR RS Rio Grande do Sul + BR SC Santa Catarina + BR SE Sergipe + BR SP Sao Paulo + BR TO Tocatins + CA AB Alberta + CA BC British Columbia + CA MB Manitoba + CA NB New Brunswick + CA NF Newfoundland + CA NS Nova Scotia + CA NT Northwest Territories + CA NT Nunavut + CA ON Ontario + CA PE Prince Edward Island + CA QC Quebec + CA SK Saskatchewan + CA YT Yukon Territory + NL DR Drente + NL FL Flevoland + NL FR Friesland + NL GL Gelderland + NL GR Groningen + NL LB Limburg + NL NB Noord Brabant + NL NH Noord Holland + NL OV Overijssel + NL UT Utrecht + NL ZH Zuid Holland + NL ZL Zeeland + UK BEDS Bedfordshire + UK BERKS Berkshire + UK BORDER Borders + UK BUCKS Buckinghamshire + UK CAMBS Cambridgeshire + UK CENT Central + UK CI Channel Islands + UK CHESH Cheshire + UK CLEVE Cleveland + UK CORN Cornwall + UK CUMB Cumbria + UK DERBY Derbyshire + UK DEVON Devonshire + UK DORSET Dorsetshire + UK DUMGAL Dumfries & Galloway + UK GLAM Glamorganshire + UK GLOUS Gloucestershire + UK GRAMP Grampian + UK GWYNED Gwynedd + UK HANTS Hampshire + UK HERWOR Herefordshire & Worcestershire + UK HERTS Hertfordshire + UK HIGHL Highland + UK HUMBER Humberside + UK HUNTS Huntingdonshire + UK IOM Isle of Man + UK IOW Isle of White + UK LANARKS Lanarkshire + UK LANCS Lancashire + UK LEICS Leicestershire + UK LINCS Licolnshire + UK LOTH Lothian + UK MIDDX Middlesex + UK NORF Norfolk + UK NHANTS Northamptonshire + UK NTHUMB Northumberland + UK NOTTS Nottinghamshire + UK OXON Oxfordshire + UK PEMBS Pembrokeshire + UK RUTLAND Rutlandshire + UK SHROPS Shropshire + UK SOM Somersetshire + UK STAFFS Staffordshire + UK STRATH Strathclyde + UK SUFF Suffolk + UK SUSS Sussex + UK TAYS Tayside + UK TYNE Tyne & Wear + UK WARKS Warwickshire + UK WILTS Wiltshire + UK WORCS Worcestershire + UK YORK Yorkshire + EI CO ANTRIM County Antrim + EI CO ARMAGH County Armagh + EI CO DOWN County Down + EI CO DURHAM County Durham + EI CO FERMANAgh County Fermanagh + EI CO DERRY County Londonderry + EI CO TYRONE County Tyrone + US AA Military Americas + US AE Military Europe/ME/Canada + US AP Military Pacific + US AK Alaska + US AL Alabama + US AR Arkansas + US AS American Samoa + US AZ Arizona + US CA California + US CO Colorado + US CT Connecticut + US DC D.C. + US DE Delaware + US FL Florida + US FM Micronesia + US GA Georgia + US GU Guam + US HI Hawaii + US IA Iowa + US ID Idaho + US IL Illinois + US IN Indiana + US KS Kansas + US KY Kentucky + US LA Louisiana + US MA Massachusetts + US MD Maryland + US ME Maine + US MH Marshall Islands + US MI Michigan + US MN Minnesota + US MO Missouri + US MP Marianas + US MS Mississippi + US MT Montana + US NC North Carolina + US ND North Dakota + US NE Nebraska + US NH New Hampshire + US NJ New Jersey + US NM New Mexico + US NV Nevada + US NY New York + US OH Ohio + US OK Oklahoma + US OR Oregon + US PA Pennsylvania + US PR Puerto Rico + US PW Palau + US RI Rhode Island + US SC South Carolina + US SD South Dakota + US TN Tennessee + US TX Texas + US UT Utah + US VA Virginia + US VI Virgin Islands + US VT Vermont + US WA Washington + US WI Wisconsin + US WY Wyoming diff --git a/art/products/transactions.txt b/art/products/transactions.txt new file mode 100644 index 0000000..e3078e1 --- /dev/null +++ b/art/products/transactions.txt @@ -0,0 +1 @@ +code store_id order_number session username shipmode nitems subtotal shipping handling salestax total_cost fname lname company address1 address2 city state zip country phone_day phone_night fax email b_fname b_lname b_company b_address1 b_address2 b_city b_state b_zip b_country b_phone order_date order_ymd order_wday payment_method po_number avs order_id update_date status affiliate campaign parent archived deleted complete comments diff --git a/art/products/ups_zone.asc b/art/products/ups_zone.asc new file mode 100644 index 0000000..63d16e1 --- /dev/null +++ b/art/products/ups_zone.asc @@ -0,0 +1,153 @@ +"ZONE CHART" +"UPS Ground/UPS 3 Day Select/UPS 2nd Day Air/UPS 2nd Day Air A.M./UPS Next Day Air Saver/UPS Next Day Air" + +"For shipments originating in ZIP Codes 450-01 to 452-99. To determine zone" +"take the first three digits of the receiver's ZIP Code and refer to the chart below:" + +"ZONES" +Dest. ZIP,Ground,3 Day Select,2nd Day Air,2nd Day Air A.M.,Next Day Air Saver,Next Day Air + +004-005,4,304,204,244,134,104 +006-007,-,-,225,-,-,125 +008,-,-,[1],-,-,[1] +009,-,-,225,-,-,125 +010-067,5,305,205,245,135,105 +068-089,4,304,204,244,134,104 +090-099,-,-,-,-,-,- +100-118,4,304,204,244,134,104 +119-123,5,305,205,245,135,105 +124-127,4,304,204,244,134,104 +128-129,5,305,205,245,135,105 +130-149,4,304,204,244,134,104 +150-157,3,303,203,243,133,103 +158-159,4,304,204,244,134,104 +160-165,3,303,203,243,133,103 +166-199,4,304,204,244,134,104 +200-239,4,304,204,244,134,104 +240-244,3,303,203,243,133,103 +245,4,304,204,244,134,104 +246-253,3,303,203,243,133,103 +254,4,304,204,244,134,104 +255-257,2,302,202,242,132,102 +258-260,3,303,203,243,133,103 +261,2,302,202,242,132,102 +262-266,3,303,203,243,133,103 +267,4,304,204,244,134,104 +268,3,303,203,-,-,103 +270,4,304,204,244,134,104 +271,3,303,203,243,133,103 +272-285,4,304,204,244,134,104 +286-289,3,303,203,243,133,103 +290-299,4,304,204,244,134,104 +300-306,4,304,204,244,134,104 +307,3,303,203,243,133,103 +308-319,4,304,204,244,134,104 +320-339,5,305,205,245,135,105 +340,-,-,-,-,-,- +341-349,5,305,205,245,135,105 +350-369,4,304,204,244,134,104 +370-374,3,303,203,243,133,103 +375,4,304,204,-,-,104 +376-379,3,303,203,243,133,103 +380-381,4,304,204,244,134,104 +382,3,303,203,243,133,103 +383,4,304,204,244,134,104 +384-385,3,303,203,243,133,103 +386-394,4,304,204,244,134,104 +395,5,305,205,245,135,105 +396-399,4,304,204,244,134,104 +400-406,2,302,202,242,132,102 +407-409,3,303,203,-,133,103 +410-414,2,302,202,242,132,102 +415-416,3,303,203,-,133,103 +417-418,2,302,202,242,132,102 +420-422,3,303,203,243,133,103 +423,2,302,202,242,132,102 +424,3,303,203,243,133,103 +425-433,2,302,202,242,132,102 +434-436,3,303,203,243,133,103 +437-438,2,302,202,242,132,102 +439-447,3,303,203,243,133,103 +448-462,2,302,202,242,132,102 +463-466,3,303,203,243,133,103 +467-475,2,302,202,242,132,102 +476-477,3,303,203,243,133,103 +478-479,2,302,202,242,132,102 +480-495,3,303,203,243,133,103 +496-499,4,304,204,244,134,104 +500-509,4,304,204,244,134,104 +510-512,5,305,205,245,135,105 +513-528,4,304,204,244,134,104 +530-534,3,303,203,243,133,103 +535-555,4,304,204,244,134,104 +556-558,5,305,205,245,135,105 +559-560,4,304,204,244,134,104 +561-585,5,305,205,245,135,105 +586-593,6,306,206,246,136,106 +594,7,307,207,247,137,107 +595,6,306,206,-,-,106 +596-599,7,307,207,247,137,107 +600-611,3,303,203,243,133,103 +612,4,304,204,244,134,104 +613-622,3,303,203,243,133,103 +623,4,304,204,244,134,104 +624-633,3,303,203,243,133,103 +634-636,4,304,204,244,134,104 +637,3,303,203,243,133,103 +638-667,4,304,204,244,134,104 +668-672,5,305,205,245,135,105 +673,4,304,204,244,134,104 +674-693,5,305,205,245,135,105 +700-711,5,305,205,245,135,105 +712,4,304,204,244,134,104 +713-714,5,305,205,245,135,105 +716-717,4,304,204,244,134,104 +718,5,305,205,245,135,105 +719-729,4,304,204,244,134,104 +730-742,5,305,205,245,135,105 +743,4,304,204,244,134,104 +744-748,5,305,205,245,135,105 +749,4,304,204,-,134,104 +750-768,5,305,205,245,135,105 +769,6,306,206,246,136,106 +770-779,5,305,205,245,135,105 +780-785,6,306,206,246,136,106 +786-787,5,305,205,245,135,105 +788,6,306,206,246,136,106 +789-796,5,305,205,245,135,105 +797-799,6,306,206,246,136,106 +800-806,6,306,206,246,136,106 +807,5,305,205,245,135,105 +808-831,6,306,206,246,136,106 +832-844,7,307,207,247,137,107 +845,6,306,206,-,-,106 +846-864,7,307,207,247,137,107 +865-885,6,306,206,246,136,106 +889-893,7,307,207,247,137,107 +894-897,8,308,208,248,138,108 +898,7,307,207,-,-,107 +900-921,8,308,208,248,138,108 +922,7,307,207,247,137,107 +923-961,8,308,208,248,138,108 +962-966,-,-,-,-,-,- +967-968,-,-,[2],-,-,[2] +969,-,-,[1],-,-,[1] +970-977,8,308,208,248,138,108 +978-979,7,307,207,-,137,107 +980-989,8,308,208,248,138,108 +990-994,7,307,207,247,137,107 +995-999,-,-,[3],-,-,[3] +,,,,,, + + +"[1] For Virgin Islands, Guam, Marshall Islands, etc., please refer to the Worldwide Rate and Zone information." + +"[2] For Hawaii, the following Postal Codes are Zone 124 for Next Day Air and Zone 224 for 2nd Day Air:" +96701,96706,96707,96709,96712,96717,96730,96731,96734,96744,96759,96762,96782,96786,96789,96791,96792,96795,96797,96801,96802,96803,96804,96805,96806,96807,96808,96809,96810,96811,96812,96813,96814,96815,96816,96817,96818,96819,96820,96821,96822,96823,96824,96825,96826,96827,96828,96830,96835,96836,96837,96838,96839,96840,96841,96842,96843,96844,96845,96846,96847,96848,96849,96850,96853,96854,96857,96858,96859,96860,96861,96862,96863,96898 +"For Hawaii, the following Postal Codes are Zone 126 for Next Day Air and Zone 226 for 2nd Day Air:" +96703,96704,96705,96708,96710,96713,96714,96715,96716,96718,96719,96720,96721,96722,96725,96726,96727,96728,96729,96732,96733,96737,96738,96739,96740,96741,96742,96743,96745,96746,96747,96748,96749,96750,96751,96752,96753,96754,96755,96756,96757,96760,96761,96763,96764,96765,96766,96767,96768,96769,96770,96771,96772,96773,96774,96775,96776,96777,96778,96779,96780,96781,96783,96784,96785,96788,96790,96793,96796 + +"[3] For Alaska, the following Postal Codes are Zone 124 for Next Day Air and Zone 224 for 2nd Day Air:" +99501,99502,99503,99504,99505,99506,99507,99508,99509,99510,99511,99512,99513,99514,99515,99516,99517,99518,99519,99520,99521,99522,99523,99524,99540,99556,99567,99568,99572,99577,99587,99603,99605,99610,99611,99631,99635,99639,99645,99654,99664,99669,99672,99687,99701,99702,99703,99705,99706,99707,99708,99709,99710,99711,99712,99775 +"For Alaska, the following Postal Codes are Zone 126 for Next Day Air and Zone 226 for 2nd Day Air:" +99547,99548,99549,99550,99551,99552,99553,99554,99555,99557,99558,99559,99561,99563,99564,99565,99566,99569,99571,99573,99574,99575,99576,99578,99579,99580,99581,99583,99584,99585,99586,99588,99589,99590,99591,99602,99604,99606,99607,99608,99609,99612,99613,99614,99615,99619,99620,99621,99622,99624,99625,99626,99627,99628,99630,99632,99633,99634,99636,99637,99638,99640,99641,99643,99644,99647,99648,99649,99650,99651,99652,99653,99655,99656,99657,99658,99659,99660,99661,99662,99663,99665,99666,99667,99668,99670,99671,99674,99675,99676,99677,99678,99679,99680,99681,99682,99683,99684,99685,99686,99688,99689,99690,99691,99692,99693,99694,99695,99697,99704,99714,99716,99720,99721,99722,99723,99724,99725,99726,99727,99729,99730,99732,99733,99734,99736,99737,99738,99739,99740,99741,99742,99743,99744,99745,99746,99747,99748,99749,99750,99751,99752,99753,99754,99755,99756,99757,99758,99759,99760,99761,99762,99763,99764,99765,99766,99767,99768,99769,99770,99771,99772,99773,99774,99776,99777,99778,99779,99780,99781,99782,99783,99784,99785,99786,99788,99789,99790,99791,99801,99802,99803,99811,99820,99821,99824,99825,99826,99827,99829,99830,99832,99833,99835,99836,99840,99841,99850,99901,99903,99918,99919,99921,99922,99923,99925,99926,99927,99928,99929,99950 diff --git a/art/products/userdb.txt b/art/products/userdb.txt new file mode 100644 index 0000000..856761a --- /dev/null +++ b/art/products/userdb.txt @@ -0,0 +1,2 @@ +username password acl mod_time s_nickname company fname lname address1 address2 address3 city state zip country phone_day mv_shipmode b_nickname b_company b_fname b_lname b_address1 b_address2 b_address3 b_city b_state b_zip b_country b_phone mv_credit_card_type mv_credit_card_exp_month mv_credit_card_exp_year p_nickname email fax phone_night fax_order address_book accounts preferences carts owner file_acl db_acl order_numbers email_copy mail_list project_id account_id order_dest credit_limit inactive +test test current Papa Bear Little Cottage The Forest IL 61821 US 513.555.5555 GNDCOM Little Cottage The Forest IL 61821 visa 3 02 papabear@minivend.com 0 {'dad' => {'city' => 'The Forest','state' => 'IL','fname' => 'Papa','lname' => 'Bear','mv_shipmode' => 'upsg','zip' => ' 61821','country' => 'US','address1' => 'TESTING','phone_day' => '217.555.5555'},'mom' => {'city' => 'The Forest','state' => 'IL','fname' => 'Mama','lname' => 'Bear','mv_shipmode' => 'upsb','zip' => '61821','country' => 'US','address1' => 'Little Cottage','phone_day' => '217.555.5555'},'baby' => {'fname' => 'Baby','lname' => 'Bear','state' => 'OH','zip' => '45056','country' => 'US','address1' => 'Cold Cruel World','phone_day' => '513.555.5555','city' => 'Big City','mv_shipmode' => 'upsr'}} 1 diff --git a/art/products/variable.txt b/art/products/variable.txt new file mode 100644 index 0000000..8cc3e21 --- /dev/null +++ b/art/products/variable.txt @@ -0,0 +1,59 @@ +code Variable pref_group +ADDRESS __MVC_ADDRESS__ Company +CATALOG_STATIC No Static pages +CGI_URL __MVC_CGIURL__ Directories and Paths +CHECK_ACCEPTED 1 Payment +CITY __MVC_CITY__ Company +COD_ACCEPTED 0 Payment +COMPANY __MVC_COMPANY__ Company +CREDIT_CARDS_ACCEPTED visa mc discover amex Payment +DOCROOT __MVC_DOCUMENTROOT__ Directories and Paths +ENCRYPTOR none Payment +FAX __MVC_FAX__ Company +IMAGE_DIR __MVC_IMAGEURL__ Directories and Paths +LOGO __MVC_LOGO__ Template +LOGGED_STATIC 1 Static pages +MULTIORDER __MVC_MULTIORDER__ Order +MYSQL __MVC_MYSQL__ Database +ORDERS_TO __MVC_MAILORDERTO__ Order +ORDER_ROUTES log main copy_user Order +PGSQL __MVC_PGSQL__ Database +PHONE __MVC_PHONE__ Company +PO_ACCEPTED 0 Payment +SAMPLEHTML __MVC_SAMPLEHTML__ Directories and Paths +SAMPLEURL __MVC_SAMPLEURL__ Directories and Paths +SECURE_SERVER http://__MVC_SERVERNAME__ Directories and Paths +SERVER_NAME __MVC_SERVERNAME__ Directories and Paths +SMLOGO __MVC_SMLOGO__ Template +SOMESQL __MVC_MYSQL____MVC_PGSQL__ Database +SQLPASS Database +SQLUSER Database +TAXAREA __MVC_TAXAREA__ Tax +TAXFIELD state Tax +TAXRATE __MVC_TAXRATE__ Tax +TAXSHIPPING __MVC_TAXSHIPPING__ Tax +TEMPLATE __MVC_TEMPLATE__ Template +TOLLFREE __MVC_TOLLFREE__ Company +UI_BOTTOMIMG poweredby.gif Admin layout +UI_C_ALINK #000000 Admin colors +UI_C_BG #FFFFFF Admin colors +UI_C_HEADERTXT #333333 Admin colors +UI_C_INTBLOCKBAR #999966 Admin colors +UI_C_INTBLOCK #CCCC99 Admin colors +UI_C_LINK #000000 Admin colors +UI_C_TITLEBARBG #336699 Admin colors +UI_C_TITLEBARTXT #CCCCCC Admin colors +UI_C_TOPBLOCKBAR #336699 Admin colors +UI_C_VLINK #000000 Admin colors +UI_IMG __MVC_SHAREURL__/akopia/ui/ Admin control +UI_ITEM_FIELDS description image thumb comment size color sku price weight category Item display +UI_ITEM_EXPUNGE products pricing inventory merchandising Item display +UI_LEFT_WIDTH 150 Admin layout +UI_META_LINK 1 Admin control +UI_OVERALL_WIDTH 750 Admin layout +UI_RIGHT_WIDTH 450 Admin layout +UI_T_BG beige Admin colors +UI_TRAFFIC_STATS __MVC_CATROOT__/logs/usertrack Directories and Paths +UPS_COUNTRY_FIELD country Shipping +UPS_ORIGIN __MVC_UPSORIGIN__ Shipping +UPS_POSTCODE_FIELD zip Shipping diff --git a/art/session/.empty b/art/session/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/session/.empty @@ -0,0 +1 @@ + diff --git a/art/special_pages/badsearch.html b/art/special_pages/badsearch.html new file mode 100644 index 0000000..225011a --- /dev/null +++ b/art/special_pages/badsearch.html @@ -0,0 +1,14 @@ +[set page_title]Bad search specification[/set] +__LOGOBAR__ +__MENUBAR__ + +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + + +The search could not be done. The problem was: +

    +[subject] + +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/canceled.html b/art/special_pages/canceled.html new file mode 100644 index 0000000..40ddf99 --- /dev/null +++ b/art/special_pages/canceled.html @@ -0,0 +1,17 @@ +[set page_title] +Account Information Erased +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +Your session information has been canceled. +

    +If you wish to order another item, we would like you to do so, but +unfortunately you will have to re-enter any account information. +

    +We hope you will ordering from us in the future. +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/cc_not_valid.html b/art/special_pages/cc_not_valid.html new file mode 100644 index 0000000..c2b75a7 --- /dev/null +++ b/art/special_pages/cc_not_valid.html @@ -0,0 +1,20 @@ +[set page_title] +Credit Card number fails test +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] +

    + The following error was seen: +

    +	[value mv_credit_card_error]
    +
    + Please go BACK and check the information you entered and see + that the correct card type, expiration date, and number are + entered.

    + +

    + +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/confirmation.html b/art/special_pages/confirmation.html new file mode 100644 index 0000000..0419b34 --- /dev/null +++ b/art/special_pages/confirmation.html @@ -0,0 +1,14 @@ +[set page_title] +Order Processed -- Thank You! +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] +

    +Your order has been sent, and +you will receive an order confirmation via email.

    +

    +Thank you for ordering from us! +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/failed.html b/art/special_pages/failed.html new file mode 100644 index 0000000..7a05425 --- /dev/null +++ b/art/special_pages/failed.html @@ -0,0 +1,20 @@ +[set page_title]Order Failed[/set] +__LOGOBAR__ +__MENUBAR__ + +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +[if type=explicit compare="q{[subject]}"] +

    +[subject]
    +
    +[else] +We're sorry, but your order could not be processed at this time due to +technical problems. Please print the order page and give us a call. +We will follow up as soon as possible. +[/else] +[/if] +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/interact.html b/art/special_pages/interact.html new file mode 100644 index 0000000..9778855 --- /dev/null +++ b/art/special_pages/interact.html @@ -0,0 +1,60 @@ +[set page_title] +Interaction error +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +Something has gone wrong, and we did not receive the response we +expected from your browser. There was the following problem: +

    +[message] +

    +Note on common causes of this problem:

    +

      +
    • + If you bookmarked a shopping cart after it had been recalculated + (or if the item was ordered from a form submission), then the system may + not have been able to determine where it should go. If that is + the case, [page __ORDER_STYLE__/basket]check your shopping basket. +

      +

    • + Some Internet Service Providers who use proxy servers + send you to a secure page from a different net location + (AOL is an example). + If your browser does not accept + cookies, + then this software may not be able to determine your session + number -- it qualifies your session with your location for + security. +

      + If you go back to a previous page and RELOAD with cookies enabled, + then this condition should be corrected. You can verify that we + send a proper cookie if you turn on the cookie warning feature of your + browser. Typically, we will save cookies only if you check a box + that asks us to save your information. +

      + You can also try looking at the checkout page non-securely, + though we don't recommend you send sensitive information like + a credit card number without encryption. +

      +[set name="Go to non-secure checkout"] +[/set] +

      + + + +
      +

      +

    • + If you pressed the STOP button before the last form finished loading, + there may have been an incomplete form. +

      +

    +

    +If you wish, you can also return to the [page index]catalog[/page]. + +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/missing.html b/art/special_pages/missing.html new file mode 100644 index 0000000..2cfbbcd --- /dev/null +++ b/art/special_pages/missing.html @@ -0,0 +1,15 @@ +[set page_title] +Sorry, the page (@@MV_PREV_PAGE@@) was not found +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +The requested item ([subject]) was not found. +You can [page index]return to browsing our +catalog[/page], if you wish. + +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/needfield.html b/art/special_pages/needfield.html new file mode 100644 index 0000000..989b655 --- /dev/null +++ b/art/special_pages/needfield.html @@ -0,0 +1,47 @@ +[set page_title] +We need some more information! +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +We need to have some fields entered to be able +to process your order. Please [page __ORDER_STYLE__/checkout]go back and fill out +the information. +

    +Problem: +

    +[perl] + my $msg = q{[subject]}; + sub redo_message { + my($param,$word) = @_; + if($param =~ /mv_credit/) { + "

  • You need to validate your credit card information.\n"; + } + elsif ($word =~ /not_a_state/i) { + return "
  • We need a valid two-letter state code like CA.\n"; + } + elsif ($word =~ /phone_day=/i) { + return "
  • Is that really a phone number?\n"; + } + elsif ($word =~ /not_a_zip_code/i) { + return "
  • We need a zip code for UPS lookup.\n"; + } + elsif ($word =~ /mv_contingent/) { + return "
  • You need to select your method of payment.\n"; + } + else { return "
  • $param: $word\n" } + } + @msg = split /\n/, $msg; + $msg = '
      '; + for(@msg) { + ($var, $val) = split /:\s*/, $_; + $msg .= redo_message($var, $val); + } + $msg .= '
    '; + $msg; +[/perl] +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/nomatch.html b/art/special_pages/nomatch.html new file mode 100644 index 0000000..5d88e6d --- /dev/null +++ b/art/special_pages/nomatch.html @@ -0,0 +1,12 @@ +[set page_title] +No Match for [subject] +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +There were no matches found. +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/noproduct.html b/art/special_pages/noproduct.html new file mode 100644 index 0000000..4b87e4b --- /dev/null +++ b/art/special_pages/noproduct.html @@ -0,0 +1,15 @@ +[set page_title] +Requested Product Unavailable +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +We are sorry, but the product ([subject]) that you requested is +not now available. You can still [page index]browse our +catalog[/page], if you wish. + +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/notfound.html b/art/special_pages/notfound.html new file mode 100644 index 0000000..d404f7d --- /dev/null +++ b/art/special_pages/notfound.html @@ -0,0 +1,14 @@ +[set page_title] +Not Found +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +No items with '[subject]' were found. You can [page index]return to +browsing our catalog[/page], if you wish. + +

    +__MENUBAR__ +__COPYRIGHT__ + diff --git a/art/special_pages/order_security.html b/art/special_pages/order_security.html new file mode 100644 index 0000000..66b7d46 --- /dev/null +++ b/art/special_pages/order_security.html @@ -0,0 +1,24 @@ +[set page_title] +SECURITY PROBLEM +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +Either this web server did not receive the last transaction via +SSL/HTTPS, or your browser doesn't handle SSL. +

    +We recommend you do not leave any critical information +until this situation is corrected. You can CANCEL your +session below to wipe all information, or return to the +catalog with the buttonbar. +

    +

    + + +
    + +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/special_pages/reconfig.html b/art/special_pages/reconfig.html new file mode 100644 index 0000000..8e71b66 --- /dev/null +++ b/art/special_pages/reconfig.html @@ -0,0 +1,12 @@ +[set page_title] +Catalog Reconfigured +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +The catalog should be successfully reconfigured. +

    +__MENUBAR__ +__COPYRIGHT__ + diff --git a/art/special_pages/sec_faq.html b/art/special_pages/sec_faq.html new file mode 100644 index 0000000..5dc303c --- /dev/null +++ b/art/special_pages/sec_faq.html @@ -0,0 +1,138 @@ + + + + Interchange Security FAQ + + + +

    Interchange Security FAQ

    + + +(with thanks to Lincoln Stein, and the WWW Security FAQ) + +

    +Press BACK to return to the form +

    + +Q: My Netscape browser is displaying a form for ordering merchandise +from a department store that I trust. The little key at the lower +left-hand corner of the Netscape window is solid and +has two teeth. This means I can safely submit my +credit card number, right? +

    +Not quite. A solid key with two teeth appears indicates that SSL is +being used with a 128-bit secret key and that the remote host owns a +valid server certificate that was certified by some authority that +Netscape recognizes. At this point, however, you don't know who that +certificate belongs to. It's possible that someone has bought or stolen +a server certificate and then diverted network traffic destined for the +department store by subverting a router somewhere between you and the +store. The only way to make sure that you're talking to the company you +think you're talking to is to open up the "Document Information" window +(from the File menu) and examine the server certificate. If the host and +organization names that appear there match the company you expect, then +you're probably safe to submit the form. If something unexpected appears +there (like "Embezzlers R Us") you might want to call the department +store's 800 number. +


    + +Q: How secure is the encryption used by SSL? + +

    + +SSL uses public-key encryption to exchange a session key between the +client and server; this session key is used to encrypt the http +transaction (both request and response). Each transaction uses a +different session key so that if someone manages to decrypt a +transaction, that does not mean that they've found the server's secret +key; if they want to decrypt another transaction, they'll need to spend +as much time and effort on the second transaction as they did on the +first. +

    +Netscape servers and browsers do encryption using either a 40-bit secret +key or a 128-bit secret key. Many people feel that using a 40-bit key is +insecure because it's vulnerable to a "brute force" attack (trying each +of the 2^40 possible keys until you find the one that decrypts the +message). Using a 128-bit key eleiminates this problem because there are +2^128 instead of 2^40 possible keys. Unfortunately, most Netscape users +have browsers that support only 40-bit secret keys. This is because of +legal restrictions on the encryption software that can be exported from +the United States (The Federal Government has recently modified this +policy on following the well-publicized cracking of a Netscape message +encrypted using a 40-bit key. Expect this situation to change).

    +In Netscape you can tell what kind of encryption is in use for a particular +document by looking at the "document" information" screen accessible +from the file menu. The little key in the lower left-hand corner of the +Netscape window also indicates this information. A solid key with two +teeth means 128-bit encryption, a solid key with one tooth means 40-bit +encryption, and a broken key means no encryption. Even if your browser +supports 128-bit encryption, it mayse use 40-bit encryption when talking +to older Netscape servers or Netscape servers outside the U.S. and +Canada. +

    +


    +Q: My friend says that none of this stuff is safe. What +should I believe? +

    +When credit cards first came out in the late 1960s, the cardholder was +liable for all losses occurring as a result of a stolen card. The +credit card companies soon discovered that fear of large losses prevented +people from using or keeping the cards. For a long time now, you have +been liable (in most states) for at most $50 of loss as a result of +credit card fraud. +

    +Using your credit card on the Internet is no different than giving it to +a restaurant. The presence of a warning-free SSL security system +ensures that the company you are dealing with has passed background +checks -- just like the presence of a Verifone credit-card checking device +gives a good indication that the restaurant can actually accept credit +cards. Look for a server certified by Verisign, Thawte, or another +well-known certifying agency. If a server's SSL certificate is so signed, +you have done your job to verify authenticity. +

    +We don't recommend that you send your credit card number un-encrypted +over the Internet. Just like you know not to give your card number to +anyone who calls you -- you make sure you know who you are talking to +first -- you shouldn't send your card number over the Internet until +you are certain that the company you are dealing with has made the effort +to ensure security. Presence of a warning-free SSL security system +indicates that rather considerable effort has been made. Look for the +lock, key, or blue line, and you should be safe. +


    +Q: Yes, all that is fine, but what about your software? Won't +the number stick around on the disk forever? +

    +The SSL encryption will take care of network transmission. But we +don't want to make it easy for just anybody, even those with access +to our system, to view your number. When Interchange is properly set +up, the number is encrypted with PGP encryption before ever being +written to a file. +

    +First of all, after you enter your number, it is kept in memory only until +until it is encrypted. At that time, it is scrubbed from the program's +memory. The now-encrypted card number (with the password only known +to our order entry personnel) is then written to a file with +permissions set so only the program can get at it. +

    +This behavior will be followed by the Interchange program as long as +the number is placed in a field named mv_credit_card_number +-- you can view the source of the order form to ensure that. +

    +If you have entered your credit card number and decide not to +submit your order, the encrypted number will remain on disk for +no more than one day. At that time, the sessions on the system that are +older than one day will be expired, after any encrypted +credit_card_no fields are overwritten with meaningless data, and +removed from the session database. +

    +If you wish, you can press the button on the order form which is labeled +CANCEL, and the encrypted information will be wiped immediately. +

    +If you would like more details, please send mail to the +webmaster. +

    +__MENUBOTTOM__ +__COPYRIGHT__ + + + diff --git a/art/special_pages/security.html b/art/special_pages/security.html new file mode 100644 index 0000000..921d030 --- /dev/null +++ b/art/special_pages/security.html @@ -0,0 +1,32 @@ +[set page_title] +How Secure is This Stuff? +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] +Interchange is designed to securely transmit your information +via SSL or SHTTP. Examine the browser status indication, and if +you see an indication that this transaction is secure, +(on Netscape it is an unbroken key in the lower left-hand corner), you +can be assured that your vital information is securely encrypted as it flies +over the Internet. +

    +How do you know it is secure? Reference the +WWW Security FAQ, +VeriSign FAQ, +or [page help/sec_faq]our own FAQ[/page] +and determine if you are comfortable with leaving your credit card +number. +

    +That being said, please feel free to leave your account information +below. Your credit card number, if you decide to leave it, will only +be used to process your order, and will not be sent by email, even +on our local machine. It will be encrypted, only read by our order entry +software, and then wiped from the disk file as soon as that is done. +

    + Click BACK to return to Account Information Form +

    +__MENUBOTTOM__ +__COPYRIGHT__ + + diff --git a/art/special_pages/violation.html b/art/special_pages/violation.html new file mode 100644 index 0000000..a2f317c --- /dev/null +++ b/art/special_pages/violation.html @@ -0,0 +1,72 @@ +[set page_title] +Access denied +[/set] +__LOGOBAR__ +__MENUBAR__ +[title-bar color="__CONTRAST__"][scratch page_title][/title-bar] + +

    You have accessed a page that requires authorization.

    + +[if session logged_in] +[then] + +[set [L]Log out[/L]] +mv_todo=return +mv_nextpage=@@MV_PREV_PAGE@@ +[userdb function=logout options="clear=yes"] +[/set] + + +
    +
    + [L]Hi[/L] [value name]! [L]You are logged in as user[/L] [value mv_username]. +    +
    +
    + + +
    +
    +
    +
    + + +[/then] +[else] + +[set Login] +mv_todo=return +mv_nextpage=@@MV_PREV_PAGE@@ +[userdb login] +[/set] +

    +[if session failure] +[data session failure] +[/if] +

    +

    + + + + + + + + + +
    [L]Username[/L] + [page new_account][L]Create a new account[/L] +
    [L]Password[/L] +    +
    + +
    + +[/else][/if] + +

    +__MENUBOTTOM__ +__COPYRIGHT__ + diff --git a/art/templates/standalone b/art/templates/standalone new file mode 100644 index 0000000..6b4aa27 --- /dev/null +++ b/art/templates/standalone @@ -0,0 +1,12 @@ +[comment] +ui_template: Yes +ui_template_name: standalone +ui_template_layout: LOGOBAR, MENUBAR, UI_CONTENT, MENUBOTTOM, COPYRIGHT +ui_template_description: Page with top/bottom menus only. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title][set] +[set members_only][set] diff --git a/art/templates/standard b/art/templates/standard new file mode 100644 index 0000000..9e73504 --- /dev/null +++ b/art/templates/standard @@ -0,0 +1,12 @@ +[comment] +ui_template: Yes +ui_template_name: standard +ui_template_layout: LOGOBAR, MENUBAR, LEFTSIDE, UI_CONTENT, NO_RIGHT, MENUBOTTOM, COPYRIGHT +ui_template_description: Standard page with top and left areas. Menu bar and copyright at bottom. +ui_control_element: page_title : +ui_control_element: members_only : 0=No,1=Yes +ui_control_description: page_title : Page title +ui_control_description: members_only : Members only +[/comment] +[set page_title][set] +[set members_only][set] diff --git a/art/tmp/.empty b/art/tmp/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/tmp/.empty @@ -0,0 +1 @@ + diff --git a/art/upload/.empty b/art/upload/.empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/art/upload/.empty @@ -0,0 +1 @@ + diff --git a/barry/backup/.empty b/barry/backup/.empty new file mode 100644 index 0000000..e69de29 diff --git a/barry/catalog.cfg b/barry/catalog.cfg new file mode 100644 index 0000000..7513f8c --- /dev/null +++ b/barry/catalog.cfg @@ -0,0 +1,491 @@ +# Set the sitewide information. The initial settings +# in the "variable" table are shown below; subsequent +# changes are only in the database, not below. + +VariableDatabase variable + +### The below are set in the variable database set +### above; if you uncomment them they will override +### +# +# Define the site-specific information +# +#Variable SERVER_NAME __MVC_SERVERNAME__ +#Variable CGI_URL __MVC_CGIURL__ +#Variable SECURE_SERVER http://__MVC_SERVERNAME__ +#Variable ORDERS_TO __MVC_MAILORDERTO__ +#Variable IMAGE_DIR __MVC_IMAGEURL__ +#Variable DOCROOT __MVC_DOCUMENTROOT__ +#Variable SAMPLEHTML __MVC_SAMPLEHTML__ +#Variable SAMPLEURL __MVC_SAMPLEURL__ +# +#Variable TEMPLATE __MVC_TEMPLATE__ +#Variable COMPANY __MVC_COMPANY__ +#Variable ADDRESS __MVC_ADDRESS__ +#Variable CITY __MVC_CITY__ +#Variable PHONE __MVC_PHONE__ +#Variable TOLLFREE __MVC_TOLLFREE__ +#Variable FAX __MVC_FAX__ +#Variable LOGO __MVC_LOGO__ +#Variable SMLOGO __MVC_SMLOGO__ +#Variable ENCRYPTOR __MVC_ENCRYPTOR__ +#Variable TAXAREA __MVC_TAXAREA__ +#Variable TAXRATE __MVC_TAXRATE__ +#Variable TAXSHIPPING __MVC_TAXSHIPPING__ +#Variable MULTIORDER __MVC_MULTIORDER__ +# +#Variable SOMESQL __MVC_MYSQL____MVC_PGSQL__ +#Variable MYSQL __MVC_MYSQL__ +#Variable PGSQL __MVC_PGSQL__ + +## END SITE CONFIGURATION + +# Set single-page order style +Variable ORDER_STYLE ord + +# Set multi-page order style if MULTIORDER variable set +#ifdef MULTIORDER +Variable ORDER_STYLE multi +#endif + +## END SITE CONFIGURATION + +## Whether to encrypt passwords in UserDB +UserDB default crypt 0 +## Change a field to something that doesn't conflict in MySQL +UserDB default time_field mod_time +## Don't want people setting their credit limit directly +UserDB default scratch credit_limit + +## Set some menubars and headers +## Use [include ...] with low traffic settings (from minivend.cfg) +## Put in memory with high traffic settings (from minivend.cfg) +ParseVariables Yes + +#ifdef TEMPLATE eq 'green1' +Variable BARBG #DEEEEF +Variable BARTEXT #000000 +Variable BODY text="#000000" bgcolor="#FFFFFF" link="#0000CC" vlink="#990000" +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#cccc99 +Variable HEADERTEXT #990000 +Variable LINECOLOR #000000 +Variable TABLEFG #DEDEDE +Variable TITLEBG #66cc99 +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +#ifdef TEMPLATE eq 'blue1' +Variable BARBG #FF6701 +Variable BARTEXT #FFFFFF +Variable BODY BGCOLOR=WHITE LINK=BLACK +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#4F87CB +Variable HEADERTEXT #CCFF99 +Variable LINECOLOR #000000 +Variable TABLEFG BGCOLOR=LIGHTBLUE +Variable TITLEBG NAVY +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +#ifdef TEMPLATE eq 'yellow1' +Variable BARBG #000000 +Variable BARTEXT #FFFFFF +Variable BODY BGCOLOR=WHITE LINK=BLACK +Variable CONTRAST RED +Variable HEADERBG BGCOLOR=#FFE88D +Variable HEADERTEXT #000000 +Variable LINECOLOR #000000 +Variable TABLEFG BGCOLOR=MOCCASIN +Variable TITLEBG #000000 +Variable TITLETEXT #FFFFFF +Variable TOPCOLOR #F22B34 +Variable TOPTEXT YELLOW +#endif + +# Better performance this way +#ifdef @TRAFFIC =~ /high/i +Variable TIMED_CATOPT [timed-build minutes=10 file=tmp/catoptions] +Variable TIMED_CATLIST [timed-build minutes=10 file=tmp/catlist] +Variable END_TIMED [/timed-build] +Variable COPYRIGHT and other tags within +# HTML tags, use [pragma no_html_parse 0] to enable on a page +Pragma no_html_parse + +MailOrderTo __ORDERS_TO__ +VendURL http://__SERVER_NAME____CGI_URL__ +SecureURL __SECURE_SERVER____CGI_URL__ + +#ifndef SOMESQL +Database affiliate affiliate.txt TAB +Database area area.txt TAB +Database area AUTO_NUMBER 1 +Database cat cat.txt TAB +Database country country.txt TAB +Database inventory inventory.txt TAB +Database merchandising merchandising.txt TAB +Database products products.txt TAB +Database pricing pricing.txt TAB +Database pricing KEY sku +Database pricing NUMERIC q2 +Database products HOT 1 +Database products INDEX category:c +Database orderline orderline.txt TAB +Database transactions transactions.txt TAB +Database userdb userdb.txt TAB +#endif + +#ifndef SQLDSN +Variable SQLDSN __MVC_SQLDSN__ +#endif + +#ifdef MYSQL + +Variable SQLDSN __SQLDSN__ +Message Using MySQL, DSN=__SQLDSN__. + +# Uncomment if needed +#Variable SQLUSER foo +#Variable SQLPASS bar + +# The tables are in separate files in the mysql directory + +#include mysql/* + +#endif + +#ifdef PGSQL + +Variable SQLDSN __SQLDSN__ +Message Using PostgreSQL, DSN=__SQLDSN__. + +# Uncomment if needed +#Variable SQLPASS foo +#Variable SQLUSER bar + +# The tables are in separate files in the mysql directory + +#include pgsql/* + +#endif + +# We are always keeping these in DBM, can be in SQL if you wish +Database access access.asc TAB +Database mv_metadata mv_metadata.asc TAB +Database variable variable.txt TAB +Database banner banner.txt TAB +Database banner NUMERIC weight +Database locale locale.txt TAB +Database 2ndDayAir 2ndDayAir.csv CSV +Database Ground Ground.csv CSV +Database NextDayAir NextDayAir.csv CSV + +ProductFiles products +VariableDatabase variable + +AlwaysSecure ord/checkout multi/checkout +AsciiTrack logs/tracking.asc + +CommonAdjust pricing:q2,q5,q10,q25,q100, ;:price, ;$ ==color:pricing, ==size:pricing + +# Here is one that sets up "Mix and match" based upon the price_group field +# in the "pricing" database. +#CommonAdjust pricing:price_group,q2,q5,q10,q25,q100, ;:price, ;$ ==color:pricing, ==size:pricing +CookieLogin Yes + +# This sets up the new payment charge mode in Interchange 4 +# You set it to "custom name", where name is the name of a GlobalSub +# that performs the charge operation. If it is not "custom", then +# it will use the CyberCash routines. +# +# "minivend_test" is special, and the demo order profile +# works with the demo order form to test +# +#Variable MV_PAYMENT_MODE minivend_test + +# Uncomment to use creditCardAuto if you want, now handled better in +# order profiles with "&credit_card=standard". +#CreditCardAuto Yes + +# These are usually all you need for CyberCash 3 +# Uncomment and edit to suit; make sure you remove CreditCardAuto somehow +# +#Variable CYBER_CONFIGFILE /home/you/yourid75/mck-cgi/merchant_conf +#Variable CYBER_VERSION 3.2 +#Variable CYBER_MODE mauthonly + +#ifdef CYBER_MODE +Variable MV_PAYMENT_MODE mauthonly +CreditCardAuto No +#endif + +EncryptProgram __ENCRYPTOR__ +ImageAlias __IMAGE_DIR__/template/ __IMAGE_DIR__/__TEMPLATE__/ +ImageDir __IMAGE_DIR__/ +ImageDirInternal http://__SERVER_NAME____IMAGE_DIR__/ + +# Uncomment only if you have these locales on your system +#Locale de_DE +#Locale de_DE LC_CTYPE de_DE +#Locale fr_FR +#Locale en_US + +Locale en_US LC_CTYPE C +LocaleDatabase locale + +Onfly onfly +OrderCounter etc/order.number +OrderLineLimit 25 +OrderProfile etc/profiles.order etc/profiles.login etc/profiles.misc + +# This makes CommonAdjust effective, since no_price doesn't exist +PriceField no_price +ReadPermission group +RobotLimit 50 + +# Here we override Interchange's normal order routine +ActionMap order <{mv_nextpage} ne 'order') { + # Do nothing + } + elsif($Values->{no_basket}) { + $CGI->{mv_nextpage} = 'ord/nobasket'; + } + else { + $CGI->{mv_nextpage} = '__ORDER_STYLE__/basket'; + } + $CGI->{mv_order_item} = $CGI->{mv_arg} + if ! $CGI->{mv_order_item}; + $Tag->update('values'); + return 1; +} +EOR + +ActionMap deliver <{deliverable} = $CGI->{mv_arg}; + $CGI->{mv_nextpage} = 'deliver'; + return 1; +} +EOR + +ActionMap get_password <{NoSearch} = ''; + $CGI->{mv_nextpage} = $CGI->{mv_search_page} = 'action/get_password'; + $CGI->{mv_todo} = 'search'; + $Tag->update('process'); + return; +} +EOR + +ParseVariables Yes +Route log attach 0 +Route log cybermode "" +Route log empty 1 +Route log encrypt 0 +Route log increment 0 +Route log report etc/log_transaction +Route log supplant 0 +Route log track logs/log + +Route log_entry attach 0 +Route log_entry cybermode "" +Route log_entry empty 1 +Route log_entry encrypt 0 +Route log_entry increment 0 +Route log_entry report etc/log_entry +Route log_entry supplant 0 +Route log_entry track logs/log + +Route copy_user attach 0 +Route copy_user cybermode "" +Route copy_user empty 1 +Route copy_user encrypt 0 +Route copy_user increment 0 +Route copy_user report etc/mail_receipt +Route copy_user supplant 0 +Route copy_user track logs/log + +# Main route must be last to make default +Route main attach 0 +#Route main counter etc/some.other.order.number +Route main credit_card 0 +Route main cybermode "" +Route main default 1 +Route main email '__ORDERS_TO__' +Route main encrypt 0 +Route main encrypt_program '__ENCRYPTOR__' +Route main errors_to '__ORDERS_TO__' +Route main increment 0 +Route main pgp_cc_key "" +Route main pgp_key "" +Route main receipt etc/receipt.html +Route main report etc/report +Route main supplant 1 +Route main individual_track orders +Route main track logs/tracking.asc + +# Order routes can be maintained in a database, empty in demo +# CHANGES TO THIS WILL OVERRIDE THE ROUTES ABOVE +RouteDatabase route + +SalesTax state +SeparateItems Yes +SpecialPage flypage flypage +SpecialPage catalog index +SpecialPage checkout __ORDER_STYLE__/checkout +SpecialPage order __ORDER_STYLE__/basket +SpecialPage search results +SpecialPage results results +SpecialPage report ../etc/report +SpecialPage receipt ../etc/receipt + +NoCache reconfig special config query ord multi +Static __CATALOG_STATIC__ +StaticLogged __LOGGED_STATIC__ +StaticAll Yes +StaticDBM static +StaticDepth 2 +StaticDir __SAMPLEHTML__/pages +StaticFly Yes +StaticPath __SAMPLEURL__/pages +TaxShipping __TAXSHIPPING__ + +#ifdef UI_TRAFFIC_STATS +TrackFile __UI_TRAFFIC_STATS__ +#endif + +UpsZoneFile products/450.csv +UseModifier size color +AutoModifier pricing:price_group + +History 10 +UserTag history-scan Order find exclude default +UserTag history-scan addAttr +UserTag history-scan Routine <{History} + or return $Tag->area($default || $Config->{SpecialPage}{catalog}); + my ($hist, $href, $cgi); + $exclude = qr/$exclude/ if $exclude; + for(my $i = $#$ref; $i >= 0; $i--) { + #Log("checking $ref->[$i][0] for $exclude"); + if ($exclude and $ref->[$i][0] =~ $exclude) { + next; + } + if($find) { + next unless $ref->[$i][0] =~ /$find/; + } + ($href, $cgi) = @{$ref->[$i]}; + last; + } + return $Tag->area($default || $Config->{SpecialPage}{catalog}) + if ! $href; + my $form = ''; + for(grep !$var_exclude{$_}, keys %$cgi) { + $form .= "\n$_="; + $form .= join("\n$_=", split /\0/, $cgi->{$_}); + } + return $Tag->area( { href => $href, form => $form} ); +} +EOR + +WritePermission group + +# Here you can set up fatal errors if a necessary sub or usertag +# doesn't exist, uncomment one of next lines to test +#Require globalsub nevairbe +#Require usertag nevairbe + +Require usertag email +Require usertag email_raw +Require usertag var +Require usertag loc +Require usertag summary +Require usertag reconfig + +# This UserTag sets a default font face, size, color +# or more in a table without having to type it in every +# time. +# +# Usage: +# [table-font face="arial, helvetica" size="-1"] +#
    Test.
    +# Will do multiple tables. +#
    Test.
    +# [/table-font] +# +UserTag table-font Order face +UserTag table-font PosNumber 1 +UserTag table-font addAttr 1 +UserTag table-font hasEndTag +UserTag table-font Routine <{$_}; + } + push(@parms, $opt->{extra}) + if $opt->{extra}; + my $front = "'; + $table =~ s:(]*>):$1$front:ig; + $table =~ s:():$1:ig; + return $table; +} +EOR + diff --git a/barry/config/additional_fields b/barry/config/additional_fields new file mode 100644 index 0000000..3c8da00 --- /dev/null +++ b/barry/config/additional_fields @@ -0,0 +1,103 @@ +COMPANY +Your company name +Barry's Books, Bikes, and Birkenstocks + +ADDRESS +Your company address +123 Any St. + +CITY +Your company city/state/zip +Anytown, USA 00000 + +PHONE +Your company phone +(555) 555-5555 + +FAX +Your company fax number +(555) 555-5556 + +TOLLFREE +Your company tollfree number (if any) +(888) 555-5555 + +MULTIORDER +Set to 1 to enable multi-page order screens +0 1 + +TAXAREA +Area(s) to tax in +VA UT + +TAXRATE +Percentage rate(s) for tax in different areas +VA=7.5, UT=7.25 + +UPSADDER +Amount to add on to standard UPS costs +3.00 + +UPSORIGIN +Origin zip code for UPS lookups +45056 00000 + +SOMESQL +Set to 1 if you want to use MySQL or Postgres +0 1 + +{SOMESQL}MYSQL +Set to 1 if you want to use MySQL +1 0 + +{MYSQL}SQLDB +Database to use (will be created) +test___MVC_CATALOGNAME__ intchg + +{MYSQL}SQLDSN +DBI DSN to use +dbi:mysql:__MVC_SQLDB__ + +{MYSQL}SQLUSER +Username for MySQL (if any) + intchg + +{MYSQL}SQLPASS +Password for MySQL (if any) + pass + +{MYSQL}SQLCREATE +Set to 1 to create '__MVC_SQLDB__' with mysqladmin +1 0 + +{SQLCREATE}SQLCREATEOPT +Extra options for creation + -p + +{SOMESQL and ! '__MVC_MYSQL__'}PGSQL +Set to 1 if you want to use PostGres +1 0 + +{PGSQL}SQLDB +Database to use (will be created) +test___MVC_CATALOGNAME__ interchange + +{PGSQL}SQLDSN +DBI DSN to use +dbi:Pg:dbname=__MVC_SQLDB__ + +{PGSQL}SQLUSER +Username for Postgres (if any) + __MVC_CATUSER__ + +{PGSQL}SQLPASS +Password for Postgres (if any) + pass + +SUPERUSER +Account name that will control this catalog +__MVC_CATUSER__ intchg + +CRYPTPW +Administrative password +pass nevairbe diff --git a/barry/config/additional_help b/barry/config/additional_help new file mode 100644 index 0000000..cada124 --- /dev/null +++ b/barry/config/additional_help @@ -0,0 +1,83 @@ +TAXAREA +. +For the US, this is usually the state(s) your business is +located in. Non-US users will probably have to set this +differently depending on their tax laws. + +TAXRATE +. +For US users, this looks like STATE=RATE, where the rate +is in percent. The default below taxes Ohio at 6% and +Illinois at 7.25 percent. More states can be added or +you can have only one. Should correspond to TAXAREA. + +SOMESQL +. +Interchange has a workable internal database, but many things will +work better (and a few worse) if you use a SQL database. Interchange +can configure MySQL and Postgres in a test configuration. + +MYSQL +. +You can select this to use MySQL in your test catalog. Careful! +This requires the ability to create a database named "test_barry", +and is highly dependent on your Perl and MySQL configuration. Don't +be too surprised if this doesn't work. + +SQLCREATE +. +We can try and use mysqladmin to create the database in +MySQL. In many default Mysql distributions, any user can create +a database beginning with "test". +. +Use the next option to add parameters. If your Mysql is password-protected +(and you know the password) you may want to add "-u root -p". + +SQLCREATEOPT +. +To create the database you may need to supply a password and +username. To do that, add the option "-u USERNAME -p", where +USERNAME is a Mysql user with permission to create databases. +This is often the user "root". + +PGSQL +. +You can select this to use PostGres in your test catalog. +This requires the ability to create a database named "test_barry", +and is highly dependent on your Perl and system configuration. Don't +be too surprised if this doesn't work. + +MULTIORDER +. +Interchange can do order pages in any way; two examples are provided. +The default is single-page. + +TEMPLATE +. +There are three color schemes available as an example of +how you might template catalogs. Select one of: +. + brown1 blue1 yellow1 + +UPSADDER +. +For the UPS lookup, the standard UPS tables are normally +used. If you want to add a handling charge, do it here. + +SUPERUSER +. +You can use Interchange's companion configuration +interface, to do upload/download of files, manipulation of +the database, reconfiguration of the catalog, and much more. +. +To enable the UI, you will need a "super-user" account +name that has full access. +. +The initial password is "pass". CHANGE IT! You can do this +by going to the admin menu and selecting the superuser and +then "Change password". + +CRYPTPW +. +You should set a password for the administrative account. +Remember this! It will be encrypted. diff --git a/barry/config/copyright b/barry/config/copyright new file mode 100644 index 0000000..6bf0de7 --- /dev/null +++ b/barry/config/copyright @@ -0,0 +1,17 @@ + + + + + + + + + + + +

  • + + + + + diff --git a/barry/config/leftonly b/barry/config/leftonly new file mode 100644 index 0000000..6703250 --- /dev/null +++ b/barry/config/leftonly @@ -0,0 +1,152 @@ + +[set leftonly]1[/set] + + +
    + + + + +[if session logged_in] + + + + + + + + +[else] + + + + + + + + + + + + + +[/else] +[/if] + + + + + + +
    +
    + +   [value fname] [value lname]

    +   order status
    +   log out
     


      

      
    +[loop + prefix=box + search=" + fi=area + st=db + tf=sort + ac=0 + ac=0 + co=yes + + sf=sel + op=eq + [if scratch left_bar] + se=[scratch left_bar][set left_bar][/set] + [else] + se=left + [/else] + [/if] + + sf=which_page + op=rm + [if scratch page_class] + se=all|[scratch page_class][set page_class][/set] + [else] + se=all|@@MV_PAGE@@ + [/else] + [/if] + "] + + + + + + + + + + + + +[set found_cat][/set] +[loop + prefix=cat + search=" + fi=cat + st=db + tf=sort + tf=name + rf=code,name + sf=sel + se=[box-code] + "] +[cat-change catmark][condition]1[/condition] +

      [box-exec bar_link]area[/box-exec]
    +[/cat-change catmark] + +[set found_cat]1[/set] +[if !scratch done_begin] +[set done_begin]1[/set] + + + + + + + + + + + + + + + + +

    + +[/if] +   [cat-exec bar_link]cat[/cat-exec]
    + + [/loop] + [if scratch done_begin] + + [set done_begin][/set] +
    +
    +
    + + [/if] + [if !scratch found_cat] + + + + + + + + + + [/if] + +[/loop] + + + + diff --git a/barry/config/leftside b/barry/config/leftside new file mode 100644 index 0000000..ddbaf57 --- /dev/null +++ b/barry/config/leftside @@ -0,0 +1,164 @@ + + + +
    + + + + +[if session logged_in] +[then] + + + + [else] +   [value fname] [value lname]

    +   order status
    +   log out
      + [/else] + [/if] +

    + + + + +[/then] +[else] + + + + + + + + + + + + + +[/else] +[/if] + + + + + + +
    +
    + + [if session login_table eq 'access'] + You are logged in as admin user [data session username]. + You will be logged out if you place an order. +

    +   admin menu
    +   log out
     


      

      
    + +[loop + prefix=box + search=" + fi=area + st=db + tf=sort + ac=0 + ac=0 + co=yes + + sf=sel + op=eq + [if scratch left_bar] + se=[scratch left_bar][set left_bar][/set] + [else] + se=left + [/else] + [/if] + + sf=which_page + op=rm + [if scratch page_class] + se=all|[scratch page_class][set page_class][/set] + [else] + se=all|@@MV_PAGE@@ + [/else] + [/if] + "] + + + + + + + + + + + + +[set found_cat][/set] +[loop + prefix=cat + search=" + fi=cat + st=db + tf=sort + tf=name + rf=code,name + sf=sel + se=[box-code] + "] +[cat-change catmark][condition]1[/condition] +

      [box-exec bar_link]area[/box-exec]
    +[/cat-change catmark] + +[set found_cat]1[/set] +[if !scratch done_begin] +[set done_begin]1[/set] + + + + + + + + + + + + + + + + +

    + +[/if] +   [cat-exec bar_link]cat[/cat-exec]
    + + [/loop] + [if scratch done_begin] + + [set done_begin][/set] +
    +
    +
    + + [/if] + [if !scratch found_cat] + + + + + + + + + + [/if] + +[/loop] + + + + + diff --git a/barry/config/logobar b/barry/config/logobar new file mode 100644 index 0000000..ec51b0d --- /dev/null +++ b/barry/config/logobar @@ -0,0 +1,25 @@ + + + + [scratch page_title] + + +
    + + + + + + + + diff --git a/barry/config/menubar b/barry/config/menubar new file mode 100644 index 0000000..90c8a71 --- /dev/null +++ b/barry/config/menubar @@ -0,0 +1,28 @@ + + + + + + [comment] + + + + + [/comment] + + + + + + + + diff --git a/barry/config/menubottom b/barry/config/menubottom new file mode 100644 index 0000000..e69de29 diff --git a/barry/config/no_left b/barry/config/no_left new file mode 100644 index 0000000..ac1ecec --- /dev/null +++ b/barry/config/no_left @@ -0,0 +1,8 @@ + + + + + diff --git a/barry/config/postcopy_commands b/barry/config/postcopy_commands new file mode 100644 index 0000000..8b29eb2 --- /dev/null +++ b/barry/config/postcopy_commands @@ -0,0 +1,3 @@ +ln -s __MVC_DOCUMENTROOT____MVC_IMAGEURL__ __MVC_CATROOT__ +To enable image upload feature, you need to make a symbolic +link of the image base directory into your catalog directory. diff --git a/barry/config/precopy_commands b/barry/config/precopy_commands new file mode 100644 index 0000000..1c60134 --- /dev/null +++ b/barry/config/precopy_commands @@ -0,0 +1,13 @@ +{MYSQL}mysqladmin __MVC_SQLCREATEOPT__ create __MVC_SQLDB__ +Since you selected the MySQL option, you need to create +a database named "__MVC_SQLDB__". In a default MySQL +configuration, any user may create and drop and modify +test_* databases, but some administrators disable this. + + +{PGSQL}createdb __MVC_SQLDB__ +Since you selected the PostgreSQL option, you need to create +a database named "__MVC_SQLDB__". This will only work if +your administrator allowed it. + + diff --git a/barry/config/rightside b/barry/config/rightside new file mode 100644 index 0000000..b9b4aa2 --- /dev/null +++ b/barry/config/rightside @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/barry/etc/area.recordnumber b/barry/etc/area.recordnumber new file mode 100644 index 0000000..9762c7c --- /dev/null +++ b/barry/etc/area.recordnumber @@ -0,0 +1,2 @@ +#COUNTER-1.0 +100 diff --git a/barry/etc/cat.recordnumber b/barry/etc/cat.recordnumber new file mode 100644 index 0000000..29087f5 --- /dev/null +++ b/barry/etc/cat.recordnumber @@ -0,0 +1,2 @@ +#COUNTER-1.0 +101 diff --git a/barry/etc/log_entry b/barry/etc/log_entry new file mode 100644 index 0000000..ab27d41 --- /dev/null +++ b/barry/etc/log_entry @@ -0,0 +1,151 @@ +#### begin [value mv_order_number] ##### +[seti transaction_record] +[tag flag write]transactions orderline userdb inventory[/tag] +[if cgi new_customer_id] +[or !cgi customer_id] +Add new customer: [value name=customer_id set="[counter etc/customer.number]"] +Set password: [value name=password set="[value name=zip filter='word uc']"] +[/if] +Update userdb: [perl table=userdb] + my $id = $Values->{username} = $Values->{customer_id}; + @always = qw/ + company + fname + lname + address1 + address2 + city + state + zip + country + phone_day + mv_shipmode + mv_credit_card_type + mv_credit_card_exp_month + mv_credit_card_exp_year + email + phone_night + fax_order + email_copy + mail_list + /; + @sometimes = qw/ + password + b_fname + b_lname + b_address1 + b_address2 + b_city + b_state + b_zip + b_country + b_phone + fax + credit_limit + /; + + my $db = $Db{userdb}; + + if(! $db->record_exists($id)) { + $db->set_row($id); + $db->set_field($id, 'password', $Values->{password}); + } + + for(@always) { + $db->set_field($id, $_, $Values->{$_}); + } + + for (@sometimes) { + next unless $Values->{$_} =~ /\S/; + $db->set_field($id, $_, $Values->{$_}); + } + + return "Updated customer record."; +[/perl] + + +[comment][perl] Log("Starting entry."); [/perl][/comment] + +[try] +[comment][perl] Log("Past ACL update user."); [/perl][/comment] +Add main order [data + table=userdb + column=order_numbers + key="[value customer_id]" + value=" [value mv_order_number]" + append="1" + ] to transactions: [import table=transactions type=LINE continue=NOTES] +code: [value mv_order_number] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [value username] +shipmode: [value mv_shipmode] ([shipping-desc]) +shipping: [shipping noformat=1] +nitems: [nitems] +subtotal: [subtotal noformat=1] +handling: [handling noformat=1] +salestax: [salestax noformat=1] +total_cost: [total-cost noformat=1] +fname: [value filter=strip name=fname] +lname: [value filter=strip name=lname] +company: [value filter=strip name=company] +address1: [value filter=strip name=address1] +address2: [value filter=strip name=address2] +city: [value filter=strip name=city] +state: [value name=state filter="strip uc"] +zip: [value name=zip filter="word uc"] +country: [value country] +phone_day: [value filter=strip name=phone_day] +phone_night: [value filter=strip name=phone_night] +b_fname: [value filter=strip name=b_fname] +b_lname: [value filter=strip name=b_lname] +b_address1: [value filter=strip name=b_address1] +b_address2: [value filter=strip name=b_address2] +b_city: [value filter=strip name=b_city] +b_state: [value filter=strip name=b_state] +b_zip: [value filter=strip name=b_zip] +b_country: [value filter=strip name=b_country] +b_phone: [value filter=strip name=b_phone] +payment_method: [value mv_payment] +order_date: [value name=order_date set="[tag time]%Y%m%d %H:%M:%S[/tag]"] +order_ymd: [value name=order_date set="[tag time]%Y%m%d[/tag]"] +order_wday: [value name=order_wday set="[tag time]%u[/tag]"] +status: pending +affiliate: ORDER_DESK +po_number: [value filter=strip po_number] +deleted: 0 +archived: 0 +complete: 0 +comments: [value filter=mac name=gift_note] +[/import] +[comment][perl] Log("Past transactions entry."); [/perl][/comment][item-list]Added [item-code] to orderline: [import table=orderline type=LINE continue=NOTES] +code: [value mv_order_number]-[item-increment] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [value username] +shipmode: [item-modifier mv_shipmode] +sku: [item-code] +quantity: [item-quantity] +price: [item-price noformat] +subtotal: [item-subtotal noformat] +size: [item-modifier size] +color: [item-modifier color] +order_date: [value order_date] +affiliate: ORDER_DESK +campaign: [value campaign] +status: pending +[/import] +Inventory now: [data table=inventory col=quantity key="[item-code]" increment=1 value="-[item-quantity]"] +[/item-list][/try] +[catch] There was an error adding to the transaction log. [/catch] +[comment][perl] Log("Past add data entry."); [/perl][/comment] +[comment][perl] Log("Past all transaction log."); [/perl][/comment] +[/seti][perl] + my $out = $Scratch->{transaction_record}; + $out =~ s/^\s+//; + $out =~ s/\s+$//; + return $out; +[/perl] +#### end [value mv_order_number] ##### diff --git a/barry/etc/log_transaction b/barry/etc/log_transaction new file mode 100644 index 0000000..ab916c5 --- /dev/null +++ b/barry/etc/log_transaction @@ -0,0 +1,115 @@ +#### begin [value mv_order_number] ##### +[seti transaction_record] +[tag flag write]transactions orderline userdb inventory[/tag] +[if !session logged_in] +[or session login_table ne 'userdb'] + [if session logged_in] [userdb logout] [/if] + [set auto_create]1[/set] + [if type=explicit compare=| + [userdb + function=new_account + assign_username=1 + password='[value zip]' + verify='[value zip]' + ] + |] + [comment][perl] Log("User create succeeded."); [/perl][/comment] + [else] + [comment][perl] Log("Failed user create."); [/perl][/comment] + [/else] + [/if] +[/if] +[comment][perl] Log("Starting report."); [/perl][/comment] + +[try] +[comment][perl] Log("Past ACL create log."); [/perl][/comment] +Add main order[data + table=userdb + column=order_numbers + key="[data session username]" + value=" [value mv_order_number]" + append="1" + ] to transactions: [import table=transactions type=LINE continue=NOTES] +code: [value mv_order_number] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [data session username] +shipmode: [value mv_shipmode] ([shipping-desc]) +shipping: [shipping noformat=1] +nitems: [nitems] +subtotal: [subtotal noformat=1] +handling: [handling noformat=1] +salestax: [salestax noformat=1] +total_cost: [total-cost noformat=1] +fname: [value filter=strip name=fname] +lname: [value filter=strip name=lname] +company: [value filter=strip name=company] +address1: [value filter=strip name=address1] +address2: [value filter=strip name=address2] +city: [value filter=strip name=city] +state: [value name=state filter="strip uc"] +zip: [value name=zip filter=word] +country: [value country] +email: [value filter=strip name=email] +phone_day: [value filter=strip name=phone_day] +phone_night: [value filter=strip name=phone_night] +b_fname: [value filter=strip name=b_fname] +b_lname: [value filter=strip name=b_lname] +b_address1: [value filter="strip mac" name=b_address1] +b_address2: [value filter="strip mac" name=b_address2] +b_city: [value filter=strip name=b_city] +b_state: [value filter=strip name=b_state] +b_zip: [value filter=strip name=b_zip] +b_country: [value filter=strip name=b_country] +b_phone: [value filter=strip name=b_phone] +payment_method: [value mv_payment] +order_date: [value name=order_date set="[tag time]%Y%m%d %H:%M:%S[/tag]"] +order_ymd: [value name=order_date set="[tag time]%Y%m%d[/tag]"] +order_wday: [value name=order_wday set="[tag time]%u[/tag]"] +status: pending +deleted: 0 +archived: 0 +complete: 0 +comments: [value filter=mac name=gift_note] +affiliate: [data session source] +campaign: [value campaign] +parent: __PARENT__ +po_number: [value filter=strip po_number] +[/import] +[comment][perl] Log("Past transactions entry."); [/perl][/comment][item-list]Added [item-code] to orderline: [import table=orderline type=LINE continue=NOTES] +code: [value mv_order_number]-[item-increment] +store_id: __STORE_ID__ +order_number: [value mv_order_number] +session__MVC_FIELDMUNGE__: [data session id] +username: [data session username] +shipmode: [item-modifier mv_shipmode] +sku: [item-code] +quantity: [item-quantity] +price: [item-price noformat] +subtotal: [item-subtotal noformat] +size: [item-modifier size] +color: [item-modifier color] +order_date: [value order_date] +affiliate: [data session source] +campaign: [value campaign] +status: pending +description: [filter mac][item-description][/filter] +[/import] +Inventory now: [data table=inventory col=quantity key="[item-code]" increment=1 value="-[item-quantity]"] +[/item-list][/try] +[catch] There was an error adding to the transaction log. [/catch] +[if scratch auto_create] + Logout auto-created user: [userdb logout] + [value name=mv_username set=""] +[/if] +[comment][perl] Log("Past add data entry."); [/perl][/comment] + +[comment][perl] Log("Past all transaction log."); [/perl][/comment] +[/seti][perl] + my $out = $Scratch->{transaction_record}; + $out =~ s/^\s+//; + $out =~ s/\s+$//; + return $out; +[/perl] +#### end [value mv_order_number] ##### diff --git a/barry/etc/mail_receipt b/barry/etc/mail_receipt new file mode 100644 index 0000000..ab70048 --- /dev/null +++ b/barry/etc/mail_receipt @@ -0,0 +1,114 @@ +[if value email_copy] +Sending email copy of order [value mv_order_number] to [value email]: [email to="[value email]" + subject="Thank you for your order [value mv_order_number]!" + from=|"__COMPANY__ Customer Service" <__ORDERS_TO__>| ] +Dear __COMPANY__ customer, + +Thank you for your order #[value mv_order_number], it is being electronically +processed. + + Name: [value fname] [value lname] +[if value company] Company: [value company][/if] + Email address: [value email] + + Address: [value address1][if value address2] + [value address2][/if] +City, State, Zip: [value city], [value state] [value zip] + Country: [value country] + + Payment Method: [value mv_payment] + Shipping Method: [shipping_desc] + + Daytime Phone: [value phone_day] + Evening Phone: [value phone_night] + +[if value b_address1] + Billing Name: [value b_fname] [value b_lname] + Billing Address: [value b_address1] [value b_address2] +City, State, Zip: [value b_city][if value b_state], [value b_state] [value b_zip][/if] +[if value b_country] Billing Country: [value b_country][/if] +[/if] + +Quan Item No. Description Price Extension +---- ----------- ------------------------------- -------------- ---------------- +[item-list][row 82] +[column width=5 gutter=1 align=right] [item-quantity] [/column] +[column width=12 gutter=1] [item-code] [/column] +[column width=32 gutter=1 align=left wrap=1] +[item-description] +[if-modifier size]SIZE-->[item-modifier size][/if-modifier][if-modifier color] COLOR-->[item-modifier color][/if-modifier] +[/column] +[column width=15 gutter=1 align=r] [item-price] [/column] +[column width=16 gutter=0 align=r] [item-subtotal] [/column] +[/row] + +[/item-list] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SUBTOTAL[/column] +[column width=16 gutter=0 align=r][subtotal][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SALES TAX[/column] +[column width=16 align=right gutter=0][salestax][/column] +[/row] +[row 82] + [column width=5 align=right][/column] + [column width=12 gutter=1][/column] + [column width=32 align=R wrap=1 gutter=1][/column] + [column width=15 gutter=1]SHIPPING[/column] + [column width=16 align=right gutter=0][shipping][/column] +[/row] + +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]ORDER TOTAL[/column] +[column width=16 align = right gutter=0][total-cost][/column] +[/row] + +[if value gift_note] +Note for Gift +-------------- +[value gift_note] +[/if] + +Should you have a question about your order, or about other __COMPANY__ +products, please reply to this message and let us help. + +Always reference your Order Number when calling for a status. [if !session logged_in] +Or you can check status via this URL: + + [area form=' + mv_username=[data + table=transactions + col=username + key="[value mv_order_number]" + ] + mv_password=[value zip] + mv_click=Login + mv_todo=return + mv_nextpage=query/check_orders + '] +[/if] +Remember, you can always visit our site at: + + __SERVER_NAME__ + +Regards and thanks for your business! + +__COMPANY__ +__ADDRESS__ +__CITY__ +__PHONE__ +__TOLLFREE__ +FAX: __FAX__ +[/email] +[else]Email copy of order [value mv_order_number] NOT REQUESTED for [value email].[/else] +[/if] diff --git a/barry/etc/profiles.login b/barry/etc/profiles.login new file mode 100644 index 0000000..b4cb701 --- /dev/null +++ b/barry/etc/profiles.login @@ -0,0 +1,22 @@ + +__NAME__ Logout + +[if type=explicit compare="[userdb logout]"] +mv_nextpage=[either][cgi mv_successpage][or][cgi mv_nextpage][/either] +[else] +mv_nextpage=[either][cgi mv_failpage][or][cgi mv_nextpage][/either] +[/else] +[/if] + +__END__ + +__NAME__ Login + +[if type=explicit compare="[userdb login]"] +mv_nextpage=[either][cgi mv_successpage][or][cgi mv_nextpage][/either] +[else] +mv_nextpage=[either][cgi mv_failpage][or][cgi mv_nextpage][/either] +[/else] +[/if] + +__END__ diff --git a/barry/etc/profiles.order b/barry/etc/profiles.order new file mode 100644 index 0000000..09bcce6 --- /dev/null +++ b/barry/etc/profiles.order @@ -0,0 +1,121 @@ +__NAME__ invalid +&fatal = yes +mv_failpage= interact +&set = mv_junk 0 +__END__ + +__NAME__ checkout_profile +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] + +&fatal = yes +email=required +email=email + +&set = mv_payment Incomplete + +[if value fax_order == 1] +&set = mv_payment Check or Money Order (will call) + +[elsif value fax_order == 2] +&set = mv_payment Purchase order [value po_number] +[value name=tmp_total set="[total-cost noformat=1]" hide=1] +[perl tables="pricing products userdb"] + $CGI->{credit_limit_ok} = 1; + my $total = delete $Values->{tmp_total}; + return unless $limit = tag_data('userdb', 'credit_limit', $Session->{username}); + delete $CGI->{credit_limit_ok}; + #Log("credit_limit=$limit total=$total"); + if($limit >= $total) { + $CGI->{credit_limit_ok} = 1; + } + return; +[/perl] +credit_limit_ok=mandatory Credit limit exceeded. +[/elsif] + +[elsif value fax_order == 3] +&set = mv_payment COD +[value name=mv_handling set=cod hide=1] +[/elsif] +[elsif variable MV_PAYMENT_MODE] +&credit_card=standard keep __CREDIT_CARDS_ACCEPTED__ +&charge=[var MV_PAYMENT_MODE][cgi mv_payment_test] +&set=mv_payment Real-time ([var MV_PAYMENT_MODE]) Credit Card +[/elsif] + +[elsif config CyberCash] +&fail=../special_pages/failed +&charge=[var CYBER_MODE] +[/elsif] + +[elsif config CreditCardAuto] +mv_credit_card_valid=required Credit card fails tests. +&set=mv_payment Credit Card (%c) +[/elsif] + +[else] +&credit_card=standard __CREDIT_CARDS_ACCEPTED__ +&set=mv_payment Credit Card (%c) +[/else] +[/if] + +&calc = $Values->{mv_payment} =~ s/\%c/$Values->{mv_credit_card_type}/g; 1; +&final = yes +&setcheck=mv_email [value email] + +__END__ + +__NAME__ shipping_address +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] +email=required + +&fatal = yes + +email=email + +__END__ + + +__NAME__ account_change +fname=required +lname=required +address1=required +city=required +country=required +[if value country =~ /^(US|CA)$/i] + state=state_province "[value state]" is not a valid US/Canada state or province. + zip=postcode "[value zip]" is not a valid US/Canada postal code. + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[else] + &or phone_day=phone, phone_night=phone Must have evening or day phone_number +[/else] +[/if] +email=required +&fatal = yes +email=email + +__END__ diff --git a/barry/etc/receipt.html b/barry/etc/receipt.html new file mode 100644 index 0000000..f54bf37 --- /dev/null +++ b/barry/etc/receipt.html @@ -0,0 +1,289 @@ +__LOGOBAR__ +__MENUBAR__ +__NO_LEFT__ +[loop list="[value mv_order_number]"] +
    +
    + + + + + +
         
    +  
    +
    +
    + [loop search=" + fi=area + st=db + sf=sel + se=top + tf=sort + tf=name + "][loop-exec bar_link]area[/loop-exec][/loop]
    +
    + + + + + + +
    + diff --git a/barry/config/no_right b/barry/config/no_right new file mode 100644 index 0000000..363ee35 --- /dev/null +++ b/barry/config/no_right @@ -0,0 +1,13 @@ + + [if !scratch leftonly] +
    + [else] + [set leftonly][/set] + [/else] + [/if] +
    +
    +

    +[loop random=2 + search=" + fi=merchandising + st=db + co=1 + op=eq + sf=featured + se=specials + ml=25 + "] + +

    +
    + +[loop-data merchandising blurb_begin]
    +[if-loop-field thumb] +
    + +
    +
    +[/if-loop-field] +[loop-data merchandising blurb_end]
    +[loop-price] +
    +

    +

    +[/loop] +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[query st=db sql="select * from orderline where order_number = '[loop-data transactions order_number]'" list=1] +[calc] + $total_weight += (([field field=weight key="[sql-param sku]"] + 0) || 0) * [sql-param quantity]; + return; +[/calc] + + + + + + + + + + + + +[/query] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Order number: [loop-code] Order date: [loop-data transactions order_date] +
    +Customer: [loop-data transactions fname] [loop-data transactions lname] +
    + + + + +[if-loop-data transactions company] + +[/if-loop-data] + + + + + + + + + + + + + + + + + +
    + Company: + [loop-data transactions company]
    + Home phone: +[loop-data transactions phone_day] 
    + Work phone: +[loop-data transactions phone_night] 
    + Email: + [loop-data transactions email]
    + Payment type: +[loop-data transactions payment_method]
    + Field 1: +
    + Field 2: +
    + Field 3: +
    +  +[loop-data transactions order_date]
    + +
    + +[set bill_address] +[loop-data transactions b_fname] [loop-data transactions b_lname]
    +[loop-data transactions b_address1]
    +[if-loop-data transactions b_address2] +[loop-data transactions b_address2]
    +[/if-loop-data] +[loop-data transactions b_city], [loop-data transactions b_state] [loop-data transactions b_zip]
    +[/set] + +[set ship_address] +[loop-data transactions fname] [loop-data transactions lname]
    +[loop-data transactions address1]
    +[if-loop-data transactions address2] +[loop-data transactions address2]
    +[/if-loop-data] +[loop-data transactions city], [loop-data transactions state] [loop-data transactions zip]
    +[/set] + + +

    +Bill To:
    +

    +[if-loop-data transactions b_address1] +[scratch bill_address] +[else] +[scratch ship_address] +[/else] +[/if-loop-data] +
    + + +Ship To: + +
    +
    +[scratch ship_address] +
    +
    + +[set bill_address][/set] +[set ship_address][/set] +
    + +Qty. + +Name + +SKU + +Each + +Discount + +Total
    + +[sql-data orderline quantity] + + +[data table=products col=description key="[sql-data orderline sku]"] +[if-sql-param size] +
    +Size: [sql-param size] +[/if-sql-param] +[if-sql-param color] +
    +Color: [sql-param color] +[/if-sql-param] + +[if-sql-data orderline options] +
    +Options: [sql-data orderline options] +[/if-sql-data] + +
    + +[sql-data orderline sku] + + +[sql-data orderline price] + + + [sql-data orderline discount] + + +[currency][sql-data orderline subtotal][/currency] + +
    +Product Total: + +[currency][loop-data transactions subtotal][/currency] +
    +Tax: + +[currency][loop-data transactions salestax][/currency] +
    +Shipping: [loop-data transactions shipmode] + + +[currency][loop-data transactions shipping][/currency] +
    +Grand total: + +[currency][loop-data transactions total_cost][/currency]
    +
    +Total weight: + +[calc]$total_weight[/calc] +
    +Total volume: + +  +
    +Comments: +
    +[loop-data transactions comments]
    +
    +
    +
     
    +
    + +[/loop] + + +
    +(Please print this receipt for your records. Thank you for your order!) +

    +__NO_RIGHT__ +__MENUBOTTOM__ +__COPYRIGHT__ diff --git a/barry/etc/report b/barry/etc/report new file mode 100644 index 0000000..2e6bb84 --- /dev/null +++ b/barry/etc/report @@ -0,0 +1,95 @@ +[seti order_text] +- ORDER DATE: [tag time]%c[/tag] + ORDER NUMBER: [value mv_order_number] + LEAD SOURCE: [data session source] + REFERRING URL: [data session referer] + + Name: [value fname] [value lname] +[if value company] Company: [value company][/if] + Email address: [value email][if value email_copy] - EMAIL COPY REQUESTED[/if] + Mail List Req: [if value mail_list]REQUESTED TO BE ON LIST[/if] + + Address: [value address1][if value address2] + [value address2][/if] +City, State, Zip: [value city], [value state] [value zip] + Country: [value country] +[if value mv_credit_card_info] +Credit Card Info: +[value mv_credit_card_info] +[else] +[/else][/if] + Payment Method: [value mv_payment] + Shipping Method: [shipping-desc] + + Daytime Phone: [value phone_day] + Evening Phone: [value phone_night] +[if value b_fname] +[or value b_address1] + Billing Name: [value b_fname] [value b_lname] + Billing Address: [value b_address1][if value b_address2] + [value b_address2][/if] +City, State, Zip: [value b_city], [value b_state] [value b_zip][/if] +[if value b_country] Billing Country: [value b_country] +[/if] + +Quan Item No. Description Price Extension +---- ----------- -------------------------------- ------------- --------------- +[item-list][row 82] +[column width=5 gutter=1 align=right] [item-quantity] [/column] +[column width=12 gutter=1] [item-code] [/column] +[column width=32 align=left gutter=1 wrap=1] +[item-description] +[if-modifier size]SIZE-->[item-modifier size][/if-modifier][if-modifier color] COLOR-->[item-modifier color][/if-modifier] +[/column] +[column width=14 align=right gutter=1][item-price][/column] +[column width=15 align=right gutter=0][item-subtotal][/column] +[/row] + +[/item-list] +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]SUBTOTAL[/column] +[column width=15 align=right gutter=0][subtotal][/column] +[/row] +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]SALES TAX[/column] +[column width=15 align=right gutter=0][salestax][/column] +[/row] +[row 82] + [column width=5 align=right gutter=1][/column] + [column width=12 gutter=1][/column] + [column width=32 align=right gutter=1 wrap=1][/column] + [column width=14 gutter=1]SHIPPING[/column] + [column width=15 align=right gutter=0][shipping][/column] +[/row] + +[row 82] +[column width=5 align=right gutter=1][/column] +[column width=12 gutter=1][/column] +[column width=32 align=right gutter=1 wrap=1][/column] +[column width=14 gutter=1]ORDER TOTAL[/column] +[column width=15 align=right gutter=0][total-cost][/column] +[/row] + +[if value gift_note] +Gift Note or Special Instructions: +--------------------------------------------------- +[value gift_note] +[/if] +[/seti] +[tag op=mime description="Order Text" interpolate=1] +[scratch order_text] +[/tag] +[if value mv_credit_card_info] +[tag op=mime + interpolate=1 + type=application/pgp-encrypted + description="CreditCard_[value mv_order_number]"] +[value mv_credit_card_info] +[/tag] +[/if] diff --git a/barry/etc/ship_notice b/barry/etc/ship_notice new file mode 100644 index 0000000..a33f5b0 --- /dev/null +++ b/barry/etc/ship_notice @@ -0,0 +1,139 @@ +[loop list="[scratch ship_notice_order_number]"] +To: [scratch ship_notice_email] +Subject: Your order number [loop-code] has [if scratch ship_now_complete]completely shipped![elsif !scratch ship_notice_complete]partially shipped[/elsif][else]shipped![/else][/if] +From: __COMPANY__ Customer Service <[either]__EMAIL_INFO__[or]__ORDERS_TO__[/either]> +Reply-to: [either]__EMAIL_SERVICE__[or]__EMAIL_INFO__[or]__ORDERS_TO__[/either] + +Dear [loop-data transactions fname] [loop-data transactions lname], + +[if scratch ship_now_complete] +We have made the last shipment of your order #[loop-code], it is now complete! +[elsif scratch ship_notice_complete] +Your order #[loop-code] has been shipped! +[/elsif] +[else] +We have made a partial shipment of your order #[loop-code]. +[/else] +[/if] + + Name: [loop-data transactions fname] [loop-data transactions lname] +[if-loop-data transactions company] Company: [loop-data transactions company][/if-loop-data] + Email address: [loop-data transactions email] + + Address: [loop-data transactions address1][if-loop-data transactions address2] + [loop-data transactions address2][/if-loop-data] +City, State, Zip: [loop-data transactions city], [loop-data transactions state] [loop-data transactions zip] + Country: [loop-data transactions country] + + Payment Method: [loop-data transactions payment_method] + Shipping Method: [shipping-desc [loop-data transactions shipmode]] + + Daytime Phone: [loop-data transactions phone_day] + Evening Phone: [loop-data transactions phone_night] + +[if-loop-data transactions b_address1] + Billing Name: [loop-data transactions b_fname] [loop-data transactions b_lname] + Billing Address: [loop-data transactions b_address1] [loop-data transactions b_address2] +City, State, Zip: [loop-data transactions b_city], [loop-data transactions b_state] [loop-data transactions b_zip] + Billing Country: [value b_country] +[/if-loop-data] + +Quan Item No. Description Price Extension +---- ----------- ------------------------------- -------------- ---------------- +[loop prefix=item search=" + fi=orderline + st=db + sf=order_number + se=[loop-code] + ml=1000 + "][row 82] +[column width=5 gutter=1 align=right] [item-data orderline quantity] [/column] +[column width=12 gutter=1] [item-data orderline sku] [/column] +[column width=32 gutter=1 align=left wrap=1][item-data orderline description] +[if-item-data transactions size]SIZE-->[item-item-data transactions size][/if-item-data][if-item-data transactions color] COLOR-->[item-item-data transactions color][/if-item-data] +[/column] +[column width=15 gutter=1 align=r][currency][item-data orderline price][/currency][/column] +[column width=16 gutter=0 align=r][currency][item-data orderline subtotal][/currency][/column] +[/row] +[row 82] +[column width=5 gutter=1 align=right][/column] +[column width=12 gutter=1][/column] +[column width=60 gutter=1 align=left wrap=1][calc] + my $status = q{[display + table=orderline + column=status + key="[item-code]" + arbitrary=order_view + ]}; + $status =~ s:<.*>::s; + if($status !~ /\S/i) { + $status = q{[item-data orderline status]}; + } + $status = uc $status; + my $mesg = q{[data + table=inventory + column=stock_message + key="[item-data orderline sku]" + ]}; + if(!mesg and $status !~ /^\s*shipped\b/i) { + $status .= " ($mesg)"; + } + $status .= q{ time: [convert-date][item-data orderline update_date][/convert-date]}; + return $status; +[/calc] +[/column] +[/row] + +[/loop] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SUBTOTAL[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions subtotal][/currency][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SALES TAX[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions salestax][/currency][/column] +[/row] +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]SHIPPING[/column] +[column width=16 align=right gutter=0][currency][loop-data transactions shipping][/currency][/column] +[/row] + +[row 82] +[column width=5 align=right][/column] +[column width=12 gutter=1][/column] +[column width=32 align=R wrap=1 gutter=1][/column] +[column width=15 gutter=1]ORDER TOTAL[/column] +[column width=16 align = right gutter=0][currency][loop-data transactions total_cost][/currency][/column] +[/row] + +[if-loop-data transactions comments] +Your comments or gift note +---------------------------- +[loop-data transactions comments] +[/if-loop-data] + +Should you have a question about your items, or about other __COMPANY__ +products, please reply to this message and let us help. + +Remember, you can always visit our site at: + + __SERVER_NAME__ + +Regards and thanks for your business! + +__COMPANY__ +__ADDRESS__ +__CITY__ +__PHONE__ +__TOLLFREE__ +FAX: __FAX__ +[/loop] diff --git a/barry/html/index.html b/barry/html/index.html new file mode 100644 index 0000000..99f6254 --- /dev/null +++ b/barry/html/index.html @@ -0,0 +1,125 @@ + + + + + + __MVC_COMPANY__: Home page + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + +
         
    +  
    +
    +
    +
    + + + + + + +
    + + + +
    +

    Welcome to Barry's!

    +

    +Enter +

    +This version introduces the Interchange user interface: +

    +Admin +

    +
    +This is the "barry" demonstration of the Akopia Interchange 4.0 electronic +catalog system. Links that will help you to use this software: +

    +

    +

    + Here are some links to order from different affiliates. Remember, these stick, + so don't expect every click to change an affiliate. You have to close your + browser and re-click. +

    +
    + + + + + +

    + +
    + +
    + +
    + + + + + + diff --git a/barry/images/about.gif b/barry/images/about.gif new file mode 100644 index 0000000000000000000000000000000000000000..9843e3eb55143f7cd2c94aaf5bd952e3a281a8c1 GIT binary patch literal 430 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 JjTiv|06V-*cvJuY literal 0 HcmV?d00001 diff --git a/barry/images/bg.gif b/barry/images/bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..b82e6ec462ece5e244bda0a9d8c4af235f6c8f35 GIT binary patch literal 45 vcmZ?wbhEHbWMyDwX!y@?;J^U}1_s5SEQ~;kK?g*DWE_}STKZQ;FjxZs?C}X) literal 0 HcmV?d00001 diff --git a/barry/images/bikeparts.gif b/barry/images/bikeparts.gif new file mode 100644 index 0000000000000000000000000000000000000000..b29eb6ffca9e95a97c91bbfcb93fefa5b157cab0 GIT binary patch literal 1917 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 literal 0 HcmV?d00001 diff --git a/barry/images/clamps.gif b/barry/images/clamps.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfff8a7584d8788d0cb302b38e264971dd0f5efa GIT binary patch literal 5522 zcmWkxX*iUN<9%m;XMe}OW>E5%YD7g@UOO!sp@>^U<*HPJLQ!VMIx-ows9W7ZqUF{k zmD@U&P?S-WmYcC=Z)7lx8NdGL%X!Z8obx>A%lUA8{e2vrBDVntfLQ>D3fVFE-}mA( zg6W^~@gGB~StS{Xp=;?0(lXX8v8pP)sa7o{#l{;@bhHRmEDA$L6Ojm{a#ndM=h~6* z<4FhecLgVf1)lM8=B{U)SZ1C?gV-}OO0`-8*hkN+7D&zq41Hp)wjH$(i+77Uz9sfV z*zwfpv^2Fw6VKPkFO}!bC>0BuIkiSrelLGc^{c9;P_y`3 z&Q8z#RBIG3>&~~fUQ(;&8jV7unN_K#7Zzq07L*!|O08DS&(CR;fx`paM+ajx)1Df| zmU;QM>9GLKOxS|rPo@0u{4_^3KcJrQQ%?k_CIZ#Jf)?bVvd#e2Iu9Ex~Q;k7WaccORi z!o)%4cNYw0b{mj$3kED!a$Uxy`Jhv z>_}IPW;FhL%f6X`jSZ&q* zsc!DvkKDn}7ZpEl&;NY5FfUiMET59DpK5cT`4nWRhoAWtGx;@1*_$!+G2>VFnVEr0 z^6ra@p@)jm#`&p^smWoDdTv~@WVCk0c;h+>36q)V+S_uX_Xzt-g?DoXWxe^#jgpC zTJ^E%&cr~+)OhclVk|!;qVE31H%}|n^D}*)n&m^^pWXdiIsI!=<`SMEvBWAV0sSV)5s; zw*NXi=ccC@=H@hN_2S~9M)RB1DwWC>_>KSH0st-oE})5@SX7%1YTHCKGwCn0A@iBh zrhDBl^t3Gxervv8)|5{-J=og3jkhsrPH}vQPPyK4k>QeiZs^|Ni#Vmcq~p`Q{jGn) zZtqgNsNTd=7{ZkxeHQ!z<6gEY(@|kg&>{ZPm7G}por5$!6=3@HzD+x(uW{Ity_)ls z?Zwz_TIipZYu?*XXnJU-*dK; z3Hm6Ul~dYa*U0+5BzBJ*f9lXyR)lNnI5J}K9T&g7)U`S{*iEo=^^EZL`e>btKmU7T zf&N0X65rLkzA^2b2blozKYUMF9g@i-pk1pa8-7G2Qk_SNr?##F1IWsA20->U^6F;EwG?YthYl~4 zH2}LzOB1N}_Pu3iHw+|~<=Orzwj(-%bRZz}aR&#*{ z-=+jk-_N1)fu}RQ*@ltAlI$gWgA1~Zxf!KohjC_6F)8NSknOW~&qC0yQ*_SRb>Czt zYDIyqowwn>yjXADr8~LaOG`}B+mM~j%zhH?#nZrQ6q?R)#w+pyHnyIt!WeGf;*Qmg z78PU~?~3X1(%vdY_%b?9~4DHYLZSU{>LJIkx>^PTTFzi-h^ z-0KcnIVnuNKGODg;fhE?;4&KF9eLzLFiwq z;oh?H(3)dIu9jhVw^l9%2TKqrokojXE9~0VI+OiI9&W+RjKz}GNE?TGtx9>u_HU(t zhXg@cWPRjahV#=a!Z})tllhqI6n?vXi&qvbXt^rQxD$%jzQxIQ4z@7r8bVThI(SLa zdc^u*Gu3-0KFHP*Jf&TS%=7c5tP+9VtSD`@c>%R*ljVuwCg^fI1t^A))S-{GJWe(P zF4gJI@t|($;H7rS5sqWtW~4^!W+~5LEhHe7D816G+xe$$iO+tmK}S6E1n>+FVu|Do zXk<=JWoOu4FA&(3ico4vHma?nX00Mp>oCx;`cVnVtl0YGk}*2CIa}X73$+- zq~Q}BDM}V)AyMF5Q)hw5)H>=FdAgZYirurt(sr>G?r zaj@&F+6(i71DE87HmnN1&kq)PP`R*=6P96->lburR4l^S~REDtpBYpK*TCUrc zC~`>-c2$if!a{~JIwQ@r+8!Ac%;xEQVE8&-3!`;>p0a!!o~@hNe#WsT3MyiI>CH>< zp|+ML^Cxj`bu`j85mNVw^wpN-lX>yaJk6H<8s3)fafPoe1AKIsn4l4S+v{9%fW*UM zhdVJ=HmbL>t7%PC9#rT zyo1N+#*$EPn|1dI-p3{j{;*!2DF2Ey|7KxSCckGamuIdv@zA|3DL2`~jR=}3Gk(Z< zWwWlGzmXG3O%-RXyi(Ki`N(yQV{?`Rr+tq*E0VBXS!X&U#Q6e!#vU;US`M=)R$8k2 zmzZH7VPMu5_v-Yov!5=f2oDBs>>G_V4r?F^k3aXCDKR+ z6Ap#eo6ON^DUfNAz5N%%ZqR2L-5gvmEFlFckxLIwB6MX@W}S{jZozWu%n=LP3+rqr zS*_qes;8N%xYo6<^#3I~NjJWhg^mdpnYuHW59_1ojrXGO zpBm$H1Gwa)TP*eBlk2r@f1*9QJU$4yhn=2s@tc6}aH(G{}u@aM{KgQC-t8Fo{%Z)5}J^^g%y@!4!7bW;hus0zR=(J_Xwh%*}!ljSa1# zu{a}xxHMC9N)7u|CJeSQ5r!NDNyICbBX}7`*k6ZC>FEyE$)iam5TFK1k+!tMD`iXc z7rSrO>h)*uCf`g^>I=L;*A`Y z5V*&$^k7AS{=u58!!bL|+|dP1m;^Cdn~gApsfPhfvFNxV$Rk4O_Qkj(5^S&#lMYip zLKsCSl2jVVL!YV{LKNlDZZ0(wa5JjuI59x!=K%deOaPP618fmgp3JdBEs8neL+E`h zOgIC4%_O==EJ$_fP@IulC3lI)dI_ji5k&S7{ZR$wX)_Q=1{h1n6*JMQK4boQ0~>m} z5J-#_t?5h_cu5iQlY0${v+y^CXDrMlStvV*TFW5RGZ4Cqoa}U|r)VwhguB1p17r(> zu(=VtkNLYU70D*oNZc0ewN~5|T9hQN@;`h|QPc^=!VKUI8!u*16Tw`RH9561Q9F>F z8%HQ-?v3SOHcPQm3Gh*h3e(pw@1q9!xK-Gn*S5_ zp+pmw&h)aB$dA-ekdPzB#WFA!x_tVkby4zCZ`!UoHo1z4uNM~S zGZ7^K<{{f)4TpF(6c{T9Pp~jSi!4kDjL?Rtw!FU_YJDxaS1SL_dRgLr$_YIW7nL#b zZE|yvP1+{GJeDKA@|T*ji4r+3iHWVjUPLk}u-M>~*JWDd<-(g+Cc{b!%!?givNQ~T zpF?^nTouQ;+95|y@Q~h;-AO{+0RVf{34dKovhX^6U)OQfu<=-Y+08m?q!r3eLW;!_ zztRC+c}6%BY=uzv%x&5w$POk!z!n7o*bos~$ieq33XN(Lbq|(!wIf#p1$SY}Vg-T( z;WFrCJ27(akan*yX}J+G7r-8XuzT5<({fUWG{?-r!Xz$w!{y5z9i*%|!iN()12*X> zi(vW0xnR*fi|Ru>D^A!c#(tqM|H-&g;`Fy)Z$$`yX)lD{yqs7nB!Mi10ZfgPVBQ1z zM%UMJuT$U43AuFaX(=(=Z~3DFeUs*cS9YC`3?%o+$r>Mg0y9~MQ&|m@YuIOE35F^m zxm*V3$nZ@PvIHhvr<31_?|7^&^O=RNzM**v55Ex~=7}&xFjWeGfuU$a@Gj3Dz1)V7 zE5)+`T$%`nSOWl?>TgXHbbZ$MEl5sOXQ?hPL}JUyT2O;b@U`I zNqA^kG*%alKE|ki&b4}MEhZY$a(aZdoAwooF{i~?1x(%l_zr)WUzA>~y<}$^2TTUA z%WfRHsE77EW3yhm3cO@wxt&aeR<_FtM;Q1o5kzRN0J$*HNsKfxbjhs(x}lm1 z6(&*sOdx%-0!E)aL?>;3N;>hhq8`!BAPNC|_#y`z&AZg zy(|QC0emKlxIrv9u)@&w=1CP3{g0F6ksdY*z=~wWkCeuhRdRfP4{N zF`AOg)u)fqwBu+~O8tQm@OgQ|)IBT2#eNGrq}_}(qmvz~H%HVe#Uf@_(3 zRzi(YW6oM1sPphEA*XTgq6kcpfyXYOJeV;p2Q6AhsM7f)J{xR11oHNSiA;Qh@Fn-# zOT8}VMaabqqCAun1Trv{jmwpSB0BLAn_w?lwVodRf)=gdldGiQUm`p*8hphh-C~1W zI#~-a;kDA3=(`7eUY(VK2P6-!(py|o32ri!8;3U4%(jal-skMEYkmDng6GQ!pXi7e z?XB-fTX|FE?J!;-!JUv}PO{$$>BM3w<`R4~ZP?%zi6n+_1!6+@0KNbwe1a$yJ@0bY zqn*Dz7r<|$*to00_OsF_l5^+VIuMx`bi3H(N7=t4crlCoT~2-rG+sB+y;F_sfXLiM z>6^WrHta`yv`qXTi|$BA<<@8kx)5f+{}T)#SScT5SIw7b0V42Mc@!geHmhnbr(#!fS`*OtiTbw9z3}KE_ zSk@7@!A5VToT??%3(+-%#F;LbO# z8_eQMw@w60?LLn@u*6@!*Fx zxoa%^K+;_)uJwoZ%{C&W*bGu7P-$`Pt=;IGI1p%4&LHor?M{ir)^#IUsg(!k6 zMN3Y-G}!LFQ+DT1da3)K(`ShPNy#-(k5<5`9m70qA>ME|c@Bjn$MsrY>$O=0nL`k; F@qcC|!gv4x literal 0 HcmV?d00001 diff --git a/barry/images/clear.gif b/barry/images/clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..b82e6ec462ece5e244bda0a9d8c4af235f6c8f35 GIT binary patch literal 45 vcmZ?wbhEHbWMyDwX!y@?;J^U}1_s5SEQ~;kK?g*DWE_}STKZQ;FjxZs?C}X) literal 0 HcmV?d00001 diff --git a/barry/images/cleardot.gif b/barry/images/cleardot.gif new file mode 100644 index 0000000000000000000000000000000000000000..b82e6ec462ece5e244bda0a9d8c4af235f6c8f35 GIT binary patch literal 45 vcmZ?wbhEHbWMyDwX!y@?;J^U}1_s5SEQ~;kK?g*DWE_}STKZQ;FjxZs?C}X) literal 0 HcmV?d00001 diff --git a/barry/images/contactus.gif b/barry/images/contactus.gif new file mode 100644 index 0000000000000000000000000000000000000000..79d74ae90297f05923bde0fd8ed188d66bd2a271 GIT binary patch literal 635 zcmZ?wbhEHbjA9UCxcZ;rz<~q&`TR2ZGV+!3YDH@LP5Sz!`u08c{!{&(YMkQd$J?jb z=dZ}G-&Ehfr#~nyX#Uap>(8&>e`EjoN9XUqzW@H~`~Uy{|M>Ca)2C0bU%!6(^y&Tk z_ix;|ap}^fGiS~mJ$iKi{{1_4?AWwv)0#DFmM&d7fByWLGiRoyr7=(mDE?$&1R13R zB0zp}VEgaTP~f2>)qi41(a9VmX3=g}rA#>;_O!!6Q@FO@T;h3((R1nSpyxSOmiIsG zn3S;U_WK`~ozK1B&sxz~&RM`ECc?$e$0x=b5GuyYkPyxuE-*PlNQ{etG1@hdgIy$o znVCn7$5l;SSw4NEf>cm$-S!%Lw2{55;OSIno<=QA2qQ~@D6fJIKG}iv`9$ApyR^Jn=B0CUp*g`3o znsYL>7&ssEU=-Za+{ydxjzX~Mky{P!7nK+iQaDeGdbaW1_-nN7PDD1lfJ{<@@mf|M z)sT5VkGicB&JI#>uxwVCrQ&sJQAEe2A3pmIwVaRXb$BSbbBm(Wnk@!8hXYS*_)BRt SCVrFTQJU~f?wtw;gEauhv*0@b literal 0 HcmV?d00001 diff --git a/barry/images/cranky.gif b/barry/images/cranky.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e69cdefaea3983fae101e005038bfcc38a840e2 GIT binary patch literal 5694 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 literal 0 HcmV?d00001 diff --git a/barry/images/customer.gif b/barry/images/customer.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcdf4aa451a844f8117f5535c9113e1d40595bf6 GIT binary patch literal 838 zcmV-M1G)T1Nk%w1VTS+|0L1?Q|NsBs|KQ-@;LzaE(9qD(z`(%Zz`xkPu+Xruu&|)e zprF8@pumuzprD|Tkbtm&fPjE-uyAm2aByH?V4z@NaBxtNP*6}%K#)K{KtMBQGcbTK z5O5FxW&i*g00000EC2ui0EYk+000I5U?+}bX`X1Ru59bRa4gSsJ!{#u*?jN+sthF2 zm|%d&q|&8<0GrZ9lefuf51<%j-k8%_Xpq?Rlc0I(t$;T@fs z0|pyr3>*VmI{@zh0a~&G0|5cJ00;od=AJBYv;aV+P5l5Y2r!^S!3~`lJTX-8APWu? z%n)eQ?M0;pBgnz(q>qB5N*yHsZa8J20{{jc7&-(%E}TDS3W3FnP;Y=F1C`o5aRtBv z00jY01=wjY=n6!jw&_$+s>OyUJ1mfc*=Yj<0ZUOzbQGYaCUY$-kqeNkRi&x4I=uUs z3t`Jx@@NJmXQ%_+2b)T87(8wfno%yQwkT-tNhWmy9=!A0=IVgCE=Q)NDe*xee%F*f zz6ulpAA=(>iO6)ypaRklObb>7p@N19P$U3+6oY~Rps^4b7>G+apFAQU0{83cxULSq z4ZzGZ)xz%wjy4Ea=a)~l=g?tkm#zKx)C&Zj5P%>D0EDS_y!Dw+gM+p++cLyZOus*j zCiuCB7!3URXW&z~X(0d{1Q+ac@JXoQ4>;)HpbQ}Z06Rd0v2IDi zkpwSTqOdk0+Y_M10YH#s$`Swt7BF#Yv#QnyQbirbN(eg*G=)<{Bm{s^vkXMZRn08p zlqHgA)!;x#7~nw(WvF0djbouf0fABbXuv@R7Ew_JZmKmvqCvx0F-0vB7-hAy7ji0np=$NB(Gp0UNYHf*BrO=H6yhHemn;E^ruv2(Nhvni6SMDP|HA Qd}!vGF?f&w6F~p~I~#dUTL1t6 literal 0 HcmV?d00001 diff --git a/barry/images/download.png b/barry/images/download.png new file mode 100644 index 0000000000000000000000000000000000000000..b784bb59fa9c19ae321676ce005192177d9b4502 GIT binary patch literal 2175 zcmV-_2!QvAP)f$jHXV z#>B+L!^6YE!otD9!N9=4zrx73y1=ow#J#<}zP`S>xw*Q!y1To(wYa{uwY9dkwzIRd zu&}VIu)U|Px~#0MuCA`Cs;a4}sidc^rKP2&rlz5xp`xOqo20j%r@EA(x|O24o1w0e zp0|maxQ&{#kDRpt005AdqnV$qlAErWo1ue{sf(1SfQ_b|ot>YbpO~1Ko12@KmX?&1 zl#!8t6OxZRBfPDZlO$RqD5t-Z+w+xbdz>`iEMU@XLOBVZH8ZRm{Dq-S89+? zXq!!DnMz}pQDJ~xZH!iFk5XleU220*Vu(&*heKYJNnCTSi8@n;G);glO^h#0g&#*emHI5E9iUu=`1u}~bHG~2$hy*QweSLj; zdU|JY;SLGXlQ6^YHDU_Z)9X-W@ct$Vq#Wf zd|YLCU1W1#VrWoZc0p8nPFr+MT60)lYgt@k0000)QEEU*I&CUF zV;wzw8ajCZ000vK~6BQK|85t1~5gs1iy?dBO zLl!rrW$UGSLKY(vd7Fr)8#xV}7zv=@G<^OuF4{7kUz%v{QmaT4Bp{OjO+;T0PpXDs zYN-{z9KQrI5(c<5?L8XOVbMgyjUv+A_&Kn|=N{@9KdjW_2Emf8j`8zws4AT^9eSc! z=oo$mG5fu{ zrq8FpD#=l0BQk>#@Egv+<)+8|1WI?^OFMM4Q&9@*37P3QPrFlXSFsmz&KL41t{IZt zUq{H8J1u00U>+)5c6G8qlEfhbk((3{0t~xK64mHXfob@sg%UenUsTq2P6H~iVmo#N z4*1|EX5KX5_rtM_S;NlBfe+3>SG8%}1eHi9I5pvw<4#~TiorD^Z!S1i^wJK-lu?vU zD%9xXQc&act{Scr)7E<|WQ2pndwM(LbS}Ho>rL&+no=Usxr!M>Q8rPdQbJJk-;X$2 zu9!eYDHW+ygsQ?-)jd#Qv^<)NJ0neNXKDr~CyRub$K9YGY$Qp2w1boTXwChSj6`ly zfb|%|uFU;(D)g$$wTcD@>fyR}L1X^&(?7A`P%QoC3>r5ZK0UkCrVmAB?y`?j_ZW^d&3w6e ztPq?TMEGQ(3cW6!1T{cmMFRb~CviT!H=_o1B7URy$Y9N94i-z`j7a#zr9x-EZBR6E zUT=CY5?`{;PGVQ~6;e~;oFp#8?)7>TSkvY*kb%XVA$(#{p*E+WXgcA&=_HNV@t??! zt5p+r(Is7^E^XCx&R4TD%G6cEfLHE~y|v^vemTQ#c@}pJ&}Rb=BpPnVG~j8wh1`XQ z?SM0mFA9?K^^7Zfsy*DQtg(c!=Hi|NArPipTbMt0`zi|Ysg#HPdn(txTY!yI;4i%% zFJoDSJrCbd)$*0LEHwM*ciqj_%ng!>Iy0~WU!;j`9#P(6V9kpmtjqDW*V;Y|d%#U7 z+KR&3TLq$hkUzD02EICuhRL)E{Dp$IrnQAhY9mW*bMf=Hz&0u9DI3JCfi)qmdr_4s z{(G3w@b5%HwSzXE!ol^=;RuRqijjX9`>CU4%OWht0VPa-6**o0cwT)o=&4NM*1(!= zp{x_;uS-+jnQlFTVSb#I^#YdeDtQ#xH+FO$j?`vcLH)n_;vWKDtM$;wWDJ}K{N&?o zR@OCbJ6zjA@Pldrur{y zN+pwa3;=V>kOG(re;}J2G<^TVB4_nWB)RCU03u-|3!{HlIAHcx0=x zWj7EWVOrpqGtJNfE6;d$L z8^sdzuzO{VE`(KYFz}VsyS1xS?LV9X>4Jp!t7iZJ002ovPDHLkV1kA? B_dWms literal 0 HcmV?d00001 diff --git a/barry/images/front_collage.gif b/barry/images/front_collage.gif new file mode 100644 index 0000000000000000000000000000000000000000..67e8e0f8adc109b1d9062669e19ddb731f081d4e GIT binary patch literal 15972 zcmWlfiC;|Z`^V2Yv(KDa+NYXo+83#5A8lq@CyGIlB$L8Wm9RmF zWqsyCCWTs)k>!HLZ%v-Hf7=mY++~GJmOZ}P zv%x!f3p*wweCqVT(A@ZGnsu9x$jjUuoq~OQI~$MJ^D-IsjAC)I?Ybk?+5L{rUd=XLv+>(zMjc{!w=JuDMHA!eooSmjjMW zpWS;jbJDWREE)4Nmz0%PMa3ki%$mPxi@d6K_v2^AW%-4#2Hrz~ONW2_$y>V#k*oat zSqpPlxO@4G{22fD^YE02$i;c93pZ`~JTe+TJtcL)LM)Lqoj>dQuiwkota11782Pfz`8?0)&;VXcgNWJmg? zrh=QzvIp%IefRcVI$8d0WN25(oKyQ&RYXjeWZF$DVe#jeh#Ka&tl9 zikw?l&m7!UJ@Dji^YMelD|25PZhq{0sFoFLYRbpIkJfEfWb&u0iZ^_H^P=zZgOv-? zOM$*~FTQy#Dj%D7eZcME5UvPVG(z(NT_poC-(U*gc+&jRL5ksDx8!#N?)%a|m ze_rr#yJxiJxa_Mt@wA!i1#!`;Fgx50hj$Q=09f`bp`8=zqrJ`Myy>Bhzqk1 z+0x!CI@L)o3WKIjyLx(ZUz=*)gG1BJouX{Si+OJih+~x1H{YkEWvxj&7;JNQ$CTZZ zl6M7vxchKjMO&q9$+RX;qCcZ_#m{KOmHTFYS-ewqt>cWMfDh*Wb5Cf$Esi53^rto% z6QE4Os>}M52QM}KaxwRcvzTx?{kS>Ve6wk2+wj3olD+#-z~V-!V?fGo-M<4jo7x-9 zcWZ*~;gSV0uOz%(Pt7Tly0!ars~rMSRH^0twzckSylc>D~sD zIqYvJu9*?!8}{{Xnp&PJ3K$cujV)%KHz3R}-&_2sk=<(VXnUvL0A4UYxW|9e#O!3< zeSt+ep3vO4I_Q0IPzA@$yg1H$Os%zTEAxu!Dwg*3>YV*+O?Y?FP4b4)H8&^I$fZLy zs>Ce{UWtNF3y&_kSUDZvJO8zrKX6?8X{U>ccz=g{wwZDIP{In~i@eA~Sx3$CbR zI#{$CbT~t}Ch6sR*RJtCw`LLAP3ZQ&C$CYLNACFFAAJP}KX7yX$ZBJ_b_ez(f9(!x zL)Y{KRDXQ{`_0=t|AE=h6G5$!-Yurq9jqonn>L;*kF`ko)P^-5AKmu&wKOL%`HMm9 znjF%TOoKyT&E7VhHOB5_?a)`ONY<_J{gt5OtT(qy)`h!z?R3cpQ1(MH^x9tfJM$`4 zV?RJp{e0oJMNi5<;Y;sUV*@*9!MVvf^co%#BsC*1Wp8u1!&U}#n!&=j*rJ`NUB4z0 zMli)1SH_e95H73Ys#_}f8>V-sjaH#N`cQ;l+E>{hLP`ZDL+)KwXP7P<<_V+@$HP0n zG$_xmW(?5pboB>%aLMzUPS_q2cKXL4GXEwt&Xd!I+magXFO-n=!>zPSv;9}_PTP9^ zQqoI*oM!xiY))wsel?k~SEvtKdIfd5B}^%${bp6ZW~rxL*C>32dfYG5KqB#pVsm~! zeyO3=>IbyFM*8unQrJjI9=L-=l;3xY&8jHoHFB1SWu^C#P_dZ5m8e zFO4&4a7tR}DfcNu7+GycTjxcu{#yjgO0m`)8(hIEU&I^`-=rU!B<;!0%=|+D_H`sz#pV9+WxIVbZhciqugHo_c3^_ zxc>}FM^^phS>Ily5*jL3tJ1b*uImUeH<8y&1n1b^y@L+w_=O6NfZOqk4Jp?-1gv0j{N(CB=$%l729`lw+5uc8%7av+*cKivjJ} z43LxAklnZlXH%XHXX8;e&yRF{^-%EYx+Vp;KQBMI{xO~1w~*z*Y~E^4JxHhnJjO$2 z>`XyybmD_Sd$}<}OINeR^g9Iej>-d91q?8z;`PWHz{SeFxA>ms_o&!Db&=#x+qCE0nEW2a=%CE14<%=@gY##{v!WwPMbyaQjmERKZ z6{g3+=H!wGoSHy-eQ6QTi1lc?8UCTxl>PBCKFn*qSsC(4H~Op}f1vqHzX&2ekU2ej zb=&MMQ{jg2nd1{|$YRUS)ZlzQ>-YAN<>=NVaO91?Jt!gg!w_kXsKTa))`|XuAqzD+ z+s92e-8(%$g+Gq9{bo#f@X@W}*j8Du`GK+alFjQ1x{QuL#=?6q>&dpF0mo3%O?(mX z--%2NZUeKO8n_V(r@tWn zXL+EAJq`Owln}jF61#Np@P|O{6*yV6PX2B_cF{XB0sB+J9g#VmoB-_S-XO(`xb9IN zy#M0O*GK>^K9AW-Yt`;(rMVIE#W9T~2btO8gSnjuHljk`-15i8{thc4P+G5BT`aTx z$kR_?ndc=NYnef5o*?V69<#L1)u*)%8{o)=ZE2{{CeMh~852b!L`M3FP{$Am%|lWU z=&PI>$fv^cP0*|`&tc3jH71jZTCT?OX{b5)*agi!3nc%%(jus*es;#KEL8aq&!)lL?ziQ;Y#PH_;l`u7Ek; z7A#%@-=QV6(B`#&P19-NZrbL%0`fZ}H1jM-HaL9K%D3|1_6ZR=cOLmM2O_B`K1OKe z2;`@M+I7@15#))W*&=ky_KaEt9;2b+EG$#v2-RxBE)$`V1wUsN2LM<%8g?oTBV?9s zlA$`!qi3y8md2oN7-J3U&36IH*#@b>1m0nido&3K0enFV`O}N2gs-w<-7mnyG-?gxUI3wHZJ@rPQAP|< zpBTHNVUoQLoQzbDB9y1BvbPhDH+gXhdKUGfp!g3)+55drTSwR-AT(--U@5UdLp*LE zoI*14wWuW~YLEb84x_1;Er}xwRxOEiORExlO}@z|cOs;F8{jXrYJVMABEpjes1XCe zpiu`dfnr-vGKXYhLEan5A2o14GBpGYJEf*xQKP)|;lG8oJB);V8X{0i+{+{$=MWDV ziPfyIMJ9|;gNvh~Vp&*!0e162>I^l1j)D~J#yN{EwB1GN*1{hJ@F@kq7IlF}d8#3QG5sx%e9jxbzXA5**H!CC{n|x7_v{h|7I7c2HR>>Rym{A8E##{~tx#h_Sm<~oI-q3Dl)2J5A(U%hNoFB=K5V!} zv*IyJJli#-TMMnfY$Nve9MM$c0qPe6xtk8s1(Z$zexL^QEKbq+?ctrPdj#Zm_3k~p zRtAUHKD$Lct|NfA2*-59y33XB$9QgKP>2Tm$4JRFVDhzSHzT@W0zjj=sQXC`GYcc; zxD&E1;qFngvuHt!dY)5Sl>s3&j89F{ko?zBZsmA9<*Z<6p@#tZg_iu#2s=F6eN#>Uh2@~=x^CjU(C|?0}r2!L+pyB~s zj1kRHt?~R3_s{d?LGLgY2}pGRW=`bX_}PC#VM#OjgNV|i zg(=fktdNtxc5bd?o$?AGY}XR&wS;;TVdboY34~oqw+Pk?cCqaCi!2(i%%j!Pw%$P~ zzD8&PiiyqcJTA>=B&T$;@+e4{Q^F z3?qC>G4;Vb@_l4Sy&Zh)y!n<7m_-Pz14v{NF(7y7Qw!xroHQ}78uZNG*YcCQNtu^0rGYO;e>&B zjz&5IkdB&acW5qF`-DBIZ8!#yrp+fBrZp7(K##aH7FC}_uCyd{wD@u0}UcKQDmBD%h&QdNIoG=CdR0CZs!U6@MOSJZmhCHOE-UuOAT9Aj!l6qNDU=FiM zVgA__bE6$YV8QzU;$9B%%p_8SiP*%yc!)->(bSxXHLpc#U;Mm!$aq5c0prC-*E~SC z-bcHuXU{uBWxh>gTruxJpp)uWZy4@2dhUN~iJArbxJ?e7L|D}Ur(B)-@8A+~FWkuj zyF{6JzAdC#PRl^Gwp*#4*Lwthz89|!| zS7^*jCj_uhBvDHvozxIda!4JfR^Z$M|7@cA0Z4Z*tU(Cu-ovQ)SZAhhbxDNJ;d8n_`M zHfe~BK%QBi{#kI`m0!p%1EF3-Jfz0}HBj{B!RS@+*W~ql*QC@(yz_%UIYYng=U1*fb7ir2r+IP@~>(8!)ky zQ+(n{9qcJWcqUAZ0eSG$Of#uL@7IFS~7Z-!R_Gh2YG^`^T= znHLxDA@a9TXBg4$-B(iz(Jh?6b&{@`C>J@TGc4jk4(XhRc#C%QaQ!88HXJ^=y+fD8 zjhx*pC!C@s&X%Fx8?W^;33>ss6-c^^z?CKN;n4g0Ed?DWpJ{A#tbw9=N%7S=u3%vo z3oxlBROckxQUEn(BAmE7H%n~Qq9N{K5)U8`L+YtpY6;u__NIZrkLs~a#bYF>lNwl} z#r~tit~TOCO!y>1JZ&PL6_KuqNM~7F-DrgG6DDX>9XwBhze$GYk>FbzvUl>+!k5G| z8sbOM%HpWk(5w&#h5yb;gtuFhPJbsq3j<#Po$A4)o7yzhi-`L)qh3I%dl>&rQ%{== zQ%nF=16TqeeFjK00Td>H7EpaTm>e4ZhX@@{!z5~m3!{kj3;qfRF(c37^BnxR@x=)d z;j4jk!l3JY64#k>A(KzNB_fmya2rIp^-R1(ja{vyKBkeDTs_jFruK2*C&p(v0Ok$T z?(87u7XrOOKx-N(WTMPi07^@~&LKS!JUz(-1No;mZCmroMC#$g9PPEe=hOB^Bpyb{ z=&hH3&$;0o_2B*UYo{joWE}$6>6Q%01MABANm{^)|9<;*fKCDJ{QzI%vn4c4ln!pz z-94+Ll%?W3QwV1O;vQO0&()g2_ZZ?;;uRg$RY!V~-16)^)q)l}qIUbLfp2R`AGM;8 zB){b>;=&YSr$Nq~O|{{mb2M0A6Kb^}Dp&_U2dLHp5YI>V3qTtY_$nIsR}G(Gl1EJ7 znm=aoX0bOB_?0e2&!L?og(lb<8Nke1y14csasP~w z0sRQ@<`2c%KsFN*o@mH62B^~TU&1U}wFr9f2zD_gzdx2Vju3jZlvcs@g;pW6YubDc z&dYst^ad09I(Le94Vj=ttNbxbndl5ACWD2Wuj!tSP~p@4OHM-pEYe5|9CiK7BOP&% zhPWLWVK@_%Eu@_qLXVoj3<`7p$LgRB#b|`SXu()5^u$0O5mEa2)VCV)6Bcxli4PSK zt{8Ad0_t+X%u9Lz7J!h35({ASIj9YM@`wO5As~Lj@IRD}^-jYen{PzO(bTiV8Ndo|VNd(r$&Pe_i^RnLtlhh(^!@TS;&?a!Q{ShXjU$Pj7%>#mz5 z)s^$zn%Y~;BF7&MeQnT}SqOu%jd)|JjFl$ z=-D~k0RFC~F5|Atzte`l?Fira;B4Aas|)@L>5Dis*)-V(D@vyLW<8dgdcIRfy5xFn zchIs&wLfhRwjYdtB9PZH7;D}lD9c_>xs!`?yD}JG3YCYp({panxAf{UHc-E=GR`t5 zx&5QZ*iw4#b*|EGo>uQ(mo!??VRa|E?QLE5b^TkLO|pC4AHw{*oY9(Vr~@& zD#*q~jSj_{+2;@CD4mt`SZXBNO#XMDwI9|NG}z*H<%pjh37nVJjRmU@Wcg@2HLIoK>oPw`Ob8A=Th$jCqm4_W1@s^VVnG2e9rcJMQ%qIj=v@%M|(q+PdY1YvUEr0YOGv6LE#R)oHx%a z+pNYmKwn=c*i!0IN6QMH=%`&Jow5{SNCPkyZu|3=A6R**BP?Q?Zu1*VMjXN2Y8hX} zS%^|H7dvbw-dbKQoPGJw_FV>et^4%wqu71R%k{bDD<}~S5_&q#2oQtoa_D)BwH=C; ze?fxMGK(!!iBC)^xz9bpj3IlO@PpU{`Tdf;o78G4gOIEV!cO`#yzIX7xE5DNSN3LO zPn(+h6&}*-@8@>7IeX^KQG(Tbt!!7fo2{t6i?&$f;hk_6ZEpP6UYab4GiTH_N-lkB zLH=^T`A(>L=Y=4DkMO}P`DClJtPF6j`4&DcLnbpH$I?B;;7L*6XIwb=o(G@x+ zb!dQC!i>3U0{{ELSq0~@QTok7t#}K~C)-0=;l!Xhu*_C+e{QB#w1^yOYczxLQ zS-Y3Ou6BvWc$TyP&0sl)eXddU3f1;!?%yMA;+49`fW-869(%d~KwBCs0$`A^#wF1+ z!EEbH@pRDvp5n&g>e6I>j@K`rI9jNnay?%F+V#dTT8yZ?UXJ7By7=PRM(LCH*?5^3 zig%c<@JY`$+rpRo2hV~_%TX9sud^d%_$qy)T z*U}RqrQ~48WhG-^s}kQC0OqIwyVvUE%IktqRc}>T^6mrC7cXF@;p5ZayQdh$=9+a>ihaS2TNp zi#Yb;##P6+R20N}awNnYeh%rE=z-&I9fcUFaqwlwIm+~9b3`r{!tt2sNoUG(wK?{O zbY3ZqEUYyh07&VbjEhUOysmz7wh;+^GK+fnd8^$uc8TBqbW$W550jCS$OOT*A{8)g z9GFDyHep>pY5d7TB$BNq*>np~>nDzLPnZmdjS<*$@wwk_Ewjpk5#wOl1mLAQbfTM! zD6(^B!nf?VK|42^{~nQheSb&fuw6XI)p0g;2t?!PK(zLzMV)->Y!PJHDC`UU)ls&j zrOi4j-hy%4P*J&5hbu7NHQO72tP;jB-e^i9d$LIjbg}mKLkdih9@^A(5GQYHC1s64 z3pEGPPxA>xo=H(WikrI`iJAV*B(wUYn-oE6cW#mPzFTtc_S5?}E4FHIIA0yaPLDbC zbxh&+sPR&waMBXdh`s+LX_Y}uqybP2kqd*WX!gz){6SIZ_4pwW< zdCtwgvYby#8E3~$z~SiNgc9J})<7Dk()C`M;0!VBHLb93F&f1C+ZdlAT5En%NR zFGwDj)&SEhp1sduOd}qSHeD&5^IMuv?n}HF&?<*~bztBCbYn9@PV4(+F-zK`iw23a z+GA~6y3k9hYauuSXw2YvkuRE29ccCTPfYPqgH_PR-#W)7Mr3k=Rw8aU!b?OqBOBJ-`-szQ0#9{ z7`PaffS}j!v_8A}_PK4YNo>=_xQndP86v609fAMm&g}7Z*A@ zgpaaTwFJ^--48MJA&Gr6=*PZ3X$)eBP+m<_A`!?D0V(Mc8=k~gbJS@};#}tvuS1zP z`}ueIwfA1zL!)jM)Z@|tEL&kQ=`mGKXgN%KvwUu=ZRjfh{2- z0IFBxrp7bI(5XiB+@^@6YV>9Z!{;lObisFZ6`NJI_k4h9b+U=o1=5XLY#|*W@Rjsl z<+3K64S@3D?{^SxccROz*d@DdQ4T8H;j@xNFUW!gzT!zEh9J5MjBf_8ni4OXd@WL9 zR)-VoWS%P!JKizz-=0mE(~c5s%ei*vOJg)xw=v0N8L(a;bsdAsyHvxy()?%A-K^Hg z2e?eUB88(62${_drT)DTN2AOa;P7H#g8=kYtKvA=bT%eUWiiDYy_q#NAb4l8VdwBU zf*T!zSmEo9GVgS0Ub=*?D#7x&8(WmiI1)1&%BQPxuD!%eU9wRqL5-F?u$8#sj8=vod=*wZD`n*oZdgq$w1HUc(6aHrKXJ1!+GJlEAe((@@}0ZpUL=NDdFZwebI_ZUiE0VF6@Rq3AQ@dHR;OvLPd6O z<94-tvos=YOfH#UN~}>8t3XJ7Bip21B`&dK%FV>sA}=t4R$|7)+KMDTy@|{1P}yrG zHoX8mfK;kcwoIixYl^)Q@_wdD`Gm5PmV6gV?0O}uI3+f0y?YtkhKH&tmZd)OJFwu^ z3$Y|XbrH}=eEH>mT`E_4%8`d91S2^~6+NE^OzVPGJoLFFd7Q{RiGCENY5hkhb7h|^ z=754G<%FZOqU8-bjfa_DN0{QBxSNA=Fbth33 z6_W+hH5y=@5sBtV7t_F1Z4xwF;?9<=?lR041tv7?vv4ap zxRreDO1f-eI_|$zaL04dr}sfK168p=XZ{d#!Lno_0^aDA1aM>?wEGhqySi+ez&ZV3 zq!wJoSFSQj+SgvQ9@}ar?&g?KJl?JDN6Eu35X9eUq3ziF33BR%5~HM(4ISYRq)av5 z87TQ{i-_tl=|W8I7__1;+(`r4>A+P37xQUKkMxKAMbOeAgu($sg;F;>XsMRGw!~WY zKK86b=CT#3V#S>m@OE*NtEjB<0pih%WEd2y*xaQTFoI_6Dm5xh2nO^@98}W-3^#vk zYZlTaA%DF|8m>?XM)d+Ac+?aGau!P0^@5vBw>R_xUIMgvSIH)J38@*Vu(-It0Q}%0 zX8{&ChezA{>Ye$x*xUD)UM&sE3wJf?C*!3P3_KLfloX}o(rJoWby#x&D%gngGeW^e z$WsIr3#Arpi3bbg#zRl$$=!HJ+1`15780ru@@U4H)0KiQ$qomsfQ~uQx3j^ExYl=n z<>HcMLWIXut{l5#)`VNtgv}IStwdnu{U<(S&+|`89gN5-+EbTisf$Trqmhy%(y1C~ z%NS&Cz}nD3u>hd;Vhe@9xzV`qUFxSY$cA;+j3y850=bW)?24uT&;Yy!=tos_Um@73 zp;b*d^EzyLv%k0*=gst90icgOoVKS+nZvi)FeF=yptf{LJO$EX8a9WA5ICTy4*0r! zs{WQFrvU&Az=XK2#J(9-AXbW4pg9K>Dkv#3f^Or_n;*@sG?QV6uq|Fvmm#oFs|Z4- z1TbYm0E)o@#rRjzMzGKbS$aW%csaceYtQ$iG)V`KzVM+-f)OdUBe~<{HBT*sW4TRE zhjuflUY7|$I^2ts$|ZEn3^ryhzC^@VW(zQLP4byKg)O)fYAAKB`)f1;L>11B1Nx~@ z!Re6q7*fPiT8tt2Y9&=Ib!T7qxf9}IT3D#Tl$#O9&R0OfLGB2UT#t5QW z`>c^yHq8%%y`VplPXoMAE<#x(pA&|l;O3dD=#l_DI)RUVcor)bDJOW%Xjp|4px|^1 zl$8h-hJPgc{Q5ww%o#5r(xjfoP^Y?d@`cif2*_g$*dkKS<0$6q5X*E)mKrmkt%!ds zFEYcV>2lMUikv37K%mU)!kO`Rt`cWYWJ@j5`kPfERfwS4dF|c zjm`Ao=^fZ5YYo^1Mu|BeysE%mogxpRq5f9lqk>2PHbv;MsTrX*OKh3)L_QYg_`$-; zi9Up`li7B~vC`4l3-9`51`C4(pj>}D{LWEXTcqU$C#L7_ZU0RHZ7f%J|% zJ$^_rVa5R#(&P)9a7DC|Oh{-^N0TxL0D=1bQ*$1s<|6PUfF$%kXz`{}>0(?7p=dfTo)X zJ-VcG+;P@(l~^%W{dOpouSh)K`b57lZ+_Kkc>|Q_9iJ^0h;}jjWP2Cd>*2irtJ`C6-NUDp@F&_!uQE+UZ`j z7cBKsn{-L{6j>x7bLPte43&Wz2+aY+d~|{q`*)(38iOr{Pz%&ZS#ITonN}g#^d`tO(0_l!9uZZUbAwsm$IM< z&ege1_rhc`G0FchN#A$Q6=F!#_c=P;dL3?y24^k+Lp0J*CMu#?w(9c}AMv+I=~7=~ zf&JVoXfMc~_QjGfx0_nBLJihmL4`73trCN7H@hrF_wGr+cPF8Z>FQuZWl-!m{9WRM?ozQ!Mk;qC8osJzm&>c%0Ws-0?K*vN|lAxjs~kD&Q-> z{_m!>@Ti&T`=3F{tbWOcI&ezU8lNWUf9X0Kd9sA=_Kq)d_Yx;|D&BywwLd-YlM@`M5p7YseI zUCUJ=k0A|!5|zX@t@AeGJewgu7K)*UJUP!I1dyjnHjsCPEs%P5NiCRT+j-JWw2+AS zk|G+;wi&xrhY<)+q0P97#YT%qd8j-UL?LXjI(x?f!S&RlHlG+L&F4g_0JIk_&uf8I zp(I)a+BYdzYO!YrZ*0(Fy9WS@7vElOIn^YaG?;h1^<9h!bnHbKFo4|tb@+~IyXcX> zQMz(|rwf4hn$^%u7?760{#o)dQv(%8u?rscKGDP?oJG-||8LH)f>h&?yn~(H8aK_t zdwMl1>1>>{`?Rcb@y|C)w%Sa4ZM6XNJUmEuff4Yt0m&*h8nz+}C{nZ|+eA5>vhW~8iUP0@>w=Jpz4f4V@ix>6O1y1g4 zmp8O;wef2m*nIKxtNRf@c$stb1G~yBL$l(N^liIItj$Z$iwjnv9idXNBX7lC$qu`h zb#p2MM}G5ToywY>Rb*DPXhz6r9D-oJcD3mv7_c?gwyd`x-n=qC;aOSj<)QRt$ZsQn zCKejd<_iphS*tIn$z>L9!!#vvK_n=*o&pbZh1AbO9nqzHw^=UH1_U+5Hq``}`R4Y= z+a!0XCn|YPnOp~pnSF-1P(Q~4D6G6ZY`++HNFBqz_v!4isL@7s34GlvN0v4(emI8c z&zaRhA(t}~>{qEkESYWC|5K*lQ>Vu zmBP2jAX%gjY>AQO+j9;%;!~>Y#0=6!k)Xu+ zTVc*N;+g$lDcO005=&zBw<{k{$J@N=uwPMWtQ#}&ez6Dp#RdVXzt^dXYI{1MRVGte)^t?qikJiW8vmhD_A7%|8_@K%#zQk zgg0pQSi4NkFi2RP$*uJN+9++V3t0Y!Sj#6g-sZ0e+j=747x>b$Y^7 zqRdak+JCRQNlLKNTIw|D-Ob!6#{%jqUkXJurhDV!iLx-rtiQ7A{PGQ4=rfa=hi|91 zGpz$!BxHdYC6tTE)-D>wzp90SPwtcd!iovo+e6C#W{WDUG607WaS7>@QR%|CqiTt1 zIDMUu_ub3HVl@Doqu%CD*W*J$=`x=;yZpzRg0oC|av=*_>?Oy}?=_1zuS#^qXG6{= z4mR*_8k6Zvn9quJDNGF(b+s{GauSK~`Xd`_jiPV89j>`1CH}0wYHJQE%;omBbxe-E zeX$;&!C|t-vdJr(pbkinoqS?xc~7kV1KrSCqpx27u?`ox*oT_OM0T1u9Mo(RE=;SB zPt1h_7ozv>G9YH3HD;J_t(^U+k)~+ceWlrU_k*S+YSb9W_K6`gPIQL3=sZF1!SGfy$|7N#|M%tKVhMz) zD5Js4Rgitp5%n=!XWR?kdmwq~{yet*n5IH*PZH7B) zZx2vUh-Cu7lLXaYhb7cR*-mS_vlw6P1&^7{H>pcG=;HE5LW-_r?M$tlkb98+u{s84 z$pNACdN@Tj*?jPCCQ>D%e-tM~eULnLVVk_R<@XH$dprpSSH_NWpz{zKJ1o~zwy0|F z)d|q6*Vj9HHs_NftRznt9@OvOw@`Q>I}mG{T{5IqIE?7CdFoh4s0tUTao#waG+YPRoa#s3AfJp~mJh{VY;^lgcEjzzTm@1mOyU^r@pJDTe<^LUcY6~N!A z&;oaBeCb&xcUyvX44;ArgRKk{m+paoxSw02m>yJusGsoLsDuyrQVNovtsmug290LO z9eE1b|K3wApBvF^HJ6erlrf$lCznVFS*G2(P~L)fcwhSZHzwaO#sp*D+QMUsC&tVZ zsV1dQI9r-bS z?oL9WWPqpBy0m*9cI~}=CeH-LbU7C;2NpX99>7ini-N-T-5<4XG`squzegFrTGaf- z?DRs#>?zcsj^~DFrQo<=AAP<3>H#WemaW&NL&X_qJMI z;gAQP<`Rp?ppX_3wAh0)X30V#R7UiQ^X!X@Sck~8(zfY+x3FMMS*n=1UFU3lMkbNk z2j0LQcvk;xdAiKj*!lG*5<;faSg})D%xj-jkZt$LcJ1A`T{b07H?_kO+qFOPgoHi_ zT8!PEnbwZ`&oR^;BJ{>SO__-?#!}q4j3N5UGjncugUjh)=+C)-eq$|Kz^Tc|4$G4E zl{y@A`ZC!0nOXL-(fwvyB$mBgd(H%x*^P=4#%x|F{Wr5CmCnBb%YP@uGc)&l4j*vP z%%?YkHZ6B7nUK>M@|2-RYb`&~9Rlh&S!S{iA$7uCsBm3s@_X8&eKIn_rT+%2ou7|< za$I8B>R1Tc)M-$7TZ|0*PKi{7D6;@r%&JP$hS0M|#`iJx5H(FXtV2K&K9Z#PyuJ=%NjC;VykEKE=OGLnMsRTHM?H&U4Y$=?t5E zP6Qq?J+nt?IF#H8iDjKW%7JT>NuV@CfyHeBDxG;_98KNeN<<=>+bDYhVIempzAJ`&2hC1D8NY=w7h+uK8`*Ik@gS{yLQNuBJ10r$(6vqP1M%vA|R265GyC`mkWYM1` zHgSt2phx!jA?vONXG@7Q9ZDLPFnkX?N4`zMn$f1bEtNYjd8^0c5%pvpWQkx4ClI_E z>m<}$8v)fNmN67I9Pe6*I``ilLh$4RNTALKgD|M&4i_qk8Nf(#3C zt&aA)Z5H<-^azhdfQUj4-Oo}KES4( zvqtKDeOxwG4LbYs&D>Ip0(hI3yTYQJo{WmfU|o7McbYYL{5e)tG^zCMJ!^)ZVdO9f z`PRAIjOfp9(Rv4+4sHj`a#ue206hJWXQ>7l?47-S+_ihIsf*^Q7x%^$w$p zrd5M*Dt_V5H~W$?xRZ$2vxztVhP?3n7iF#(Qk}B;V?eBzgAe~qdeqRHv=>>|fLO4( zvEOudqGUUr&Z^kg?vWo+)t=hKfhweKvw^goU{Y|PL;Ut-r6vwGA# z8$9bWciL&ZXMIPuh1qUV$j>Fql0jnkzCn3E>%T=cMCl*vIC?Vg!~>CiBgklee!A|| zfi0vzUS=+;NiIxClQCgoEm~spNoEmIu#ATm^3KHZat}|TPFf7Ej7qq%uHeSxTc=Ge&6|4cgZ*#rm)3VSAN&{(wao5e#t|-4yNf!Zz5m~<{4;NCN@m$u^v5y! z@q5lZTV6mrz5VH*s7VF}X`ZQBT11fO+8Epyp< z*89Ln#(ltCD+yTt=ubhpy>1Qb3h0cEvFsDssr43acC>?M{U-uhbFdVV-kx0nvlmRe zzGjFP$I6lr`}73yocwQVSo6+>{5pHeptB!?ZFBWbx=VQ=lAmaZ3u~^`W literal 0 HcmV?d00001 diff --git a/barry/images/go.gif b/barry/images/go.gif new file mode 100644 index 0000000000000000000000000000000000000000..3254714c062e58233e01e229c81fcd0976afb8ac GIT binary patch literal 262 zcmV+h0r~z%Nk%w1VG;ll0K@+kaQZ;YsanXJus}pT z0d;q3PXGZ14ub^(2?+uPS{N}71eIwE43!599vlx5L`*XjA~>Q=Ba)&UHZ2uQ87?Cb M8KE&65-uSCJ97+kyZ`_I literal 0 HcmV?d00001 diff --git a/barry/images/header_about.gif b/barry/images/header_about.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d7eb6a5e6197c52a5fa81f4da759d7f5cacd896 GIT binary patch literal 2262 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 H1cLtul&B_I literal 0 HcmV?d00001 diff --git a/barry/images/header_books.gif b/barry/images/header_books.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a87c5c83329d23a15654a2ac62a1ef6def9ded2 GIT binary patch literal 1771 zcmdUs`&Uv40>|$KuYx*-h)RfxLTHGJk4DE{WaXG!qti5)j}+TtoUxg`xoM+oc_Dle zj;LdbI*FsAg5{MSJ|_{&*D^`gNyZ+MZndaQxyw1WoekFcGxqa6=ljF=r|edytx{*B z(P$wjYBQ?uQWHc30s)5k3WWki5re@HliMki!6PHph3$nfA}f+>nwv${BP%eBNHxa7 z>dwlMN>TIhA>JWoI5S@)r824VVfm3G3A)F&jpqN4u>UCi#}|Nu6#+#T#lr zsg&wcSw*Un$!cmVBn^#CKV4~7wEWyyLvnF(-KtV|U%l4TysN9&2Zg{7+Fz+~^z9wD^v0Jjfq zn>rbl^{#VH0fCn|A(^*?aNX{>`B^I`ODZ_G?q(u5_C5 z3qxGXvBR^+Ky24+4<|Ju=tih2`G+0q-P6;z+Jx>_{*ulDYt6q6*=DO-5%lUp?heYN zSK9rtV-4TCt`BimUoD)(`Rxe~#oA};&O$;0DW><;xAfCzXyq|N^8?4kL*Cky(WU7+ zd|woB;<{p{f8V8(r-V1(EQDC!=Y6OvDKplG_QRuF*1sBWruIay4ZQ~zPnRZqjHKPl zd3FC7=EB8T6e*D($z&DVj6^oBD1jiiA%udxPQz~vl$@EgQ-P^q&Q)}7ZbaEm5Xbsqz{(KJU@@b2oR6%5dRxMa-!?%F%#~s_cA%|eJ zCOt_c>82s+=t%8AJSI#zuxY1H_aOIrXw|&7%h#BPy9u2|f{yln^Dpnf>Ui=g{8Bol zI~)J!X-es9>-(1|3rC(#saw|4XH+fBtr({d8;d(K`S5FP)b{eY3|_&IWU%{Y-->?a z<6*~!7d$h~ZbCs=k}Sh{Kr_VVXJqE)<^a2V`lmIY&gbQztQ+&Hp9i)&A6}YK1q_}M zXAi2MHn?9#xb@TvQ!k@kc3L9r{S?DDa8|#?7@Q?w9ejp-_K^V>9H3l%7X{qnbGp|t*3J7% zfEQ?6DbTUnzisz_@L$J9TBaHkm!Gk@MTo^`=RyabMKX=pC`RvfN6hspvh1%Sg@a|e z3Uuq_CpeVxaLaQYkmXGg*|LDS)lqk)@C`!SSt4-e>I%pT;pV0Zya!+8JovVVB^!M> z{)L-5El3=-n)XXvJ?QPuh1iA9oerb^RyLmcRP6|TS2l*t+l1YvM@R_)`#lU)nRUX|D+l-}uD5_<&_c&?cc7EpQ;o(0xNB#G(doz!dEHCfqdA*GF5IU= zq}B|He_5FFzVuNlecByG_Ibaolrbi@*?ls357I*CHR+V(FDK&;D?_oflD2^L9Jlz( zcf2mM_y0ovEsmEmQxQRJXHTu+m<_XTzr#3x=J$ZRMN^mG*v|P|js$NcihnHw=p|En XfkatC7dJ#fF1t>P(s^_ literal 0 HcmV?d00001 diff --git a/barry/images/header_contactus.gif b/barry/images/header_contactus.gif new file mode 100644 index 0000000000000000000000000000000000000000..452b7a61d1dd837a6ad29266eb0709b7f94894d3 GIT binary patch literal 2037 zcmd6k{Xf%-0>{65wzX-KA=6$$($487O(~rBFQZ|a=4xU;=X_Uyk76u>+^cO4VPL{t3^+n+mNR#H>I?wM+UXI>`GWnS}2u?(O3#L9W!Bapw{Z zq|-r~<@H^lTI-i5VHM|%PrZKJTdaEdh9_f79z^o<{MaB}qHbc#Kx-kbqFpL}Qf(P- zqG}Q~^gOKZkT$hT0_BoDk(TQ5+3tS%WmPr5Qo@i)SW-qo->2e-5n^?pSP}SgYSu}# z3-~|g=fA)G-2yxe`7X+hf%_k7iXuSikhK5H*^ajw) zecI$wO!w6L=?Y9K{;jBgbm8;jFs|`qZAsb8_tk0DgSs%=oWn|41Cls@-HcY1*BakF zn3!a(k+mnkZrq`dswsTN0eQY{9_gGXDX~U3n4SGu`@#~;PX2V{UQul9H}ZqA&QRYD z7xQ3DyOp!~!RrSy=1&6mS~R6p64qRHKd2ApoF8Os)%;2nr@-hhv-4e}P<{g~CwA8g zA%1HVZpUTigZYN4e0lAP@~rSp6YSSH>O!6Rd6PjpVJTSfaspyC=NY&Ca(=}|;hv2~ z%w;93xr1!y_tpRDj?kKATJ0PZsRB&m?#2!FwFtG_`zb#jP#bL1zkytNk#kkmz z`900yS;&;_=F2+474ii`lsuPD`_G%Sx)#dV+3XQyIlF|x`!8haCWXR8<(!$kxRi7~ z^)Cbzf_sRc00sd6bYYx$c?g|~=XFNE`}2HM#88>cGd7O_496ffCGSuc-fKJvj+FD& z8RFhpn8oF{91`4eDSP|%fEx^h=~GCjJ!W{+ZaW*q7w z1u7TAp=>7^*jBc)JP0pNZs5yV+wsfkm7-3*8j|XQDT2;X*b|QmcF;O&qzqwFVMp!6 ze1N@8q3*Vgjh6CulYY0Xu02!^~ubS)ne{NjwL_lWtBJ7yfM zpJT|35B4`B3(%0rK!sYCyp}bM*tZe?lLd`aIdnhjXnHdXIkvaOJaQ{u(VGoVwhdEY z9|LgW7?`W;wVDNgQEVx^PmL$dpBsoD3sWOD0Z*GV5R>#XfKNdgpc9$G!+;T^Gq!o0 zQ5p0^J#$Y3H7mxaQY}W|k zeaAON@!do%^5Yr2#sUf^!SnaTHHlC+vE$!Ecco)D<8{jNx86AVX$mq}*#&ckJ#Be` zX5%N2Bm5WvzuPq>$o(zlwkQ$l;nBIiL@D z&kVpVi0+_sqoKxgx;bV!cD?>I1U|tX%BDN%8>L^<(#>h+=tS(qbK}I=GM0tY-pJ}1@3SgQ{PFV>bF6iYsc<$d;LO=`Y|U! z`lbntUD$1|0ve#6Btsl)l8b!dS6_qw+LG9RIKX&LEx&4|%v4q52QW__8MI%*7k%o2-K$^X^X; zdzyb{53*jR*s7Fi$CA5z!P?Ag3|zjKK_*GH@}7xtp-?(rRMATGi43=(Q`4S9&N(f1 zK_LnID5r-Sm%b7Ny}>qXQ$sDrd$$D>6^)$cgw}maHQ!F+kE^;;D_xdUF*!eOk*KUx3x&tE||-&lsNUt2y;3c+Keax&JhDW$04bF`8J8=Ax^yK1B`>C`r1s8F zlBOf&LqqYkRqI7j8C5YXm`)ea1xl#v`GRWV1s!H(G?yfoCr8TTAsMek-NlnZTnV?! z&?Qr&ESSra3E<`o@EF)Pp+aZT+TjsIEo&NEQ0nzRDEBMXN+klr2vX9X(>|mtRKJj@ zM|WYHqoClU!$GQ**o0N@#T#=)8CT zeuqYTy&ieg*FS)vsI*tDY>kc07?V?m>1neu0O3Kgw)1m!Y|MBR)AVw-lXC27cawed3J_-0U-rAFWE=JpP|B(T9Xq_~n^s*rsM&)J&Px(W_yxwREXG+Gvwc z)5JTd^Mshs63!4)O8e4|J8X;+@0DIxH}sf9gPHcbb$Be^p>gN91Jw~Aw&PeQvK~hC ze43@251!#+eF!d?*h4v;13=3A#@h?fN7Vak4CnK*E+k<^Y|CW!3UipS4uf4w*`vf8 z=m-=Co#Y7fYUYxuqME?KB9HgAY6=dSYmZ1hZ=}vYh_l}fA9QYjt4WQL+tvgsD`fR? z*91W{ko{nz8fSn0T|CE0Y0&s&8!g|lIv23tLKB-{%mMh5mPe-JE#46GUAmihYT`Iy z!ia5-4UQG5MLwU^IF6WZV-arxYH?w#R&`OT9O7Qy+Tc}jq&ScVWLh`vv?I(GA~9M1 zvB_GG7p*!WdCHz`Z8_>Xt@U=zfSd_ak&n8GFMjRBSOd!7q1b@;AJ)jh94d!}iy-%~up ze-oEx&s`f#OAV(F$NjQ~KODE(B&PQM%j?C`P9mbq1%o~zWsbD_JEvn=mlFg8%tk-p zrdva`Ya$gab3ic5^vm6G4h_QJGO{r?>R$HzS9a0C%=?k26zqDSALoh`pPd$aDDGUG zoKg8im>iMbal*}xVxWq4ZVM^TH$5?A{bt4nCod7wZ~Lb^c|0qKYl6$ZkauX`fOFaY z+nhd?t(a`xOtK_;ax??eZYYOLLO|?BRw$T@GZv^PiP-_^9df4O!BqXHpGXR)9%^|UN2x^=SUEB} z6c-#U+~xekGOp+G;;28>Kkqn0>V3_Wj=4zOi)vO{edIMQQ};5ym=fBbKZWG@T0Slbt&6ZnsSWNcq4qK1?FdjxoKK;jQ`I>dlH)y-$R1g_9uV z+h3}Q9KYRp-lrLPxsB&=Vda(IglUZwZ5kKfyQE^HLpwNN43HFv|FqPTkgUq}@?c*F zcxpo0X?((oMHpwG6Yu+1&hKIuKi{rlu19ixa+8cB!h~fMWiW6WwyQkAz(#?ZhiNwg zXt4`fPxM!|SU}W#N|c@L7fcsO&wpKO25{jZ6D4RA<-`R3;Y#*m@vS1iyfH7$!aHWW z?TFdqy~cL?(3-qkuq5V_`Lpr*)}wM3QBjNit4)kczDGXN=Op!^UfnTQ9&)6|+ivZf zx-E0LrbjD+*0pdW!*`_b{N6ARl@ZVDj*6EXJvR+ogO$}$OunL~=%U$yj6!D!3s)Vj zIlVBh_N-?MUzbPQ1&SW+$Yf7tUX)suv5Nh&?)IZ;A5S!1*zOkdU6H4J>{6*dGsI-QY46$V?GwJH4WS$0+qm8(z zqVXoLiNk*krEXxpoO*h4v}138h*RDVo@|?psQ~7@e=6!Y`sLG=uP5N=_squLJ@}XH z%r;|SPsMkkhb{QlbDqogm|tZM7I5&s&>w3~KY8jIUG0naNE|GV%MZt|PLYP3{n1_e z{txfER8h;`yL`(z(yPma#95|!r$ND2ly)Q*&pC~LKtu5{jnCestj`^k^j;ZL=|TRM zy4LAS=vW<_ni4=tgVNzJ&Kk~)N8B@tbx!>qX$?E7@3Xn69RvR zPf|2NPMeqdg`j6?c1FDGKAVBa%8XD+_FK{65wzX-KA=6$$($487O(~rBFQZ|a=4xU;=X_Uyk76u>+^cO4VPL{t3^+n+mNR#H>I?wM+UXI>`GWnS}2u?(O3#L9W!Bapw{Z zq|-r~<@H^lTI-i5VHM|%PrZKJTdaEdh9_f79z^o<{MaB}qHbc#Kx-kbqFpL}Qf(P- zqG}Q~^gOKZkT$hT0_BoDk(TQ5+3tS%WmPr5Qo@i)SW-qo->2e-5n^?pSP}SgYSu}# z3-~|g=fA)G-2yxe`7X+hf%_k7iXuSikhK5H*^ajw) zecI$wO!w6L=?Y9K{;jBgbm8;jFs|`qZAsb8_tk0DgSs%=oWn|41Cls@-HcY1*BakF zn3!a(k+mnkZrq`dswsTN0eQY{9_gGXDX~U3n4SGu`@#~;PX2V{UQul9H}ZqA&QRYD z7xQ3DyOp!~!RrSy=1&6mS~R6p64qRHKd2ApoF8Os)%;2nr@-hhv-4e}P<{g~CwA8g zA%1HVZpUTigZYN4e0lAP@~rSp6YSSH>O!6Rd6PjpVJTSfaspyC=NY&Ca(=}|;hv2~ z%w;93xr1!y_tpRDj?kKATJ0PZsRB&m?#2!FwFtG_`zb#jP#bL1zkytNk#kkmz z`900yS;&;_=F2+474ii`lsuPD`_G%Sx)#dV+3XQyIlF|x`!8haCWXR8<(!$kxRi7~ z^)Cbzf_sRc00sd6bYYx$c?g|~=XFNE`}2HM#88>cGd7O_496ffCGSuc-fKJvj+FD& z8RFhpn8oF{91`4eDSP|%fEx^h=~GCjJ!W{+ZaW*q7w z1u7TAp=>7^*jBc)JP0pNZs5yV+wsfkm7-3*8j|XQDT2;X*b|QmcF;O&qzqwFVMp!6 ze1N@8q3*Vgjh6CulYY0Xu02!^~ubS)ne{NjwL_lWtBJ7yfM zpJT|35B4`B3(%0rK!sYCyp}bM*tZe?lLd`aIdnhjXnHdXIkvaOJaQ{u(VGoVwhdEY z9|LgW7?`W;wVDNgQEVx^PmL$dpBsoD3sWOD0Z*GV5R>#XfKNdgpc9$G!+;T^Gq!o0 zQ5p0^J#$Y3H7mxaQY}W|k zeaAON@!do%^5Yr2#sUf^!SnaTHHlC+vE$!Ecco)D<8{jNx86AVX$mq}*#&ckJ#Be` zX5%N2Bm5WvzuPq>$o(zlwkQ$l;nBIiL@D z&kVpVi0+_sqoKxgx;bV!cD?>I1U|tX%BDN%8>L^<(#>h+=tS(qbK}I=GM0tY-pJ}1@3SgQ{PFV>bF6iYsc<$d;LO=`Y|U! z`lbntUD$1|0ve#6Btsl)l8b!dS6_qw+LG9RIKX&LEx&4|%v4q52QW__8MI%*7k%o2-K$^X^X; zdzyb{53*jR*s7Fi$CA5z!P?Ag3|zjKK_*GH@}7xtp-?(rRMATGi43=(Q`4S9&N(f1 zK_LnID5r-Sm%b7Ny}>qXQ$sDrd$$D>6^)$cgw}maHQ!F+kE^;;D_xdUF*vZira3mirL!0#qO%H=4g= zG|B-U0HbDqX|PbEVatm(h*@sXDUt6IWr!iK;$YNlMi32xno$%%Q5Zp#$L=>vb;CSW zap9eAS205gBV-|Yhe~nJctyGJk+TLN6aV)1vmRhfncTEHThh;zFA1?rY4i*bp%N%8$JD;`h3?+0oco3!0 z*EXpRJf0HiP)&YdE}1|Oi=GJX4)4)BU>pYSTAADz^}YU5m{%&{r3=fCR2&6}ITEfF z#nzVUe&*~sxtx01wnV0k;u9-Xb@iD<{`{Kos`Hu~+H*FCnhx-GH{88fpOc$+(B`Jz zptYg2?!eXFf7)HCPPO{Auw|64NK^T@Aloa5X@QGq$`rCoE&$xiwn=oad6Zv`QG26u z=jsoCMMMI>pB`F}G4~}F<-BvtPr`VrnW-2LhQBjtAjMgL?~*pxNHe@oa>dE6qcMb# zkj`Tm`+w#E@!0ef3!0^}{bC-Y0CvZDAH7qao49J8D>t|IUkGFV60_gan*etwAn<<7@+NqPvw%D+P$8;2+;U=E5CZXz<(}M zn_GKgWN2bRWdw9(YVoJ6G(0VvBQiLeqHEHeIqE1?!fagsqOb($^3wXh2`0VHq+R2? z*W*UH@7@>O67mB7r=BF2X1HTRb1N*1e2m@5pj#PbHY~Bv?!mX?PxjjjK9hNb}(SG8vadg@_Ko-f@_o6|I|aiZXW!2bZ)HYs5M literal 0 HcmV?d00001 diff --git a/barry/images/header_login.gif b/barry/images/header_login.gif new file mode 100644 index 0000000000000000000000000000000000000000..5538205dba4be8a1a306d7fccbe749a5359847d5 GIT binary patch literal 1351 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 Kt*I7dV8cHL^~yH@ literal 0 HcmV?d00001 diff --git a/barry/images/header_new_account.gif b/barry/images/header_new_account.gif new file mode 100644 index 0000000000000000000000000000000000000000..f39d7e3d9ceacd817d048f943a6b03f758539bd5 GIT binary patch literal 2210 zcmd6k`#aMM1HivFvl(_~%;mUEE^jVnLg;4GT#|#Z<)EP`4rRs&lSP_aS#@k< zlSS_0d)y+!5<-Wjk}fAEr*h8ewe$2}yr1X!{Qh~KkIx}*H}{x6z#13=0Hsn{AyrDH z6~IZrzakTqD`^smTniyJdT8>RLbSwm04$coUHJd$(5|$ z7ibzfqkSSl+{k{|SUk8ERa+CyqdBkwoieRGOHwMNQsavbGzq77VGYN?(`!#sYKkQw zgWgb#qv1q@6;0DG{Mqh!20=Kv#sg*1oS-01bhotKzbxv%yvU^b;-70Who_rBkcXq8 z=`|Ea1Koq=P~4Kq0p%^y!CL8Z?bt-;SZz};D<6Ep7AMdfYcd)y9v9S1yjc@~#lZhD z_TSsSzX0G{41k%P!^+LOlF!m+v$3$^YueX1oYJzQg37Auo40Csx9?PyYQta%m3oo5 z;a+1SLV(5IZM}(RqC0@D&hGBEzJ9(?@@RPEv5IC>|7|n|4oA7qJe!@HLp_E6HX$z* zXpSzwSrKUpw3k?u^NRIPvsyhLTlsZw|M|Ak)Y6vbQtl(+b*o`kFWD0A)%53$PUSQ4 zGTva}^Bx;r`2D+&VmUPOfNx3c!=fC6%aJ3KWqZ=D;6m*VHUFBO^VPKF_mQ*YVNZ+G z$icS+ivySTm#)SFA$>A|vyrA9??GaqD)Dxr%Uh7b$~8_#x1YH~4uhzPw>8tC1G8pZ zWJ6%ik1N_-M1R74S702V9<}bVgc7$0lP#Yh;Ma0kOO6=~Q1W2`A;c5#3X0J#krh4n0 ze|gsCKwET7-u;;cM~@_-U!HyWE@oMy1XK~e|7_sQ3R-0rq`|@?;>*8KvIUy zk8~9il=BBb%l|3Ry*fUy3ZOzmQpTofPYI(P(`*h;i&k3YGMEgh3e*7JA=06w(RhS8 z$N{E;eF)=eAGGARuKUmm4kgfTZD!d(+TIt?s8ptYl&!AZcaFZw>gSys4?E~(cNid| zKEFvPj4qNah+bamJ)=D0`e{V)fh@j|i`VqWwn8oCwU+AD7@+m}Pp(U8^>r`5SReyN zxo89_AjZy67r#pN3HwA2XOCl4;?2TBpi%osX8~zODn4Y9_4q^A;v_CA9`*b7#*E|w zGx|AT1jQ5DV9(7uyX%Jwh>$IV?KXW)l$4R92ZbiLks--k?~ZKIxk7U%HWS^WqGL~c zoMmAtSHigO=BfL5R|}@=RD2D{nu(z3;S`v>>($|&%^`g=dviErBbR5%aRUEph$Eh$ z{)sx0MF|a5RpMDO2!27q*c)gu4|ySy_k*_f& ziH#DQs~DHxQ*&BcP;6p~jHPS`_e82QJ)0A+8s~i1?Z(^7&Wyt`%qvfj410WTrN%Hr zJ2a+jsC>P1iiE>*u9%l?2J2DUuSUY6i5R#n%ZCI&)tUn^GiOx!=C^}b8(9~Fz^>)> z<>Z|&3teAsu_}$12|oB2ywIgA`D z&{UHIn^M55G2m=V7fqxuZ#k5ur zIDWd|bJ_Gba~9VBV^SrTj zRXDEWaQEJNJbmW;+cAZhy7PSTB6aJ^>gDJZ_+h@m;%}pJ5ajP}4p4rRs&lSP_aS#@k< zlSS_0d)y+!5<-Wjk}fAEr*h8ewe$2}yr1X!{Qh~KkIx}*H}{x6z#13=0Hsn{AyrDH z6~IZrzakTqD`^smTniyJdT8>RLbSwm04$coUHJd$(5|$ z7ibzfqkSSl+{k{|SUk8ERa+CyqdBkwoieRGOHwMNQsavbGzq77VGYN?(`!#sYKkQw zgWgb#qv1q@6;0DG{Mqh!20=Kv#sg*1oS-01bhotKzbxv%yvU^b;-70Who_rBkcXq8 z=`|Ea1Koq=P~4Kq0p%^y!CL8Z?bt-;SZz};D<6Ep7AMdfYcd)y9v9S1yjc@~#lZhD z_TSsSzX0G{41k%P!^+LOlF!m+v$3$^YueX1oYJzQg37Auo40Csx9?PyYQta%m3oo5 z;a+1SLV(5IZM}(RqC0@D&hGBEzJ9(?@@RPEv5IC>|7|n|4oA7qJe!@HLp_E6HX$z* zXpSzwSrKUpw3k?u^NRIPvsyhLTlsZw|M|Ak)Y6vbQtl(+b*o`kFWD0A)%53$PUSQ4 zGTva}^Bx;r`2D+&VmUPOfNx3c!=fC6%aJ3KWqZ=D;6m*VHUFBO^VPKF_mQ*YVNZ+G z$icS+ivySTm#)SFA$>A|vyrA9??GaqD)Dxr%Uh7b$~8_#x1YH~4uhzPw>8tC1G8pZ zWJ6%ik1N_-M1R74S702V9<}bVgc7$0lP#Yh;Ma0kOO6=~Q1W2`A;c5#3X0J#krh4n0 ze|gsCKwET7-u;;cM~@_-U!HyWE@oMy1XK~e|7_sQ3R-0rq`|@?;>*8KvIUy zk8~9il=BBb%l|3Ry*fUy3ZOzmQpTofPYI(P(`*h;i&k3YGMEgh3e*7JA=06w(RhS8 z$N{E;eF)=eAGGARuKUmm4kgfTZD!d(+TIt?s8ptYl&!AZcaFZw>gSys4?E~(cNid| zKEFvPj4qNah+bamJ)=D0`e{V)fh@j|i`VqWwn8oCwU+AD7@+m}Pp(U8^>r`5SReyN zxo89_AjZy67r#pN3HwA2XOCl4;?2TBpi%osX8~zODn4Y9_4q^A;v_CA9`*b7#*E|w zGx|AT1jQ5DV9(7uyX%Jwh>$IV?KXW)l$4R92ZbiLks--k?~ZKIxk7U%HWS^WqGL~c zoMmAtSHigO=BfL5R|}@=RD2D{nu(z3;S`v>>($|&%^`g=dviErBbR5%aRUEph$Eh$ z{)sx0MF|a5RpMDO2!27q*c)gu4|ySy_k*_f& ziH#DQs~DHxQ*&BcP;6p~jHPS`_e82QJ)0A+8s~i1?Z(^7&Wyt`%qvfj410WTrN%Hr zJ2a+jsC>P1iiE>*u9%l?2J2DUuSUY6i5R#n%ZCI&)tUn^GiOx!=C^}b8(9~Fz^>)> z<>Z|&3teAsu_}$12|oB2ywIgA`D z&{UHIn^M55G2m=V7fqxuZ#k5ur zIDWd|bJ_Gba~9VBV^SrTj zRXDEWaQEJNJbmW;+cAZhy7PSTB6aJ^>gDJZ_+h@m;%}pJ5ajP}4pQIwr+#&^^PRuqd;Wpv`Td?PzTPhDBNc!(a1Q`98cpSZW?-Na zhyl2j8Hic~!Z57TuppLNjfi1TjKC6=W_?k(N(Hxe2~{eIucMixQ815TsO{fl%AS(5oT7-1L zDp&$TVnn^Uct_FgtD^Rd3~4w|0**}2wh#2&8k8nn5hX}tqyy8^!QsJCMbCgVx+)~A za~QgkkkOj)eEJ#r5c!}aEJPv#{@*bF4fyv3Kv;x;EJ3y~CpRx&XjoK4#feG`OT^;R zGsOjG&z-NjP%WvcJy&Xo!x2!8vZgD|SFaN4snojbRR&oGH-U~@ot-xn%1aG!Z(sj? z6sc8NV_-}qlJ!Q%o{W!^9}&BU)rIw>2h(rf%1HHwlfs8j=RYkx(Y^EG`lZV=KmUH) z+I}N>eZ>}7vXNl?G2M>cT&>J~@HqbzOC{+ke0GOHA+*%>MvK9~yFRC)Zx?5qoCxcG zc*Zq3j~-y}+eXjM{$|!b(VrOD=We-QyGM&-xhdVP^kX#eS)r)v$Xu+b9#Y2)5NKffU3K??uw?j&v8`O||ci(y0Y@GJKMu zUIWczfVi}W)$UDo&_`OmWkBifR|Td6#C?>_d1)sAGRBPqEs|fP2Lk! zCWfi2JMG+e>lb4@#hE5aP;YW@$LqAwGX@8(>>h8ck=!D_Yp;$+(o0y3VEp?W(5Pni z@QCgEAXZmn=9icEcJ}I+qaAWcGBLq~pMm`PyYcesW%%u1oFOg!Yo}hs9XiWFgmJW4T8;TiBpcv7`SnOE6PazR^0c^s*Vga%3b3(9tDlg~nZ1VAth)t%ry% zTt_cM!#y;evH~|qkYmb@FZtu;O+G?ubBi}gpo!buci+1_MwO*E^Mf%hjTU>Zl&0|@ z#`?3t;-MCX5M(J3*cMDrNvuO z=g4UMro|w@A&`XJw+NeByOZ7gdZriY!_?MRS1&pW!aOi12iP|;PY~oDW)4IKZDa}r zr|SZ6h{Z#7a1?D+V3kL95wnL!qdcY`jcr`H+-4BRgS3kpVxb)Mod9DB4w(SxBA=O; z^dBEwITBkH+6zLN!c2SzpI7czTEpr`vAS3s-K3Q;$}-vG(h&ZIXDO5u=Dlmma3dR@ z>mr-pE_CXMa4lV%AC44DHwvB-`Hd7d2e;<+Bh@hv#j$>Tl0T~()fLKT@20aClEdm7 zcw^*JF_2;)pWRc=SXjOx^+~4Qp7JGaq?)IbhCYwxa51Z5qPmQHeh)TWG@#EzXU0f78g?xUuke^PLMi3ExRn)p8v=j>E>$1Ed!gI7&-Fz~M1izu+407$R^hm8k( zU4-amE@(_9J1gZJfWZflDy9*N!*?A?#Sy4G#4m0FWJlRWpmm*4TVDtYiDdu^ht-ap z5vHedF!R^xrAlJJ8FQUj4B;%1^y4r2HOm}Dq>Ke>B^6&;dkwUYN8o8ByD2aZ1Hl+Z zmDSLK-s=z@>_GJJBy$;H#at8E#G_$W!(1b#$f&HMcI3d@(zxbVEAUNhl$QCXAszqY z4;#1Z!IQ;HuR(-sbS-Df7?U`muI60Z$5C=_9SKMTfB4w&O@M96)AQ$>d?fMo<=dSa zYqQJQ`xswPe6LWQvm5$KLwO9d3UZc(mcJ=S`>&H}cfX`>rABRA0dj@0z=MoMnjI*6mO9m(>T~ED*abP^_}^ ztnDijh{}d-S41Sn8oYCU8ytA~kks0F^ZUGfS9hz!v$7qgk(j|$Ks#g_Yd`Hz>G4;_ zy@0(rZYjk_=g_}X`*WEwj`_*DL(Oxi-z<3J9rt@18EIfF-=*;B!-bso3uoT1PU8vu zwXjX2a>kE~HBObAkfRjevu-Ls?bd0f&4Y6@3#lIdJ5MX*cCF77<079*T~pE?Co zWKK*i(oH*Ny!BT(kI#pe$@_}*T`dnU%`5o`N_B!0X-mVuT9n^0syaju`kCh|`PKzE zU{fmf>l%&Z@n#!@Szc?2VQt7vOtTAHu=jCjx#_Nb01?h{CILGG1})G30_`KHB|E|I zcWv>ArRRX&NsGFRb_x9{JGoO7WnRyHTl2thQlQAO_8wce)!b#Ax9dPqhxZBl4Pkb# Kt*I7dV8cHL^~yH@ literal 0 HcmV?d00001 diff --git a/barry/images/header_parts.gif b/barry/images/header_parts.gif new file mode 100644 index 0000000000000000000000000000000000000000..1250f31ca10bc8f55c29d4f77b71602b94585519 GIT binary patch literal 2116 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 a!1Sg#?TZ}N36L|)A^-r&sZhZX1OPjE1RrSt literal 0 HcmV?d00001 diff --git a/barry/images/header_search.gif b/barry/images/header_search.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd637dd00b75526a2989c4a071bf76390c82b6f6 GIT binary patch literal 1488 zcmV;>1uyzXNk%w1VZs0=0Hpx{nauzH|NqR)nE+-0z~KLIu&_XoaInz-kif8@(El@q zKQMq$;Q#;s|KNqc-_X#o(BS`kxX*yFun=$%CVxNR;LzaUz|hd3W~F~$rJrf6uaCv= zAb>C&c`u;A(521KFNIIA(BN{dkD1KOyv(?=)!!g+Ab+)=Fn~Zpl5fDkppd}OP@r&D zpO0CcZ;!yglE?3fzt4=luUVjvS)YHX((k3r<+aSk0000000000000000000000000 z00000EC2ui0Kxz!000L5z<_W_EE3~-337vB4HXs^7b=#Qn30QgYYArzp+%CKu(7h34}Pt7W@)Iqyr*(?cY6=B#Kp1?6}Mjmq`l71i>hJ` z!^YOvo1e;}(B0mNP~5;8NDYZ+{A=MwAn^gy%dF)%mR%-G3vfPtTjf)048GKA5qnJjooI+CYP01h&M z7(nBVNT>i_=zIb71J<`6xiD}e^=TUiQ~^XVFkxrUH8Ch~V9MdE8l7bgP@u5JfdRh; z8~~77fW}T52hOfT@D{7VBV5&})j7k#naphlH=Phcjnt-jbuQ@8lJVrGLZ$X)iXiki z8=bFyHUek&P7WeM7y>|{<%Ekb#tuN?dcw);Izg<#O&tL30oG|4pw0Gm2NcFZ`2H5$ zsN6RMPT+2-fMNul8rDda{02qs?atBgLIFNmCX`Z=jW)nn_qBw=dft%G-b`_6F;^Q2 z(D8wBO#YQ+;Cxf*w*ZIJ0Z3LGyKw*qWhU0wkAxF)G~5zy%mKv!95 zoRCX1yX`0y4Obuv!3hx9ppy$xDB$1~IvK#w69h;%KnQ#?@IeR=e4x_@5U2qq3Y~VE z>oZn0D$t`xoOOVK6SzQw2s8}plp4kfSipc|$*R+X1iY|YeRLo;2cim2puw~vOz;8( z{t~Qp;h^;u0tKS#^unmHSrU81uWNjW8wdQYK;lkNm;fRLo+6gv6$Av?lm`h&C4nx3 za*))jP$+5&XY`Vz)fgAL2ExA_oUq&(BH%V>NKk@D!>&&-U}wuWWkBKtAKZ2za}IJv zz@Zi|!hi)CU*m}&9rO9Z(Px%mMMwbb3`Lqp!)XOY)4s5@6=vXT=oxGb7&Qcuw&Aos z{#em-BJczNbkMR44NBO2{!&I7@49=&-CV1JC*F0h@eA2(?2IVfsq7uNr-UQ2vk}y= zeaSuBFwnCUbXSo$pHzrMMd4M{IQ1cVbM5!$r7)xgB^hswju1?rI`24vrVtW~Vn@=Zv_uC)lcIOZJ9pWFM z*h42Q@Bjufuz?P2ATp8xzxW-20aZ%HovPreQK%t%Q~+BC3pa(tg|35SqnOU3peRRJ z@P#l;M`#*x8aXJchNKXmNRHHq;?>ZDeCpv@gqVus#qfwo6oMIwhn7>Q!iY(XVicdi q#3s4}fl|z(76WjaDkg-6OxU6r$7lprUG5psV@2A?$VMXs0RTIxim^Tb literal 0 HcmV?d00001 diff --git a/barry/images/header_shoes.gif b/barry/images/header_shoes.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7df21da771df11674e901ffecfd63744c0df267 GIT binary patch literal 1647 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 VMe0s7@%>rG;LyM-z{bd64FKYK&-4HQ literal 0 HcmV?d00001 diff --git a/barry/images/items/KHS.soft99.jpg b/barry/images/items/KHS.soft99.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3db5d6b6c2602822c1d1b3fa288137f52b22016a GIT binary patch literal 5911 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 literal 0 HcmV?d00001 diff --git a/barry/images/items/RST.381R.jpg b/barry/images/items/RST.381R.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c394503ea1175e62c8a1b1b94b6662ccae954191 GIT binary patch literal 2953 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 EU%Y+8X#fBK literal 0 HcmV?d00001 diff --git a/barry/images/items/avid.arch50.jpg b/barry/images/items/avid.arch50.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd6cbcda468b69e1d109fe49b5c7353206dd326a GIT binary patch literal 3927 zcmb7GX*d+>-<}175E?>aG{lgOJwzJ9G_o|7?8%aSUpjn_k4K&*Zb|gpZnYW{GRK%?&tbFzx!zXXb!-SHo9&E00Myk)bRow z9Rki9dHZ?5?uB@Vg?R+PTq9vf_dr(4%cK-f7!V77l$9ew~13VkN{W! zpa*DNMOz@UtZq4eyi6|1q<3BD%zQ&)Q}7ukr4&maEJ8(3%#^=c9j1PKL0BMr`asKz zj{qzcpNpGfY9_GUM4h*Pv3VR;IW~GQ94|f&NXeivQ@z59%eR{_aa~P^a7&Y0yo$l% z*V-H=!oVbYDGJx;$fGW3^DjIOFZFbk1XA_vj6aos)gJ%tU#vb4E_~Vqd0bBa92w`z0Rv% zm*WQgy8QThjpFhSttzD3=$^l<=<;Z3?~7i8`!x8#d{)`1oG zhteIPH055}l=`BhRO zgM8XFaeRGUi22$k<_K_F0wspMlDm0xxR3Kpf*ve1?PAqa{h%CiEA~$KGFJ?> z`Wsm;J-)l9UWyqa$TVT+me6?jHTOV0Xf%X8C~O&$H8b0Fbq6w2$3mbn@&D3(v%{pB z%KAZBl3R}#k&9niOwb!5{a$lbaGrM%8+m5g=zJF%tqrXbTukOdjz_=*BZ2e1w%O6w z|8y%jZ|~RdScH3S-6Z3S?nCKE=F4uTZ+mJhY`dP! z$N=pHLUR8=4pnfP4PGN`$#IFa#W;8cbL$U5aUdvBg;TwoEEeSbeB7H?4VzynErUQc zp~T~a`bc>Ti(bL(3Mj-CqgQFFUspTt1$?ULuBdv~KEUD@#^=R&>xdW^N!2V|b0-o3 zL2hTt8d{27Z%;(t99lE$2&(*fl1H)Xq+_H+-tei!2;YS#smr*QnSxp?N)kX(UZnqu zoe*UxVx`c>JW-eN)+FxHCyrr_47~B*5|N^!yJfDjB%1ucwmqb;V0!qp3+MIGX`MVH z-1Vm--v;%m3b$z_tn_StBW}XxZpy%N{T?RQR>5&})v#b$Zh^D!_9la^?WwH9Y4Zw) zb6o!8h3(!9LBda=Jb0`1^0RL{t2Q!rQD!4w{j~xaLV?O|`2{aA?4G^_u+}ibN?#od z1EtB)5NLJ;n#XjDDx4LBhmzeS3j0d?B%H#v)jej^f1n&LG*X;`>q|s$iXc1GNcdRt zh0#4j!_g=s(CK)^5aL3Nu}A#=uxr5Us7w3>t2v)>N^4Sv3l&T`Dk1)Z_-p%I!57N6 zeM_}}qI&=Mfj_zIR7FM{w=delWhd&Vu7b`EJ5ZLDr)Q6obt-W*3q|d540W<22yZtP zIA=dR*G?vF2^@aO+jw~dpkNg~i<=tkuy61dI;t!R3qS7>sEZ64s-%sI$O5PmzM5UI z(55ocG9%IVMrl>|#*#-_PFQX$DBf&@4=dsF`|*7rb#Qn7y+ed|jCybsZ}&BO1$l>>+v|uxrC&js8p1VUiL7qR5T$0^M0U9b3t&b%mxHf7ZabjwvRxZoL zkdsL=-uC)LBqSfAMdwc$3q(*}XK%2j{8|fS-WD+&Tc()BY^sPY{b)0dv&h%3G3h0DhVfK5!XezW3KpfkrSjKNT8F8-{OMHzITa|4OWym3*x z-iOv79WC%AY-*fqjg1uzag~NZo?7tr=o9mS78PTwVrmY_w`VNRX}Nx#v=0v@0NWiu zR^3?lzq*7s8WD2Y_m@?_6D)6$&=PZ%^#G+bI{WwYTl1157S@wXEI!fI6*u-0zYaep zWdQmHuS`mtfyG7arzF3Y4=}In1;Pv|uLY(+rjy5+MB>zkIqbv_9V9LAZ;MgzK9-Z}J3Az2k4 zH!oFPR`$KEGV}~mas3G3gE~leWEvDMd5{0Wg|Wl0ZDx?%YU*DJYNSZ2n1$LJZEg$Q zXJ)2Pr?Y{uhW2{|=F$o!dKk$@!V(@R+vKEH%TE-!$uyhvQ8njbeC|;I<=tOvw-fu5 ze!}SXXl&G!d zfw36n*lQ>16z_V?^bC$#;jnHYp>ar2h>*3@(q0*LWt+H8E|&D~5MtPmR1ZysW~6N> zd!QsbD%!le*dFz%nCl!2KHX89Ut+((>&}bP>IpO>?Uioy_?FzTI`MT-GIW`4cov5yk9EI!;H!8qa z`*3HQ*ITJQjv0TQ*-R586|y2z_T8hb)eG#&yq7M2q*o;fB)+yWLZkP|(YtAV71e9K z?cy(XPGf3xhsz_rE=f5!ndiJGa{i1Op7vGzkzxPN^$SS1qS8-raw)^!z&zq_DaFcq zCPY+A^ONe(%WH9hfY0(7kA-y_&X2oJx?n-E%3+x6%kv1o+~_h*33uxuZJW|&63y`6 zZ`xHI^FZzKs&QW2{t+Oau9Pz7-fX6W24qb?_N&hlK746%{|GSPYhNy|&YYq5_A#f& ztBiwTmAE1Wcqf67GMG9V2nfJSd;5}00@Y{lv!)%m;URb`)l9sct>eFvtv?%Q^kkl^c1sYW_j(i- zew3C%kjNz&yV5in?`^=oz{Bm{(@zyz+OB8!8_Z_+oowm3`jh!8Yj`A1QvWZU(5va7 znzp}-R;IA=v*#P3l*p9|GqV`&RPu{%KA9CAq^)?@_fm?+?FSmK`qCKP_IhoWsSmfM z?^fve#5~fp3qMId9H^YS!#zbNr$l#LAbhb4kkB`6G_WnegOlPWhjW#zRPCnfb3Vo} zYCx;JCBcsGEX|7G@ci8?JExxztb+O`xOC28B9wYI()3Z z!RG2OqI`Sd@f#mc|9=9&MS60{q}i${EPIQ@c^1Vo9(K0|zFeH1u(Gk!pJ8~IsV%zT z^CF8hzl*f_^&$hJw6_F0oIa?|=NAdpF{kYmyxE>*Cz~h1_3GY7xt4pD+;gSWGSnR} zDb#_6_>V(s-|~+~@A~^+4!y|XZ+4Uru^V`e)5Pf*=V6j0De`K6-i#e)Jd#;68TQOq zx_60V<^k!{=j*H6pJJ{3+Edk%Dt<#umlK18!$S=$* zbR?Np#|f&glC8xk!`m!>onZ#pC2AW~eJ1g(>PS|@7MpQ)ppvaa8+T|3bih7-i|>9~ z#vf>0?>z6ybst~V9zG|I2ep z3lSx%`Catp@)z4aSzq#Jf6eL6t%pNPb>pgyUtx1ZTGSk0&Rv@D6OdEAATa}<(fy1o zQbrynJ;!fk++C9P1#+1Y(&6KHkJ#<}C2~uwqm=&_}oGNo_0QaU4i}G6L-rc>@POB{lUzk4g0LyF*D_%AgyyOOi z!#jaJD^6{f&Ki4FcTk#1Hq{gM{R@BY=E)fUw$t1kxm&J~8 dw(kjjx+)8vRiioGuxp_q(8(B5-Z76R{sWi$B<%nI literal 0 HcmV?d00001 diff --git a/barry/images/items/barbntrini.gif b/barry/images/items/barbntrini.gif new file mode 100644 index 0000000000000000000000000000000000000000..239aa491e6da9e64748929e9aa968e4799fd32dc GIT binary patch literal 11712 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 G_WvK?Lypq` literal 0 HcmV?d00001 diff --git a/barry/images/items/chrono.deepV.jpg b/barry/images/items/chrono.deepV.jpg new file mode 100644 index 0000000000000000000000000000000000000000..283edc01d94d86e958c3b0f93a8d6acc864029df GIT binary patch literal 17314 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 aYPdp^+947mP9f`1QZg`giRB literal 0 HcmV?d00001 diff --git a/barry/images/items/george.gif b/barry/images/items/george.gif new file mode 100644 index 0000000000000000000000000000000000000000..44a6eecd28657e79dd0a87a890521a118b7c7f97 GIT binary patch literal 24242 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%0D*N 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