<?php

class clsRegistry {
	//Order Statuses
	public $order_status_created = 0;
	public $order_status_unfinished = 10;
	public $order_status_cancelled = 15;
	public $order_status_combined = 16;
	public $order_status_placed = 20;
	public $order_status_placed_incomplete = 22;
	public $order_status_cancelled_old = 30;  // converting value to 15 ... this is only here for historical purposes
	public $order_status_awaiting_payment = 40;
	public $order_status_payment_pending = 45; //not used or supported yet
	public $order_status_awaiting_products = 50;
    public $order_status_shipping_later = 55;
    public $order_status_shipping_together = 56;
	public $order_status_ready = 60;
	public $order_status_flagged = 61;
	public $order_status_fix_before_pick = 62;
	public $order_status_manual_picking = 65;
	public $order_status_remote_send = 67;
	public $order_status_in_pt = 70;
	public $order_status_picked = 80;
	public $order_status_awaiting_shipment = 90;
	public $order_status_remote_wait = 91;
    public $order_status_awaiting_pickup = 92;
	public $order_status_fix_before_ship = 93;
	public $order_status_shipped_confirmed = 95;
	public $order_status_shipped = 100;

    //Order error types
    public $order_error_type_cant_ship = 1;
    public $order_error_type_tax_problem = 2;
    public $order_error_amazon_ship_failed = 3;


	//Order Statuses for Customer
	public $order_status_customer_unplaced = 0;
	public $order_status_customer_canceled = 15;
	public $order_status_customer_combined = 16;
	public $order_status_customer_placed = 20;
	public $order_status_customer_awaiting_payment = 40;
	public $order_status_customer_paid = 45;
	public $order_status_customer_waiting_short = 50; //might not use
	public $order_status_customer_waiting_long = 51; //might not use
    public $order_status_customer_waiting_pickup = 55;
    public $order_status_customer_shipping_later = 56;
	public $order_status_customer_shipped = 100;

	//Order Types
	public $order_type_normal = 0;
	public $order_type_local = 1;
	public $order_type_cherrybox_subscription = 3;
	public $order_type_cherrybox_sending = 4;
	public $order_type_cherrybox_subscription_renew = 5;
	public $order_type_class_signup = 6;
    public $order_type_cherrybox_refund = 7;
    public $order_type_ship_together = 8;

	//Order Payments
    public $order_payment_list_cc = [10, 11, 12, 13, 16]; //15 is not to be included
    public $order_payment_list_paypal = [20, 25, 26, 27];

	public $order_payment_cc = 10;
	public $order_payment_cc_visa_mastercard = 11; //old
	public $order_payment_cc_amex = 12; //old
	public $order_payment_cc_discover = 13; //old
	public $order_payment_cc_from_order = 15;
	public $order_payment_cc_saved = 16;

	public $order_payment_paypal = 20;
	public $order_payment_paypal_cc = 25;
	public $order_payment_paypal_express = 26;
    public $order_payment_paypal_here = 27;
    public $order_payment_external_pay = 28;
	public $order_payment_check = 30;
	public $order_payment_wire_transfer = 35;
	public $order_payment_gc = 40;
	public $order_payment_mo = 50;
	public $order_payment_cash = 60;
	public $order_payment_cod = 70;
	public $order_payment_po = 71;
	public $order_payment_net30 = 80;
	public $order_payment_shopatron = 90;
	public $order_payment_amazon = 91;
	public $order_payment_ebay = 92;
	public $order_payment_buycom = 93;
	public $order_payment_artfire = 94;
	public $order_payment_walmart = 95;
	public $order_payment_amazon_pay = 96;
    public $order_payment_michaels = 97;
	public $order_payment_loss = 150;
	public $order_payment_customercredit = 200;			// positive = redeemed, negative = owes on account
	public $order_payment_customercredit_refund = 201;	// negative = created customer credit

	public $order_payment_subtype_visa = 1;
	public $order_payment_subtype_discover = 2;
	public $order_payment_subtype_mastercard = 3;
	public $order_payment_subtype_amex = 4;

	public $order_payment_status_not_used = 0;
	public $order_payment_status_pending_auth = 1;
	public $order_payment_status_authed = 2;
	public $order_payment_status_auth_denied = 3;
	public $order_payment_status_pending_capture = 4;
	public $order_payment_status_captured = 5;
	public $order_payment_status_capture_denied = 6;
	public $order_payment_status_pending_refund = 7;
	public $order_payment_status_refunded = 8;
	public $order_payment_status_refund_denied = 9;
	public $order_payment_status_canceled = 10;


	//Order Discounts
	public $order_discount_promo = 10;
    public $order_discount_special = 11;
	public $order_discount_points = 20;
		/*
		max_points_discount = subtotal - other_discounts
		max_points_discount_available = (points/1000)*5
		discount = min(max_points_discount,max_points_discount_available)
		*/
	public $order_discount_reship = 30; //Amount
	public $order_discount_membership = 40; //Percent
	public $order_discount_creativeteam = 50; //Percent  25%
	public $order_discount_creativeteam_amount = 51;
	public $order_discount_percent = 60; //Percent
	public $order_discount_amount = 70; //Amount
	public $order_discount_freeshipping = 80;
	public $order_discount_shipping_offer = 90;
	public $order_discount_ups_rush = 91;
	public $order_discount_freerush = 100;
	public $order_discount_loss = 110;
	//Order fees (its a negative discount for code simplicity)
	public $order_discount_fee_wire_transfer = 200;
	public $order_discount_fee_restock = 201;

