function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	var s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function autoTrigger(){
    changeSelect('none');
    changeStep(1);
}

function changeSlider(id){
	$jQ('#iptModel').val(id);
	changeSelect($jQ('#iptModel'));
}

function changeSelect(item){
			
	var brandVal = $jQ('#iptBrand').attr("value");
	var modelVal = $jQ('#iptModel').attr("value");
	var trimVal = $jQ('#iptTrim').attr("value");
	var engineVal = $jQ('#iptEngine').attr("value");
	var transmissionVal = $jQ('#iptTransmission').attr("value");
	var optionsVal = $jQ('#iptOptions').attr("value");
	var accessoriesVal = $jQ('#iptAccessories').attr("value");
	var contributionVal = $jQ('#iptContribution').attr("value");
	var taxbandVal = $jQ('#iptTaxBand').attr("value");
	
	if($jQ('#iptPrivateFuel_yes').attr('checked') == true){
		var privatefuelVal = 'yes';
	}
	else if($jQ('#iptPrivateFuel_no').attr('checked') == true){
		var privatefuelVal = 'no';
	}
	else{
		var privatefuelVal = 'notset';
	}
	
	if(item == 'none'){
		var params = "?stage=0&brand=" + brandVal;
		ajaxFunction(params);
	}else{
		switch($jQ(item).attr("id")) {
		case 'iptBrand':
			var params = "?stage=1&brand=" + brandVal;
			ajaxFunction(params);
			break;
		case 'iptModel':
			var params = "?stage=2&brand=" + brandVal + "&model=" + modelVal;
			ajaxFunction(params);
			break;
		case 'iptTrim':
			var params = "?stage=3&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal;
			ajaxFunction(params);
			break;
		case 'iptEngine':
			var params = "?stage=4&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal + "&engine=" + engineVal;
			ajaxFunction(params);
			break;
		case 'iptMoveTo3':
		
			if(brandVal != "Select..." && modelVal != "Select..." && trimVal != "Select..." && engineVal != "Select..." && transmissionVal != "Select..."){
				var params = "?stage=5&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal + "&engine=" + engineVal + "&transmission=" + transmissionVal;
				ajaxFunction(params);
			} else {
				alert("Please select from the drop-downs to choose your model variant");
			}
			break;
		case 'iptCalculate':
			if(taxbandVal == "Select..." || privatefuelVal == "notset"){
				alert("Please complete all the questions");
				
			} else {
				var params = "?stage=7&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal + "&engine=" + engineVal + "&transmission=" + transmissionVal + "&options=" + optionsVal + "&accessories=" + accessoriesVal + "&contributions=" + contributionVal + "&taxband=" + taxbandVal + "&privatefuel=" + privatefuelVal;
				ajaxFunction(params);
			}
			break;
		case 'iptCalculateFuture':
			var params = "?stage=8&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal + "&engine=" + engineVal + "&transmission=" + transmissionVal + "&options=" + optionsVal + "&accessories=" + accessoriesVal + "&contributions=" + contributionVal + "&taxband=" + taxbandVal + "&privatefuel=" + privatefuelVal;
			ajaxFunction(params);
			break;
		case 'iptCompare':
			var params = "?stage=9&brand=" + brandVal + "&model=" + modelVal + "&trim=" + trimVal + "&engine=" + engineVal + "&transmission=" + transmissionVal + "&options=" + optionsVal + "&accessories=" + accessoriesVal + "&contributions=" + contributionVal + "&taxband=" + taxbandVal + "&privatefuel=" + privatefuelVal;
			ajaxFunction(params);
			break;
		case 'iptEditDetails':
			var params = "?stage=10&brand=" + brandVal + "&model=" + modelVal;
			ajaxFunction(params);
			break;
		}
	}
}

