function toggleOtherField(name, value)
{
	if (-1 == value)
	{
		$('#' + name + '_other').show();

		if(false == validateAmount()) {
			$('#other-amount-error.amt_error_msg').html('Please enter an amount using numbers');
			$('#other-amount-error.amt_error_msg').show();
		} 
		
	} else {
		$('#' + name + '_other').hide();
	}
}

function updateGiftAid() {
	var GiftAid = calculateGiftAid();

	if(0 < calculateGiftAid()) {
		$('#gift-aid-visual').show();
	} else {
		$('#gift-aid-visual').hide();
	}
	if(0 < GiftAid) {
		
	} else {
		GiftAid = '0';
	}
	$('#gift-aid-amount').html(GiftAid);
	
}

function onAmountSelected(value) {
	clearDonateError();
	toggleOtherField('amount', value);
	updateGiftAid();
	updateYourTotal();
	updateAmountLeft();
	
}

function onOtherAmountEnter() {
	clearDonateError();
	if(false == validateAmount()) {
		$('#other-amount-error').html('Please enter an amount using numbers');
		$('#other-amount-error').show();
	}
	updateGiftAid();
	updateYourTotal();
	updateAmountLeft();	
}

function onGiftAidChecked() {
	updateGiftAid();
	updateYourTotal();
	updateAmountLeft();
}

function validateAmount() {
	if('' == $('#amount_other').val()) {
		return true;
	}
	if(0 <= parseInt($('#amount_other').val())) {
		$('#amount_other').val(parseInt($('#amount_other').val()));
		return true;
	} else {
		return false;
	}
}

function getAmount() {
	var AllOptions = $('input[name=amount]');
	var Amount = 0;
	for(var i = 0; i<AllOptions.length; i++) {
		if($(AllOptions[i]).attr('checked')) {
			Amount = $(AllOptions[i]).val();
		}
	}

	if(-1 == Amount) {
		Amount = $('#amount_other').val();
	}
	if('' == Amount) {
		Amount = 0;
	}
	return parseFloat(Amount);
}

function calculateGiftAid() {
	if($('#is_gift_aid').attr('checked')) {
		var Amount = getAmount();	
		var GiftAidRate = 0.22;
		var GiftAid = (Amount * GiftAidRate) / (1-GiftAidRate);
		return Math.round(GiftAid*100)/100;
	} else {
		return 0.00;
	}
}

function updateYourTotal() {
	var Amount = Math.round(getAmount() * 100)/100;
	var Total = Math.round((getAmount() + calculateGiftAid()) * 100)/100;
	$('#your-total').html(Total);
	$('#your-donation').html(Amount);
}

function updateAmountLeft() {
	var YourTotal = getAmount() + calculateGiftAid();
	var Target = parseFloat($('#max_donation').val());
	var AmountLeft = Math.round((Target - YourTotal) * 100)/100;
	$('#amount-left-to-donate').html(AmountLeft);
}


function SubmitDonateForm(DonateUrl) {
	clearDonateError();
	var Url = DonateUrl + '/ajax/1';
	var Data = $("#frmSupport input, #frmSupport textarea").serialize();
	$('#donate-ajax-loader').show();
	$.ajax({
	    url: Url,
	    type: 'post',
	    timeout: 5000,
	    data: Data,
	    dataType: 'json',
	    error: function(){
	        onDonateError();
	    },
	    success: function(data) {	    	
	    	onDonateSubmitted(data);
	    }
	});
}

function onDonateSubmitted(Response) {
	$('#donate-ajax-loader').hide();
	if(Response.Status && 'ok' == Response.Status ) {
		if(Response.Redirect) {
			window.location.href = Response.Redirect;
		}
		if(Response.Template) {
			if($('#'+Response.Area)) {
				$('#'+Response.Area).html(Response.Template);
				$('#'+Response.Area).show();
				$.scrollTo( '#top', 900 );
					//$("body").css("overflow","hidden");
			}
			if(true == Response.Error) {
				$('#generic-error').html('Unfortunately there are some details missing. Please complete the highlighted sections below');
				$('#generic-error').show();
			}
		}
		
		
	}
}

function DontDonate(DontUrl) {
	//do the thing
	var Url = DontUrl + '/ajax/1';

	$('#donate-ajax-loader').show();
	$.ajax({
	    url: Url,
	    type: 'post',
	    timeout: 5000,
	    dataType: 'json',
	    error: function(){
	    	//todo - rethink
	        onDonateError();
	    },
	    success: function(data) {	    	
	    	if(data.Status && 'ok' == data.Status) {
	    		$('#donate-ajax-loader').hide();
	    		$('#donate-overlay').html('');
					$('#donate-overlay').hide();
					clearDonateError();
				
	    	} 
	    }
	});
	
}

function onDonateError() {
	$('#donate-ajax-loader').hide();
	$('#generic-error').html('Your request has timed out. please try again later');
	$('#generic-error').show();
}