	public $order_relations_return = 1;
	public $order_relations_reship = 2;
	public $order_relations_backorder = 3;
	public $order_relations_backorder_cancel = 4;
	public $order_relations_combine = 5;
	public $order_relations_refund = 6;
	public $order_relations_split = 7;
    public $order_relations_split_cancel = 8;
    public $order_relations_also_ordered = 9;
    public $order_relations_ship_together = 10;

	//Promo Discount Types
	//Old ones:
	public $order_promo_discount_x_off_y = 10;
	public $order_promo_discount_buy_x_get_y = 20;
	public $order_promo_discount_buy_x_for_y = 25;
	public $order_promo_discount_off_shipping = 30;
	public $order_promo_discount_discounted_shipping = 31;
	public $order_promo_discount_off_rush_fee = 40;
	public $order_promo_discount_buy_multiple_x_get_y = 50;
	public $order_promo_discount_free_product = 60;
	//New ones:
	public $order_promo_discount_p_a__off_regular_price_products = 70;
	public $order_promo_discount_p_a__off_current_price_products = 71;
	public $order_promo_discount_p_a__off_single_auto_add_product = 72;
	public $order_promo_discount_product_for_p = 90;
	public $order_promo_discount_products_for_p = 73;
	public $order_promo_discount_p_a__off_shipping_method = 74;
	public $order_promo_discount_ship_method_for_p = 75;
	public $order_promo_discount_p_a__off_rush = 76;
	public $order_promo_discount_p_a__off_subtotal = 77;
	public $order_promo_discount_p_a__off_regular_price_most_expensive_product_in_order = 78;
	public $order_promo_discount_p_a__off_current_price_most_expensive_product_in_order = 79;
	public $order_promo_discount_p_a__off_regular_price_most_expensive_product_in_list_and_in_order = 80;
	public $order_promo_discount_p_a__off_current_price_most_expensive_product_in_list_and_in_order = 81;
	public $order_promo_discount_p_a__off_regular_price_required_products = 82;
	public $order_promo_discount_p_a__off_current_price_required_products = 83;
	public $order_promo_discount_bonus_points = 84;
	public $order_promo_discount_bonus_points_for_products = 85;
	public $order_promo_discount_bonus_points_for_each_x_of_subtotal = 86;
	public $order_promo_discount_bonus_points_for_each_x_of_products = 87;
	public $order_promo_discount_bonus_points_multiplier = 88;
	public $order_promo_discount_p_a__off_cheapest_shipping_method = 89;
	public $order_promo_discount_cheapest_ship_method_for_p = 91;
	public $order_promo_discount_p_a__off_local_clearance = 92;
    public $order_promo_discount_p_a__off_first_cherry_box = 93;
    public $order_promo_discount_p_a__off_localpickup_cherrybox = 94;

	//Promo Requirement Types:
	public $order_promo_requirement_none = 0;
	public $order_promo_requirement_qty_of_products = 1;
	public $order_promo_requirement_amount_of_products = 2;
    public $order_promo_requirement_qty_of_2_product_groups = 3;
    public $order_promo_requirement_amount_of_2_product_groups = 4;

	//
	public $order_promo_auto_type_treasure_search = 1;
	public $order_promo_auto_type_giveout_over_69 = 2;
	public $order_promo_auto_type_order_followup = 3;
	public $order_promo_auto_type_newsletter_signup_bonus = 4;
	public $order_promo_auto_type_come_back = 5;
    public $order_promo_auto_type_copy = 6;

	//Order flagged reason:
	public $order_flagged_reason_user = 1;
	public $order_flagged_reason_county_bill_ship_diff = 2;
	public $order_flagged_reason_subtotal_greater_180 = 3;
	public $order_flagged_reason_fast_ship_method = 4;
	public $order_flagged_reason_other_open_orders = 5;
	public $order_flagged_reason_suspicious_country = 6;
	public $order_flagged_reason_suspicious_ip = 7;
	public $order_flagged_reason_buying_gift_card = 8;
	public $order_flagged_reason_product = 9;
	public $order_flagged_reason_avs_only_zip = 10;
	public $order_flagged_reason_avs_only_address = 11;
	public $order_flagged_reason_avs_not_match = 12;
	public $order_flagged_reason_no_avs_line_too_long = 13;
	public $order_flagged_reason_avs_only_cardholder = 14;
	public $order_flagged_reason_avs_only_cardholder_zip = 15;
	public $order_flagged_reason_avs_only_cardholder_address = 16;
	public $order_flagged_reason_avs_not_cardholder_only_zip_address = 17;
	public $order_flagged_reason_avs_not_cardholder_only_zip = 18;
	public $order_flagged_reason_avs_not_cardholder_only_address = 19;
	public $order_flagged_reason_avs_not_cardholder_all = 20;
	public $order_flagged_reason_cardcode_not_match = 21;
	public $order_flagged_reason_cardcode_not_entered = 22;
	public $order_flagged_reason_long_address = 23;
	public $order_flagged_reason_missing_location = 24;
	public $order_flagged_reason_smart_post_line_2 = 25;
	public $order_flagged_reason_large_gc_used = 26;
	public $order_flagged_reason_large_order = 27;
	public $order_flagged_reason_address_maybe_invalid = 28;
    public $order_flagged_reason_ip_address_country_different_shipping = 29;
    public $order_flagged_reason_ip_address_country_different_billing = 30;
    public $order_flagged_reason_cc_declined = 31;
    public $order_flagged_reason_notions_discontinued = 32;
    public $order_flagged_reason_needs_item_not_avail_at_notions = 33;
    public $order_flagged_reason_state_bill_ship_diff = 34;

	//Order Giveout Types
	public $order_giveout_over_69_discount = 1;