function changeStep(stepId){
	var txtInstructions = '';
	var txtStep = '';
	switch(stepId){
	case 1:
		
		hideDiv('stage2div');
		hideDiv('stage3div');
		hideDiv('stage4div');
		hideDiv('stage5div');
		showDiv('stage1div');
		txtInstructions = 'Please click on the left and right arrows to view the vehicles<br/>and then click the model to select.';
		txtStep = ' - Step 1 of 3';
		break;
	case 2:
		hideDiv('stage1div');
		hideDiv('stage3div');
		hideDiv('stage4div');
		hideDiv('stage5div');
		showDiv('stage2div');
		txtInstructions = 'Please select from the drop-downs to choose your model variant';
		txtStep = ' - Step 2 of 3';
		break;
	case 3:
		txtInstructions = 'Please fill in the details so we can correctly calculate your BiK tax';
		txtStep = ' - Step 3 of 3';
		hideDiv('stage1div');
		showDiv('stage3div');
		hideDiv('stage4div');
		hideDiv('stage5div');
		hideDiv('stage2div');
		break;
	case 4:
		txtInstructions = 'Summary page - 2009/2010 tax year';
		txtStep = '';
		hideDiv('stage1div');
		hideDiv('stage2div');
		hideDiv('stage3div');
		showDiv('stage4div');
		hideDiv('stage5div');
		break;
	case 5:
		txtInstructions = 'Summary page - Future tax years';
		txtStep = '';
		hideDiv('stage1div');
		hideDiv('stage2div');
		hideDiv('stage3div');
		hideDiv('stage4div');
		showDiv('stage5div');
		break;
	}
	$jQ('#titleStep').text(txtStep);
	$jQ('.instructions').html(txtInstructions);
}

function ajaxFunction(params)
{
    var url = "/tax/process-calculatorp11d-ajax" + params;
    //	console.log(url);
    
    var xmlHttp;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange=function()
    {
        
        if(xmlHttp.readyState==4)
        {
        	buildMenuController(xmlHttp.responseText);
            
        }
    }
    //document.getElementById('stage7').innerHTML=url;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function buildMenuController(request) {
    var results = eval("(" + request + ")");
    switch(results['stage']) {
    	case '1':
    		// Manufacturer selected
    		// Build the list of models in the slider
    		buildMenu1(results);
    		break;
    	case '2':
    		// Model selected
    		// Build the list of trims in the drop down
    		buildMenu2(results);
    		changeStep(2);
    		break;
    	case '3':
    		// Trim selected
    		// Build the list of engines in the drop down
    		buildMenu3(results);
    		break;
    	case '4':
    		// Engine selected
    		// Build the list of transmissions in the drop down
    		buildMenu4(results);
    		break;
    	case '5':
    		// Transmission selected
    		// Build the range of options
    		buildMenu5(results);
    		changeStep(3);
    		break;
    	case '6':
    		buildMenu6(results);
    		break;
    	case '7':
    		buildMenu7(results);
    		changeStep(4);
    		break;
    	case '8':
 			buildMenu8(results);
    		changeStep(5);
    		break;
    	case '9':
			//Reset iptOptions value
			//$('#iptOptions').txt("0.00");
			//Reset iptAccessories value
			//$('#iptOptions').txt("0.00");
			//Reset iptContribution value
			//$('#iptOptions').txt("0.00");
    		changeStep(1);
    		break;
    	case '10':
    		changeStep(2);
    		break;
    }
}

function buildMenu1(results){
	var gallery = $jQ('#carGalleryPics');
	var select = $jQ('#iptModel');
	var thisImage = "";
	var thiEntry = "";
	$jQ(select).find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptTrim').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptEngine').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptTransmission').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	
	$jQ(gallery).html('<li><img src="/assets/images/taxcalculator/interfaceElements/tx.gif" width="50" height="130" /></li>');
	

	for (i in results) {
        if (i != 'stage') {
        	$jQ(select).append('<option value="' + results[i]["id"] + '">' + results[i]["name"] + '</option>');
			
			//thisImage = results[i]["urlName"].replace('%E9','e').replace('é','e');
			thisImage = results[i]["urlName"].replace('%E9','e');
			
        	var thisEntry = '<li><a href="#" onclick="$jQ(\'#lightbox-wrapper\').animate({height: \'450px\'}, 600, null, function(){$jQ(\'#TB_closeWindow\').css({bottom: \'0px\'});});changeSlider(' + results[i]["id"] + '); setPreviewImage(\'' + thisImage + '\');" title="' + results[i]["name"] + '"><img src="/assets/images/taxcalculator/carImages/' + thisImage + '_slider.jpg" width="260" height="150" alt="' + results[i]["name"] + '" border="0" /></a></li>';
        	$jQ(gallery).append(thisEntry);
        }
	}
	$jQ(gallery).append('<li><img src="/assets/images/taxcalculator/interfaceElements/tx.gif" width="50" height="130" /></li>');
	prepSlider();
}

