var violationlink = '';
var violationelement = '';
var actualCategories = new Array();
var commentToShow = 0;

jQuery.validator.addMethod("dateISOformat", function(value, element) { 
		return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value) || /rrrr-mm-dd/.test(value);
	}, 'Pole powino być w formacie <b>RRRR-MM-DD</b>');

jQuery.validator.addMethod('required_group', function(val, el) {	
		var $module = $('#comment-add-form');
		return $module.find('textarea:filled').length;
	}, 'Prosimy o dodanie przynajmniej jednej <b>oceny oraz komentarza</b>');

var commentsBind = function() {
	
	list1 = $('.cmnts-filters-col .cmnts-box:first').find('input');
	
	actualCategories = new Array();
	list1.each(function(i) {
		if ($(this).is(':checked'))	{
			if($(this).val() != '') {
				actualCategories.push($(this).val());
			}
		}
	});

	$('#show-comments').click(function() {
		$('#add-comment-pane').addClass('hidden');
		$('#comments-list').removeClass('hidden');
		return false;
	});
	
	$('.report-violation-btn').unbind().click(function() {
		violationelement = $(this);
		$('#overlay').removeClass('hidden');
		$('#report-violation').removeClass('hidden');
			if (violationlink == '') {
				//alert($(this).attr('rel'));
				violationlink = $('#report-violation form').attr('action');
			}
		
		$('#report-violation .close').click(function(){
			$('#report-violation').addClass('hidden');
			$('#overlay').addClass('hidden');
		});
		
		$('#report-violation form').attr('action',violationlink.replace('XXX',$(this).attr('rel')));
		
		return false;
	});

	//$('#report-misuse-form').validate(misuse_options);
	//$('#comment-add-form').validate(add_comment_options);
	
	$('.cmnts-filters-col input').click(function(){
		if(String(this.name).lastIndexOf('[0]') != -1) {
			$('.cmnts-filters-col input:not(:first)').attr('checked', false);
		} else {
			$('.cmnts-filters-col input:first').attr('checked', false);
		}
	});
	
	// klikniecie w checboxa 'wszystkie' uncheckuje wszystkie checboxy z grupy comment-category
/*	$('#comment-category-all').click(function() {
		$(".cmnts-filters-col input :checked").each(function(i) {
			if ($(this).attr('id') !=  'comment-category-all')	{
				$(this).attr('checked', false);
			}
		});
	});*/
	
	$('a.category-panel').unbind().click(function() {
		$link = $(this);
		$list = $link.parent().find('ul');
		if ($list.is(':visible')) {
			$list.slideToggle("slow");
			$link.find('em').html('+');
		}
		else {
			$list.slideToggle("slow");
			$link.find('em').html('&#8211;');
		}
		
		return false;
	});

	$('#report-misuse-form').unbind().submit(function(){
		if ($('#misuse-reason').val().length > 0) {
			$('div#misuse-error-messages').remove();
				$form = $(this);
				$.ajax({
					url: $form.attr('action'),
					data: $form.serialize(),
					type: 'POST',
					success: function(){
						$('#overlay').addClass('hidden');
						$('#report-violation').addClass('hidden');
						$('#misuse-reason').val('');
						var violationtext = violationelement.text();  
						violationelement.parent().text(violationtext);
					},
					error: function(){
						$('#overlay').addClass('hidden');
						$('#report-violation').addClass('hidden');
						$('#misuse-reason').val('');
						var violationtext = violationelement.text();  
						violationelement.parent().text(violationtext);
					}
				});
		} else {
			$('div#misuse-error-messages').remove();
			$html = $('<div id="misuse-error-messages"><div><ul><li>Prosimy o uzasadnienie nadużycia.</li></ul></div></div>');
			$('#report-misuse-form textarea').after($html);
		}
		return false;
	});
	
	$('.cmnts-add-comment').click(function() {
		
		$('#comments-list').addClass('hidden');
		$('#add-comment-pane').removeClass('hidden');
		
		$('.tabs-content').addClass('hidden');
		
		$('#airlines-nav li a').removeClass('active');
		$('#airlines-nav li#ar-nav-opinions a').addClass('active');
		
		//alert('#' + $(this).parent().attr('id') + '-content');
		
		$('#ar-nav-opinions-content').removeClass('hidden');
		$('#arp-nav-opinions-content').removeClass('hidden');
		
		return false;
	});
		
	
};