    //Order Tax Info Types
    public $order_taxinfo_type_calc = 1;
    public $order_taxinfo_type_transaction = 2;
    public $order_taxinfo_type_transaction_refund = 3;

    //Order Tax Info Status
    public $order_taxinfo_status_init = 1;
    public $order_taxinfo_status_complete = 2;
    public $order_taxinfo_status_refunded = 3;
    public $order_taxinfo_status_deleted = 10;

    //Postage Types
    public $postage_type_shipment = 1;
    public $postage_type_return_label = 2;
    public $postage_type_scan_form = 3;
    public $postage_type_shipment_canceled = 4;
    public $postage_type_return_label_canceled = 5;
    public $postage_type_shipment_no_scanform = 99;
    public $postage_type_error = 101;

	//Punches
	public $punch_in = 1;
	public $punch_out = 0;
	public $punch_break_start = 2;
	public $punch_break_end = 3;
	public $punch_origanal_break_end = 4; //Is this even used?
	public $punch_new_break_end = 5; //Is this even used?

	//Ship Methods
	public $ship_method_local_pickup = 1;
	public $ship_method_free = 2;

	public $ship_method_usps_media_mail = 10;
	public $ship_method_usps_first_class = 15;
    public $ship_method_usps_ground_advantage = 16;
	public $ship_method_usps_priority = 20;

	public $ship_method_all = 30;
	public $ship_method_basic = 31;
	public $ship_method_fast = 32;
	public $ship_method_inter = 33;

	public $ship_method_usps_fcmi = 50;
	public $ship_method_usps_pmi = 55;
	public $ship_method_usps_pmi_flat_env = 56;
	public $ship_method_usps_pmi_flat_box = 57;
	public $ship_method_usps_alp = 60; //no longer used
	public $ship_method_usps_app = 61; //no longer used
	public $ship_method_usps_ep = 62; //no longer used

	public $ship_method_ups_gndcomm = 100;
	public $ship_method_ups_gndres = 101;
	public $ship_method_ups_1dasaver = 105;
	public $ship_method_ups_2da = 106;
	public $ship_method_ups_wwxpd = 150;
	public $ship_method_ups_wwxpr = 151;

	public $ship_method_fedex_homedelivery = 200;
	public $ship_method_fedex_ground = 201;
	public $ship_method_fedex_expresssaver = 205;
	public $ship_method_fedex_2day = 210;
	public $ship_method_fedex_so = 220;
	public $ship_method_fedex_iground = 230;
	public $ship_method_fedex_ieconomy = 235;
	public $ship_method_fedex_ipriority = 240;

	public $ship_method_index = array(
			1 => "localpickup",
			2 => "free",

			5 => "standard",

			10 => "usps_mediamail",
			15 => "usps_firstclass",
            16 => "usps_ground_advantage",
			20 => "usps_priority",
			21 => "usps_priority_flat_env",
			22 => "usps_priority_flat_box",
			23 => "usps_parcelpost",
			24 => "usps_express_flat_padded_env",
			25 => "usps_priority_flat_padded_env",

			30 => "all",
			31 => "basic",
			32 => "fast",
			33 => "inter",
			34 => "basic_48",
			35 => "non_basic",
			36 => "basic_not_48",
			37 => "basic_us_not_48",
			38 => "basic_international",
			39 => "basic_us_only",

			50 => "usps_fcmi",
			55 => "usps_pmi",
			56 => "usps_pmi_flat_env",
			57 => "usps_pmi_flat_box",
			58 => "usps_emi_flat_padded_env",
			60 => "usps_alp",
			61 => "usps_app",
			62 => "usps_ep",
			100 => "ups_gndcomm",
			101 => "ups_gndres",
			102 => "ups_gnd",
			105 => "ups_1dasaver",
			106 => "ups_2da",
			150 => "ups_wwxpd",
			151 => "ups_wwxpr",

			202 => "fedex_smartpost",
			200 => "fedex_homedelivery",
			201 => "fedex_ground",
			205 => "fedex_expresssaver",
			210 => "fedex_2day",
			220 => "fedex_so",
			230 => "fedex_iground",
			235 => "fedex_ieconomy",
			240 => "fedex_ipriority"
		);
	public $ship_method_index2 = array(
			"localpickup" => 1,
			"free" => 2,

			"standard" => 5,

			"usps_mediamail" => 10,
			"usps_firstclass" => 15,
            "usps_ground_advantage" => 16,
			"usps_priority" => 20,
			"usps_priority_flat_env" => 21,
			"usps_priority_flat_box" => 22,
			"usps_parcelpost" => 23,
			"usps_express_flat_padded_env" => 24,
			"usps_priority_flat_padded_env" => 25,

			"all_us" => 29,
			"all" => 30,
			"basic" => 31,
			"fast" => 32,
			"inter" => 33,
			"basic_48" => 34,
			"non_basic" => 35,
			"basic_not_48" => 36, /*dont use this one*/

			"basic_us_not_48" => 37,
			"basic_international" => 38,
			"basic_us_only" => 39,

			"usps_fcmi" => 50,
			"usps_pmi" => 55,
			"usps_pmi_flat_env" => 56,
			"usps_pmi_flat_box" => 57,
			"usps_emi_flat_padded_env" => 58,
			"usps_alp" => 60,
			"usps_app" => 61,
			"usps_ep" => 62,
			"ups_gndcomm" => 100,
			"ups_gndres" => 101,
			"ups_gnd" => 102,
			"ups_1dasaver" => 105,
			"ups_2da" => 106,
			"ups_wwxpd" => 150,
			"ups_wwxpr" => 151,
			"fedex_smartpost" => 202,
			"fedex_homedelivery" => 200,
			"fedex_ground" => 201,
			"fedex_expresssaver" => 205,
			"fedex_2day" => 210,
			"fedex_2day__1rate_env" => 210,
			"fedex_2day__1rate_pack" => 210,
			"fedex_2day__1rate_small_box" => 210,
			"fedex_2day__1rate_med_box" => 210,
			"fedex_so" => 220,
			"fedex_iground" => 230,
			"fedex_ieconomy" => 235,
			"fedex_ipriority" => 240,

			"31" => array(5, 10, 15, 16, 20, 21, 22, 23, 24, 25, 50,55,56,57,58,60,61,62, 100, 101, 102, 202, 200, 201, 230),
			"34" => array(5, 10, 15, 16, 20, 21, 22, 23, 24, 25, 100, 101, 102, 202, 200, 201),
			"37" => array(5, 10, 15, 16, 20, 21, 22, 23, 24, 25, 100, 101, 102, 202, 200, 201, 210),
			"32" => array(105, 106, 205, 210, 220),
			"33" => array(5, 50, 55, 56, 57, 58, 60, 61, 62, 150, 151, 230, 235, 240),
			"35" => array(50,55,56,57,58,60,61,62,105,106,150,151,205,210,220,230,235,240),
			"36" => array(5,10, 15, 16, 20, 21, 22, 23, 24, 25, 100, 101, 102, 202, 200, 201, 50, 55, 56, 57, 58, 60, 61, 62, 230, 210),
			"38" => array(5, 100, 101, 102, 202, 200, 201, 50, 55, 56, 57, 58, 60, 61, 62, 230, 230, 235, 240),
			"39" => array(5, 10, 15, 16, 20, 21, 22, 23, 24, 25, 100, 101, 102, 202, 200, 201)
		);