function buildMenu2(results){
	var select = $jQ('#iptTrim');
	$jQ(select).find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptEngine').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptTransmission').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');

	for (i in results) {
        if (i != 'stage') {
        	$jQ(select).append('<option value="' + results[i]["id"] + '">' + results[i]["name"] + '</option>');
        }
    }
}

function buildMenu3(results){
	var select = $jQ('#iptEngine');
	$jQ(select).find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
	$jQ('#iptTransmission').find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');

	for (i in results) {
        if (i != 'stage') {
        	$jQ(select).append('<option value="' + results[i]["id"] + '">' + results[i]["name"] + '</option>');
        }
    }
}

function buildMenu4(results){

	var select = $jQ('#iptTransmission');
	$jQ(select).find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');

	for (i in results) {
        if (i != 'stage') {
        	$jQ(select).append('<option value="' + results[i]["id"] + '">' + results[i]["name"] + '</option>');
        }
    }
}

function buildMenu5(results){
	var select = $jQ('#iptTransmission');
	var optLink = $jQ('#optLink');
	$jQ(optLink).attr({href: '/tax/vehicleoptions/transmissionLft/' + $jQ(select).attr('value') + '?TB_iframe=true&height=250&width=490&modal=true'})
}

function buildMenu6(results){
	//alert(results);
	var optionsScroller = $jQ('#optionsScroller');
	var listedOptions = '';
	for (i in results) {
		if (i != 'stage') {
			listedOptions = listedOptions + '<div class="option"><div class="checkbox"><input type="checkbox" id="' + results[i]["code"] + '" onclick="checkOption(this)"></div><div class="description">' + results[i]["description"] + '</div><div class="price">&pound;' + results[i]["price"] + '</div><div style="clear: both;"></div></div>';
			prices[results[i]["code"]] = results[i]["price"];
		}
	}
	optionsScroller.html(listedOptions);
}

	function buildMenu7(results){
		if(results[0]){
			showDiv('resultSet1');
			showDiv('resultSet1header');
			showDiv('carPrev3');
			$jQ('#resultSet1header').find('#bodymodel1').html(results[0]["title"]);
			$jQ('#resultSet1header').find('#engine1').html(results[0]["engine"]);
			$jQ('#resultSet1header').find('#transmission1').html(results[0]["transmission"]);
			$jQ('#resultSet1').find('#p11dVal1').html("&pound;" + results[0]["totalPrice"]);
			$jQ('#resultSet1').find('#capVal1').html("&pound;" + CurrencyFormatted(results[0]["contributions"]));
			$jQ('#resultSet1').find('#bandVal1').html(parseInt(results[0]["tax"] * 100) + "&#37;");
			$jQ('#resultSet1').find('#co2Val1').html(results[0]["co2"] + "g&#47;km");
			$jQ('#resultSet1').find('#bikVal1').html("&pound;" + results[0]["BiKPa"]);
			$jQ('#resultSet1').find('#benVal1').html("&pound;" + CurrencyFormatted(results[0]["fbTax"]));
			$jQ('#resultSet1').find('#totalVal1').html("&pound;" + CurrencyFormatted(results[0]["BikTotPm"]));
		} else {
			hideDiv('resultSet1');
			hideDiv('carPrev3');
		}
		
		if(results[1]){
			showDiv('resultSet2');
			showDiv('resultSet2header');
			hideDiv('carPrev3');
			$jQ('#resultSet2header').find('#bodymodel2').html(results[1]["title"]);
			$jQ('#resultSet2header').find('#engine2').html(results[1]["engine"]);
			$jQ('#resultSet2header').find('#transmission2').html(results[1]["transmission"]);
			$jQ('#resultSet2').find('#p11dVal2').html("&pound;" + results[1]["totalPrice"]);
			$jQ('#resultSet2').find('#capVal2').html("&pound;" + CurrencyFormatted(results[1]["contributions"]));
			$jQ('#resultSet2').find('#bandVal2').html(Math.ceil(results[1]["tax"] * 100) + "&#37;");
			$jQ('#resultSet2').find('#co2Val2').html(results[1]["co2"] + "g&#47;km");
			$jQ('#resultSet2').find('#bikVal2').html("&pound;" + results[1]["BiKPa"]);
			$jQ('#resultSet2').find('#benVal2').html("&pound;" + CurrencyFormatted(results[1]["fbTax"]));
			$jQ('#resultSet2').find('#totalVal2').html("&pound;" + CurrencyFormatted(results[1]["BikTotPm"]));
		} else {
			hideDiv('resultSet2');
		}
		
		if(results[2]){
			showDiv('resultSet3');
			showDiv('resultSet3header');
			hideDiv('carPrev3');
			hideDiv('liCompare');
			$jQ('#resultSet3header').find('#bodymodel3').html(results[2]["title"]);
			$jQ('#resultSet3header').find('#engine3').html(results[2]["engine"]);
			$jQ('#resultSet3header').find('#transmission3').html(results[2]["transmission"]);
			$jQ('#resultSet3').find('#p11dVal3').html("&pound;" + results[2]["totalPrice"]);
			$jQ('#resultSet3').find('#capVal3').html("&pound;" + CurrencyFormatted(results[2]["contributions"]));
			$jQ('#resultSet3').find('#bandVal3').html(Math.ceil(results[2]["tax"] * 100) + "&#37;");
			$jQ('#resultSet3').find('#co2Val3').html(results[2]["co2"] + "g&#47;km");
			$jQ('#resultSet3').find('#bikVal3').html("&pound;" + results[2]["BiKPa"]);
			$jQ('#resultSet3').find('#benVal3').html("&pound;" + CurrencyFormatted(results[2]["fbTax"]));
			$jQ('#resultSet3').find('#totalVal3').html("&pound;" + CurrencyFormatted(results[2]["BikTotPm"]));
		} else {
			hideDiv('resultSet3');
		}
	
	}
	
	function buildMenu8(results){
		$jQ('#resultSetFuture').find('#bodymodelFuture').html(results[0]["title"]);
		$jQ('#resultSetFuture').find('#engineFuture').html(results[0]["engine"]);
		$jQ('#resultSetFuture').find('#transmissionFuture').html(results[0]["transmission"]);
		$jQ('#resultSetFuture').find('#bandValFuture1').html(Math.ceil(results[0]["tax"] * 100) + "&#37;");
		$jQ('#resultSetFuture').find('#bikValFuture1').html("&pound;" + results[0]["BiKPa"]);
		$jQ('#resultSetFuture').find('#benValFuture1').html("&pound;" + CurrencyFormatted(results[0]["fbTax"]));
		$jQ('#resultSetFuture').find('#totalValFuture1').html("&pound;" + CurrencyFormatted(results[0]["BikTotPm"]));
		$jQ('#resultSetFuture').find('#bandValFuture2').html(Math.ceil(results[1]["tax"] * 100) + "&#37;");
		$jQ('#resultSetFuture').find('#bikValFuture2').html("&pound;" + results[1]["BiKPa"]);
		$jQ('#resultSetFuture').find('#benValFuture2').html("&pound;" + CurrencyFormatted(results[1]["fbTax"]));
		$jQ('#resultSetFuture').find('#totalValFuture2').html("&pound;" + CurrencyFormatted(results[1]["BikTotPm"]));
	}

