﻿
function TabloOlustur(name)
{
    var tabloBaslik=eval(name+"['tabloBaslik']");
    var pageLoad=eval(name+"['pageLoad']");
    var t="<table cellpadding=0 cellspacing=0 width=100%><tr id='tr_baslik'><th style='width:20px;'>&nbsp;</th>";
    jQuery.each(tabloBaslik, function(i, val) 
    {
        if(val!=null)
        {          
            if(val.tip=="B") 
                t+="<th>&nbsp;</th>";
            else if(val.tip=="Hidden")
                t+="<th class='hidden'></th>";
            else
                t+="<th>"+(val.oV)+"</th>";
        }
    });
    t+="</tr><tr class='tr_footer'></tr></table><div class='pagination' id='navigator'></div>"+
        
        "</td></tr></table>";
    
    $("#"+name+" .table_wrapper_inner").html(t);
    if(pageLoad)
        TabloYukle(name);
    

}

function TabloYukle(name, func)
{    
    var ajaxData=eval(name+"['ajaxData']");   
    
    var loadFunc=eval(name+"['loadFunc']");  
    
    var pager=eval(name+"['pager']");  
    
    var totals=eval(name+"['totals']");
    var toplam=new Array();
    var tabloBaslik=eval(name+"['tabloBaslik']");
    
    if(totals)
    {        
        $.each(tabloBaslik, function(key, val) 
        {	
			var t=$(totals).attr(val.oK);
			if(t!=undefined)
			{
			    $(totals).attr(val.oK,0);
			}
			
		});
		
    }
        
     $.ajax({
      type: "POST",
      url: eval(name+"['ajaxUrl']"),
      dataType: "json",
      data:ajaxData,
      success: function(data, text)
      {
        ajaxData.page_count=data.page_count;
        $("#"+name+" .tablo_satir").remove();
        $("#"+name+" .subtotal").remove();
        $.each(data.rows, function(i, row){            
            
            var c="first";
            if(i%2==1)
                c="second";
            var str="<tr class='tablo_satir "+c+"'><td class='first_td'><input type='checkbox' value='"+row.ID+"' /></td>";
            $.each(tabloBaslik, function(key, val) 
            {				
				var txt=$(row).attr(val.oK);
				
                if(val.tip=="B")
                {
                    var func=val.func.replace("@TABLO", name);
                    var fa=func.split(":");
                    func=fa[0];
                    var cikis=0;
                    if(fa.length>1)
                    {
                        
                        var kriter=fa[1].split("&");
                        for(var ki=0;ki<kriter.length;ki++)
                        {
                            var kk=kriter[ki].split("=");
                            if(kk.length>1)
                            {
                                if($(row).attr(kk[0])!=kk[1])
                                {
                                    cikis=1;
                                    break;
                                }
                            }
                        }
                        
                    }
                    if(cikis==1)
                    {
                        str+="<td width=100></td>";                        
                    }
                    else
                    {
                        var i1=func.indexOf("(");
                        var i2=func.indexOf(")");
                        var par=func.substring(i1+1,i2);
                        func=func.substring(0,i1);
                        var arr=par.split(",");
                        
                        for(var i3=0;i3<arr.length;i3++)
                        {
                            if(arr[i3].indexOf("@")>-1)
                                par=par.replace(arr[i3], $(row).attr(arr[i3].replace("@","")));
                        }                   
                        //func=func.replace("@ID",eval("row.ID")).replace("@TABLO", name);
                        func=func+"("+par+")";
                        str+="<td width=100><div class='actions_menu'><ul><li><a class='"+val.oK+"' href='javascript:"+func+"'>"+val.oV + "</a></li></ul></div></td>";
                    }
                }
                else if(val.tip=="Float")
				{
					str+="<td class='float'>"+ parseFloat(txt.replace(",",".")) + "</td>";
				}
				else if(val.tip=="Hidden")
				{
					str+="<td class='hidden'>"+ txt + "</td>";
				}
				else if(val.tip=="Date")
				{
					str+="<td>"+ txt.substring(0,10) + "</td>";
				}
				else if(val.tip=="Picture")
				{
				    var arr=val.oK.split(":");
				    str+="<td><img width=120 src='"+BASE_URL+"/pictures/"+arr[1]+"/"+$(row).attr(arr[0])+"_tn.jpg'/></td>";
				}
                else
                {
                    str+="<td>"+ txt + "</td>";
                }
                
                if(totals && $(totals).attr(val.oK)!=undefined)
                {
                    $(totals).attr(val.oK,$(totals).attr(val.oK)+parseFloat(txt));
                }
            });
            str+="</tr>";
            $("#"+name+" .tr_footer").before(str);
            
        });
        if(totals)
        {
            var sub="<tr class='subtotal'><td></td>";		
            $.each(tabloBaslik, function(key, val) 
            {	
				var t=$(totals).attr(val.oK);
				if(t!=undefined)
				{
				    sub+="<td>"+t+"</td>";
				}
				else if(val.tip!="Hidden")
				{
				    sub+="<td></td>";
				}
			});
			sub+="</tr>";
			
			$("#"+name+" .tr_footer").before(sub);
        }
        if(pager)
        {
            var cmb="<select id='sayfalama' onchange='sayfalamaDegistir(\""+name+"\")'><option value='20'>20</option><option value='50'>50</option><option value='100'>100</option><option value='250'>250</option><option value='500'>500</option></select>";
            var cmbSayfa="<select id='sayfa' onchange='sayfaDegistir(\""+name+"\")'>";
            for(var i=1;i<=ajaxData.page_count;i++)
            {
                cmbSayfa+="<option value='"+i+"'>"+i+"</option>";
            }
            cmbSayfa+="</select>";
            $("#navigator").html("<span>Sayfa:</span><img style='margin-right:3px;margin-left:3px;cursor:hand;cursor:pointer;' src='"+BASE_URL+"/images/arrow_left.png' onclick='oncekiSayfa(\""+name+"\")'/>"+cmbSayfa+" <span>/ "+data.page_count+"</span><img style='margin-left:3px;margin-right:10px;cursor:hand;cursor:pointer;' src='"+BASE_URL+"/images/arrow_right.png' onclick='sonrakiSayfa(\""+name+"\")'/> <span> Toplam Satır: "+data.total+"</span> <span style='margin-left:10px;'>Sayfalama: </span>"+cmb);
            $("#sayfalama").val(data.page_size);
            $("#sayfa").val(data.page);
        }
        if(func!="")
            eval(func);
        if(loadFunc!="")
            eval(loadFunc);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus);
      }
    });

}

