
var mapData = new Array(
	1,false,true,105,
	1,true,true,115,
	1,false,false,125,
	1,true,false,145,
	2,false,true,110,
	2,true,true,120,
	2,false,false,130,
	2,true,false,150,
	3,false,true,115,
	3,true,true,125,
	3,false,false,135,
	3,true,false,155,
	4,false,true,120,
	4,true,true,130,
	4,false,false,140,
	4,true,false,160,
	5,false,true,130,
	5,true,true,140,
	5,false,false,150,
	5,true,false,170,
	6,false,true,145,
	6,true,true,155,
	6,false,false,165,
	6,true,false,185,
	7,false,true,160,
	7,true,true,170,
	7,false,false,180,
	7,true,false,200,
	8,false,true,175,
	8,true,true,185,
	8,false,false,195,
	8,true,false,215,
	9,false,true,190,
	9,true,true,200,
	9,false,false,210,
	9,true,false,230
);

var colours = new Array(
	'#00CB00',
	'#65FE65',
	'#CBFECB',
	'#FEFECB',
	'#FEFE33',
	'#FECB65',
	'#FECBCB',
	'#FE9999',
	'#FD3232'
);



var mapHash = [];

$j(function() {

	var count = mapData.length;
	
	for (var i=0; i<count; i+=4) {
		var index = mapData[i].toString();
		var west = mapData[i+1].toString();
		var ceiling = mapData[i+2].toString();
		var sqmeter = mapData[i+3].toString();
		
		if (!mapHash[index]) {
			mapHash[index] = [];
		}
		
		if (!mapHash[index][west]) {
			mapHash[index][west] = [];
		}
		
		mapHash[index][west.toString()][ceiling.toString()] = sqmeter;
		
	}
	
	var region = $j("#region-entry");
	
	var option = "<option style='background:colour' value='index'>&nbsp;</option>";
	var link = "<a class='map-link' style='background:colour' href='#'>&nbsp;</a>";
	var currentLink = null;
	
	$j.each (colours, function(index, value) {
		//var optionHtml = option.replace(/colour/, value).replace(/index/, index+1);
		//$j(optionHtml).appendTo(region);
		var linkHtml = link.replace(/colour/, value).replace(/index/, index+1);
		var a = $j(linkHtml);
		a.mouseenter(function() {
			$j(this).animate ({
				'width': '40px',
				'height': '40px',
				'margin': '0px' 
			});
		});
		
		a.mouseleave(function() {
			if (currentLink!=this) {
				$j(this).animate ({
					'width': '20px',
					'height': '20px',
					'margin': '10px'
				});
			}
		});		
		
		a.click(function() {
			var prev = currentLink;
			$j(this).trigger("mouseenter");
			currentLink = this;
			if (prev) {
				$j(prev).trigger("mouseleave");
			}
			return false;
		});
		
		a.data("data", index+1);
		
		$j(a).insertBefore(region);
		$j(a).trigger("mouseleave");
		
	});
	
	$j("a.map-link").eq(0).trigger("click");
	
	var floorAreaError = $j("#floor-area-error");
	var calculationMessage = $j("#calculation-message");
	
	var capacityMessage = "Cooling Capacity Required: <strong>capacity</strong>kW.";	
	var noCapacityMessage = "<p>The capcity exceeds that of standard listed units &ndash; another alternative may be required.</p>";
	
	$j("#calculate").click(function() {
		
		floorAreaError.slideUp();
		calculationMessage.slideUp();
		
		var ok = true;
		var floorAreaValue = $j("#floor-area").val();
		
		var floorArea = 0;
		try {
			floorArea = parseFloat(floorAreaValue);
		} catch (ex) {
			ok = false;
		}
		
		if (!floorArea) {
			ok = false;
		}
		
		if (ok) {
			
			var message = "";
			var regionIndex = $j(currentLink).data("data");//region.val();
			
			var westernAspect = $j("#western-aspect:checked").val();
			var ceilingInsulated = $j("#ceiling-insulated:checked").val();
			//alert (regionIndex + " " + westernAspect + " " + ceilingInsulated);
			
			var factor = (1.072*regionIndex*regionIndex+113.2-10) + (ceilingInsulated ? 0 : 20) + (westernAspect ? 10 : 0) + ((ceilingInsulated && !ceilingInsulated) ? 10 : 0);
			var capacity = factor*floorArea/1000;
			
			message = capacityMessage.replace(/capacity/, capacity.toFixed(2));
			if (capacity>=0 && capacity<=10) {
				
			} else {
				message += noCapacityMessage;
			}
			
			calculationMessage.html(message);
			calculationMessage.slideDown();
			
		} else {
			floorAreaError.slideDown();
		}
		
		return false;
		
	});
	
	
});


