/*
 * Master Table
 * author : Budiir
 *
 */
//---- CSS include by JS
function includeCSS(p_file) {
   	var v_css  = document.createElement('link');
   	v_css.rel = 'stylesheet';
   	v_css.type = 'text/css';
   	v_css.href = p_file;
   	document.getElementsByTagName('head')[0].appendChild(v_css);
}
includeCSS("./styles/master_table.css");
//---- Master Table 
(function($){
    $.fn.extend({
        mastertable: function(options,isiTable,domIsi) {
            return this.each(function() {
                new $.Lakukan(this,options,isiTable,domIsi);
            });
        }
    });
    $.Lakukan = function(elm,options,isiTable,domIsi) {
        idTable = $(elm).attr("id");
        $(".tbl_head th[id]",elm).css("cursor","pointer");
        $(".reset",elm).click(function(){
            setdata(idTable,options.flook,"asc");
            get_data("","",options.flook,"asc","1","10");
            $(".tbl_head > th > u",elm).parent().html($(".tbl_head > th > u",elm).text());
            $("#" + options.flook,elm).html("<u>" + $("#" + options.flook,elm).text() + "<img alt=\"sort\" src=\"images/sort_asc.png\"/></u>");
            $(".isi_filter",elm).val("");
            $(".pg_hal",elm).val("1");
            $(".pg_row option[@value=10]",elm).attr("selected","selected");
        });
        //------ Filter Group ------------------------//
        $(".isi_filter",elm).keyup(function() {
            $(".pg_hal",elm).val("1");
            get_data($(".jns_filter",elm).val(),$(this).val(),getdata(idTable,"fi"),getdata(idTable,"ad"),$(".pg_hal",elm).val(),$(".pg_row",elm).val());
        });
        //------ Tabel Group Sorting ------------------------//
        $(".tbl_head th[id]",elm).click(function() {
            fd = $(this).attr("id");
            pid = getdata(idTable,"fi");
            jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
            isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
            get_data(jns_filter,isi_filter,fd,tooglesort(idTable),$('.pg_hal',elm).val(),$(".pg_row",elm).val());
            $("#"+ pid,elm).text($("#"+pid,elm).text());
            $(this).html("<u>" + $(this).text() + "<img alt=\"sort\" src=\"images/sort_"+tooglesort(idTable)+".png\"/></u>");
            setdata(idTable,fd,tooglesort(idTable));
        });

        //------ Tombol Paging ----//
        $(".pg_first",elm).click(function(){
            jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
            isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
            get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),"1",$(".pg_row",elm).val());
            $('.pg_hal',elm).val('1');
        });
        $(".pg_pre",elm).click(function(){
            if (parseInt($(".pg_hal",elm).val()) > 1 ) {
                prev = parseInt($(".pg_hal",elm).val()) - 1;
                jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
                isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
                get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),prev,$(".pg_row",elm).val());
                $('.pg_hal',elm).val(prev);
            }
        });
        $(".pg_next",elm).click(function(){
            if (parseInt($('.pg_total',elm).html()) > parseInt($('.pg_hal',elm).val())) {
                next = parseInt($(".pg_hal",elm).val()) + 1;
                jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
                isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
                get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),next,$(".pg_row",elm).val());
                $('.pg_hal',elm).val(next);
            }
        });
        $(".pg_last",elm).click(function(){
            jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
            isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
            get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),$('.pg_total',elm).html(),$(".pg_row",elm).val());
            $('.pg_hal',elm).val($('.pg_total',elm).html());
        });
        $(".pg_hal",elm).keyup(function(){
            jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
            isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
            get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),$(".pg_hal",elm).val(),$(".pg_row",elm).val());
        });
        $(".pg_row",elm).change(function(){
            $(".pg_hal",elm).val("1");
            jns_filter = ($(".jns_filter",elm).val()== null) ? '' : $(".jns_filter",elm).val();
            isi_filter = ($(".isi_filter",elm).val()== null) ? '' : $(".isi_filter",elm).val();
            get_data(jns_filter,isi_filter,getdata(idTable,"fi"),getdata(idTable,"ad"),"1",$(this).val());
        });
        
        function get_data(ff,isf,field,adsc,hal,juml) {
            datanya = "ff=" + ff + "&if=" + isf + "&fd=" + field + "&adsc=" + adsc + "&hal=" + hal + "&juml=" + juml;
            if(options.dataTambahan){datanya += options.dataTambahan; }
            $.ajax({type: "POST",
                         url: options.urlGet,
                         data: datanya,
                         dataType: "json",
                         async : false,
                         success: function(json){
                                    $('.tbl_body',elm).html(isiTable(hal,juml,json));
                                    $('.pg_total',elm).html(json['total']);
                                    if(domIsi){domIsi();};
                                  },
                         error: function() {
                        			$('.tbl_body',elm).html("");
                        	   }
            });
            tb_init('a.thickbox, area.thickbox, input.thickbox');
        }

        //-----Fungsi Toogle Sort ----------------------------//
        function tooglesort(tab) {
            return($("div",elm).data(tab).adsc == "asc" ? "desc" : "asc");
        }
        //-----Fungsi Set Data-------------------------------//
        function setdata(tab,fil,ad) {
            $("div",elm).data(tab, { field: fil, adsc: ad });
        }
        //----Fungsi Get Data Temporary di JS----//
        function getdata(tab,nm) {
            return(( nm == "fi") ? $("div",elm).data(tab).field : $("div",elm).data(tab).adsc);
        }

        //------Tombol Cetak Group -----------------------------//
        $(".pg_excel",elm).click(function() {
            window.location = "admin/user/cetak_excel/groups";
        });
        $(".pg_pdf",elm).click(function() {
            alert("Cetak Ke PDF");
        });
        $(".pg_printer",elm).click(function() {
            window.print();
        });
        
        
    }

})(jQuery);

// --- Fungsi Tambahan
//---- Fungsi AJAX ----//
	function ajak(urlnya,datanya) {
	  	var resp = $.ajax({type: "POST",
	                       url: urlnya,
	                       async : false,
	                       data: datanya
	                      }).responseText;
	    return resp;
	}

    //---- Fungsi Validasi Form ----
    function validform(formnya) {
        var hasil = new Array();
        hasil['isi'] = "";
        hasil['idx'] = "";
  		$('#' + formnya + ' .fm-req .inp').each( function (i) {
  			if ($(this).val() == "") {
  				hasil['isi'] = "invalid";
                hasil['focus'] = $("#" + formnya + " .fm-req .inp:eq("+ i +")");
  				return false;
  			}
  		});
        return hasil;
    }

    //---- Pesan Pada Thickbox ----//
	function showinfo(info) {
		$(".infonya").html("<img src=\"images/warning_kecil.png\" />&nbsp;<span style=\"font-weight: bold;color: red\">" + info + "</span>");
		$(".infonya").show();
		setTimeout('$(".infonya").fadeOut("slow")', 2500);
	}
