var MyBottlenotes = function()
{
//privat
	var next = 2;

	var CheckEmail = function(email)
	{
		var exp = RegExp("^[0-9a-zA-Z][-_.0-9a-zA-Z]*@[-.0-9a-zA-Z]+\.[a-zA-Z]{2,4}$");
		return exp.test(email);
	};

	var RequestResultCallback = function(response, status)
	{
		if (response.status = "OK")
		{
			var count = jQuery("#friendsRequestsCount").text() - 1;
			if (count > 0)
			{
				jQuery("#friendsRequestsCount").text(count);
				jQuery("#friendRequest_" + this.id).remove();
			}
			else
				jQuery("#friendsRequestsDiv").remove();
			if (this.result == "accept")
				jQuery("#friendsDiv").replaceWith(response.result);
		}
	};

	var SendReferCallback = function(response, status)
	{
		if (response.status = "OK")
		{
			MyBottlenotes.HideRefer();
			var count = 0;
			var emails = "";
			for (var i in response.sended)
			{
				emails += response.sended[i] + ", ";
				count++;
			}
			var message = "Send " + count + " e-mails"
			if (count > 0)
				message +=  ", to: " + emails.substr(0, emails.length - 2);
			alert(message);
		}
		else
			alert("Send error");
	};

	var AnswerToQuizCallback = function(response, status)
	{
		if (response.status == "OK")
		{
			if ( response.now == "OK" ){
				display_popup("<h3>Sorry</h3>You have already taken today's quiz. Please try again tomorrow.");
			} else {
			
			if (response.daily == 'OK') {
				if (response.rank == 'OK') {
					display_popup("<h3>Correct</h3>Thank you!");
				} else {
					display_popup("<h3>Sorry</h3>Please play again tomorrow!");
				}
				
			} else {
				if( response.corr != "OK" )
				{
					display_popup("<h3>Sorry</h3>Please play again tomorrow!");
				}
				else
				{
					display_popup("<h3>Correct</h3>You earned 5 bottlepoints!");
				}
				jQuery("#rankSpan").text(response.rank);
			}
			}

			jQuery("#quizDiv").html(response.result);

		}
		else
		{
		 	alert("Answer error"); 	
		}
	};
	var AnswerToPollCallback = function(response, status)
	{  
	  if (response.status == "OK")
		{
			display_popup("Your choice has successfully been submitted.");
			jQuery("#quizDiv").html(response.result);

		}
		else
		{
		 	alert("Answer error"); 	
		}
	};


//public
return {
	RequestResult: function(id, result)
	{
		jQuery.ajax(
			{
				url: "/mybottlenotes",
				type: "post",
				data: "ajax=true&request=changeFriendStatus&requestId=" + id + "&result=" + result,
				dataType: "json",
				id: id,
				result: result,
				success: RequestResultCallback
			});
	},

	ShowRefer: function()
	{
		jQuery("#referDialogueContainer").show();
	},

	HideRefer: function()
	{
		jQuery("#referDialogueContainer").hide();
	},

	AddLine: function()
	{
		if (jQuery("#toDiv input").length >= 3)
			return;
		jQuery("#toDiv").append("<div class=\"fullInput\" id=\"toDiv_" + next + "\"><label for=\"toInput_" + next + "\">To:</label><input type=\"text\" id=\"toInput_" + next + "\" style=\"float: left;\" /><a onclick=\"MyBottlenotes.AddLine()\" href=\"javascript:void(0)\" class=\"plusMinus\">+</a><a onclick=\"MyBottlenotes.DeleteLine(" + next + ")\" href=\"javascript:void(0)\" class=\"plusMinus\">-</a></div>");
		next++;
	},

	DeleteLine: function(id)
	{
		jQuery("#toDiv_" + id).remove();
	},

	SendRefer: function()
	{
		var data = "";
		var to = jQuery("#toDiv input");
		for (var i = 0; i < to.length; i++)
		{
			var email = jQuery.trim(jQuery(to[i]).val());
			if (CheckEmail(email))
				data += "&to[" + i + "]=" + email;
			else
			{
				alert("Enter valid e-mail");
				jQuery(to[i]).select();
				return;
			}
		}
		if (data == "")
		{
			alert("Enter valid e-mail");
			jQuery(to[0]).select();
			return;
		}

		var note = jQuery.trim(jQuery("#noteTextarea").val());
		if (note == "")
		{
			alert("Enter note");
			jQuery("#noteTextarea").focus();
			return;
		}
		data += "&note=" + note;

		jQuery.ajax(
			{
				url: "/mybottlenotes",
				type: "post",
				data: "ajax=true&request=sendRefer" + data,
				dataType: "json",
				success: SendReferCallback,
				error: SendReferCallback
			});
	},

	AnswerToQuiz: function(prev)
	{
		var answer = jQuery("#quizDiv :checked").val();
		if (answer == undefined)
		{
			display_popup("Select answer please");
			return;
		}

		jQuery.ajax(
			{
				url: "/mybottlenotes",
				type: "post",
				data: "ajax=true&request=answerToQuiz&id=" + jQuery("#quizDiv :checked").val() + "&prev=" + prev,
				dataType: "json",
				success: AnswerToQuizCallback
			});
	},
	
	AnswerToPoll: function(prev)
	{
		var answer = jQuery("#quizDiv :checked").val();
		if (answer == undefined)
		{
			display_popup("Select answer please");
			return;
		}

		jQuery.ajax(
			{
				url: "/mybottlenotes",
				type: "post",
				data: "ajax=true&request=answerToPoll&id=" + jQuery("#quizDiv :checked").val() + "&prev=" + prev,
				dataType: "json",
				success: AnswerToPollCallback
			});
	},
	
	AnswerToPollDaily: function(prev)
	{
		var answer = jQuery("#quizDiv :checked").val();
		if (answer == undefined)
		{
			display_popup("Select answer please");
			return;
		}
      	jQuery.ajax(
			{
				url: "/the-daily-sip",
				type: "post",
				data: "ajax=true&request=answerToPoll&id=" + jQuery("#quizDiv :checked").val() + "&prev=" + prev,
				dataType: "json",
				success: AnswerToPollCallback
			});
	},

	AnswerToQuizDaily: function(prev)
	{
		var answer = jQuery("#quizDiv :checked").val();
		if (answer == undefined)
		{
			display_popup("Select answer please");
			return;
		}

		jQuery.ajax(
			{
				url: "/the-daily-sip",
				type: "post",
				data: "ajax=true&request=answerToQuiz&id=" + jQuery("#quizDiv :checked").val() + "&prev=" + prev,
				dataType: "json",
				success: AnswerToQuizCallback
			});
	}
};
}();