	//PO Statuses
	public $po_status_canceled = 0;
	public $po_status_created = 1;
    public $po_status_electronically_ready_send = 10;
	public $po_status_ordered = 11;
	public $po_status_preordered = 12;
	public $po_status_electronically_sent = 13;
	public $po_status_receiving_started = 15;
	public $po_status_done = 50;

	//Receivings Statuses
	public $receivings_status_canceled = 0;
	public $receivings_status_created = 1;
	public $receivings_status_partial_received = 30;
	public $receivings_status_full_received = 40;
	public $receivings_status_paid = 50;



	//Product Shipping Restrictions
	public $shipping_restrictions_none = 0;
	public $shipping_restrictions_usa_only = 1;
	public $shipping_restrictions_ormd = 2;
	public $shipping_restrictions_usa_canada_only = 3;
    public $shipping_restrictions_no_fedex_2_day = 4;
    public $shipping_restrictions_north_america_only = 5;

	//Notification types (used by notify.class.php) (old system)
	public $notify_type_new_pm = 1;
	public $notify_type_order_done = 2;
	public $notify_type_win_hunt = 3;
	public $notify_type_got_auto_promo = 4;
	public $notify_type_promo_almost_expired = 5;
	public $notify_type_issue_updated = 6;
	public $notify_type_event = 7;
	public $notify_type_special_count_down = 8;
	public $notify_type_special_promo = 9;
	public $notify_type_special_offer = 10;
	public $notify_type_product_back_in = 11;
	public $notify_type_product_in = 12;
	public $notify_type_system = 99;

	//Special Offer Types
	public $special_offer_type_message_only = 1;
	public $special_offer_type_price_discount_for = 2;
	public $special_offer_type_price_discount_off = 3;
	public $special_offer_type_temp_point_increase = 4;
	public $special_offer_type_promo_access = 5;

	//Notifies
	public $notify_account_created = 1;
	public $notify_account_created_auto = 2;
	public $notify_order_unpaid = 10;
	public $notify_order_placed = 11;
	public $notify_order_placed_waiting = 17;
	public $notify_order_shipped = 12;
	public $notify_order_canceled = 13;
	public $notify_order_pickup_ready = 14;
    public $notify_order_picked_up = 34;
	public $notify_order_returned = 15;
	public $notify_order_bo_canceled = 16;
	public $notify_order_refund = 22;
	public $notify_order_package_shipped = 19;
	public $notify_order_last_package_shipped = 18;
	public $notify_order_followup = 20;
	public $notify_order_gc_shipped = 21;
	public $notify_order_soon_canceled = 23;
	public $notify_order_preorder_waiting = 24;
    public $notify_order_items_waiting = 25;
	public $notify_referral_points_new_cust = 30;
	public $notify_referral_points_old_cust = 31;
	public $notify_cherrybox_renewal_reminder_soon = 32;
	public $notify_promo_expiring = 33;
    public $notify_order_pickup_ready_reminder = 35;
    public $notify_order_surveys = 36;
    public $notify_new_promo_code = 37;

	//Inventory Sources (old)
	public $inventory_source_none = 0;
	public $inventory_source_acot = 1;
	public $inventory_source_preorder = 2;
	public $inventory_source_digi = 3;
	public $inventory_source_notions = 4;

	//Warehouses (old)
	public $warehouse_fixme = 0;
	public $warehouse_acot = 1;
	public $warehouse_notions = 2;
	public $warehouse_digi = 3;

	//New warehouse/inventory source (old ways where different values when they should have been the same things)
	public $warehouse_inventory_source_none = 0;
	public $warehouse_inventory_source_acot = 10;
	public $warehouse_inventory_source_preorder = 11;
	public $warehouse_inventory_source_digi = 12;
	public $warehouse_inventory_source_notions = 13;
	public $warehouse_inventory_source_amazon_fba = 14;
	public $warehouse_inventory_source_storefront = 15;
    public $warehouse_inventory_source_notions_not_drop = 16;