var ObjectComments = {
		_container: null,
		
		_params: {
			page: 0,
			perPage: 3,
			direction: 'DESC'
		},
		url: null,
		form: null,
		formEl: null,

		init: function(objId, container, formEl) {
			this._container = $(container);
			this._params.objectCode = objId;
			this.form = $(formEl);
			this.formEl = formEl;
			
			this._params.objectType = $("input[name='objectType']").val();
			
			
			this.url = this.form.attr('action');
				
			//this.form.submit(ObjectComments.addComment);
		},

		load: function(params) {
			//$('#ajax-loading').removeClass('hidden');
			//$('#overlay').removeClass('hidden');

			if (typeof params != 'undefined' && params.changeDirection == true) {
				params.direction = (this._params.direction == 'ASC' ? 'DESC' : 'ASC');
			}

			this._params = jQuery.extend(this._params, params);
			this._params.mode = 'get';
			
			try {
				this._container.load(this.url, this._params, this.getSuccessHandler);
			} catch (ex){

			}
	
			return false;
			
		},

		getSuccessHandler: function() {
			if(commentToShow) {
				location.href = commentToShow;
			}
			commentsBind();
		},

		getErrorHandler: function() {

		},

		addComment: function() {
			
			if(($(this.formEl + " input[name=VisitStart]").val() == 'rrrr-mm-dd') || ($(this.formEl + " input[name=VisitStart]").val() == '')) {
				$(this.formEl + " input[name=VisitStart]").attr('name', 'oldVisitStart');
				$(this.formEl + " input[name=defaultVisitStart]").attr('name', 'VisitStart');
			};
			
			if(($(this.formEl + " input[name=VisitEnd]").val() == 'rrrr-mm-dd') || ($(this.formEl + " input[name=VisitEnd]").val() == '')) {
				$(this.formEl + " input[name=VisitEnd]").attr('name', 'oldVisitEnd');
				$(this.formEl + " input[name=defaultVisitEnd]").attr('name', 'VisitEnd');
			};
			
			try {
				jQuery.ajax({
					type: "POST",
					url: ObjectComments.url + '?mode=add',
					dataType: 'json',
					data: ObjectComments.form.serialize(),
					error: ObjectComments.addErrorHandler,
					success: ObjectComments.addSuccessHandler
				});
			} catch (ex){
			}
			
			return false;
		},

		addErrorHandler: function() {
			
		},

		addSuccessHandler: function() {
			//ObjectComments.form.remove();
			
			$('#comment-add-thankyou').show();
			$('#comments-list').removeClass('hidden');
			$('#add-comment-pane').addClass('hidden');
			
			return ObjectComments.load();
		},

		getContainer: function() {
			return ObjectComments._container;
		},

		getPage: function(p) {
			return ObjectComments.load({'actualCategories[]': actualCategories, page: p});
			/*return ObjectComments.load({page: p});*/
		}
	};

$(document).ready(function(){
	
	$('#comments-list-comments').each(function() {
		ObjectComments.init($("input[name='ObjectId']").val(), '#comments-list-comments', '#comment-add-form');
	
		//ObjectComments.load();
		commentsBind();
		
	});
	
	list1 = $('.cmnts-filters-col .cmnts-box:first').find('input');
	
	actualCategories = new Array();
	list1.each(function(i) {
		if ($(this).is(':checked'))	{
			if($(this).val() != '') {
				actualCategories.push($(this).val());
			}
		}
	});

	$('.comments-pop-calendar').click(function(){
		var o = $(this);
		o.esky_calendar({thisInput:o.attr('rel'),linkedInput:false,loop:1, allowSameDay:true, outBlock: new Date().zeroTime(), inBlock: new Date().zeroTime().addDays(-1456), blockedDays: -1456, pastDates: true});
		return false;
	});
		
		$('#report-misuse-form').unbind().submit(function(){
			if ($('#misuse-reason').val().length > 0) {
				$('div#misuse-error-messages').remove();
					$form = $(this);
					$.ajax({
						url: $form.attr('action'),
						data: $form.serialize(),
						type: 'POST',
						success: function(){
							$('#overlay').addClass('hidden');
							$('#report-violation').addClass('hidden');
							$('#misuse-reason').val('');
							var violationtext = violationelement.text();  
							violationelement.parent().text(violationtext);
						},
						error: function(){
							$('#overlay').addClass('hidden');
							$('#report-violation').addClass('hidden');
							$('#misuse-reason').val('');
							var violationtext = violationelement.text();  
							violationelement.parent().text(violationtext);
						}
					});
			} else {
				$('div#misuse-error-messages').remove();
				$html = $('<div id="misuse-error-messages"><div><ul><li>Prosimy o uzasadnienie nadużycia.</li></ul></div></div>');
				$('#report-misuse-form textarea').after($html);
			}
			return false;
		});
		
		$('a.cmnts-filter-btn').click(function() {

			$list1 = $('.cmnts-filters-col .cmnts-box:first').find('input');
			
			$list2 = $('.cmnts-filters-col .cmnts-box:last').find('input');

			var categories = new Array();
			var profiles = new Array();

			$list1.each(function(i) {
				if ($(this).is(':checked'))	{
					categories.push($(this).val());
				}
			});

			//$list2.each(function(i) {
			//	if ($(this).is(':checked'))	{
			//		profiles.push($(this).attr('value'));
			//	}
			//});
			
			if ((categories.length > 0) && (categories[0] == ''))
				categories.length = new Array();
				
			//if ((profiles.length > 0) && (profiles[0] == ''))
			//	profiles.length = new Array();
			
			ObjectComments.load({'category[]':categories, 'actualCategories[]': actualCategories});
		
			return false;
		});
		
		$('.cmnts-sorting a').click(function(){
			var direction = $(this).hasClass('DESC') ? 'ASC' : 'DESC';
			$(this).parent().find('a').attr('class','');
			$(this).addClass('selected').addClass(direction);
			ObjectComments.load({'order': $(this).attr('rel'), 'direction' : direction, 'changeDirection' : true});
			return false;
		});


});

