/*
 * 
 */
function DinamicTable(myContainer)
{		
	/* Attributes */
	var container = myContainer;
	/*changed to 25 to match new requirements for universal profile*/
	var pageSize = 25;
	var currentPage = 1;
	var table = $("table.dinamic_table")[0];
	var totalRows=$("tbody tr").length;
	var totalPages=Math.ceil(totalRows/pageSize);
	var pagersHolders=$(".page_change");	
	var sizesHolders=$(".page_size");
	/*added for drop box item limit*/
	var sizesHoldersSelect=$(".orders_per_page");
	
	
	var initialize = function() {
		if(pagersHolders.length>0)
			$(table).addClass("table-autopage:"+pageSize);
		else
			pageSize=totalRows;
		renderPager();	
	};
	
	var renderPagerTrigger = function () {
		var pager="";
		var begin = (currentPage-1)*pageSize+1;
		var end = currentPage*pageSize;
		$(".total_items").text(totalRows);
		$(".current_view_begin").text(totalRows>0?begin:0);
		$(".current_view_end").text(end>totalRows?totalRows:end);
		for(var i=1;i<=totalPages;i++)
		{
			if(i==currentPage)
				pager+="<a href=\"javascript:;\"><strong>"+i+"</strong></a> ";
			else
				pager+="<a href=\"javascript:;\">"+i+"</a> ";
		}
		sizesHolders.find("a").each(function(){
			if ($(this).text()==pageSize)
			{
				this.style.fontWeight="bold";
			}
			else
			{
				this.style.fontWeight="";
			}
		});
		/*added for drop box item limit*/
		sizesHoldersSelect.find("option").each(function(){
			if ($(this).val()==pageSize)
			{
				this.style.fontWeight="bold";
				$(this).attr('selected', 'selected');

 			}
			else
			{
				this.style.fontWeight="";
			}
		});

		pagersHolders.html(pager);
		wireEvents();
	};
	
	var renderPager = function () {
		//To avoid hanging in IE
		setTimeout(renderPagerTrigger, 100);
	};
	
	var wireEvents = function() {	
		$(pagersHolders).find("a").click(
			function(){
				currentPage = Number($(this).text());
				Table.page(table,currentPage-1);
				renderPager();
			}		
		);
		
		$(sizesHolders).find("a").click(
			function(){
				$(table).removeClass("table-autopage:"+pageSize);
				pageSize = Number($(this).text());
				currentPage = 1;
				totalPages=Math.ceil(totalRows/pageSize);
				$(table).addClass("table-autopage:"+pageSize);
				Table.auto();
				renderPager();
			}						
		);
				/*added for drop box item limit*/
		$(sizesHoldersSelect).find("option").click(
			function(){
				$(table).removeClass("table-autopage:"+pageSize);
				pageSize = Number($(this).val());
				currentPage = 1;
				totalPages=Math.ceil(totalRows/pageSize);
				$(table).addClass("table-autopage:"+pageSize);
				Table.auto();
				renderPager();
			}						
		);
	};
	
	initialize();
};


function readyTableFunctions() {
    var IMAGE_TOGGLER_HOLDER = $('.images'); //"images";
	var IMAGES_ON = IMAGE_TOGGLER_HOLDER.find('.images_on'); //"images_on";
	var IMAGES_OFF = IMAGE_TOGGLER_HOLDER.find('.images_off'); //"images_off";
	var CHECK_ALL = $('input.check_all'); //"check_all";

	var tableHolders = $("div.dinamic_table");
	tableHolders.each(function(){
		DinamicTable(this);
	});
	
	if (tableHolders.length>0)
		Table.auto();
	
	//Initializes calendars and other behaviors
	var calendars = $("input.date");
	if (calendars.length>0 && calendars.datePicker)
	{
		calendars.datePicker({clickInput:true});
	}
	IMAGES_OFF.click(
			function(evt){
				if(this.checked)
					$(this).parents("table:first").find("img.product").fadeOut("low");
				evt.stopPropagation();
			}
		);
		
	//Toggle images on
	IMAGES_ON.click(
		function(evt){
			if(this.checked)
			    $(this).parents("table:first").find("img.product").fadeIn("low");
			evt.stopPropagation();
		}
	);

	CHECK_ALL.click(
			function(){
				var checks = $(this).parents("table").find("input[name='item']");
				for (var i=0;i<checks.length;i++)
				{
					checks[i].checked = this.checked;
				}
			}
		);
	
	CHECK_ALL.each(
			function(){
				var checks = $(this).parents("table").find("input[name='item']");
				var parent = this;
				for (var i=0;i<checks.length;i++)
				{
					$(checks[i]).click(
							function(){
								if (!this.checked)
									parent.checked = false;
							}
						);
				}
			}
		);	
}

$(document).ready(function(){
	readyTableFunctions()
});