	//Package Status
	public $package_status_init = 0;
	public $package_status_picking = 1;
	public $package_status_picked = 2;
	public $package_status_remote_sent = 10;
	public $package_status_remote_sent_manually = 11;
	public $package_status_canceled = 48;
	public $package_status_not_shipping = 49;
	public $package_status_shipped = 50;

	//Basket Price types
	public $basket_price_type_reg = 1;
	public $basket_price_type_promo = 2;
	public $basket_price_type_gc = 3;

	//User Shipping Preferences
	public $user_ship_pref_no_usps = 1;
	public $user_ship_pref_no_fedex = 2;
	public $user_ship_pref_no_smartpost = 3;
    public $user_ship_pref_no_puffy = 4;
    public $user_ship_pref_offer_signature = 5;
    public $user_ship_pref_never_signature = 6;

    //User point change reasons
    public $user_point_change_init = 1;
    public $user_point_change_hunt = 2;
    public $user_point_change_order_shipped = 3;
    public $user_point_change_used = 4;
    public $user_point_change_manual_change = 5;
    public $user_point_change_referral_referee = 6; //the new customer
    public $user_point_change_referral_referrer = 7;
    public $user_point_change_award = 8;
    public $user_point_change_review = 9;
    public $user_point_change_moved = 10;
    public $user_point_change_treasure = 11;
    public $user_point_change_gallery_comment = 12;
    public $user_point_change_gallery_submission = 13;

	//Subscription Sources
	public $subscription_source_unset = 0;
	public $subscription_source_order = 1;
	public $subscription_source_popup = 2;
	public $subscription_source_shop = 3;
	public $subscription_source_myaccount = 4;
	public $subscription_source_articles = 5;
	public $subscription_source_gallery = 6;

	//Newsletter Types
	public $newsletter_type_regular = 0;
	public $newsletter_type_welcome = 1;
	public $newsletter_type_product_notification = 2;
	public $newsletter_type_come_back_many = 3;
	public $newsletter_type_come_back_single = 4;
	public $newsletter_type_come_back_again_many = 5;
	public $newsletter_type_come_back_again_single = 6;
	public $newsletter_type_come_backs_list = array(3,4,5,6);
	public $newsletter_type_come_back_points = 7;
	public $newsletter_type_sign_up_bonus = 8;
	public $newsletter_type_waiting_preorder = 9;
	public $newsletter_type_expiring_promos = 10;
    public $newsletter_type_waiting_items = 11;

	//Newsletter Limits
	public $newsletter_limit_all = 0;
	public $newsletter_limit_daily = 1;
	public $newsletter_limit_weekly = 2;
    public $newsletter_limit_sms = 99;

    //
    public $sms_newsletter_status_none = 0;
    public $sms_newsletter_status_subscribed = 1;
    public $sms_newsletter_status_unsubscribed = 2;

    public $sms_newsletter_signup_source_web = 1;
    public $sms_newsletter_signup_source_sms = 2;
    public $sms_newsletter_signup_source_checkout = 3;

	//Lockdown Types:
	public $lockdown_type_cc = 1;
	public $lockdown_type_login = 2;
	public $lockdown_type_login_longer = 3;
	public $lockdown_type_login_longest = 4;
    public $lockdown_type_password_reset = 5;
    public $lockdown_type_email_login_code = 6;

	//Lockdown Reasons:
	public $lockdown_reason_same_card_declined = 0;
	public $lockdown_reason_many_card_declines = 1;
	public $lockdown_reason_many_failed_logins = 2;
	public $lockdown_reason_manual = 3;
    public $lockdown_reason_too_often = 4;


	//Menu Types
	public $shopmenu_type_tab = 0;
	public $shopmenu_type_regular = 1;
	public $shopmenu_type_subitem = 2;
	public $shopmenu_type_bold = 3;
	public $shopmenu_type_sub_all = 40;
	public $shopmenu_type_auto = 50;
	public $shopmenu_type_image = 100;
	public $shopmenu_type_line = 200;
	public $shopmenu_type_empty_space = 201;
	//Menu Subtypes
	public $shopmenu_subtype_no_dropdown = 0;
	public $shopmenu_subtype_simple_dropdown = 1;
	public $shopmenu_subtype_mega_dropdown = 2;
	public $shopmenu_subtype_mega_dropdown_centered = 3;

	public $shopmenu_auto_group_by_none = 0;
	public $shopmenu_auto_group_by_company = 1;
	public $shopmenu_auto_group_by_cat = 2;
	public $shopmenu_auto_group_by_theme = 3;
	public $shopmenu_auto_group_by_color = 4;
	public $shopmenu_auto_group_by_artist = 5;

	public $shopmenu_auto_pick_by_alpha = 1;
	public $shopmenu_auto_pick_by_count = 2;
	public $shopmenu_auto_pick_by_hot = 3;

	public $shopmenu_auto_sort_by_alpha = 1;
	public $shopmenu_auto_sort_by_count = 2;
	public $shopmenu_auto_sort_by_hot = 3;

	//Product Todo Types
	public $product_todo_check_shelf_count = 1;
	public $product_todo_check_storefront_count = 2;
	public $product_todo_image_wrong = 3;
	public $product_todo_image_poor_quality = 4;
	public $product_todo_image_too_small = 5;
	public $product_todo_description_needs_fix = 6;

	//Product Last Verification Types
	public $product_last_verification_shelf_count = 1;
	public $product_last_verification_sf_count = 2;
	public $product_last_verification_description_set = 3;
    public $product_last_verification_storefront_count = 4;

