﻿<!--
/*
* ## CONFIG ##
*/
// Log to Firebug Console, set to false for Live!
var _debug = true;
var _ImageFolder = "/ui/site/images/"
//var _webServiceURL = "/includes/fundingwebserviceresponse.xml";
var _webServiceURL = "/services/QuoteEngine/FundingCalculator.svc/json/GenerateFundingQuote";

/*
* ## END CONFIG ##
*/

/* General functions
----------------------------------------------- */

// IE specific handling of rounded coners for print preview
/*@cc_on
window.onbeforeprint = printThis;

function printThis() {
	// remove corner elements that mess up print preview
	$('.DD_roundies_sizeFinder').hide();
	$('div').removeAttr('style');
	$('div').removeAttr('vmlBg');
	$('ignore').remove();
	// reload page
	setTimeout("document.location=document.location;", 1000)
}
@*/


// log to firebug console - remove for production environment
function debug(message) {
    if (_debug) if (window.console) console.log(message);
}

// addtion to find control from .Net client ID
$.extend({
	clientID: function(id) {
		return $("[id$='" + id + "']");
	}
});
// -->

/*
* open windows in external window
*/ 
function setLinkRel()
{
  $('a[rel="external"]').click( function() {
      window.open( $(this).attr('href') );
      return false;
  });
}

/*
* add commas
*/ 
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

/*
* display error message
*/ 
function alertError(err)
{
    txt="Sorry, there was an error on this page.\n\n";
    txt+="Error description: " + err + "\n\n";
    txt+="Click OK to continue.\n\nThen refresh your page.";
    alert(txt);
}

/* Feature Panel
----------------------------------------------- */
function setupFeaturePanel()
{
    $tabs = $('<ul/>');

    $('.feature-panel .mod').each(function() {
        // create and append tabs
        $li = $('<li/>').text($(this).find('h2').text());
        $tabs.append($li);
        $(this).append('<img src="' + _ImageFolder + 'modules/feature-tl.gif" alt="" class="tl" />')
			    .append('<img src="' + _ImageFolder + 'modules/feature-bl.gif" alt="" class="bl" />')
			    .append('<img src="' + _ImageFolder + 'modules/feature-br.gif" alt="" class="br" />');
    });

    $tabs.find('li:eq(0)').addClass('selected');
    $('.feature-panel .mod:eq(0)').find('.mf').append($tabs);

    // tabs to show/hide appropriate panel
    $('.feature-panel .mod .mf').delegate('click', 'li', function() {

        index = $('.mf li').index(this);

        $('.feature-panel .mod:not(:eq(' + index + '))').removeClass('show').find('.mf li').removeAttr('class');
        $('.feature-panel .mod:eq(' + index + ')').addClass('show').find('.mf').append($(this).parent());

        $(this).addClass('selected');

        return false;
    });
}

/* Funding Calculator
----------------------------------------------- */
function setupFundingCalculator()
{
    setupSelectSlider('FC_Turnover');
    setupSelectSlider('FC_Debt');
    $('#funding-calculator .formbuttons').hide();
    // set initial value
    getFunding();
}
	

function setupSelectSlider(inputId) {
	var $parent = $('input[id*=' + inputId + ']').parent();
	var options = Array();
	var min = 50000;
	var max = 5000000;
	var step = 1000;
	var labelText = $('label[for*=' + inputId + ']').text() + " = ";

	// get min/max values
	/*$('#' + inputId).find('option').each(function(index) {
		options[index] = $(this).val();
	});
	min = parseInt(options[0]);
	max = parseInt(options[options.length - 1]);*/

	//setup ui
	$parent.empty();
	$parent.append('<div class="slider-container" id="' + inputId + '-container"><div id="' + inputId + '-slider"><\/div><\/div>');

	$('#' + inputId + '-container').prepend('<p class="min">£' + min/1000 + 'k<\/p>');
	$('#' + inputId + '-container').append('<p class="max">£' + max/1000000 + 'm+<\/p>');
	$('#' + inputId + '-container').prepend('<p class="value">' + labelText + '<span>£' + addCommas(min) + '<\/span><\/p>');

	// slider
	try {
	    $('#' + inputId + '-slider').slider({
		    range: false,
		    min: min,
		    max: max,
		    step: step,
		    slide: function(event, ui) {
    		    
                    $('#' + inputId + '-container .value span').text("£" + addCommas(ui.value));
			        if (ui.value == max) {
				        $('#' + inputId + '-container .value span').append("+");
			        };

		    },
		    stop: function(event, ui) {
			    getFunding();
		    }

	    });
	}
    catch(err) {
        alertError(err.description);
    }

}

