$(document).ready(function(e) {	
	$('#anon_message').animate({opacity: 0.2});
	
	// Share buttons
	$('#save_comment_button').click(function(e){
		var share_url = $('#comment_form').attr('action');
		$.ajax({
			type: 'POST',
			url: share_url,
			dataType: 'text',
			data: {main_comment: $('#main_comment').val()},
			complete: updateMainComment
		});
	});
	
	$('#company_search_button').click(function(e){
		$('#company_form').submit();
	});
	
	$('.share_button').click(function(e){
		var resp_url;
		
		$.ajax({
			type: 'POST',
			url: this.href,
			dataType: 'text',
			data: {main_comment: $('#main_comment').val()},
			async: false,
			success: function(resp) {
				resp_url = resp;
			}
		});
		window.open(resp_url, '_blank');		
		updateMainComment();
		return false;
	});
	
	// Form actions and buttons
//	$("#company").autocomplete({source: "/ajax/company_autocomplete", delay: 0, type: 'post'});
	$('#company').focus(function(e){
		$('label[for=company]').animate({opacity: 0.4});
		$('#anon_message').animate({opacity: 1});
	});
	
	$('#company').keyup(function(e){
		if ($(this).val().length >= 1) {
			$('label[for=company]').hide();
		}
	});
	
	$('#company').blur(function(e){
		if ($(this).val().length <= 0) {
			$('label[for=company]').show();
			$('label[for=company]').animate({opacity: 1.0});
			$('#anon_message').animate({opacity: 0.2});
		}
	});
	
	$("#company_name").autocomplete({source: "/ajax/company_autocomplete", delay: 0, type: 'post'});
	$('#company_name').focus(function(e){
		$('label[for=company_name]').animate({opacity: 0.4});
	});
	if ($('#company_name').size() > 0) {
		if ($('#company_name').val().length >= 1) {
			$('label[for=company_name]').hide();		
		}
	}
	$('#company_name').keyup(function(e){
		if ($(this).val().length >= 1) {
			$('label[for=company_name]').hide();
		}
	});
	
	$('#company_name').blur(function(e){
		if ($(this).val().length <= 0) {
			$('label[for=company_name]').show();
			$('label[for=company_name]').animate({opacity: 1.0});
		}
	});
	
	
	$(".attendee").hide();
	
	$('#attendee_adder_button').click(function(e){
		if ($('#attendee_adder_position').val() == 0) {
			alert('Please select a job position before clicking the Add button.');
			return false;
		}
		addNewAttendee();
	});
			
	$('#email_button').click(function(e){
		revealEmailThis();
		return false;
	});
		
	$('#meeting_length').change(function(e){
		meetingLengthChanged();
	});
	
	$('#industry').change(function(e){
		if ($('#industry').val() == '0') {
			$('#attendee_adder_position').attr('disabled', 'disabled');
		} else {
			fillPositions($('#industry').val());
			$('#attendee_adder_position').removeAttr('disabled');
		}
	});
		
	$('#main_form').submit(function(e){
	   var count = 0;
	    $("div.attendee").each( function( i ) {
	      count += parseInt($("input[name=count]", this ).get(0).value);
	    });
	    if (!count) {
	      count = 0;
	    }
	    if (count <= 0) {
	      alert('Please add some attendees.');
	      return false;
	    }
	    if ($('#company').val() == 'Where do you work?') {
	      $('#company').val('The company who must not be named');
	    }
	    if ($('#industry').val() == 0) {
	      alert('Please select an industry.');
	      return false;
	    }
	    if ($('#company_size').val() == 0) {
	      alert('How big is your company?');
	      return false;
	    }
	    if ($('#meeting_length').val() == 0) {
	      alert('How long was the meeting?');
	      return false;
	    }
	});

	
	$('#submit_button').click(function(e){
		if ($("#attendee_adder_count").val() <= 0) {
			alert('Please add some attendees.');
			return false;						
		}
		if ($('#company').val() == 'Where do you work?') {
			$('#company').val('The company who must not be named');
		}
		if ($('#industry').val() == 0) {
			alert('Please select an industry.');
			return false;			
		}
		if ($('#company_size').val() == 0) {
			alert('How big is your company?');
			return false;						
		}
		if ($('#meeting_length').val() == 0) {
			alert('How long was the meeting?');
			return false;						
		}
		
		var attendees = new Array();
		$("div.attendee").each(function(e){	
			var count = $("input[name=count]", this).get(0).value;
			var pos   = $("input[name=position]", this).get(0).value;
			attendees.push(pos + ":" + count);
		});		
		var input = document.createElement('input');
		$(input).attr('type', 'hidden');
		$(input).attr('value', attendees.join(","));
		$(input).attr('name', 'a');
		$('#main_form').append(input);
		$('#main_form').submit();
		return false;
	});
	
	$('#company').focus();
	preLoadImages();
	refreshButtons();
});