	//Product Ignore Missing
	public $product_ignore_missing_theme = 1;
	public $product_ignore_missing_color = 2;

    //Product Auto Pricing Options
    public $product_auto_pricing_allow = 0;
    public $product_auto_pricing_disallow = 1;
    public $product_auto_pricing_ = 2;

	//
	public $track_happened_email_expiring_promos = 1;


	public $product_price_source_amazon = 1;

    //Class Types
    public $class_type_normal = 0;
    public $class_type_free_online = 1;

    //Gallery Index Types
    public $gallery_index_theme = 0; //Was 'category'
    public $gallery_index_tech = 1;
    public $gallery_index_companyline = 2; //Company/Line/Subline
    public $gallery_index_product = 3;
	public $gallery_index_cac = 4; //Contest/Challange
	public $gallery_index_favorite = 5;

    //Amazon shipping groups
    public $amazon_shipping_group_none = 0;
    public $amazon_shipping_group_default = 1;
    public $amazon_shipping_group_autoed = 2;
    public $amazon_shipping_group_autoed_large = 3;
    public $amazon_shipping_group_autoed_no_fast = 4;

    public $amazon_sg_index = array(
        1 => "Default Template",
        2 => "Autoed Template",
        3 => "Autoed Template Large",
        4 => "Autoed Template No Fast",
    );
    public $amazon_sg_index2 = array(
        "Default Template" => 1,
        "Autoed Template" => 2,
        "Autoed Template Large" => 3,
        "Autoed Template No Fast" => 4,
    );


    //Uploaded file types
    public $uploaded_file_web_content = 1;
    public $uploaded_file_video = 2;
    public $uploaded_file_user_avatar = 3;
    public $uploaded_file_user_picture = 4;
    //public $uploaded_file_downloadable;?

    //Shortlink types
    public $shortlink_type_general = 1;
    public $shortlink_type_sms_newsletter = 2;

    //Attempt types
    public $attempt_send_login_code = 1;
    public $attempt_use_login_code = 2;

    //Sync who's
    public $sync_who_klaviyo = 1;

    //Sync events
    public $sync_event_account_created = 1;
    public $sync_event_requested_login_code = 2;
    public $sync_event_requested_password_reset = 3;
    public $sync_event_requested_wishlist_send = 4;
    public $sync_event_cherrybox_renewal_upcoming = 5;
    public $sync_event_cherrybox_renewal_payment_failed = 6;
    public $sync_event_cherrybox_order_shipped = 7;
    public $sync_event_placed_class_signup = 8;
    public $sync_event_order_placed = 9;
    public $sync_event_order_shipped = 10;
    public $sync_event_order_canceled = 11;
    public $sync_event_order_split = 12;
    public $sync_event_backorder_placed = 13;
    public $sync_event_combined_order = 14;
    public $sync_event_processed_return = 15;
    public $sync_event_processed_refund = 16;
    public $sync_event_referral_points_awarded = 17;
    public $sync_event_order_waiting_payment_will_cancel = 18;
    public $sync_event_send_gc = 19;
    public $sync_event_order_pickup_reminder = 20;
    public $sync_event_payment_refunded = 21;
    public $sync_event_order_updated = 22;
    public $sync_event_order_local_receipt = 23;
    public $sync_event_awarded_points = 24;
    public $sync_event_account_update = 25;
    public $sync_event_order_pickup_ready = 26;
    public $sync_event_waiting_preorders = 27;
    public $sync_event_product_notify = 28;
    public $sync_event_order_delivered = 29;
    public $sync_event_customer_review_added = 30;
    public $sync_event_product_review_report = 31;
    public $sync_event_waiting_held = 32;


    //Error Type Source (for do_save_error())
    public $error_type_source_uploader = 1;
    public $error_type_source_klaviyo_event = 2;



	//Log ID Type
	public $log_id_type_order = 1;
	public $log_id_type_customer = 5;
	public $log_id_type_ucustomer = 6;
	public $log_id_type_item = 10;
	public $log_id_type_po = 15;
	public $log_id_type_pt = 20;
	public $log_id_type_supplier = 25;
	public $log_id_type_receiving = 30;
	public $log_id_type_auto = 35;

	//Log actions:
	public $log_debug = 1;
	public $log_error = 2;
	public $log_order_info = 3;


	public $log_order_printed_receipt = 10;

	public $log_order_email_created = 25;
	public $log_order_email_sent = 26;
	public $log_order_email_error = 27;

	public $log_order_shipped = 30;
	public $log_order_shipped_item = 31;
	public $log_order_unshipped = 35;
	public $log_order_unshipped_item = 36;

	public $log_order_sent_gc = 37;
	public $log_order_downloadable_activate = 38;

	public $log_order_discount_add = 40;
	public $log_order_discount_remove = 41;
	public $log_order_discount_adjust = 42;
    public $log_order_discount_dup_fix = 43;
    public $log_order_discount_fix = 44;

	public $log_order_payment_add = 45;
	public $log_order_payment_remove = 46;
	public $log_order_payment_init = 47;
	public $log_order_payment_complete = 48;
    public $log_order_payment_error = 49;

	public $log_order_ship_rate_reduce = 50;

	public $log_order_change_ship_selected = 55;

	public $log_order_item_sale_change = 60;

	public $log_order_item_stats = 65;

	public $log_order_cc_attempt = 74;
	public $log_order_cc_error = 75;
	public $log_order_cc_declined = 76;
	public $log_order_cc_verified = 80;
	public $log_order_cc_forced = 81;
	public $log_order_cc_credited = 82;
	public $log_order_cc_sale = 83;
	public $log_order_cc_voided = 84;

