//$('#wrapper').width($('#content').width()+$('#sidebar').width()+150);
$(document).ready(function()
{
	Cufon.replace('h2');
	Cufon.replace('h3');
	$('h2,h3').css({
		'visibility': 'visible'
	});

	$('.zebratable tr:even').css('background', '#FFFFFF');
	$('.zebratable tr:odd').css('background', '#DDDDDD');

	$('#triggerTermsPopup').click(function(event)
	{
		$('#overlay').height($(document).height());
		$('#popup-explain, #overlay').show().filter('#popup-explain').find('.close').click(function(event)
		{
			$('#popup-explain, #overlay').hide();
			return false;
		});
		return false;
	});
	$('#triggerDefinitionPopup').click(function(event)
	{
		$('#d_overlay').height($(document).height());
		$('#popup-definition, #d_overlay').show().filter('#popup-definition').find('.close').click(function(event)
		{
			$('#popup-definition, #d_overlay').hide();
			return false;
		});
		return false;
	});
	$("#memberFilterString").keyup(function() {
		
		var searchString = $(this).val().toLowerCase();
		var counter = 0;
		$("#membersList").find("tr:not(:first)").each(function() {
			
			var $this = $(this);
			var match = false;

			$(this).find("td").each(function() {
				if($(this).text().toLowerCase().match(searchString) != null) {
					match = true;
				}
			});
			if(searchString.length > 0 && !match) {
				$this.hide();
			} else {
				++counter;
				$this.show();
			}
		});

	});

	$(".newuserLoanRemoveRow").live("click", function() {

		var tmpValues = [];
		 $(this).parents("tr:first").find("input").each(function() {
			tmpValues.push($(this).val());
		});

		if(tmpValues.join('') == '') {
			$(this).parents("tr:first").remove();
		} else {
			if(confirm('Vill du verkligen ta bort lån-raden som innehåller information?')) {

				if($(this).parents('tr:first').find('input[type="hidden"][name*="userLoanId-"]').length > 0) {
					var deletedLoan = $(this).parents('tr:first').find('input[type="hidden"][name*="userLoanId-"]').val();
					console.log(deletedLoan);
					$(this).parents("form:first").append($("<input type='hidden' name='loanDeleted[]' value=" + deletedLoan + ">"));
				}

				$(this).parents("tr:first").remove();
			}
		}
		
		return false;
	});

	$("#newuserLoanRow").click(function() {
	var $this = $(this);
		var $referenceRow = $(".userLoanFormRow:last");
		var $newRow = $referenceRow.clone();
		var id = $referenceRow.find("input:last").attr('name').match(/[0-9]+$/);
		id = parseInt(id, 10);

		$referenceRow.parents("table:first").append($newRow);

		$newRow.find("input").val('').removeAttr('checked').each(function() {
			var newName = $(this).attr('name').replace(/[0-9]+$/, id + 1);
			$(this).attr('name', newName);
		}).end().find('td:first').text('Lån ' + (id + 1)).end().find('td:last').html('<a href="#" class="newuserLoanRemoveRow"><img alt="Ta bort" src="/images/removeRowIcon.gif" /></a>');
		
		return false;

	});

	$("#newBrfLoanRow").click(function() {
		
		var $this = $(this);
		var $referenceRow = $(".brfFormRow:last");
		var $newRow = $referenceRow.clone();
		var id = $referenceRow.find("input:last").attr('name').match(/[0-9]+$/);
		id = parseInt(id, 10);

		$referenceRow.parents("table:first").append($newRow);

		$newRow.find("input").val('').removeAttr('checked').each(function() {
			var newName = $(this).attr('name').replace(/[0-9]+$/, id + 1);
			$(this).attr('name', newName);
		}).end().find('td:first').text('Lån ' + (id + 1)).end().find('td:last').html('<a href="#" class="brfRemoveRow"><img alt="Ta bort" src="/images/removeRowIcon.gif" /></a>');
		
		return false;
	});

	$(".brfRemoveRow").live("click", function() {

		var tmpValues = [];
		 $(this).parents("tr:first").find("input").each(function() {
			tmpValues.push($(this).val());
		});

		if(tmpValues.join('') == '') {
			$(this).parents("tr:first").remove();
		} else {
			if(confirm('Vill du verkligen ta bort lån-raden som innehåller information?')) {

				$idInput = $(this).parents("tr:first").find("input[name*='brfLoanId-']");
				if($idInput.length > 0) {
					$(this).parents("form:first").append($('<input type="hidden" name="deletedLoans[]" value= '+ $idInput.val() +' >'));
				}
				$(this).parents("tr:first").remove();
			}
		}
		
		return false;
	});

	$("#newFacilityRow").click(function() {
		
		var $this = $(this);
		var $referenceRow = $(".userFacilityRow:last");
		var $newRow = $referenceRow.clone();
		var id = $referenceRow.find("input:last").attr('name').match(/[0-9]+$/);
		id = parseInt(id, 10);

		$referenceRow.parents("table:first").append($newRow);

		$newRow.find("input,select").val('').removeAttr('checked').each(function() {
			var newName = $(this).attr('name').replace(/[0-9]+$/, id + 1);
			$(this).attr('name', newName);
		}).end().find('td:first').text('Bostad ' + (id + 1)).end().find('td:last').html('<a href="#" class="facilityRemoveRow"><img alt="Ta bort" src="/images/removeRowIcon.gif" /></a>');
		
		return false;
	});

	$(".facilityRemoveRow").live("click", function() {

		var tmpValues = [];
		 $(this).parents("tr:first").find("input,select").each(function() {
			tmpValues.push($(this).val());
		});

		if(tmpValues.join('') == '') {
			$(this).parents("tr:first").remove();
		} else {
			if(confirm('Vill du verkligen ta bort bostads-raden som innehåller information?')) {

				if($(this).parents('tr:first').find('input[type="hidden"][name*="facilityId-"]').length > 0) {
					var deletedLoan = $(this).parents('tr:first').find('input[type="hidden"][name*="facilityId-"]').val();
					$(this).parents("form:first").append($("<input type='hidden' name='facilityDeleted[]' value=" + deletedLoan + ">"));

				}

				$(this).parents("tr:first").remove();
			}
		}
		return false;
	});

	$("#residenceIntrestForm").validate({
		rules : {
			name : "required",
			email : "required email",
			freetext : "required",
			phone : "required"
		},
		messages : {
			name : {
				required : "Du måste ange ditt namn."
			},
			email : {
				required : "Du måste ange din email",
				email : "Du måste ange en giltig e-post"
			},
			freetext : {
				required : "Du måste ange kontaktuppgifter"
			},
			phone : {
				required : "Du måste ange ett telefonnummer"
			}
		}

	});

	$("#questionForm").validate({
		rules : {
			name : "required",
			email : "required email",
			freetext : "required",
			phone : "required"
		},
		messages : {
			name : {
				required : "Du måste ange ditt namn."
			},
			email : {
				required : "Du måste ange din email",
				email : "Du måste ange en giltig e-post"
			},
			freetext : {
				required : "Du måste ange en fråga"
			},
			phone : {
				required : "Du måste ange ett telefonnummer"
			}
		}

	});

	$("#reformForm").validate({
		rules : {
			name : "required",
			email : "required email",
			phone : "required"
		},
		messages : {
			name : {
				required : "Du måste ange ditt namn."
			},
			email : {
				required : "Du måste ange din email",
				email : "Du måste ange en giltig e-post"
			},
			phone : {
				required : "Du måste ange ett telefonnummer"
			}
		}

	});


	$("#brfDetailsForm, #reformDetailsForm").validate({
		rules: {
			brfname : "required",
			contactname : "required",
			contacttele : "required"
		},
		messages : {
			brfname : {
				required : "Du måste ange namnet på bostadsrättsföreningen"
			},
			contactname : {
				required : "Du måste ange ett namn på kontaktperson"
			},
			contacttele : {
				required : "Du måste ange telefonnummer till kontaktperson"
			}
		}

	});

	$("#userDetailsForm").validate({
		rules : {
			firstname : "required",
			surname : "required",
			adress : "required",
			town : "required",
			postalnr : {
				required : true,
				number : true,
				range: [10000, 99999]
			},
			phone : "required",
			numgrown : "required number",
			acceptedpul : "required",
			email : {
				required : true,
				email : true,
				remote : {
					url: '/ajax/validateemail/',
					type: 'post',
					data:
					{
						email: function(){return $.trim($('#cemail').val());}
					}

				}
			},
			pagepass : "required",
			pagepass2 : {
				required : true,
				equalTo: "#pagepass"
			},
			numchildren : "required number",
			acceptedterms : "required"
		},
		messages : {
			firstname : {
				required : "Du måste ange förnamn"
			},
			surname : {
				required : "Du måste ange efternamn"
			},
			adress : {
				required : "Du måste ange adress"
			},
			postalnr : {
				required : "Du måste ange postnummer",
				number : "Du måste ange postnummer med siffror",
				range : "Du måste ange ett giltigt postnummer"
			},
			town : {
				required : "Du måste ange stad"
			},
			email : {
				required : "Du måste ange din e-post",
				email : "Du måste ange en giltig e-post",
				remote : "Det går ej använda denna e-posten för att registera dig."
			},
			phone : {
				required : "Du måste ange ett telefonnummer"
			},
			pagepass : {
				required : "Du måste ange ett lösenord"
			},
			pagepass2 : {
				required : "Du måste ange ditt lösenord igen",
				equalTo : "Ditt lösenord matchar ej det lösenord du skrivet på första raden"
			},
			acceptedterms : {
				required : "Du måste godkänna kundavtalet"
			},
			acceptedpul : {
				required : "Du måste godkänna att dina uppgifter lagras"
			},
			numgrown : {
				required : "Du måste ange antal vuxna",
				number : "Du måste ange antal vuxna med siffror"
			},
			numchildren : {
				required : "Du måste ange antal barn",
				number : "Du måste ange antal barn med siffror"
			}
		}
	});

	$("a.messageRemoveRow").live('click', function() 
	{
		$(this).parents('li:first').remove();
		return false;
	});

	$("#addGroupButton").click(function() 
	{
		var groupName = $("#usergroup option:selected").text();
		var groupId = $("#usergroup option:selected").val();
		if (!$('#group_targets_list').find(':contains("'+groupName+'")').length)
		{
			$("#group_targets_list").find("li.infoText").remove();
			var $targetLi = $("<li><input type='hidden' name='grouptargets[]' value=" + groupId + "><p>" + groupName + "<a href='' class='messageRemoveRow'> <img src='/images/removeRowIcon.gif' alt='Ta bort' style='display:inline;' /></a></p></li>");
			$("#group_targets_list").append($targetLi);
		}

	});

	$("a.addUser").live('click', function()
	{
		var $resultsUl = $('ul#added_user_targets_list');
		var $sourceLi = $(this).parents('li:first').find('.userInfo');

		if (!$('#added_user_targets_list').find('input[value="'+$sourceLi.attr('data-id')+'"]').length)
		{
			var $addedLiTemplate = $('<li><input type="hidden" name="addedusers[]" value="' + $sourceLi.attr('data-id') + '">' + $sourceLi.attr('data-firstname') + ' ' + $sourceLi.attr('data-surname') + ' <a href="" class="messageRemoveRow"> <img src="/images/removeRowIcon.gif" alt="Ta bort" style="display:inline;" /></a></li>');


			$resultsUl.find("li.infoText").remove();
			$resultsUl.append($addedLiTemplate);


			$sourceLi.parent('li:first').remove();

		}
		return false;
	});
	var searchTimer;
	$("#usertarget").bind('keypress', function()
	{
		if (searchTimer)
		{
			clearTimeout(searchTimer);
		}
		var $this = $(this);
		searchTimer = setTimeout(function()
		{
			var searchString = $this.val();

			var $noMatchLi = $('<li class="infoText">Inga användare matchade.</li>');
			var $matchLi = $('<li><span class="userInfo" data-id="" data-firstname="" data-surname="" data-town="" data-adress="" data-email=""></span> <a href="#" class="addUser"><strong>Lägg till användaren</strong></a></li>');

			var $targetUl = $('ul#user_targets_list');

			$.ajax({
				url : '/ajax/usersuggestion/',
				type : 'POST',
				dataType : 'json',
				data : {
					searchstring : 	$this.val()
				},
				success : function(json) 
				{
					if(json.users.length < 1) 
					{
						$targetUl.find("li").remove();
						$targetUl.append($noMatchLi);

					} 
					else 
					{

						$targetUl.empty();
						$.each(json.users, function(itemId, item) 
						{
							var $cloneLi = $matchLi.clone();

							var $cloneSpan = $cloneLi.find('span.userInfo');
							$cloneSpan.attr('data-id', item.id);
							$cloneSpan.attr('data-firstname', item.firstname);
							$cloneSpan.attr('data-surname', item.surname);
							$cloneSpan.attr('data-town', item.town);
							$cloneSpan.attr('data-adress', item.adress);
							$cloneSpan.attr('data-email', item.email);
							$cloneSpan.text(item.firstname + ' ' + item.surname + ', ' + item.town + ' (' + item.email + ')');

							$targetUl.append($cloneLi);

						});
					}
				}
			});
		}, 200);
	});

});

