// $Id: global.js 195 2008-07-30 14:56:34Z rezvan $

/**
 * Initialize the Plag object.
 */
Plag = {
    init: function() {
        Plag.tagInputElements();
        Plag.textArea();
		
        
		if($('.main-content-news-overview').length > 0) {
			NewsArchive.init();
		}
		

    }
}

/**
 * Add class to input elements.
 * We use this for cross browser compatiblity... (IE doesn't allow type
 * selectors).
 */
Plag.tagInputElements = function() {
    $('input').each(function() {
        $(this).addClass('input-'+ this.type);
    });
};

/**
 * Extends the current object with the parameter. Works recursively.
 */
Plag.extend = function(obj) {
    for (var i in obj) {
        if (this[i]) {
            Plag.extend.apply(this[i], [obj[i]]);
        }
        else {
            this[i] = obj[i];
        }
    }
};

/**
 * Limits the max allowed characters for the textarea
 */
Plag.textArea = function() {
    $('#edit-description').keyup(function(event){
        if ($(this).val().length > 500) {
            $(this).val($(this).val().substring(0, 500));
        }
    });
};



NewsArchive = {
	pageLength: 7,
	currentCategory: 'all',
	currentPage: 1,
	maxPages: 20, // value 0 to set no max pages to show

    init: function() {
		var hash = document.location.hash.substring(1);
		if(hash != '') {
			NewsArchive.currentCategory = hash;
		}
		NewsArchive.showCategoryPage(NewsArchive.currentPage);
/*
        $('.category-select li a').click(function() {
			var items = NewsArchive.selectNewsCategoryItems($(this));
			NewsArchive.showNewsCategoryPagination(items, 1);
			NewsArchive.showNewsCategoryItems(items, 1);
			return false;
		});
*/
    },
	editLink: function(el) {
		url = el.attr('href');
		addHash = url + '?category=' + NewsArchive.currentCategory;
		el.attr('href', addHash);		
	},

	showCategoryPage: function(page) {
        var items = NewsArchive.selectNewsCategoryItems($('#category-select-'+NewsArchive.currentCategory+' a'));
		NewsArchive.showNewsCategoryPagination(items, page);
		NewsArchive.showNewsCategoryItems(items, page);
    },

	selectNewsCategoryItems: function(el) {
		$(el).parent().parent().find('li').removeClass('selected');
		$(el).parent().addClass('selected');

		var elId = $(el).parent().attr('id'); //find LI get ID
		var catName = elId.replace('category-select-', '');
		NewsArchive.currentCategory = catName;
		var className = 'category-code-' + catName;

		var items = new Array();
		$('.newscategory li').each(function(){
			if($(this).hasClass(className)) {
				items.push($(this));
			}
		});

		return items;
	},

	showNewsCategoryPagination: function(el, page) {
		NewsArchive.currentPage = page;
		var numPages = Math.ceil(el.length / NewsArchive.pageLength);

		// limit amount of pages if value is set
		if(NewsArchive.maxPages !=0 && numPages > NewsArchive.maxPages) { numPages = NewsArchive.maxPages; }

		var prevPage = NewsArchive.currentPage - 1;
		var nextPage = NewsArchive.currentPage + 1;

		var html = '<div id="pager">';
		if(prevPage > 0) { 
			html += '<a href="javascript:NewsArchive.showCategoryPage('+ prevPage +')">&lt;&nbsp;vorige</a>';
		}
		for(var i=0; i < numPages; i++) {
			var pageNumber = i+1;
			html += '<div class="'
			if(page == pageNumber) {
				html += 'current-page';
			} else {
				html += ' number';
			}
			html += '"><a href="javascript:NewsArchive.showCategoryPage('+pageNumber+')">'+pageNumber+'</a></div>';
		}
		if(nextPage < numPages+1) { 
			html += '<a href="javascript:NewsArchive.showCategoryPage('+ nextPage +')">&nbsp;volgende&nbsp;&gt;</a>';
		} 
		html += '</div>';

		$('.newspagination').html(html);
		
	},
	

	showNewsCategoryItems: function(el, page) {

		var delay = 0;
		var delayIncrease = 40;
		$('.newscategory li:visible').hide();
		
		firstPageItem = (page * NewsArchive.pageLength) - NewsArchive.pageLength;
		lastPageItem = page * NewsArchive.pageLength;

		for(var i=firstPageItem; i < lastPageItem; i++) {
			$(el[i]).show();
		}
		
	}
}


// Run any/all init functions.
$(function() { Plag.init() });
