/*
	version 0.1
    How it works 
    $(document).ready(function(){ 
      $(".uitvullen").truncateList();
    });
    options:
    numberOfVisibleItems: 5, // aantal zichtbare
 	moreText: "meer", // wat is de meer link tekst
 	lessText: "minder", // wat is de minder link tekst
 	
 	title: word de meer link tekst
 	showAantal: overruled de standaard instelling
 	
 	<ul class="uitvullen1" title="van lijst 1" showAantal="3">
	    <li><a href="#">kjhgb jkg jksdg</a></li>
	    <li><a href="#">srfb gjkb g rg ukgr k</a></li>
	    <li><a href="#">3</a></li>
	    <li><a href="#">4</a></li>
	    <li><a href="#">5</a></li>
	    <li id="last"><a href="#">6</a></li>
	</ul>
*/
jQuery.fn.truncateList = function(options){
  	var defaults = {
   		numberOfVisibleItems: 5,
   		moreText: "meer &raquo;",
   		lessText: "&laquo; minder",
   		show_hide_list: "hide",
   		linkClass: "",
   		nummer: "",
   		once: "true"
  	};
  	var options = $.extend(defaults, options);
  	var nummer=0;
  	var prefix = "";
  	return this.each(function(){
  		var newNnumberOfVisibleItems = "";
  		var thisElement = $(this);
  		if(thisElement.attr('showaantal') != "" && thisElement.attr('showaantal') > 0){
  			newNnumberOfVisibleItems = thisElement.attr('showaantal');
  		}
  		if(newNnumberOfVisibleItems == ""){
  			newNnumberOfVisibleItems = options.numberOfVisibleItems;
  		}
  		if(thisElement.attr('title') != ""){
		    prefix = thisElement.attr('title');
		}
  		if(options.nummer != ""){
  			nummer = options.nummer;
  		}
  		if(thisElement.hasClass('truncateList'+nummer) != true){
  			thisElement.addClass('truncateList'+nummer);
  		}
  		if(options.once == "true"){
  			$('.truncateList'+nummer).append("\n<li class='meer'><a href='javascript:;' onclick='$(\".truncateList"+nummer+"\").truncateList({once: \"false\", numberOfVisibleItems: \""+newNnumberOfVisibleItems+"\",moreText: \""+options.moreText+"\",lessText: \""+options.lessText+"\",show_hide_list: \"hide\", nummer: \""+nummer+"\"})' class='myTruncateListClassLess"+nummer+" "+options.linkClass+"' >"+options.lessText+" "+prefix+"</a><a href='javascript:;' onclick='$(\".truncateList"+nummer+"\").truncateList({once: \"false\", numberOfVisibleItems: \""+newNnumberOfVisibleItems+"\",moreText: \""+options.moreText+"\",lessText: \""+options.lessText+"\",show_hide_list: \"show\", nummer: \""+nummer+"\"})' class='myTruncateListClassMore"+nummer+" "+options.linkClass+"' >"+options.moreText+" "+prefix+"</a></li>\n");
  			//$('.truncateList'+nummer).append("\n<li class='meer'><a href='javascript:;' onclick='$(\".truncateList"+nummer+"\").truncateList({once: \"false\", numberOfVisibleItems: \""+newNnumberOfVisibleItems+"\",moreText: \""+options.moreText+"\",lessText: \""+options.lessText+"\",show_hide_list: \"show\", nummer: \""+nummer+"\"})' class='myTruncateListClassMore"+nummer+" "+options.linkClass+"' >"+options.moreText+" "+prefix+"</a></li>\n ");	
  			jQuery(".myTruncateListClassMore"+nummer).addClass('hide');
			jQuery(".myTruncateListClassLess"+nummer).addClass('hide');
  		}
  		function show_hide_list(toDo){
			if(toDo == "show"){
				jQuery(".myTruncateListClassMore"+nummer).addClass('hide');
				jQuery(".myTruncateListClassLess"+nummer).removeClass('hide');
				
				$('.truncateList'+nummer).children().each(function(){
					$(this).show();
				});
				//thisElement.after("<a href='javascript:;' onclick='$(this).parent().truncateList({numberOfVisibleItems: \""+newNnumberOfVisibleItems+"\",moreText: \""+options.moreText+"\",lessText: \""+options.lessText+"\",show_hide_list: \"hide\", nummer: \""+nummer+"\"})' class='myTruncateListClassLess"+nummer+" "+options.linkClass+"' >"+options.lessText+" "+prefix+"</a>");
			} else {
				var elementCount = $('.truncateList'+nummer).children().length; 
		  		if((elementCount - 1) > newNnumberOfVisibleItems){
			  		var a=0;
			  		$('.truncateList'+nummer).children().each(function(){
				    	if(a < newNnumberOfVisibleItems){
				    		$(this).not('[class=meer]').show();
				    	} else {
				    		$(this).not('[class=meer]').hide();
				    	}
				    	a++;
				    });
				    jQuery(".myTruncateListClassMore"+nummer).removeClass('hide');
				    jQuery(".myTruncateListClassLess"+nummer).addClass('hide');
				    //thisElement.after("<a href='javascript:;' onclick='$(this).parent().truncateList({numberOfVisibleItems: \""+newNnumberOfVisibleItems+"\",moreText: \""+options.moreText+"\",lessText: \""+options.lessText+"\",show_hide_list: \"hide\", nummer: \""+nummer+"\"})' class='myTruncateListClassLess"+nummer+" "+options.linkClass+"' >"+options.lessText+" "+prefix+"</a>");
				}
			}
		}
		show_hide_list(options.show_hide_list);
		if(options.nummer == ""){ nummer++; }
  	});
}