// add tip class
// must have the ubox plugin to popup login form
(function($) 
{ 
	$.fn.diyTipPanel = function( options ) {
		var defaults  = {
				button_addtip	: 'btnAddTip',
				button_cancel	: 'btnCancel',
				button_save		: 'btnSave',
				maxchar			: 255
			}
		
		var options = $.extend( defaults, options )
		
		return this.each( function() {
			var _self 			=	$(this);
			var add_btn			=	$("." + options.button_addtip, _self);
			var form			=	$(".formTip", _self);
			var post_url		=	$("#post_url", _self).val();
			var postback_url	=	$("#postback_url", _self).val();
			var instruction_id	=	$("#step_id", _self).val();
			var userid			=	$("#userid").val();
			var site_url		=	$("#site_url").val();
			var cancel_btn		=	$("." + options.button_cancel, _self);
			var save_btn		=	$("." + options.button_save, _self);
			var unposted_tip	=	$("#unposted", _self).val();
			var tip_posted		=	$("#tip_posted", _self);
			
			if (unposted_tip && unposted_tip == instruction_id) {
				form.css({display : 'block'}); 
			} else {
				form.css({display : 'none'});
			}
						
			add_btn.click(function() {		// load form
				if (userid) {
					form.css({display : 'block'});
					// initialize char counter to 255
					$(".text_counter", _self).text(255);
				} else {
					//$.ubox(site_url+'/user/login/');
					//$(save_btn, _self).click( );
					
					s_data	= 'content_type=how-to-step-tip&remoteid='+instruction_id+'&userid='+userid+'&comment='+tip_posted.val()+'&step_id='+instruction_id+'&tip_posted='+tip_posted.val();
				
					$.ajax({
						url			:	post_url,
						type		:	'post',
						data		:	s_data,
						dataType	:	'json',
						success		:	function( data ) {
											if (data.response == 'Login') {
												$.ubox(site_url+'/user/login');
												return;
											} else if (data.response == 'Failed') {
												alert('Problem occured cannot continue request.\nPlease try again later.');
											} else if (data.response == 'Success') {
												//form.before('<div><p><span style="font:12px Arial, Helvetica, sans-serif; color:#960;">Your tip has been added and is awaiting moderation.</span><div style="color:#999;">'+tip_posted.val()+'</div></p></div><div sstyle="width:20%; float:right;"><div style="height:35px;">Contributed by:<br /></div></div>');
												$.post(postback_url, {tip_posted : tip_posted.val() }, function(data) {
													form.before('<div class="how-to-yellow-bg2 yellow-line">'+data+'</div').css({opacity:0}).animate({opacity:1}, 1000);
												}, 'html')
												cancel_btn.click();
											}
											
										},
						error		:	function() {
											alert('Could not complete request. Please try again later.')
										}
					})
					
				}
			}) // add_btn
			
			save_btn.click( function( ) {
			
				if ( tip_posted.val() == '' ) {
					alert("Please write something for your tip.");
					return;
				}
				
				s_data	= 'content_type=how-to-step-tip&remoteid='+instruction_id+'&userid='+userid+'&comment='+tip_posted.val()+'&step_id='+instruction_id+'&tip_posted='+tip_posted.val();
				
				$.ajax({
					url			:	post_url,
					type		:	'post',
					data		:	s_data,
					dataType	:	'json',
					success		:	function( data ) {
										if (data.response == 'Login') {
											$.ubox(site_url+'/user/login');
											return;
										} else if (data.response == 'Failed') {
											alert('Problem occured cannot continue request.\nPlease try again later.');
										} else if (data.response == 'Success') {
											//form.before('<div><p><span style="font:12px Arial, Helvetica, sans-serif; color:#960;">Your tip has been added and is awaiting moderation.</span><div style="color:#999;">'+tip_posted.val()+'</div></p></div><div sstyle="width:20%; float:right;"><div style="height:35px;">Contributed by:<br /></div></div>');
											$.post(postback_url, {tip_posted : tip_posted.val() }, function(data) {
												form.before('<div class="how-to-yellow-bg2 yellow-line">'+data+'</div').css({opacity:0}).animate({opacity:1}, 1000);
											}, 'html')
											cancel_btn.click();
										}
										
									},
					error		:	function() {
										alert('Could not complete request. Please try again later.')
									}
				})
				
			})
			
			cancel_btn.click(function() {
				tip_posted.val('');
				form.css({display : 'none'});
				$.get(site_url+'/how_to/add_tip',{action:'cancel'});
			}) // cancel_btn
			
			// counting characters left 
			tip_posted.keyup( function() {
				var textid = $(this).attr('id');
				var infodiv = $(".text_counter", _self).attr('id');
				limitChars(textid, 255, infodiv);
			})
			
			// Character counter
			function limitChars(textid, limit, infodiv) {
				var text = $('#'+textid, _self).val(); 
				var textlength = text.length;
				if(textlength > limit) {
					//$('#' + infodiv).html('You cannot write more then '+limit+' characters!');
					$('#'+textid, _self).val(text.substr(0,limit));
					return false;
				} else {
					//$('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.');
					$('#' + infodiv, _self).html(limit - textlength);
					return true;
				}
			} // char counter
			
		}) // return this.each
		
	} // class
	
	$(function() { $('.addTipPanel').diyTipPanel() })
	
})(jQuery);