var settings;

$(document).ready(function(){
	$('.additionalPromo').click(function(){
		SelectPromoItem();
	});
	$("#rdCheck").click(function(){
		UpdateVariant();
	});
});

function UpdateVariant(){

    if($("#rdCheck").attr("checked")){
    	var partnerV = "63968";
    	if(settings.variantPartner != null)
    	{
    		partnerV = settings.variantPartner;
    	}
        $("input[name$='VariantID']").val(partnerV);
        $("#rdRecurrency").val("2");
    }else{
    	var donationV = "20247";
    	if(settings.variant != null)
    	{
    		donationV = settings.variant;
    	}
        $("input[name$='VariantID']").val(donationV);        
        $("#rdRecurrency").val("0");
    }
}

function HandleSourceCode(){
	$("input[name=SourceCode]").remove();
	var fh = $('#donateForm');
	var sourcecode = GetParam("sourcecode");
	if(sourcecode == ''){
		sourcecode = settings.defaultSourceCode;
	}
	if(sourcecode == null){
		sourcecode = '';
	}
	fh.append('<input type="hidden" name="SourceCode" Value="' + sourcecode + '"/>');
}
function buildFormWithValidation(formHolderID, formSettings, validationfunction) {
    buildFormBase(formHolderID, formSettings);
    SetupButton($(".button"), validationfunction);
}
function buildForm(formHolderID, formSettings) {
    buildFormBase(formHolderID, formSettings);
	SetupButton($(".button"),null);
}

function buildFormBase(formHolderID, formSettings) {
    settings = formSettings;
    UpdateVariant();
    UpdateSourcecodeProducts();
    var fh = $("#" + formHolderID);
    fh.html("");
    var seloffer = GetParam("seloffer");
    if (seloffer == null || seloffer == '') {
        seloffer = settings.defaultOffer;
    }
    if (seloffer == null) {
        seloffer = '';
    }
    $.each(formSettings.levels, function (i, item) {
        fh.append(BuildRadio(item, seloffer));
    });
    /*if(formSettings.levelsActual != null)
    {
    $.each(formSettings.levelsActual, function(i, item)
    {
    if(item != "customPrice")
    {
    $("input[name=r1]:eq(" + i + ")").val(item);
    }

    });
    }*/
    if ($("input[name=r1]:checked").length == 0) {
        if (seloffer != '') {
            $("input[name=r1]:last").attr("checked", true);
        }
        else {
            $("input[name=r1]:eq(1)").attr("checked", true);
        }
    }
    UpdateDonation();
    HandleSourceCode();
}

function BuildRadio(value, seloffer){
	var currency = '$';
	if(settings.currency != null)
	{
		currency = settings.currency;
	}
	if(seloffer == null){
		seloffer = '';
	}
	var radio = '<label class="input-amounts"><input type="radio" name="r1" value="' + value + '" ';
	if(value == "customPrice"){
		if($("input[name=r1]:checked").length > 0){
			seloffer = '';
		}
		radio = radio + ' onClick="$(\'#customPrice\').focus();" />' + currency + '<input name="customPrice" id="customPrice" type="text" onBlur="UpdateDonation()" value="' + seloffer + '"	 /> Other';
	}
	else{
		if(value == seloffer){
			radio = radio + ' checked ';
		}
		radio = radio + ' onClick="UpdateDonation()" />' + currency + value;
	}
	return radio + '</label>';
}

function UpdateDonation(){
	var donation = GetDonation();
	var sel = $("#opttwo");
	sel.find('option').remove();//clear options
	$.each(settings.promos, function(i, item){
		if(donation >= item.min_donation){
			sel.append('<option value="' + item.sku.replace(',', ' ').replace('  ', ' ') + '">' + item.name + '</option>');
		}
	});
	RefreshSelects();
	SelectPromoItem();
}

function GetDonation(){
	var priceString = $("input[name=r1]:checked").val();
	if(priceString == "customPrice"){
		priceString = $("#customPrice").val();
	}
	if(priceString < 1 || priceString/priceString != 1){
	   priceString = 1;
	}
	$('#Price').val(priceString);
	return priceString;
}

function SelectPromoItem(){
	$("input[name=PromoItem]").remove();
	var fh = $('#donateForm');
	$.each($('#opttwo').val().split(' '), function(i, token){
		fh.append('<input type="hidden" name="PromoItem" value="' + token + '" />');
	});
	$.each($('.additionalPromo:checked'), function(i, item){
		fh.append('<input type="hidden" name="PromoItem" value="' + item.value + '" />');
	});
}

function RefreshSelects(){
		var selectBoxes = $("select");
		for (var i = 0; i < selectBoxes.length; i++) {
	    	    customSelectBoxChanged(selectBoxes[i]);
		}
	}
function GetParam(param) {
    var regex = '[?&]' + param + '=([^&#]*)';
    var results = (new RegExp(regex)).exec(window.location.href);
    if(results) return results[1];
    return '';
}

function SetupButton(button, validationfunction) {
    button.click(function (e) {
        if (validationfunction != null) {
            if (validationfunction() == false)
                return;
        }

        e.preventDefault();
        $(".button").hide();
        var productlist = '';
        $("input[name=PromoItem]").each(function (i, obj) {
            productlist = productlist + $(obj).val() + ',';
        });
        var recurday = '';
        if ($('#trDeductDay select:visible').length > 0)
            recurday = $('#trDeductDay select:visible').val();
        if ($('#rdCheck:checked').length == 1 && recurday == null)
            recurday = 1;
        var currency = "USD";
        if ($('#Currency').length > 0)
            currency = $('#Currency').val();
        ProcessLegacyLandingPage($("input[name='VariantID']").val(), $('#Price').val(), currency, $("input[name='SourceCode']").val(), productlist, recurday);
    });
}

function ProcessLegacyLandingPage(product, price, currency, sourcecode, productlist, recurday) {
    $.post("/_layouts/LRMSCartAPI.asmx/ProcessLegacyLandingPage",
		{
			product: product,
			price: price,
			currency: currency,
			sourcecode: sourcecode,
			productlist: productlist,
			recurday: recurday
		},
		function (data) {
			location.href = "/pages/lrms-checkout.aspx?mode=checkout";
		}
	);
}

function UpdateSourcecodeProducts() {
    if (GetParam("setupproducts") === '1') {
      var productMinDon = {};
      for(var i = 0; i< $(settings.promos).length;i++){
        var promo = $(settings.promos)[i];
        var skus = promo.sku.split(' ');
        for(var j = 0; j < skus.length;j++){
          var sku = skus[j];
          sku = sku.replace(',', ' ').replace('  ', ' ');
          if(sku != null && sku != '' && (typeof productMinDon[sku] === 'undefined' || productMinDon[sku] > promo.min_donation))
            productMinDon[sku] = promo.min_donation;
        }
      }
      for(var key in productMinDon){
        //alert('will call AddLegacyProductsToSourcecode with variant: ' + key + ' and min_don: ' + productMinDon[key]);
        $.post('/_layouts/LRMSCartAPI.asmx/AddLegacyProductsToSourcecode', 
        { sourcecode: settings.defaultSourceCode, productlist: key, minimumDonation: productMinDon[key] }, 
        function (data) {
                alert('successfully added' + settings.defaultSourceCode + ' ' + key + ' ' + productMinDon[key]);
            }
        );
      }
    }
}