function csv(name)
{
    var ajaxData=eval(name+"['ajaxData']");
    
    var ajaxUrl=eval(name+"['ajaxUrl']");    
    
    var frm="<form id='csvForm' action='"+ajaxUrl+"' target='_blank'method='POST' >";
    $.each(ajaxData, function(k, v){
        
        frm+="<input type='hidden' value='"+v+"' name='"+k+"'>";
    });
    frm+="<input type='hidden' value='1' name='csv'>";
    frm+="</form>";
    $("#footer").append(frm);
    $("#csvForm").submit();
}

function oncekiSayfa(name)
{
    var ajaxData=eval(name+"['ajaxData']");
    if(ajaxData.page>1)
    {
        ajaxData.page--;
        TabloYukle(name);
    }
}

function sonrakiSayfa(name)
{
    var ajaxData=eval(name+"['ajaxData']");
    if(ajaxData.page_count>ajaxData.page)
    {
        ajaxData.page++;
        TabloYukle(name);
    }
}

function sayfalamaDegistir(name)
{
    var ajaxData=eval(name+"['ajaxData']");
    ajaxData.page_size=$("#"+name+" #sayfalama").val();
    TabloYukle(name);
}

function sayfaDegistir(name)
{
    var ajaxData=eval(name+"['ajaxData']");
    var sayfa=$("#"+name+" #sayfa").val();
    if(sayfa>0 && sayfa<=ajaxData.page_count)
    {
        ajaxData.page=sayfa;
        TabloYukle(name);
    }
}

