/**
 * @author FOKA
 */

var FEED_COM_EXT = 5;
var FEED_EXT = 5;

$.fn.QuizComm = function(options){
	return this.each(function(){
		var obj = $(this);
		
		obj.css({
			'overflow' : 'hidden',
			'margin' : '0px 0px 10px 0px'
		});
		obj.QuizForm({
			quiz: options.quiz,
			width : 660,
			list : 'feeds',
			dontHide : 1,
			logUser : options.logUser
		});
		
		obj.append('<div id="feeds"></div>');
		
		$('#feeds').QuizList({
			from      : 0,
			count     : FEED_EXT,
			quiz      : options.quiz,
			logUser   : options.logUser,
			commented : options.commented
		});
	});
};
		
$.fn.QuizForm = function(options){
	return this.each(function(){
		var obj = $(this);
		
		if (options.logUser == null)  { 
			return;
		}
		
		var html = '<form method="POST" action="ajax.html" class="feedForm" enctype="multipart/form-data">';
		html += '<textarea class="feedTxt" name="descr" style="width: '+options.width+'px; height: 45px;"></textarea>';
		html += '<span class="feedCounter" style="float: right; margin: 0px 10px 0px 0px; font-size: 9px;">pozostało znaków: 250</span>';
		
		html += '<br class="clr"/>';
		html += '<input type="hidden" name="qid" value="'+options.quiz+'"/>'		
				
		html += '<input type="submit" value="Dodaj komentarz" class="btn_reg" style="float: right; margin: 0px 10px 0px 0px;">'
				+ '<input type="hidden" name="ACTION" value="addQuizComment"/>';		
				
			if (options.parent != null) {	
				html += '<input type="hidden" name="parent" value="'+options.parent+'"/>'		
			}
			 html += '<input type="hidden" name="actionName" value="Quiz"/>'
			+ '</form>'
			
		var form = $(html);
		
		obj.append(form);
			
		form.ajaxForm({
			dataType: 'html',
			success: function(data){
				var status = parseInt(data);
				
				if (status == -2) {
					$('.act_msg_err:first').remove();
					obj.prepend('<div class="act_msg_err">Wpis nie może być pusty</div>');
					
				} else if (status == 1) {
					
						$('.act_msg_err:first').remove();
						obj.find('.zalacz:first').hide();
						obj.find('.feedTxt:first').val('');
						obj.find('.feedLink:first').val('');
						
						//dodanie itema do listy i zwiekszenie zakresu
						if (options.list instanceof jQuery) {
							var count = options.list.children().length;
							
							options.list.html('');
							
							options.list.QuizList({
								from      : 0,
								count     : count+1,
								quiz      : options.list.data('quiz'),
								logUser   : options.logUser,
								commented : options.list.data('commented'),
								fid       : options.list.data('fid')
							});
							
							options.list.data('from',1);
						} else {
							var count = $('#'+options.list).children().length;
							
							$('#'+options.list).html('');
							$('#'+options.list).QuizList({
								from      : 0,
								count     : count,
								quiz      : $('#'+options.list).data('quiz'),
								logUser   : options.logUser,
								commented : $('#'+options.list).data('commented'),
								fid       : $('#'+options.list).data('fid'),
							});
							
							$('#'+options.list).data('from',1);
						}
						
						if (options.dontHide == null ) {
							form.remove();
						}
					}
			}
		});
			
		obj.find('.attach-btn:first').click(function(){
			if (!obj.find('.zalacz:first').is(':visible')) {
				obj.find('.zalacz:first').show(300);
			}
			else {
				obj.find('.zalacz:first').hide(300);
			}
			return false;
		});
			
		obj.find('.feedTxt:first').keypress(function(event){
			if (250 - $(this).val().length <= 0 && event.keyCode != 8 && event.keyCode != 46) {
				return false;
			}
		}).keyup(function(event){
			obj.find('.feedCounter:first').html('pozostało znaków: ' + (250 - $(this).val().length));
		}).keydown(function(event){
			obj.find('.feedCounter:first').html('pozostało znaków: ' + (250 - $(this).val().length));
		});
			
		obj.find('.galbtn:first').click(function(){
			if (!obj.find('.photos:first').is(':visible')) {
				obj.find('.photos:first').show(300);
			}
			else {
				obj.find('.photos:first').hide(300);
			}
			return false;
		});
	
	});
};

$.fn.QuizList = function(options){
	
	return this.each(function(){
		var obj = $(this);
		
		obj.data('from',options.from);
		obj.data('count',options.count);
		obj.data('fid',options.fid);
		obj.data('quiz',options.quiz);
		obj.data('logUser',options.logUser);
		obj.data('commented',options.commented);
		
		$.getJSON('ajax.html?dataSrc=getQuizComments&count='+options.count+'&fid='+options.fid+'&qid='+options.quiz+'&from='+options.from, function(data) {
			
			$.each(data.data, function(i,item){
				var ph = $('<div class="feed"></div>')
				.QuizItem({
					item      : item,
					logUser   : options.logUser,
					commented : options.commented,
					quiz      : options.quiz
				});
				obj.append(ph);
			});
			
			if (data.data.length > 0) {
				obj.show();	
			} else {
				obj.hide();	
			}
			
			var more = $('<a href="" class="btn1 fr" style="margin:10px 0px 0px 0px">więcej</a>');
			
			if (options.from + options.count >= data.info.all) {
				more.hide();
			}
			
			more.click(function() {
				$(this).remove();
				obj.QuizList({
					from  : options.from + options.count, 
					count : FEED_EXT,
					fid   : options.fid,
					quiz  : options.quiz,
					admin : options.admin,
					commented : options.commented,
					logUser : options.logUser
				});
				
				return false;
			});
			obj.append(more);
			
			sizerInit();
		});
		
		
		
	});
	
	
};