function preLoadImages() {
	pic1 = new Image(344,376); 
	pic1.src="/images/gula_preview_1.png";
	pic2 = new Image(344,376); 
	pic2.src="/images/gula_preview_2.png";
	pic3 = new Image(466,376); 
	pic3.src="/images/gula_preview_3.png";
	pic4 = new Image(342,374); 
	pic4.src="/images/gula_preview_4.png";
	pic5 = new Image(480,399); 
	pic5.src="/images/gula_preview_5.png";
	pic6 = new Image(16,11); 
	pic6.src="/images/ajax-loader.gif";
}

function updateMainComment() {
	var p = document.createElement('p');
	$(p).attr('class', 'main_comment_display');
	$(p).attr('id', 'main_comment');
	p.innerHTML = $('#main_comment').val();
	$('textarea#main_comment').replaceWith(p);
	$(p).css('-webkit-border-radius', '0');
	$(p).css('-moz-border-radius', '0');
	$(p).css('margin-top', '0');
	$(p).css('border', '0');
	$(p).css('font-size', '14px');
	$(p).css('background-color', 'transparent');
	$(p).css('font-size', '14px');
	$(p).css('font-family', 'helvetica');
	$(p).css('height', 'auto');
	$(p).css('color', '#333');
	$('#save_comment_button').remove();
}

function refreshButtons() {	
	$('#more_meetings_button').click(function(e) {
		var img = document.createElement('img');
		var href = this.href;
		$(img).attr('src', '/images/ajax-loader.gif');
		$(img).attr('alt', 'Sending progress..');
		$(this).replaceWith(img);
		$.ajax({ 
			url: href,
			type: "GET",
			dataType: 'html',
			success: function(html) {
				$(img).remove();
				var olderMeetings = document.createElement('div');
				$(olderMeetings).css('display', 'none');
				$(olderMeetings).append(html);
				$('#other_meetings').append(olderMeetings);
				$(olderMeetings).show();
				refreshButtons();
			}
		});
		return false;
	});
	
	$('.button_remove_attendee').click(function(e){
		removeAttendee($(this).parent());
		return false;
	});
					
	$('#attendee_adder_count').numeric();
}

function refreshEmailInputs() {
	$('#senders_name, #friend_email').each(function(e){
		$('label[for='+$(this).attr('id')+']').animate({opacity: 0.4});
	});
	
	$('#senders_name, #friend_email').focus(function(e){
		$('label[for='+$(this).attr('id')+']').animate({opacity: 0.4});
	});

	$('#senders_name, #friend_email').keyup(function(e){
		if ($(this).val().length >= 1) {
			$('label[for='+$(this).attr('id')+']').hide();
		}
	});

	$('#senders_name, #friend_email').blur(function(e){
		if ($(this).val().length <= 0) {
			$('label[for='+$(this).attr('id')+']').show();
			$('label[for='+$(this).attr('id')+']').animate({opacity: 0.4});
		}
	});
	
	$('#senders_name').blur(function(e){
		$('#email_this_form').submit();
	});
	
	$('#email_send_button').click(sendEmail);
}
var gAttendeeInfo = new Array();

function loadCompanyInfo() {
	$.post( "xhr/company_info.php", "c=" + escape( $("#company").val() ), function( xml ) {
		var industry 	 = $("industry", xml).text();
		var company_size = $("company_size", xml).text();
		
		if ( industry.length && company_size.length ) {
			$("#industry").val(industry);
			fillPositions(industry);
			$("#company_size").val(company_size);		
		}
	});
}

function fillPositions(industry) {
	$.ajax( { 
		url: '/ajax/fill_positions',
		type: "POST",
		dataType: 'xml',
		data: { industry_id: industry},
		complete: function(xml) {
			$('#attendee_adder_position').html(xml.responseText);
			$('#attendee_adder_position').removeAttr('disabled');
		}
	});
}

function meetingLengthChanged()
{
	if ( $("#meeting_length").val() == "F" )
		$("#meeting_length_days_ui").show("fast");
	else
		$("#meeting_length_days_ui").hide("fast");
	
	refreshGula();
}

var gAttendeeCount = 0;

function addNewAttendee()
{
	if ( gAttendeeCount == 100 ) {
		alert( "Whoa! Gula can't handle that many people." );
		return;
	}
	
	var targetDiv = $("#attendees div.attendee").slice(-1);
	
	if ( gAttendeeCount > 0 ) {
		targetDiv = $("#attendees div.attendee").slice(-1).clone();
		targetDiv.css("display", "none");
		$("#attendees").append(targetDiv);
	}

	gAttendeeCount++;
	
	var count = $("#attendee_adder_count").val();
	var position = $("#attendee_adder_position").val();
	var positionTitle = $("#attendee_adder_position option[value="+position+"]").text();
	
	$("input[name=count]", targetDiv).val(count);
	$("input[name=position]", targetDiv).val(position);
	
	$(".attendee_count", targetDiv).text(count);
	$(".attendee_position_title", targetDiv).text(positionTitle);	
	
	targetDiv.show( "fast" );
	
	$("#attendee_adder_count").val(1);
	$('#attendee_adder_position').val(0);
	
	refreshGula();
	refreshButtons();
}

