/*
 * jQuery subscribeDlg plugin 1.0
 * 
 * create subscribe dialog for news letter
 */
(function($) {
	var subscribeDialog = { };

	subscribeDialog.Create = function $$modaldialog$Create(options) {

		var settings = $.extend(subscribeDialog.defaults, options);

		if (!document.getElementById('subscribeDlg')) {
			dialog = document.createElement('div');
			dialog.id = 'subscribeDlg';
			$(dialog).html(
				'<form id="form_subscribe" class="subscribe">'+
					'<a href="#" id="subscribeDlgClose" class="close"></a>'+
					'<p class="headLine white">'+settings.headLineTxt+'</p>'+
					'<p class="baseLine white">'+settings.baseLineTxt+'</p>'+
					//'<p class="linkLine"><a href="" class="white">See our last email</a></p>'+
					'<div id="subscribeForms" class="signup">'+
						'<input type="email" id="inputNewslater" class="email" name="subscriber_email" value="'+settings.placeholderTxt+'" />'+
						'<input type="button" id="inputNewslaterBtn" class="submit" value="'+settings.buttonTxt+'" />'+
					'</div>'+
					'<div class="newsLetter"></div>'+
					'<div  id="newsLetterSuccessErr" ></div>'+
				'</form>'
			);

			dialogmask = document.createElement('div');
			dialogmask.id = 'subscribeDlgMask';

			$(dialogmask).hide();
			$(dialog).hide();

			document.body.appendChild(dialogmask);
			document.body.appendChild(dialog);

			// Set the click event for the "x" and "Close" buttons
			$("#subscribeDlgClose").click( function(event){
				event.preventDefault();
				subscribeDialog.hide();
			});

			// Set click event for the maks and close window, when settings.outsideClose is true!
			if( true == settings.outsideClose ) {
				$('#subscribeDlgMask').click(function(){
					subscribeDialog.hide();
				});
			}

			$('#inputNewslater').focus( function(){
				$(this).val('');
			});

			$('#inputNewslater').blur(function(){
				if( '' == $(this).val() ) {
					$(this).val(settings.placeholderTxt);
				}
			});
		}

		// Set to show in every new create
		$('#subscribeForms').val('');
		$('#subscribeForms').show(0);
		
		var dl = $('#subscribeDlg');

		var dialogTop = Math.abs($(window).height() - dl.height()) / 2;
		dl.css('left', ($(window).width() - dl.width()) / 2);
		dl.css('top', (dialogTop >= 25) ? dialogTop : 25);
		
		$('#newsLetterSuccessErr').hide(0);

		$('#inputNewslaterBtn').click(function(event){
			
			var emailAddress = $('#inputNewslater').val();
  			var reg = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
  			if( !reg.test(emailAddress) ) {
  				subscribeDialog.showSuccessErr( settings.errors.invalid_email );
  				return;
  			}

  			event.preventDefault();

		    $.post( "index.php?ajaxRequestPage=ajax_subscribe",
		      { subscriber_email: emailAddress },
		      function( data ) {
		          if(data>0) {
		          	subscribeDialog.showSuccessErr( settings.successTxt, true );
		          } else {
					subscribeDialog.showSuccessErr( settings.errors.register_error );
		          }
		      }
		    );
		});

		dl.fadeIn("slow");
		$('#subscribeDlgMask').fadeIn("normal");
	}
	
	subscribeDialog.showSuccessErr = function $$modaldialog$showSuccessErr (val, is_success) {
		$('#newsLetterSuccessErr').html(val);
		if( true == is_success) {
			$('#subscribeForms').fadeOut("normal", function () { $(this).hide(0); });
			$('#newsLetterSuccessErr').attr("class", "news-letter-success");
		} else {
			$('#newsLetterSuccessErr').attr("class", "news-letter-error");
		}
		
		$('#newsLetterSuccessErr').show(0);
	}
	
	subscribeDialog.hide = function $$modaldialog$hide () {
		$('#subscribeDlg').fadeOut("slow", function () { $(this).hide(0); });
		$('#subscribeDlgMask').fadeOut("normal", function () { $(this).hide(0); });
	}
	
	subscribeDialog.defaults = {
		headLineTxt: 'Get these deals and more emailed to you every week',
		baseLineTxt: 'Never miss out on the bargins. Plus, inspirational ideas and guides.',
		placeholderTxt: 'Input Your email here',
		successTxt: 'You are registred successfully!',
		buttonTxt: 'Sign up',
		closeTitleTxt: 'Close',
		errors: { 
			invalid_email: 'Invalid e-mail address!',
			register_error: 'Register error!'
		},
		isRegistred: false,
		outsideClose: false
	};

	$.extend({ subscribeDialog: subscribeDialog });
})(jQuery);