//// poll web service and get results
//function getFunding() {
//	var OuputSpans = $('#funding-calculator .output span');
//	var turnover = $("#turnover-container .value span").text();
//	var debt = $("#debt-container .value span").text();
//	turnover = turnover.replace('£', '').replace('k', '').replace('+', '').replace(',', '');
//	debt = debt.replace('£', '').replace('k', '').replace('+', '').replace(',', '');

//	$.ajax({
//		type: "GET",
//		url: _webServiceURL,
//		data: {turnover: turnover, outstandingDebt: debt},
//		success: function(msg) {
//			//debug("Data Saved: " + msg);
//			//$(OuputSpans[0]).text("test");
//			$(OuputSpans[0]).text("£" + addCommas(Math.round($(msg).find('LowerFundingAmount').text())));
//			$(OuputSpans[1]).text("£" + addCommas(Math.round($(msg).find('UpperFundingAmount').text())));
//		}
//	});

//}


// poll web service and get results
function getFunding() {
	var OuputSpans = $('#funding-calculator .output span');
	var turnover = $("#FC_Turnover-container .value span").text();
	var debt = $("#FC_Debt-container .value span").text();
	turnover = turnover.replace(/£/g, '').replace(/k/g, '').replace(/\+/g, '').replace(/,/g, '');
	debt = debt.replace(/£/g, '').replace(/k/g, '').replace(/\+/g, '').replace(/,/g, '');

	$.ajax({
		type: "POST",
		url: _webServiceURL,
		contentType: 'application/json; charset=utf-8',
		dataType:"json",
		data: '{"domain":"1", "currencyCode":"GBP", "turnover":"' + turnover + '", "outstandingDebt":"' + debt + '"}',
		success: function(msg) {
			//debug("Data Saved: " + msg);
			//$(OuputSpans[0]).text("test");
			$(OuputSpans[0]).text("£" + addCommas(Math.round(msg.d.FundingFrom)));
			$(OuputSpans[1]).text("£" + addCommas(Math.round(msg.d.FundingTo)));
		}
	});

}

/* Tailored to you
----------------------------------------------- */
function setupTailoredToYou()
{
    $('#tty .mb').addClass('tty-script');

    $('#tty .mh').after('<div class="mb-selector"><\/div>');
    $('#tty .mb p:first').appendTo('#tty .mb-selector');
    $('#tty .mb div').addClass("selector");

    // add corners in ie only
    /*@cc_on
        DD_roundies.addRule('#tty', '10px');
        DD_roundies.addRule('.mb-selector', '10px 0 0 10px');
        DD_roundies.addRule('.tty-script', '0 10px 10px 0');
    @*/

    // Set selected
    var selected = $('#tty .mb >div').index($('div.selected'));
    debug(selected);
    
    if(selected < 0){
        $('#tty .mb div.selector').slice(1).hide();
        $('#tty .mb label:first').addClass("selected");
    }
    else {
        $('#tty .mb label').eq(selected).addClass("selected");
        $('#tty .mb div.selector').not('.selected').hide();
    }
    
    $('#tty .mb label').appendTo('#tty .mb-selector').click(function() {
        try
        {
             // set selected
            $('#tty .mb-selector label').removeClass("selected");
            $(this).addClass("selected");
            $('#tty .mb div.selector').hide();
            // find relevant select
            $("#" + $(this).attr('for')).parent().show();
        }
        catch(err)
        {
            alertError(err.description);
        }
    });
}

/* On Page Load
----------------------------------------------- */
$(function() {

    // add corners in ie only
    /*@cc_on
    DD_roundies.addRule('.button', '10px');
    @*/
    
    // set site search box text
    $('.site-search').example(function() {
        return $(this).attr('title');
    });
    
    setLinkRel()
    
    //if elements and corresponding functions exist then apply
    if ($('#tty')[0] && $.isFunction(setupTailoredToYou())) setupTailoredToYou();
	if ($('.feature-panel')[0] && $.isFunction(setupFeaturePanel())) setupFeaturePanel();
	if ($('#funding-calculator')[0] && $.isFunction(setupFundingCalculator())) setupFundingCalculator();
    
});