function setPreviewImage(imgSrc){
	var fullSrc = '/assets/images/taxcalculator/carImages/' + imgSrc + '_slider.jpg';
	$jQ('#carPreview').attr({src: fullSrc});
	$jQ('#carPreview2').attr({src: fullSrc});
	$jQ('#carPreview3').attr({src: fullSrc});
	$jQ('#carPreview4').attr({src: fullSrc});
}

function resetSelect(select){
	$jQ(select).find('option').remove().end().append('<option value="Select...">Select...</option>').val('Select...');
}

function showDiv(theID){
    var popPanel = document.getElementById(theID);
    popPanel.style.display = "block";
}

function hideDiv(theID){
    var popPanel = document.getElementById(theID);
    popPanel.style.display = "none";
}

function toggleDiv(theID){
    var popPanel = document.getElementById(theID);

    if(popPanel.style.display ==  "none"){
        popPanel.style.display = "block";
    }else{
        popPanel.style.display = "none";
    }
}

function forceText(item, status){
	if(item.id == 'iptAccessories' || item.id == 'iptContribution' || item.id == 'iptMileage'){
		if(status == "on"){
			if(item.value == "Enter value"){
				item.value = "";
			}
		} else {
			if(item.value == ""){
				item.value = "Enter value";
			} else {
				if(isNaN(item.value) == true){
					alert("Please enter a numeric value only");
					item.value = "Enter value";
				}
			}
		}
	}
}
