﻿GWCORE.AccountPrefs = (function(GWCORE, $, _)
{
	"use strict";

	var AccountPrefs = {};

	AccountPrefs.QuickBetModes =
	{
		None: 0,	// never show quickbet (default)
		First: 1,	// first - show quickbet if main coupon empty (ie first add)
		Always: 2	// always - always show quickbet
	};

	//bitmask values
	AccountPrefs.OneClickModes =
	{
		None: 0,	// enforce confirm/submit (default)
		Primary: 1,	// use one click bet on primary coupon
		Quick: 2,	// use one click bet on quick coupons
	};

	//default values
	AccountPrefs.QuickBetMode = AccountPrefs.QuickBetModes.None;
	AccountPrefs.QuickAmounts = []; //[0.5, 1, 5, 10, 20, 50, 'C'];	//any non-decimal will make a 'clear' button

	AccountPrefs.OneClickSubmit = AccountPrefs.OneClickModes.None;
	AccountPrefs.OneClickAmount = 0;

	AccountPrefs.HasQuickAmounts = function()
	{
		return GWCORE.AccountPrefs.QuickAmounts !== undefined && GWCORE.AccountPrefs.QuickAmounts.length > 0;
	};

	AccountPrefs.Load = function(userPrefs, platform)
	{
		if(GWCORE.Utils.GetStringOrEmpty(platform) == "")
		{
			var loc = $(location).attr('hostname');

			if(loc.startsWith("www.") || loc == "localhost")
				platform = "www";
			else if(loc.startsWith("m."))
				platform = "mobi";
			else if(loc.startsWith("appdata.") || loc.startsWith("ios.") || loc.startsWith("android."))
				platform = "app";
		}

		try
		{
			var pref = JSON.parse(GWCORE.Utils.GetStringOrEmpty(userPrefs));
			LoadData(pref);
			switch(platform)
			{
				case "www":
					LoadData(pref.www);
					break;
				case "mobi":
					LoadData(pref.mobi);
					break;
				case "app":
					LoadData(pref.app);
					break;
			}
		}
		catch(ex)
		{
		}
	}

	function LoadData(pref)
	{
		debugger;

		if(pref != undefined)
		{
			//QuickBetMode
			switch(pref.qbMode)
			{
				case 1:
					AccountPrefs.QuickBetMode = AccountPrefs.QuickBetModes.First;
					break;
				case 2:
					AccountPrefs.QuickBetMode = AccountPrefs.QuickBetModes.Always;
					break;
			}

			//QuickAmounts
			if(jQuery.isArray(pref.qbAmts))
				AccountPrefs.QuickAmounts = pref.qbAmts;

			//OneClickSubmit
			if((pref.ocMode | AccountPrefs.OneClickModes.Primary) > 0)
				AccountPrefs.OneClickSubmit = AccountPrefs.OneClickModes.Primary;

			if((pref.ocMode | AccountPrefs.OneClickModes.Quick) > 0)
				AccountPrefs.OneClickSubmit = AccountPrefs.OneClickModes.Quick;

			//OneClickAmount


			var oca = GWCORE.Utils.GetDecimalOrZero(pref.ocAmt);
			if(oca > 0)
				AccountPrefs.OneClickAmount = oca;
		}
	}

	return AccountPrefs;
}(GWCORE, jQuery, _));
