var ShareModal = {
	
	// Set to debug mode for jquery.validate
	debug:false,
	
	url:null,
	box:null,
	
	options:{
		inline:true,
		href:"#share-modal",
		innerWidth:'790px',
		innerHeight:'575px',
		onLoad:function () {
			$('#share-modal').css('display', 'block');
		},
		onCleanup:function () {
			$('#share-modal').css('display', 'none');
		}
	},
	
	initialize: function () {
		var _self = this;
		$('#share-modal').delegate('.modal-close, #share-done, #share-cancel', 'click', function () {
			$.colorbox.close();
			return false;
		});
		
		//$('#shareMessage').watermark('(Optional)');
		
		
		$.validator.setDefaults({debug:this.debug});
		
		this.form = $("#share-form").validate({
			errorPlacement: function(error, element) {
				error.appendTo( element.parent().find('.messages') );
			},
			submitHandler: function(form) {
				_self.submit();
			}
		});
		
	},
	
	reposition: function () {
		
	},
	
	reset: function () {
		
		$('#s-name').val('');
		$('#s-email').val('');
		$('#r-name').val('');
		$('#r-email').val('');
		$('#r-subject').val('');
		$('#shareMessage').val('');
		if (this.form) {
			this.form.resetForm();
		}
		$('#share-form-wrapper').show();
		$('#share-response').hide();
		
		$.colorbox.resize(this.options);
	},
	
	open: function (url, shareUrl, shareTxt, shareImg, shareTime, shareNodeID) {
		var _self = this;
		var html = this.getTemplate(shareUrl, shareTxt, shareImg, shareTime);
		
		this.options.onComplete = function () {
			
			_self.reset();
			_self.data = {shareUrl:shareUrl, shareTxt:shareTxt, shareNodeID:shareNodeID};
			
			$('#share-info').html(html);
			
			$('#share-finish-cta').delegate ('#share-again', 'click', function () {
				_self.reset();
			});
			
			$('#share-form').delegate ('.submit', 'click', function () {
				$('#share-form').submit();
				return false;
			});
		};
		this.box = $.colorbox(this.options);
	},
	
	error: function () {
		$('#share-form-wrapper').fadeOut();
		$('#share-loader').fadeOut();
		var response = $('#share-response');
		response.find('.share-title').text(this.data.shareTxt);
		response.find('#share-again').attr('value', 'Try Again');
		response.find('.success').hide();
		response.find('.error').show();
		response.fadeIn();
		$.colorbox.resize({innerHeight:'360px'});
	},
	
	success: function () {
		$('#share-form-wrapper').fadeOut();
		$('#share-loader').fadeOut();
		var response = $('#share-response');
		response.find('.share-title').text(this.data.shareTxt);
		response.find('.share-r-name').text(this.data.ReceiversName);
		response.find('.share-r-email').text(this.data.ReceiversEmail);
		/*response.find('#share-again').attr('value', 'Share Again');*/
		response.find('.error').hide();
		response.find('.success').show();
		response.fadeIn();
		$.colorbox.resize({innerHeight:'360px'});
	},
	
	submit: function () {
		var _self = this;
		this.data.YourName = $('#s-name').val();
		this.data.YourEmail = $('#s-email').val();
		this.data.ReceiversName = $('#r-name').val();
		this.data.ReceiversEmail = $('#r-email').val();
		this.data.Comment = $('#shareMessage').val();
		this.data.Subject = $('#s-email').val() + ' has shared: ' + this.data.shareTxt ;
		this.data.SendButton = "Send";	
		this.data.NodeID = this.data.shareNodeID;		
		$('#share-form-wrapper').fadeOut('fast');
		$('#share-loader').fadeIn('fast');
		
		if ( _self.debug ) {
			setTimeout (function () {
				_self.success();
			}, 2000);
		} else {
			$.ajax({
				type: "POST",
				url: $('#share-form').attr('action'),
				data: _self.data,
				success:function (data, message, req) {
					_self.success();
				},
				error: function (req, message, error) {
					_self.error();
				}
			});
		}
		
	},
	
	getTemplate: function (shareUrl, shareTxt, shareImg, shareTime) {
		var html = '';
		if (shareImg && shareUrl && shareImg) {
			html += '<img src="'+ shareImg +'" alt="'+shareTxt+'" />';
			html += '<div class="searchResultInner">';
			html += '<div class="dateSince">'+shareTime+'</div>';
			html += '<div class="searchResultLabel">'+shareTxt+'</div>';
			html += '</div>';
		}
		return html;
	}
	
};
$(function () {
	ShareModal.initialize();
});
