$(document).ready(function () {
	
	var clickedbox = clickedbox = 'div#rectangle img';
	var clickedmethod = false;
	var box = 'box_rectangle';
	var wood = '12';
	var method = false;
	var volumeVB = false;
	var step = 1;
	var input_power = 0;
	var i = 0;
	
	function ajaxify(file){
		$('<div id="mask"><img src="img/box/ajax-snake-black.gif"></div>').appendTo('body');
		$('#mask').css('top',$('#content').offset().top);
		$('#mask').css('left',$('#content').offset().left);
		$('#mask').css('width',$('#content').innerWidth());
		//var ypos = ( $('#content').innerHeight() / 2 ) - 16;
		var ypos = 150;
		$('#mask').css('height',$('#content').innerHeight()-ypos);
		$('#mask').css('padding-top',ypos + 'px');
		//$('#mask').fadeTo(10,0.8),show();
		$('#mask').fadeTo(10,0.8);
		$('#mask').fadeIn('slow',function(){
			$.get(file,function(data) {
				$("#content").html(data);
				$('#mask').fadeOut('fast',function(){$('#mask').remove();});				
				fixProductLinks();
				fixWizardButtons();
				fixStepControls();
				fixForms();
				//makeRoundedCorners();
				//makeStepRollOvers();
			});
		});
	}

	$("a.sysmenu-head").click(function(e) {
		e.preventDefault();
		var h = $(this).attr('href');
		//alert(h.substring(0,4));
		if (h.substring(0,4) != 'java') {			
			ajaxify($(this).attr('href'));
		} else {
			return false;
		}
	});
	
	$("div.sysmenu a").click(function(){
		ajaxify($(this).attr('href'));
		return false;
	});
	
	$("td#footer_bar a").click(function(){
		ajaxify($(this).attr('href'));
		return false;
	});
	
	function fixProductLinks() {
		$("td.product_top").click(function(){
			ajaxify($(this).attr('href'));
			return false;
		});
		
		$("td.product_photo").click(function(){
			ajaxify($(this).attr('href'));
			return false;
		});
		
		$("td.center_piece a").click(function(){
			ajaxify($(this).attr('href'));
			return false;
		});
	}
	
	function fixWizardButtons() {
		$("div#search_button a").mousedown(function(e){
			e.preventDefault();
			var file = '/diagrams/load/';
			file += $("#qty").val() + "/" + $("#imp").val();			
			$.get(file,function(data){ 
				$("#diagrams").html(data);
				$("html").scrollTop(600);
			});
			
		});
		
		// Wood Thickness
		//$('#wood div').css('font-weight','bold');
		$('#wood div').addClass('off');
		$('#wood div').click(function(){
			$('#wood div').removeClass('on');
			$(this).addClass('on');
			wood = $(this).attr('id');
			calcFields();
			$("div#volumeVB").html('&nbsp;');
			var set = '#' + method + ' div.fields input:first';
			$(set).focus();
		});
						
		// Boxes		
		$('div.box-type img').mouseenter(function(){			
			$(this).attr('src', 'img/box/icon_' + $(this).parent().attr('id') + '_on.gif');
		});		
		$('div.box-type img').mouseleave(function(){
			//alert(clickedbox);
			if (clickedbox != 'div#' + $(this).parent().attr('id') + ' img') 
				$(this).attr('src', 'img/box/icon_' + $(this).parent().attr('id') + '_off.gif');
		});
		$('div.box-type img').click(function(){
			$("html").scrollTop(800);
			if (clickedbox != 'div#' + $(this).parent().attr('id') + ' img') 
				$(clickedbox).attr('src','img/box/icon_' + $(clickedbox).parent().attr('id') + '_off.gif');			
			clickedbox = 'div#' + $(this).parent().attr('id') + ' img';
			clickedmethod = false;
			$("div#volumeVB").html('&nbsp;');
			
			$('<div id="minimask"><img src="img/box/ajax-snake.gif"></div>').appendTo('body');
			$('#minimask').css('top',$('#measurements').offset().top);
			$('#minimask').css('left',$('#measurements').offset().left);
			$('#minimask').css('width',$('#measurements').innerWidth());
			var ypos = ( $('#measurements').innerHeight() / 2 ) - 16;
			$('#minimask').css('height',$('#measurements').innerHeight()-ypos);
			$('#minimask').css('padding-top',ypos + 'px');
			$('#minimask').fadeTo(1,0.5).show();			
			
				var file = '/boxes/load/' + $(this).parent().attr('id');
				$.get(file,function(data){
					$('#measurements').html(data);
					$("#minimask").fadeOut("fast",function() { $(this).remove(); });
					fixFieldEvents();
				});			
						
 		});		
		
		if ($('#measurements')) {			
			$.get('/boxes/load',function(data){
				$('#measurements').html(data);
				fixFieldEvents();
			});			
		}
		
		
		$('#calc_button a').click(function(){
			switch (box) {
			case 'box_rectangle':
				var width = parseFloat($("#inner_width").val());
				var height = parseFloat($("#inner_height").val());
				var depth = parseFloat($("#inner_depth").val());
				volumeVB = parseFloat(((width * height * depth)/1000));					
				break;
			case 'box_wedge':
				var width = parseFloat($("#inner_width").val());
				var height = parseFloat($("#inner_height").val());
				var depth = parseFloat($("#inner_depth").val());
				var depth2 = parseFloat($("#inner_depth2").val());
				//volumeVB = parseFloat(((width * height * depth)+(width * height * depth2)/2)/1000);
				volumeVB = parseFloat(((height*width*depth)/1000) - ((height*(depth - depth2)*width)/1000));
				break;
			case 'box_wedge2':
				var width = parseFloat($("#inner_width").val());
				var height = parseFloat($("#inner_height").val());
				var height2 = parseFloat($("#inner_height2").val());
				var depth = parseFloat($("#inner_depth").val());
				var depth2 = parseFloat($("#inner_depth2").val());
				volumeVB = parseFloat(((height*width*depth)/1000) - (((height - height2)*(depth - depth2)*width)/1000));
				break;
			case 'box_hexagon':
				var width = parseFloat($("#inner_width").val());					
				var depth = parseFloat($("#inner_depth").val());					
				volumeVB = parseFloat( ( (( 3 * Math.sqrt(3) )/2)  * (Math.pow((width/2),2)) * depth ) / 1000 );
				break;
			}
			$("div#volumeVB").html('Vb: ' + volumeVB.toFixed(2) + ' litres');
		});
		
		
		

		
	}
	
	function fixFieldEvents() {
		
		$("div.fields input").attr("disabled","disabled");
		$('div.fields input').val(0);		
		$("#outer div.fields input").focus(function(){
			$(this).select();
		});
		$("#inner div.fields input").focus(function(){
			$(this).select();
		});
		
		// Measurements		
		$('div.pic img').mouseenter(function(){			
			$(this).attr('src', 'img/box/' + $(this).parent().parent().parent().attr('id') + '_' + $(this).parent().parent().attr('id') + '_on.gif');
		});		
		$('div.pic img').mouseleave(function(){			
			if (clickedmethod != 'div#' + $(this).parent().parent().attr('id') + ' img')
				$(this).attr('src', 'img/box/' + $(this).parent().parent().parent().attr('id') + '_' + $(this).parent().parent().attr('id') + '_off.gif');
		});
		$('div.pic img').click(function(){
			$("#outer div.pic img").mouseenter();
			if (clickedmethod != 'div#' + $(this).parent().parent().attr('id') + ' img') {			
				var newsrc = 'img/box/' + $(clickedmethod).parent().parent().parent().attr('id') + '_' + $(clickedmethod).parent().parent().attr('id') + '_off.gif';			
				$(clickedmethod).attr('src', newsrc);
				$('div#' + $(clickedmethod).parent().parent().attr('id') + ' input').attr("disabled","disabled");
				$('div#' + $(this).parent().parent().attr('id') + ' input').removeAttr("disabled");
			}
			clickedmethod = 'div#' + $(this).parent().parent().attr('id') + ' img';
			box = $(this).parent().parent().parent().attr('id');
			method = $(this).parent().parent().attr('id');
			var set = '#' + method + ' div.fields input:first';
			$(set).focus();
			$('div.fields input').keyup(function(){				
				calcFields();
			});
 		});
		
		$("#outer div.pic img").click();
		
		$("#outer div.fields input:first").focus();		
	}	
	
	function calcFields() {
		
		switch (method) {
			case 'outer':
				$("div.fields input[id^='outer']").each(function(){
					if ($(this).val() > 0) {
						var nameConstruct = $(this).attr('id').split('_');
						var dimension = nameConstruct[1];
						var opposite = '#inner_' + dimension;
						var newval = parseFloat($(this).val()) - ((wood/10)*2);
						$(opposite).val(newval);
					}
				});				
				break;
			case 'inner':
				$("div.fields input[id^='inner']").each(function(){
					if ($(this).val() > 0) {
						var nameConstruct = $(this).attr('id').split('_');
						var dimension = nameConstruct[1];
						var opposite = '#outer_' + dimension;
						var newval = parseFloat($(this).val()) + ((wood/10)*2);
						$(opposite).val(newval);
					}
				});				
				break;
		}
	}	

	function makeRoundedCorners() {
		if (!($.browser.msie && $.browser.version.substr(0,1)=='7')) {	
			$('.rounded-all').corners('sizex:10 sizey:20');
			$('.rounded-bottom').corners('bottom',{sizex:20,sizey:20});		
		}
	}
	
	function makeStepRollOvers() {
		$("#wirecalc-steps img").each(function(n){
			$(this).css({'cursor':'hand'});
			$(this).mouseenter(function(){
				$(this).attr("src","img/wirecalc/step" + (n+1) + "-1.png");
			});
			$(this).mouseleave(function(){
				$(this).attr("src","img/wirecalc/step" + (n+1) + "-0.png");
			});
		});
	}
	
	function fixStepControls() {
		$("#wirecalc-detail span:not('#nextend') a").click(function(){
			var file = $(this).attr('href');
			goStep(file);				
			return false;
		});
		
		$("#nextend a").click(function(e){
			e.preventDefault();
			showfiftyless();
			return false;
		});
		
		$('#calc_power_button a').click(function(){			
			var power = parseFloat($('#power').val());
			var efficiency = parseFloat($('#efficiency').val());
			input_power = parseFloat( power / efficiency * 100 );
			$('div#input_power').html('Input Power: <span style="font-weight:bold;color:red;">' + input_power.toFixed(2) + ' Watts</span> (from vehicle charging system)');
			$("html").scrollTop(600);
			if (input_power > 0) $('#next').show();
		});
		
		$('#calc_amp_button a').click(function(){	
			
			i = parseFloat( input_power / $('#volts').val())
			$('#power').html(input_power.toFixed(2) + ' Watts');
			$('#e').html(parseFloat($('#volts').val()).toFixed(2) + ' Volts');
			$('#i').html(parseFloat(i).toFixed(2) + ' Amps');			
			$("html").scrollTop(600);			
			if ($('#volts').val() > 0) $('#nextend').show();
		});
		
		$('.formula-form input').val(0);
		$('.formula-form input').focus(function(){
			$(this).select();
		});
		$('.formula-form input:first').focus();
		
		$('#watts').html(input_power.toFixed(2));
		
		//$('#nextend').show();		
		$("#what a").mouseenter(function(){
			$("#pvc").css('top',$('#what').offset().top - ($("#what").height()+$("#pvc").height()+30));
			$("#pvc").css('left',$('#what').offset().left+20);
			$("#pvc").show();
		});
		$("#what a").mouseleave(function(){
			$("#pvc").hide();
		});
		
	}
	
	function showfiftyless() {
		//alert($('#i').val());
		//var half = $('#i').val() / 2;
		//alert($("img#wireheading").attr('src'));
		$("img#wireheading").attr('src',"/img/wirecalc/step4-detail.png");
		$('#ii').html(parseFloat(i / 2).toFixed(2) + ' Amps');					
		$('#fiftyless-info').show();
		$('#fiftyless').show();
		$('#nextend').hide();
		newstep = 4;
		switchStep(newstep);
		$("#volt_input, .formula, .formula-info, .spacer").hide();
		$(".formula-info-hide, .spacer-hide").show();		
	}
	
	function goStep(file) {
		var urlConstruct = file.split('/');
		var stepName = urlConstruct[2];
		var newstep = stepName.substring(4,5);
		switchStep(newstep);
		$('<div id="minimask"><img src="img/box/ajax-snake.gif"></div>').appendTo('body');
		$('#minimask').css('top',$('#wirecalc-detail').offset().top);
		$('#minimask').css('left',$('#wirecalc-detail').offset().left);
		$('#minimask').css('width',$('#wirecalc-detail').innerWidth());
		var ypos = ( $('#wirecalc-detail').innerHeight() / 2 ) - 16;
		$('#minimask').css('height',$('#wirecalc-detail').innerHeight()-ypos);		
		$('#minimask').css('padding-top',ypos + 'px');
		$('#minimask').fadeTo(1,0.5).show();
		$.get(file,function(data) { 
			$("#wirecalc").html(data);
			$("#minimask").fadeOut("fast",function() { $(this).remove(); });
			//makeRoundedCorners();
			fixStepControls();
		});
	}
	
	function switchStep(newstep) {
		var x = 0;
		for (x = 1; x < 5; x++) $($("td.step img")[x-1]).attr("src","img/wirecalc/step" + x + "-0.png");
		for (x = 1; x <= newstep; x++)$($("td.step img")[x-1]).attr("src","img/wirecalc/step" + x + "-1.png");
	}
	
	function fixForms() {
		$("div.submit").css('text-align','right');
		$("table.brightideaform").css({'background':'#fff','color':'#232323'});
		$("table.brightideaform td:not(:has(input,textarea))").css({'width':'20%','white-space':'nowrap','padding-right':'20px','text-align':'right'});
		$("table.brightideaform td:has(img)").css({'text-align':'left','width':'1%'});
		
		//$("input#submit_button").click(function(){
		$("#copy form").submit(function(){
			return validateForm();
		});
		
		$("#login_button").click(function(){
			var prestr = '{';
			$(":input").each(function(){
				prestr += "'" + $(this).attr('id') + "':'" + $(this).val().replace(/\n/g,", ") + "',";						
			});	
			prestr = prestr.substring(0,prestr.length-1);
			prestr += '}';
			$('<div id="mask"><img src="img/box/ajax-snake-black.gif"></div>').appendTo('body');
			$('#mask').css('top',$('#content').offset().top);
			$('#mask').css('left',$('#content').offset().left);
			$('#mask').css('width',$('#content').innerWidth());
			var ypos = ( $('#content').innerHeight() / 2 ) - 16;			
			$('#mask').css('height',$('#content').innerHeight()-ypos);
			$('#mask').css('padding-top',ypos + 'px');			
			$('#mask').fadeTo(10,0.8);
			$('#mask').fadeIn('slow',function(){
				eval("$.post('/clients/login', " + prestr + ", function(data) { $('#content').html(data); $('#mask').fadeOut('fast',function(){$('#mask').remove();}); fixForms(); });");
			});
		});
		
		$("#logout_button").click(function(){
			$('<div id="mask"><img src="img/box/ajax-snake-black.gif"></div>').appendTo('body');
			$('#mask').css('top',$('#content').offset().top);
			$('#mask').css('left',$('#content').offset().left);
			$('#mask').css('width',$('#content').innerWidth());
			var ypos = ( $('#content').innerHeight() / 2 ) - 16;			
			$('#mask').css('height',$('#content').innerHeight()-ypos);
			$('#mask').css('padding-top',ypos + 'px');			
			$('#mask').fadeTo(10,0.8);
			$('#mask').fadeIn('slow',function(){
				$.get('/clients/logout', function(data) { 
					$('#content').html(data);
					$('#mask').fadeOut('fast',function(){$('#mask').remove();});
					fixForms(); 
				});	
			});
		});
		
		$("#register_button").click(function(){
			$('<div id="mask"><img src="img/box/ajax-snake-black.gif"></div>').appendTo('body');
			$('#mask').css('top',$('#content').offset().top);
			$('#mask').css('left',$('#content').offset().left);
			$('#mask').css('width',$('#content').innerWidth());
			var ypos = ( $('#content').innerHeight() / 2 ) - 16;			
			$('#mask').css('height',$('#content').innerHeight()-ypos);
			$('#mask').css('padding-top',ypos + 'px');			
			$('#mask').fadeTo(10,0.8);
			$('#mask').fadeIn('slow',function(){
				$.get('/clients/register', function(data) { 
					$('#content').html(data);
					$('#mask').fadeOut('fast',function(){$('#mask').remove();});
					fixForms(); 
				});	
			});
		});
		
		$("#register_submit_button").click(function(){
			if (validateRegForm()) {
				var prestr = '{';
				$(":input").each(function(){
					prestr += "'" + $(this).attr('id') + "':'" + $(this).val().replace(/\n/g,", ") + "',";						
				});	
				prestr = prestr.substring(0,prestr.length-1);
				prestr += '}';
				$('<div id="mask"><img src="img/box/ajax-snake-black.gif"></div>').appendTo('body');
				$('#mask').css('top',$('#content').offset().top);
				$('#mask').css('left',$('#content').offset().left);
				$('#mask').css('width',$('#content').innerWidth());
				var ypos = ( $('#content').innerHeight() / 2 ) - 16;			
				$('#mask').css('height',$('#content').innerHeight()-ypos);
				$('#mask').css('padding-top',ypos + 'px');			
				$('#mask').fadeTo(10,0.8);
				$('#mask').fadeIn('slow',function(){
					eval("$.post('/clients/register', " + prestr + ", function(data) { $('#content').html(data); $('#mask').fadeOut('fast',function(){$('#mask').remove();}); fixForms(); });");
				});
			}
		});
		
		$("#download_button").click(function(){			
			window.open('/app/webroot/files/pricelists/2009-10-14-pricelist.xls','XLSWin','width=100,height=100');			
		});
		
		if ($("#loggedstatus").length) {
			var status = $("#loggedstatus").val();			
			switch (status) {
			case 'loggedin':
				$(".loggedout").hide();
				$(".loggedin").show();
				break;
			case 'loggedout':
			default:
				$(".loggedout").show();
				$(".loggedin").hide();
				break;				
			}
		}
		
	}
	
	function validateForm() {
		var canSubmit = true;
		if (!$("#BrightideaName").val()) {
			alert('You have to fill in your name');
			$("#BrightideaName").focus();
			canSubmit = false;
		} else if (!$("#BrightideaSurname").val()) {
			alert('You have to fill in your surname');
			$("#BrightideaSurname").focus();
			canSubmit = false;
		} else if (!$("#BrightideaEmail").val()) {
			alert('You have to fill in your email address');
			$("#BrightideaEmail").focus();
			canSubmit = false;
		} else if (!$("#BrightideaIdea").val()) {
			alert('You have to fill in your idea');
			$("#BrightideaIdea").focus();
			canSubmit = false;
		} else if (!$("#BrightideaPolicyAgree").is(':checked')) {
			alert('You have to accept the Policy Agreement');
			$("#BrightideaPolicyAgree").focus();
			canSubmit = false;
		} else if (!$("#BrightideaReleaseAgree").is(':checked')) {
			alert('You have to fill accept the Release Agreement');
			$("#BrightideaReleaseAgree").focus();
			canSubmit = false;
		}		
		return canSubmit;
	}
	
	function validateRegForm() {
		var canSubmit = true;
		if (!$("#company").val()) {
			alert('Please fill in your company name');
			$("#company").focus();
			canSubmit = false;
		} else if (!$("#first_name").val()) {
			alert('Please fill in your first name');
			$("#first_name").focus();
			canSubmit = false;
		} else if (!$("#last_name").val()) {
			alert('Please fill in your last name');
			$("#last_name").focus();
			canSubmit = false;
		} else if (!$("#email").val()) {
			alert('Please fill in your email address');
			$("#email").focus();
			canSubmit = false;
		}
		return canSubmit;
	}
	
	ajaxify('/contents/home');
	
});