$.fn.QuizItem = function(options){
	return this.each(function() {
		var obj = $(this);
		
		var item = options.item;
		
		var avatar = item.avatar;
		if (avatar == null || avatar == '') {
			avatar = 'img/ph_null2.gif';
		}
			
		html = '<a href="profil-'+item.login+'.html" class="avatar"><img width="50" src="'+avatar+'"/></a>';
		
		html += '<div class="descr">';
		html += '	<div class="info">';
		html += '		<a href="profil-'+item.login+'.html" class="name">'+userName(item)+'</a><br/>'
			 +  '		<span class="date">'+item.strdate+'</span><br/>';
	
		html += '	</div>';
		
		if (options.logUser == item.uid) {
			html += '<form class="delForm" method="POST" action="ajax.html">'
				+ '<input type="submit" value="usuń" class="delBtn fr"/>'
				+ '<input type="hidden" value="deleteQuizComment" name="ACTION" />'
				+ '<input type="hidden" value="'+item.com_id+'" name="com_id" />'
				+ '<input type="hidden" name="actionName" value="Quiz"/>'
				+ '</form>';
		} 
		
		html += '<span class="feedDescr">'+item.descr+'<br/>';
				
		if (item.link != '' && item.link != null ){
			html += '<a target="_blank" href="'+item.link+'">'+item.link+'</a>';
		}
				
		html += '</span><br class="clr"/>';
				
		html += '</div>';
		
		obj.append(html);
		
		obj.find('.delForm').ajaxForm({
			dataType: 'html',
			success: function(data){
				var status = parseInt(data);
				
				if (status == 1) {
					obj.animate({height:'0px'},300,function(){
						obj.remove();
					});	
				}
			}
		});
		
		if(options.commented == 1 ) {
			if (options.logUser != null) {
				var hh = $('<a href="" class="feedCom fr">skomentuj &raquo;</a>');	
			
				obj.find('.descr').append(hh);
				obj.find('.descr').append('<br class="clr"/>');
			}
			
			var formDiv = $('<div></div>').css({
				'margin' : '10px 0px 0px 0px'
			});
			obj.find('.descr').append(formDiv);
			
			var subs = $('<div class="feed"></div>');
			
			if (options.logUser != null) {
				hh.click(function(){
				
					if (formDiv.html() == '') {
						formDiv.QuizForm({
							quiz     : options.quiz,
							width    : 520,
							parent   : item.com_id,
							list     :  subs,
							dontHide : null,
							logUser  : options.logUser
						});
					} else {
						formDiv.html('');
					}
					return false;
				});
			}
			
			obj.find('.descr').append(subs);
			
			subs.QuizList({
				from  : 0, 
				count : FEED_COM_EXT,
				fid   : item.com_id,
				quiz  : options.quiz,
				logUser : options.logUser
			});
		}
		
	});
};

$.fn.LikeList = function(options){
	
	return this.each(function(){
		var obj = $(this);
		var count = 0;
		
		var box = $('<div class="like-input"></div>');	
		var items = $('<div class="like-items"></div>');
		
		var reloadNum = function() {
			items.children().each(function(i){
				$('span',this).html(i+1);
			});
		};
		
		var addItem = function(value) {
			if (count == 5) {
				return false;
			}
			
			var inp = $('<input type="hidden" name="'+options.name+'[]" value="'+value+'"/>').css({width:300});
			
			var bx = $('<div class="like-input"></div>').hide();	
			bx.append(inp);
			bx.append('<span>'+(count+1)+'</span>. '+value+'');
			var del = $('<a href="" title="usuń"> X </a>').css({color:'#24ff39'}).click(function(){
				$(this).parent().fadeOut(300,function(){ $(this).remove(); count--;reloadNum(); });
				
				return false;
			});
			bx.append(del);
			items.append(bx);
			
			bx.fadeIn(300);
			
			count++;
		};
		
		var inp = $('<input type="text" name="'+name+'[]" value="'+options.def+'"/>').css({width:300,color : '#AAA'});
		inp.keyup(function(event){
				event.preventDefault();		
		}).keypress(function(event){
				
			if (event.keyCode == 13) {
				if ($(this).val() != '') {
					
					addItem($(this).val());
					$(this).val('');
				}
				return false;
			}
				
		}).focus(function(){
			if ($(this).val() == options.def) {
				$(this).val('');
				$(this).attr('name',$(this).attr('name').replace('tmp_',''));
				$(this).css({
					'color' : '#000000'
				});
			}
		});
		
		
		box.append(inp);	
		box.append(items);
		obj.append(box);
		
		if (options.value != null) {
			for (var i in options.value) {
				addItem(options.value[i]);
			}
		} 
		
	});
};