function seciliSatirlar(name)
{
    var arr=$("#"+name+" :checkbox:checked");
    var id=new Array();
    for(var i=0;i<arr.length;i++)
    {
        id.push($(arr[i]).val());
    }
    return id;
}

function alertDialog(msg, tip)
{   
    var title="Hata";
    if(tip=="warning")
        title="Uyarı";
    else if(tip=="ok")
        title="Bilgi"; 
    $("#alert_dialog").remove();
    $("body").append("<div id='alert_dialog'></div>");
    $("#alert_dialog").html("<table width=100%><tr><td align=center>"+msg+"</td></tr><tr><td align=center><img src='"+BASE_URL+"/images/"+tip+".png'></td></tr></table>");
    $("#alert_dialog").dialog({
			bgiframe: true,
			title:title,		
			autoOpen: true,
			height: 200,
			width: 350,
			modal: true,
			buttons:{"Tamam": function() { $(this).dialog("close"); }}});
}

function loadingDialog()
{      
    $("#loading_dialog").remove();
    $("body").append("<div id='loading_dialog'></div>");
    $("#loading_dialog").html("<table width=100%><tr><td align=center style='font-size:16px;font-weight:bold'>Yükleniyor</td></tr><tr><td align=center><img src='"+BASE_URL+"/images/loading.gif'></td></tr></table>");
    $("#loading_dialog").dialog({
			bgiframe: true,
			title:"Yükleniyor",		
			autoOpen: true,
			height: 100,
			width: 350,
			modal: true});
}

function confirmDialog(msg, func)
{
    $("#alert_dialog").remove();
    $("body").append("<div id='alert_dialog'></div>");
    $("#alert_dialog").html("<table width=100%><tr><td align=center>"+msg+"</td></tr><tr><td align=center><img src='"+BASE_URL+"/images/confirm.png'></td></tr></table>");
    $("#alert_dialog").dialog({
			bgiframe: true,
			title:"Onayla",		
			autoOpen: true,
			height: 200,
			width: 350,
			modal: true,
			buttons:{"Hayır": function() { $(this).dialog("close"); 
		        } ,
		        "Evet": func 
		    }
    });
}

function redirect(url)
{
    window.location.href=BASE_URL+"/"+url;
}

function kayitSil(url, id, tbl, load)
{		
    var func=function(){
    $.ajax({
      type: "POST",
      url: BASE_URL+"/"+url,
      dataType: "json",
      data: {ID:id},
      success: function(data, text)
      {
        if(data.errorCode!=0)
        {
            alertDialog(data.errorMsg,"error");
            return true;
        }
        else
        {
            alertDialog(data.errorMsg,"ok");
            if(tbl!="" && tbl)
            {
                TabloYukle(tbl);
            }
            if(load)
            {
                eval(load);
            }
            return false;
        }        
        
      }
    });
    };
    confirmDialog("Kaydı silmek istediğinize emin misiniz?", func);
}

function kayitSil2(url, id, tbl)
{
    if(confirm("Kaydı silmek istediğinize emin misiniz?"))
    {
    $.ajax({
      type: "POST",
      url: BASE_URL+"/"+url,
      dataType: "json",
      data: {ID:id},
      success: function(data, text)
      {
        if(data.errorCode!=0)
        {
            alertDialog(data.errorMsg,"error");
        }
        else
        {
            alertDialog(data.errorMsg,"ok");
            if(tbl!="" && tbl)
            {
                TabloYukle(tbl);
            }
        }        
        
      }
    });
    }
}

/*TRIM FONKSIYONU*/
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

/*IN_ARRAY FONKSIYONU*/		
Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}


Array.prototype.indexOf=function(val){
	for(var i=0;i<this.length;i++)
	{
		if(this[i]==val)
			return i;
	}
}	

function popUp(adres)
{
	window.open(adres,'_blank',"menubar=yes,toolbar=yes,location=no,resizable=yes,scrollbars=yes");
} 

