/**
*
*  Jquery spraudnis priekš tabulas ajaxTable, spraudnis 
*  savietojams ar citu spraudni, lai panāktu labošanas iespēju tabulas elementam
*/
(function($){
	$.fn.extend({
		/**
		*
		*  Galvenā funkcija, kura nepieciešamo tabulu pārveido par ajax tabulu
		*/
		ajaxTable : function (options){
			var settings = $.extend({
				element:'tr',id_attr:'id',form_id:'view_form_',form:'',url:'/',col:2,action:'',class_name:'line_hover',rowAct:false,openedclass:'opened'
			}, options);
			var $table = $(this);
			$('tbody', $table).find(settings.element).each(function(){
				$(this).ajaxRow(settings);
			})
		},

		/**
		*
		* Tabulas rindai piešķir spēju, tikt nospiestai  
		*/
		ajaxRow : function(options) {
			var settings = $.extend({
				id_attr:'',form_id:'',url:'',col:'',rowAct:'',class_name:'line_hover'
			}, options);
			var $row = $(this); 
			var id = $row.attr(settings.id_attr);
			$row.click(function(){
				if ($('#' + settings.form_id + id).is(':visible')){
					$(this).toggleClass(settings.openedclass)
					$('#' + settings.form_id + id).remove();
					return;
				}
				$.get(settings.url + id, function(data){
					var $a_form = $('<tr id="' + settings.form_id + id + '" class="view_tr"><td colspan="' + settings.col + '">' + data + '</td></tr>');
					if (settings.rowAct.length > 0) {
						eval('$a_form.' + settings.rowAct);
					} 
				   	if ($('#' + settings.form_id + id ).not(':visible'))
						$a_form.insertAfter($row);
				})
				$(this).toggleClass(settings.openedclass)
			}).hover(
				function(){$(this).toggleClass(settings.class_name)}, 
				function(){$(this).toggleClass(settings.class_name)}
			)
		},

		/**
		*
		* Rindas atjaunošana
		*/
		reloadRow : function (options) {
			var settings = $.extend({
				url:'/',action:'',id_attr:'id'
			}, options);
			var $row = $(this);
			var id = $row.attr(settings.id_attr);
		 	$.get(settings.url + id + settings.action, function(data){
				var $newrow = $(data).insertAfter($row).hide().addClass(settings.openedclass);
				$row.remove();
				$newrow.show().ajaxRow(settings);
			})	
		},

		/*
		*
		* Atjauno formu
		*/
		reloadForm : function (options) {
			var settings = $.extend({
				url : '/',action : '',id_attr : 'id'
			}, options);
		   	var $form = $(this);
			$.get(settings.url + settings.id, function(data){
				$form.empty();
				$form.html('<td colspan="' + settings.col + '">' + data + '</td>');
			   	if (settings.rowAct.length > 0) {
					eval('$form.' + settings.rowAct);
				} 

			})
		}		
		
	});
})($);

