var fromEmailValidation = true;
var toEmailValidation = true;
emailNotificationAjaxComponent.prototype = new BaseAjaxComponent();
/**
 * Creates new instance of components
 * @param id
 */
function emailNotificationAjaxComponent(id) {
    BaseAjaxComponent.apply(this, arguments);
    this.ajaxHandlerName = "EmailNotificationProcessHandler";
    this.timeout = (15 * 60 * 1000); // 15 minutes
}

function sendToFriend(msg) {
	var pageUrl=window.location;
	var type = 1;
	var subject = msg;
	showSendEmailLightBox(pageUrl,subject,type);
}

function showSendEmailLightBox(pageUrl,subject,emailType) {
	$("#sendEmailLightBoxId .frmFromError div label").css({"font-weight":"normal", "color":"#212121"});
	$("#sendEmailLightBoxId .frmToError div label").css({"font-weight":"normal", "color":"#212121"});
	$("#sendEmailLightBoxId #successMessageId,#sendEmailLightBoxId #warningMessageId, #sendEmailLightBoxId .vSpacer, #sendEmailLightBoxId #fromErrorMsgId, #sendEmailLightBoxId #toErrorMsgId, #sendEmailLightBoxId #closeButtonId").css({"display":"none"});
	$("#pageUrl").val(pageUrl);
	$("#subject").val(subject);
	$("#emailType").val(emailType);
	$("#fromAddress").val($("#userEmailAddress").val());
	$("#toAddress").val("");
	$("#messageId").val("");
	$("#inputSectionId").show();
 	
	$.lightBox.showInPage("#sendEmailLightBoxId", {modal:false});
}
	
function closeSendEmailLightBox() {
	$.lightBox.hide();
}
	
function sendEmail() {
	fromEmailValidation = validateEmailAddress($("#fromAddress").val());
	toEmailValidation = validateEmailAddress($("#toAddress").val());
	if (fromEmailValidation && toEmailValidation) {
	$.ajaxLoader.show();
	ajaxComponent("#emailNotificationLightBoxId").callAjaxAction('startEmailSendProcess',{fromAddress:	$("#fromAddress").val(),
																						  toAddress: 	$("#toAddress").val(),
																						  subject:   	$("#subject").val(),
																						  message:	 	$("#messageId").val(),
																						  emailType: 	$("#emailType").val(),
																						  pageUrl:	 	$("#pageUrl").val()
																						 });
	$.ajaxLoader.hide();
	} else {
		messageNotification("validationError");
	}
}

/**
 * Callback for handling validation errors
 *
 * @param validationErrors
 */
emailNotificationAjaxComponent.prototype.validationError = function(validationErrors) {
    for (var p in validationErrors) {
    	if (p == "fromEmailAddressError") fromEmailValidation = false;
    	if (p == "toEmailAddressError")   toEmailValidation = false;
    }
    messageNotification("validationError");
};

/**
 * Callback for handling user errors
 *
 * @param errorString - error string
 * @param exception   - actual exception
 */
emailNotificationAjaxComponent.prototype.userError = function(errorString, exception) {
   messageNotification("userError");
};
emailNotificationAjaxComponent.prototype.systemError = function(errorString, exception) {
   messageNotification("systemError");
};
emailNotificationAjaxComponent.prototype.update = function(data, html, newComponent) {
	messageNotification("false");		
};
function messageNotification(isError) {
		if (isError == "validationError") {
			$("#sendEmailLightBoxId #warningMessageId, #sendEmailLightBoxId .vSpacer, #sendEmailLightBoxId .errorMsg").css({"display":"block"});
			
			if (!fromEmailValidation) {
				$("#sendEmailLightBoxId .frmFromError div label").css({"font-weight":"bold", "color":"#AA0000"});
				$("#sendEmailLightBoxId #fromErrorMsgId").css({"display":"block"});
			} else {
				$("#sendEmailLightBoxId .frmFromError div label").css({"font-weight":"bold", "color":"#212121"});
				$("#sendEmailLightBoxId #fromErrorMsgId").css({"display":"none"});
			}
			
			if (!toEmailValidation) {
				$("#sendEmailLightBoxId .frmToError div label").css({"font-weight":"bold", "color":"#AA0000"});
				$("#sendEmailLightBoxId #toErrorMsgId").css({"display":"block"});
			} else {
				$("#sendEmailLightBoxId .frmToError div label").css({"font-weight":"bold", "color":"#212121"});
				$("#sendEmailLightBoxId #toErrorMsgId").css({"display":"none"});
			}
		} else if (isError =="systemError" || isError =="userError" ) {
			$("#sendEmailLightBoxId #warningMessageId, #sendEmailLightBoxId .vSpacer, #sendEmailLightBoxId").css({"display":"block"});
			$("#sendEmailLightBoxId .frmFromError div label").css({"font-weight":"bold", "color":"#212121"});
			$("#sendEmailLightBoxId #fromErrorMsgId").css({"display":"none"});
			$("#sendEmailLightBoxId .frmToError div label").css({"font-weight":"bold", "color":"#212121"});
			$("#sendEmailLightBoxId #toErrorMsgId").css({"display":"none"});
			
		} else {
			var toAddress = $("#toAddress").val();
			$("#sendEmailSuccessId").html(toAddress);
			$("#sendEmailLightBoxId #warningMessageId,#sendEmailLightBoxId #inputSectionId").css({"display":"none"});
			$("#sendEmailLightBoxId #successMessageId,#sendEmailLightBoxId #closeButtonId").css({"display":"block"});
			$.lightBox.resize();
		}
		$.ajaxLoader.hide();
};

function validateEmailAddress(emailAddress) {
	return (emailAddress.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

function enableDisableEmailPringPdf(enable) {
	if (enable) {
		$("#emailPrintPdfId").css({"display":"block"});
		$("#emailPrintPdfTextId").css({"display":"none"});
	} else {
		$("#emailPrintPdfId").css({"display":"none"});
		$("#emailPrintPdfTextId").css({"display":"block"});
	}
}

