$(function () {
	zone_num = 2;
	room_num = 3;
	$("#submit").click(function(){
		var a = new Array;
		$(".room").each(function() {
			if ($(this).val() != '0')
				a.push($(this).val());
		});
		var voltage = get_voltage();
		if (voltage == false) {
			alert('Please select available circuits for every zone.');
			return false;
		}
		var room_types = get_room_types();
		if (room_types == false) {
			alert('Please select room types.');
			return false;
		}
		var room_names = get_room_names();
		if (a.length > 0)
			$.post(
				'/estimate/calculate',
				{
					area: JSON.stringify(a),
					voltage: JSON.stringify(voltage),
					roomtypes: JSON.stringify(room_types),
					roomnames: JSON.stringify(room_names)
				},
				function() {
					window.location = '/estimateview';
				}
			);
	});
	
	$("#add_zone").click(function() {
		zone_num++;
		var zone = '<tr id="zone_' + zone_num + '"><td>Sub-zone ' + zone_num + ':</td><td class="right">Length</td><td><input type="text" value="0" class="len_ft" />ft.</td><td><input type="text" value="0" class="len_in" />in. </td><td class="right">X Width</td><td><input type="text" value="0" class="wid_ft" />ft.</td><td><input type="text" value="0" class="wid_in" />in.</td></tr>';
		$("#zones").append(zone);
		$("#zone_" + zone_num + " input:text").each(function() {
			blur_handler($(this));
		});
	});
	
	$("#add_room").click(function() {
		var $last_rm = $("#room_" + room_num);
		room_num++;
		var room = '<tr id="room_' + room_num + '"><td><select class="room_type">' + room_types + '</select><input type="hidden" value="" class="room_name"></td><td><input class="room" value="0" type="text" style="width: 50px; border: 1px inset gray;" /> ft&sup2;</td><td class="voltage"><input type="checkbox" class="120volt" checked="checked" />120V <input type="checkbox" class="240volt" checked="checked" />240V</td></tr>';
		$last_rm.after(room);
		$("#room_" + room_num + " .room_type").change(function() {
			change_room_type($("#room_" + room_num));
		});
		var $area_elem = $("#room_" + room_num + " .room");
		blur_handler($area_elem);
		focus_handler($area_elem);
	});
	
	$("#calc_zones").click(function() {
		var area = 0;
		$("#zones tr").each(function() {
			var lft = parseFloat($(this).find('.len_ft').val());
			var lin = parseFloat($(this).find('.len_in').val());
			var wft = parseFloat($(this).find('.wid_ft').val());
			var win = parseFloat($(this).find('.wid_in').val());
			var ltot = lft + (lin / 12);
			var wtot = wft + (win / 12);
			var a = ltot * wtot;
			area = area + a;
		});
		area = Math.floor(area);
		$(".room").each(function() {
			if ($(this).val() == 0 || $(this).val() == '') {
				$(this).val(area);
				return false;
			}
		});
		disblockui();
	});
	
	$(".close_btn").click(function() {
		disblockui();
		this.src = '/images/gray_cross.gif';
	});
	
	$('.close_btn').hover(
		function() {
			this.src = '/images/red_cross.gif';
		},
		function() {
			this.src = '/images/gray_cross.gif';
		}
	);

	$("#helpme").click(function() {
		show_zone_calc();
	});

	$("#room_1 .room_type").change(function() {
		change_room_type($("#room_1"));
	});
	
	$("#room_2 .room_type").change(function() {
		change_room_type($("#room_2"));
	});
	
	$("#room_3 .room_type").change(function() {
		change_room_type($("#room_3"));
	});
	
	$('input:text').each(function() {
		blur_handler($(this));
	});
	
	$('.room').focus(function() {
		if ($(this).val() == 0)
			$(this).val('');
	});
});

function get_voltage() {
	var volt_coll = new Array;
	var selected = true;
	$(".room").each(function() {
		var $tr = $(this).closest('tr');
		var v120 = $tr.find('.120volt');
		var v240 = $tr.find('.240volt');
		var area = $(this).val();
		if (!v240.is(':checked') && v120.is(':checked'))
			voltage = 120;
		else if (v240.is(':checked') && !v120.is(':checked'))
			voltage = 240;
		else if (v240.is(':checked') && v120.is(':checked'))
			voltage = 'both';
		else if (area == 0 && !v240.is(':checked') && !v120.is(':checked'))
			return true;
		else {
			selected = false;
			return false;
		}
		if (typeof(voltage) != 'undefined')
			volt_coll.push(voltage);
	});
	if (selected)
		return volt_coll;
	else
		return selected;
}

function get_room_types() {
	var room_types = new Array;
	var selected = true;
	$(".room").each(function() {
		var $tr = $(this).closest('tr');
		var rm_type = $tr.find('.room_type').val();
		var area = $(this).val();
		if (rm_type == 0 && area != 0) {
			selected = false;
		}
		else
			room_types.push(rm_type);
	});
	if (selected)
		return room_types;
	else
		return selected;
}

function get_room_names() {
	var room_names = new Array;
	$(".room").each(function() {
		var tr = $(this).closest('tr');
		var rm_name = tr.find('.room_name').val();
		room_names.push(rm_name);
	});
	return room_names;
}

function change_room_type($parent_tr) {
	var room_name;
	$parent_tr.find('.room_type option').each(function() {
		if ($(this).is(':selected'))
			room_name = $(this).html();
	});
	$parent_tr.find('.room_name').val(room_name);
}

function disblockui() {
	$('#container').unblock();
}

function show_zone_calc() {
	$('#container').block({
		message: $('#result'),
		css: {
			top: '240px',
			width: '700px',
			left: '420px',
			cursor: 'default',
			border: '2px solid #ADA389',
			background: '#F6F4E7',
			'text-align': 'justify',
			color: '#665333',
			padding: '25px'
		},
		overlayCSS: {
			cursor: 'default',
			backgroundColor: 'white'
		}
	});
	
	var y = $(window).height() / 2.0 - $('.blockMsg').outerHeight() / 2 + $(window).scrollTop();
	if (y < 0)
		y = 25;
	$('.blockMsg').css('top', y);
}

function blur_handler($elem) {
	$elem.blur(function() {
		if ($elem.val() == "")
			$elem.val("0");
	});
}

function focus_handler($elem) {
	$elem.focus(function() {
		if ($elem.val() == "0")
			$elem.val("");
	});
}