function online()
{       
    $.ajax({
      type: "GET",
      url: BASE_URL+"/kullanici/online/default.aspx",
      dataType: "json",     
      global:false,
      success: function(data, text)
      {
        if(data.errorCode!=0)
        {
            alertDialog(data.errorMsg,"error");
            
        }
        else
        {
            $("#online_users").html(data.obj);
        }          
      }
    });
}
function isInteger (s)
{
   var i;

   if (isEmpty(s))
   if (isInteger.arguments.length == 1) return 0;
   else return (isInteger.arguments[1] == true);

   for (i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);

      if (!isDigit(c)) return false;
   }

   return true;
}
function isFloat(s)
{
	var n = s.toString();
	
	if(n.length>0 && !n.match(/[^0-9.]/))
	{
		if(n.match(/[.]/))
		{
			var arr=n.split('.');
			
			if(arr.length>2)
			{
				return false;
			}
			else if(arr.length==2 && (arr[0]=='' || arr[1]==''))
			{
				return false;
			}
		}
		
		return true;
	}
	
	return false;
	
}

function isInRange(s, min, max)
{
	if(isFloat(s))
	{	
		var n=parseFloat(s);
		
		if(n<=max && n>=min)
		{
			return true;
		}		
	}
	
	return false;
}

function isEmpty(s)
{
   return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
   return ((c >= "0") && (c <= "9"))
}

function jsonToForm(form, json)
{   
	$(form).find("input").each(function()
	{		    
		if($(this).attr('id'))
		{
			var val=$(json).attr($(this).attr('id'));
			$(this).val(val);
		}
	});	
	
	$(form).find("select").each(function()
	{	
		if($(this).attr('id'))
		{
			var val=$(json).attr($(this).attr('id'));
			$(this).val(val);
		}
	});
	
	$(form).find("textarea").each(function()
	{	
		if($(this).attr('id'))
		{
			var val=$(json).attr($(this).attr('id'));
			$(this).text(val);
		}
	});
}

function formuTemizle(form)
{   
	$(form).find("input").each(function()
	{			
		$(this).val("");
		
	});	
	
	$(form).find("select").each(function()
	{	
		$(this).val("");
	});
	
	$(form).find("textarea").each(function()
	{	
		$(this).text("");
	});
}

 		

$(function() 
{
	$('.date').datepicker({ dateFormat: 'dd.mm.yy',changeYear: true, yearRange: '-5:+5' ,showButtonPanel: true, showOn: 'both',buttonImageOnly: true, currentText: 'Bugün', closeText: 'Kapat', buttonImage: BASE_URL+'/images/calendar.png', dayNamesMin:['Pz', 'Pt', 'Sa', 'Çar', 'Pr', 'Cu', 'Ct'], monthNames:['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], constrainInput: true});
	$("#main_menu span").toggle(
	function(){
	    if($(this).next().css("display")=="block")
	    {
	        $(this).next().hide();$(this).removeClass("selected");
	    }
	    else
	    {
	        $(this).next().show(); $(this).addClass("selected");
	    }
	},
	function(){
	    if($(this).next().css("display")=="block")
	    {
	        $(this).next().hide();$(this).removeClass("selected");
	    }
	    else
	    {
	        $(this).next().show(); $(this).addClass("selected");
	    }
	}
	);
	$("#loading").ajaxStart(function(){
	    loadingDialog();
	});
	$("#loading").ajaxComplete(function(event,request, settings){
       $("#loading_dialog").remove();
     });     
    
     if($("#upload_button").length>0)
     {        
         upload=new AjaxUpload('upload_button', 
             {
                action: BASE_URL+'/fileupload.aspx',
                autoSubmit: false,
                onChange: function(file, extension)
                {
                    $("#upload_file_name").val(file);
                    upload.ext=extension;                    
                }

             }
         
         );
     }
     if($("#upload_button2").length>0)
     {        
         upload2=new AjaxUpload('upload_button2', 
             {
                action: BASE_URL+'/fileupload.aspx',
                autoSubmit: false,
                onChange: function(file, extension)
                {
                    $("#upload_file_name2").val(file);
                    upload2.ext=extension;
                }

             }
         
         );
     }
     
     online();
    setInterval(online, 30000);

});