	public $log_order_postage_original = 90;
	public $log_order_postage_new = 91;

	public $log_order_create_user = 93;
	public $log_order_action_placeorder = 94;
	public $log_order_select_payment_paypal = 95;
	public $log_order_select_payment_check = 96;
	public $log_order_select_payment_cc = 97;
	public $log_order_select_payment_none = 98;
	public $log_order_via_mobile = 99;

	public $log_order_missing_info = 100;

	public $log_order_paypal_express = 110;
	public $log_order_paypal_refund = 111;
	public $log_order_paypal_error = 112;

	public $log_order_sent_cinderella = 120;
	public $log_order_sent_amazon = 121;

	public $log_order_points_cleared = 130;

	public $log_order_package_unshipped = 140;

	public $log_order_checkout_step = 150;
	public $log_order_checkout_error = 151;

	public $log_order_class_change = 160;

	public $log_picking_ticket_add = 200;
	public $log_picking_ticket_picked = 203;
	public $log_picking_ticket_manual_delete = 205;
	public $log_picking_ticket_done_delete = 210;
	public $log_picking_ticket_changed_to = 220;
	public $log_picking_ticket_changed_from = 221;

	public $log_shipfli_scanned_order = 300;
	public $log_shipfli_weight_set = 330;
	public $log_shipfli_click_finish = 340;
	public $log_shipfli_init_postage = 341;
	public $log_shipfli_init_postage_error = 342;
	public $log_shipfli_ups_postage_printed = 350;
	public $log_shipfli_usps_postage_printed = 351;
	public $log_shipfli_fedex_postage_printed = 352;
	public $log_shipfli_message = 360;
	public $log_shipfli_debug_log = 361;

	public $log_auto_error_paypal_invalid = 400;
	public $log_auto_error_paypal_invalid_stats = 401;
	public $log_auto_error_paypal_invalid_order = 402;
	public $log_auto_error_paypal_already_paid = 403;
	public $log_auto_paypal_adding = 404;

	public $log_item_manual_change_qty = 510;
	public $log_item_manual_change_reason = 511;
	public $log_item_sale_change_qty = 515;
	public $log_item_location_change_original = 520;
	public $log_item_location_change_new = 521;
	public $log_item_sale_change_original = 525;
	public $log_item_sale_change_new = 526;
	public $log_item_price_change_original = 525;
	public $log_item_price_change_new = 526;
	public $log_item_weight_change_original = 527;
	public $log_item_weight_change_new = 528;
	public $log_item_receiving = 529;
	public $log_item_pi_fix = 530;
    public $log_item_date_ol_change = 531;

	//used by az/backend only
	public $log_logged_in = 600;
	public $log_logged_out = 601;
	public $log_logged_out_auto = 602;

	public $log_customer_points_add = 700;
	public $log_customer_points_remove = 701;
	public $log_customer_customer_credit_add = 705;
	public $log_customer_customer_credit_remove = 706;
	public $log_customer_customer_credit_use = 707;
	public $log_customer_permission_added = 710;
	public $log_customer_emailed_recommendation = 715;
	public $log_customer_emailed_password = 720;
	public $log_customer_emailed_activation = 721;
	public $log_customer_emailed_alert = 722;
	public $log_customer_changed_screenname = 723;
	public $log_customer_social_add = 724;

	public $log_customer_create_by_social = 725;
	public $log_customer_sign_in_social = 726;

	public $log_customer_sign_in = 730;
	public $log_customer_employee_sign_in = 731;
	public $log_customer_sign_out = 732;
	public $log_customer_sign_in_remember = 733;
	public $log_customer_sign_in_secure = 734;
	public $log_customer_session_delete = 735;
	public $log_customer_sign_in_as = 736;
	public $log_customer_sign_in_from = 737;
	public $log_customer_cookie_error = 740;

	public $log_customer_account_disabled = 745;
	public $log_customer_account_enabled = 746;
	public $log_customer_account_login_unlocked = 747;

	public $log_customer_basket_change = 750;
	public $log_customer_basket_delete = 751;
	public $log_customer_basket_move = 752;

	public $log_customer_savedcc_added = 760;
	public $log_customer_savedcc_removed = 761;
	public $log_customer_savedcc_failed = 762;
    public $log_customer_savedcc_edit = 763;

	public $log_customer_cherrybox_subscription_add = 764;
	public $log_customer_cherrybox_address_change = 765;
	public $log_customer_cherrybox_isgift_change = 766;
	public $log_customer_cherrybox_pause_change = 767;
	public $log_customer_cherrybox_auto_renew_plan_change = 768;
	public $log_customer_cherrybox_auto_renew_card_change = 769;
	public $log_customer_cherrybox_subscription_renew = 770;
    public $log_customer_cherrybox_auto_renew_ship_method_change = 773;
    public $log_cherrybox_manual_credit_change = 775;

    public $log_customer_address_created = 774;
    public $log_customer_address_deleted = 771;
    public $log_customer_address_changed = 772;


	public $log_customer_email_subscribe = 795;
	public $log_customer_email_unsubscribe = 796;
	public $log_customer_email_no_newsletter_change = 797;
	public $log_customer_email_off_suppression_list = 798;

	public $log_product_inv_adjustment = 900;