function clearDonateError() {
	$('#generic-error').html('');
	$('#generic-error').hide();
	$('p.amt_error_msg').html('');
	$('p.amt_error_msg').hide();
	$('div.amt_error').removeClass('amt_error');
}


function donateAfterLogin(Url) {
	if($('#redirect_url')) {
		$('#redirect_url').val(Url);
	} else {
		alert('redirect url not found');
	}
	showLogin();
	$.scrollTo( '#top', 800 );
}

function createGatewayAfterLogin(Url) {
	HideProjectSupport();
    if($('#redirect_url')) {
		$('#redirect_url').val(Url);
	} 
	showLogin();
	$.scrollTo( '#top', 800 );
}

function toggleScientistSticker() {
	if($('#profile-info').hasClass('firstSheet')) {
		$('#profile-info').removeClass('firstSheet');
		$('#profile-info').addClass('secondSheet');
	} else {
		$('#profile-info').removeClass('secondSheet');
		$('#profile-info').addClass('firstSheet');
	}
}

function toggleQuote(QuoteId) {
    if ($("div.bubbleitem"+QuoteId).is(":hidden")) {
        $("div.bubbleitem"+QuoteId).slideDown("slow");
        $("a.bubblemore"+QuoteId).html("less");
    } else {
        $("div.bubbleitem"+QuoteId).slideUp("slow");
        $("a.bubblemore"+QuoteId).html("more");
    }
    return false;
}

function AllProjectDonorsPage(Url) {
	Url = Url + '/ajax/1/area/alldonors';
	$('.alldonors-ajax-loader').show();
	$.ajax({
	    url: Url,
	    type: 'post',
	    timeout: 7000,
	    dataType: 'json',
	    error: function(){
	    	$('.alldonors-ajax-loader').hide();
	       	$('#all-donations').html('Your request has timed out. please try again later');
			$('#all-donations').show();
	    },
	    success: function(data) {
	    	$('.alldonors-ajax-loader').hide();
	    	onProjectReceived(data);
	    	if(document.body.clientHeight) {
	    		$('#overlay-all-project-donors').css("height", document.body.clientHeight +'px');
				$('#overlay-all-project-donors').css("width", document.body.clientWidth +'px');
	    	} else {
	    		$("body").css("overflow","hidden");
	    	}
			$.scrollTo("#top",300);
	    }
	});
}

function ProjectSupportOverlay() {
    if(document.body.clientHeight) {
        $('#overlay-project-support').css("height", document.body.clientHeight +'px');
        $('#overlay-project-support').css("width", document.body.clientWidth +'px');
        //calculate margin
        var margin = Math.round((document.body.clientWidth - 790) / 2);
        $('.support-overlay-window').css('margin-left', margin+'px');
    } else {
        $("body").css("overflow","hidden");
    }
    $('#overlay-project-support').show();
    $.scrollTo("#top",300);
}

function onProjectReceived(Response) {	
	if(Response.Status && 'ok' == Response.Status ) {		
		if(Response.Template) {
			if($('#'+Response.Area)) {
				$('#'+Response.Area).html(Response.Template);
				$('#'+Response.Area).show();
				
			}
		}
	}
}

function HideAllProjectDonors() {
	$("body").css("overflow","visible");
	$('#overlay-all-project-donors').html('');
	$('#overlay-all-project-donors').hide();
}

function HideProjectSupport() {
    $("body").css("overflow","visible");
	$('#overlay-project-support').hide();
}

function toggleSupportGroups() {
		if ($("div.select-group-item").is(":hidden")) {
		  $("div.select-group-item").slideDown("slow");
          $("div.select-group-item-bg").slideDown("slow");
		  } else {
		  $("div.select-group-item").slideUp("slow");
          $("div.select-group-item-bg").slideUp("slow");
		}
    return false;
}

function charsLeft(limitField, limit) {
	if($('#'+limitField)) {
        return limit - $('#'+limitField).val().length;
    } else {
        return limit;
    }
}

function checkLimit(LimitField, Limit) {
    var CharsLeft = charsLeft(LimitField, Limit);
    if(-1 < CharsLeft) {
        
        if(11 > CharsLeft) {
            setRemainingChars('fewer', CharsLeft);
        }else if(51 > CharsLeft) {
            setRemainingChars('few', CharsLeft);
        }else {
            setRemainingChars(false, CharsLeft);
        }
        $('#donate_to_project').removeClass('buttondisabled');
        $('#donate_to_project').attr('disabled', null);
    } else {
        $('#'+LimitField).val($('#'+LimitField).val().substr(0, (Limit+1)));
        setRemainingChars('fewer', 'no');
       //disable continue button
       $('#donate_to_project').addClass('buttondisabled');
       $('#donate_to_project').attr('disabled', 'disabled');
    } 
}
function setRemainingChars(Class, CharsLeft) {
   $('.chars-remaining').removeClass('few');
   $('.chars-remaining').removeClass('fewer');
   if(false !== Class) {
       $('.chars-remaining').addClass(Class);
   }
   $('#donation-comment-remaining').html(CharsLeft);

}