function removeAttendee( div ) {
	var count = 0;
	$("div.attendee").each( function( i ) {	
		count += parseInt($("input[name=count]", this ).get(0).value);
	});

	if (!count) {
		count = 0; 
	}
	
	if (count == 0) {
		return;
	}	

	count -= $('#count', div).val();
	
	$(div).fadeOut('normal', function(e){
		if ( count > 0 ) {
			$(div).remove();			
			refreshGula();
		} else {
			$(div).hide();				
			refreshGula();
		}
	});
}

function buildGulaParameters() {
	var params = new Array();
	
	params["version"] = $("#version").val();
	params["company"] = $("#company").val();
	if ($('#company').val() == '') {
		params['company'] = 'The company who must not be named';
	}
	params["industry"] = $("#industry").val();
	params["company_size"] = $("#company_size").val();
	params["meeting_length"] = $("#meeting_length").val();
	params["mld"] = $("#meeting_length_days").val();
	params["lunch"] = $("#lunch").val();

	var attendees = new Array();
	if ( gAttendeeCount > 0 ) {
		$("div.attendee").each( function( i ) {	
			var count = $("input[name=count]", this ).get(0).value;
			var pos   = $("input[name=position]", this ).get(0).value;

			attendees.push( pos + ":" + count );
		});		

		params["a"] = attendees.join(",");
	}

	var uri_params = new Array();
	
	for ( var i in params ) {
		uri_params.push( i + "=" + escape( params[i] ) );
	}
	
	return uri_params;
}

function refreshGula() {
	var count = 0;
	$("div.attendee").each( function( i ) {	
		count += parseInt($("input[name=count]", this ).get(0).value);
	});
	if (!count) {
		count = 0; 
	}
	var newImage = '';		
	if (count <= 2) {
		newImage = 'url(/images/gula_preview_1.png)';
	} else if (count <= 4) {
		newImage = 'url(/images/gula_preview_2.png)';
	} else if (count <= 6) {
		newImage = 'url(/images/gula_preview_3.png)';
	} else if (count <= 8) {
		newImage = 'url(/images/gula_preview_4.png)';
	} else {
		newImage = 'url(/images/gula_preview_5.png)';
	}

	// alert($('#gula_box').css('background-image'));
	// alert(newImage);
	if (newImage != $('#gula_box').css('background-image')) {
		$("#gula_box").fadeOut(function(e){
			$('#gula_box').css('background-image', newImage);
			$("#gula_box").fadeIn();
		});
	}
}

function revealEmailThis() {
	$.ajax({
		type: 'POST',
		url: '/email/form',
		dataType: 'text',
		data: {main_comment: $('#main_comment').val(), meeting_id: $('#meeting_id').val()},
		complete: function(resp) {
			var div = document.createElement('div');
			div.innerHTML = resp.responseText;
			var input = document.createElement('input');
			$(input).attr('type', 'hidden');
			$(input).attr('name', 'main_comment');
			$(input).attr('value', $('#main_comment').val());
			$('#email_this_form', div).append(input);
			$(div).modal({
				onClose: function(dialog) {
					dialog.data.fadeOut();
					dialog.container.fadeOut();
					dialog.overlay.fadeOut('normal', function(e){
						$.modal.close();
					});
				},
				onShow: function(dialog) {
					refreshEmailInputs();
				}
			});			
		}
	});
	$('#senders_name').focus();
}

function sendEmail() {
	var img = document.createElement('img');
	$(img).attr('src', '/images/ajax-loader.gif');
	$(img).attr('alt', 'Sending progress..');
	$("#email_send_info").empty();
	$("#email_send_info").append(img);
	
	$.ajax( { 
		url: "/email/send/"+$('#meeting_id').val(),
		type: "POST",
		data: {meeting_id: $('#meeting_id').val(),
		 			 senders_name: $('#senders_name').val(), 
					 friend_email: $('#friend_email').val(), 
					 stat: $('.results_stat').html(), 
					 main_comment: $('#main_comment').val()},
		success: function( xml, textStatus ) {
			$("#email_send_status").empty();
			$.modal.close();
		},
		error: function( request, textStatus, errorThrown) {
			$("#email_send_status").empty();
			$.modal.close();
		}
	} );
	return false;
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
 
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}