	public $log_order_status_error = 999;
	public $log_order_status_created = 1000;
	public $log_order_status_unfinished = 1010;
	public $log_order_status_combined = 1016;
	public $log_order_status_placed = 1020;
	public $log_order_status_placed_incomplete = 1022;
	public $log_order_status_cancelled = 1030;
	public $log_order_status_cancelled_reason = 1031;
	public $log_order_status_awaiting_payment = 1040;
	public $log_order_status_payment_pending = 1045;
	public $log_order_status_awaiting_products = 1050;
    public $log_order_status_shipping_later = 1055;
    public $log_order_status_shipping_together = 1056;
	public $log_order_status_ready = 1060;
	public $log_order_status_flagged = 1061;
	public $log_order_status_fix_before_pick = 1062;
	public $log_order_status_manual_picking = 1065;
	public $log_order_status_remote_send = 1067;
	public $log_order_status_in_pt = 1070;
	public $log_order_status_picked = 1080;
	public $log_order_status_awaiting_shipment = 1090;
	public $log_order_status_remote_wait = 1091;
	public $log_order_status_fix_before_ship = 1093;
	public $log_order_status_shipped_confirmed = 1095;
	public $log_order_status_shipped = 1100;
	public $log_order_status_awaiting_pickup = 1110; // incase needed
	public $log_order_status_pickedup = 1120; // incase needed


	public $log_po_status_canceled = 1200;
	public $log_po_status_created = 1201;
	public $log_po_status_ordered = 1203;
	public $log_po_status_preordered = 1204;
    public $log_po_status_electronically_ready_send = 1207;
	public $log_po_status_electronically_sent = 1208;
	public $log_po_status_receiving_started = 1205;
	public $log_po_status_done = 1207;
	public $log_po_printed = 1210;


	public $log_receivings_status_canceled = 1300;
	public $log_receivings_status_created = 1301;
	public $log_receivings_status_partial_received = 1302;
	public $log_receivings_status_full_received = 1303;
	public $log_receivings_status_paid = 1304;
	public $log_receivings_product_received = 1310;
	public $log_receivings_product_qty_change = 1311;


	//To be removed after logging helped find bug
	public $log_debug_basket_gc_add = 2000; //help to find bug where gc item info is missing in order
	public $log_debug_order_gc_add = 2001; //help to find bug where gc item info is missing in order
	public $log_debug_owes = 2002; //help find bug where customer is over charged initally.
	public $log_debug_notify_issued = 2003; //help to track down bug causing multiple emails to be sent out
	public $log_debug_package_method_set = 2004; //

    var $statuses;
    var $status_descriptions;
	private $in_construct=false;

	function __construct() {
		$this->in_construct = true;
		foreach ($this as $name=>$value) {
			if (preg_match("/^order_status_([\w]+)/",$name,$matches)) {
				$this->statuses[] = array($value, ucwords(str_replace('_',' ',$matches[1])));
				$this->status_descriptions[$value] = ucwords(str_replace('_',' ',$matches[1]));
			}
		}
		$this->in_construct = false;
	}

	/*function __get($name) {
		if ($this->$name) {return $this->$name;}
	}*/

	function __set($name,$value) {
		if ($name != "in_construct") {
			if ($this->in_construct) {
				$this->$name = $value;
			} else {
				// don't allow variables to be redefined in this class
			}
		} else {
			$this->$name = $value;
		}
	}

	static function list_with_descriptions($list_type) {
		switch ($list_type) {
		case "product_todo":
			$conv = array(
				clsApp::$reg->product_todo_check_shelf_count => "Check Shelf Count",
				clsApp::$reg->product_todo_check_storefront_count => "Check Store Front Count",
				clsApp::$reg->product_todo_image_wrong => "Wrong Image",
				clsApp::$reg->product_todo_image_poor_quality => "Poor Quality Image",
				clsApp::$reg->product_todo_image_too_small => "Image Too Small",
				clsApp::$reg->product_todo_description_needs_fix => "Description Needs Fix"
				);
			break;
		case "order_payment":
			$conv = array(
				clsApp::$reg->order_payment_cc => "CC",
				clsApp::$reg->order_payment_cc_visa_mastercard => "CC",
				clsApp::$reg->order_payment_cc_amex => "CC",
				clsApp::$reg->order_payment_cc_discover => "CC",
				clsApp::$reg->order_payment_cc_from_order => "CC From O",
				clsApp::$reg->order_payment_cc_saved => "Save CC",
				clsApp::$reg->order_payment_paypal => "PayPal",
				clsApp::$reg->order_payment_paypal_cc => "PayPal CC",
				clsApp::$reg->order_payment_paypal_express => "PayPal E",
				clsApp::$reg->order_payment_check => "Check",
				clsApp::$reg->order_payment_wire_transfer => "Wire",
				clsApp::$reg->order_payment_gc => "GC",
				clsApp::$reg->order_payment_mo => "MO",
				clsApp::$reg->order_payment_cash => "Cash",
				clsApp::$reg->order_payment_cod => "COD",
				clsApp::$reg->order_payment_po => "PO",
				clsApp::$reg->order_payment_net30 => "Net30",
				clsApp::$reg->order_payment_shopatron => "Shopatron",
				clsApp::$reg->order_payment_amazon => "Amazon",
				clsApp::$reg->order_payment_ebay => "Ebay",
				clsApp::$reg->order_payment_buycom => "Buycom",
				clsApp::$reg->order_payment_artfire => "Artfire",
				clsApp::$reg->order_payment_walmart => "Walmart",
                clsApp::$reg->order_payment_michaels => "Michaels",
				clsApp::$reg->order_payment_amazon_pay => "Amazon Pay",
				clsApp::$reg->order_payment_loss => "Loss"
				);

				//clsApp::$reg->order_payment_customercredit = 200;			// positive = redeemed, negative = owes on account
				//clsApp::$reg->order_payment_customercredit_refund = 201;	// negative = created customer credit
			break;
		}
		return $conv;
	}

}

?>
