﻿//-------------------------         
    function isNumber( value )
    {
        return isFinite( (value * 1.0) );
    } 
//-------------------------                 
    function cellFocus(obj){
        if(obj.style.background!="#ff0000")
            obj.style.background="#FFFFAA";
        if(obj.value=="")
            return;
        obj.value=Temizle(obj.value,".");
        obj.focus();
        obj.select()           
    }
//-------------------------             
    function lostFocus(obj){
        if(obj.style.background!="#ff0000")
            obj.style.background="#ffffff";
        obj.value=formatCurrency(obj.value,0,'.',',')
        return true; 
    }     
//-------------------------     
    function Temizle(deger,str)
    {
    
	    var yeni_deger=deger
		
	    count=deger.split(str)
	    for(kkk=0;kkk<=count.length;kkk++)
	    {
		    yeni_deger=yeni_deger.replace(str,'');
	    }	    
        return(yeni_deger)
        		
    }
//-------------------------         
    function formatNumber(numberStr){
    
        if(numberStr=="" || !isNumber( Temizle(numberStr,".")))
            newNumber=0;
        else
            newNumber=Temizle(numberStr,".");
       return newNumber;
    }    
//-------------------------    
    function formatCurrency(num,yuvarlama,ayracStr,ondalikStr) {
	    if(num==null){num=0}
	    num = num.toString().replace(/\$|\,/g,'');
	    if(isNaN(num))
	        num = "0";
        pow=1;
	    sign = (num == (num = Math.abs(num)));
	    
	    for(i=0;i<yuvarlama;i++)
	        pow=pow*10;

        num = Math.floor(num*pow+0.50000000001);

	    numLength=num.toString().length
	    cents = (num%pow);

	    num = Math.floor(num/pow).toString();
        centsLength=(numLength-num.toString().length)-cents.toString().length
	    for(i=0;i<centsLength;i++){
	        cents ="0"+cents
	    }
	    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	        num = num.substring(0,num.length-(4*i+3))+ayracStr+num.substring(num.length-(4*i+3)); 
        if(yuvarlama>0)  	
            return (((sign)?'':'-') + num + ondalikStr + cents);
        else
            return (((sign)?'':'-') + num);
    }            
//-------------------------         
    function yon(tabIndex,atla)
    {            
        switch(window.event.keyCode) 
        {  
	        case 37: // LEFT ARROW    
	            if(tabIndex==1)        
	                return;
	            for(i=0;i<document.forms[0].elements.length;i++){
	                if(document.forms[0].elements[i].tabIndex==(tabIndex-1)){
	                    document.forms[0].elements[i].focus();
	                    break;
	                }
	            }
		        break ;
	        case 39: // RIGHT ARROW 
	            for(i=0;i<document.forms[0].elements.length;i++){
	                if(document.forms[0].elements[i].tabIndex==(eval(tabIndex)+1)){
	                    document.forms[0].elements[i].focus();
	                    break;
	                }
	            }
		        break ;
	        case 38: // UP ARROW 
        	    if(tabIndex<1)        
                    return;
	            for(i=0;i<document.forms[0].elements.length;i++){
	                if(document.forms[0].elements[i].tabIndex==(eval(tabIndex)-eval(atla))){
	                    try{
	                        document.forms[0].elements[i].focus();
	                    }catch(Error){
	                    
	                    }
	                    break;
	                }
	            }  
		        break ;
	        case 40: // DOWN ARROW 
                //window.event.keyCode = 9        
	            for(i=0;i<document.forms[0].elements.length;i++){
	                if(document.forms[0].elements[i].tabIndex==(eval(tabIndex)+eval(atla))){
                        try{
                            document.forms[0].elements[i].focus();
                        }catch(Error){

                        }
	                    break;
	                }
	            }                 
		        break ;
        }
    }     
//-------------------------     
    function enter2Tab(evt) {    
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type=="text"))  {evt.keyCode = 9;}
    }   
//-------------------------  
    function D_Changed(Obj,objIndex,bolumCount,bolum_kod,D_kural,D1_kural,D2_kural,islem,kural){
        if(bolumCount>1){
            var bool=check(document.all[Obj.lang+"_"+bolum_kod][objIndex])
            var obj=document.all[Obj.lang+"_"+bolum_kod][objIndex]            
        }else{
            var bool=check(document.all[Obj.lang+"_"+bolum_kod])
            var obj=document.all[Obj.lang+"_"+bolum_kod]
        }
        className=obj.className;
        if(kuralKontrol(objIndex,bolumCount,bolum_kod,islem,kural))
        {      
            //return true;
            //obj.style.color='#000000';
            obj.className=className;
            obj.style.backgroundColor='#ffffff';
            returnValue=true
        }
        else{
            obj.className=obj.className+" ";
            obj.style.backgroundColor='#ff0000';
            obj.value=0;
            returnValue=false
            //return false;
        }

        hesaplaRightCell(Obj.lang,objIndex,bolumCount,bolum_kod,D_kural,D1_kural,D2_kural)

        switch(Obj.lang){
            case "D0":
                Hesapla("D0");
                Hesapla("D");
                Hesapla("D1");
                Hesapla("D2");
                break;  
            case "D":
                Hesapla("D");
                Hesapla("D1");
                Hesapla("D2");
                break;
            case "DB":
                Hesapla("DB");
                Hesapla("D1B");
                Hesapla("D2B");
                break;                                                    
        
        }  
        bindButceOzetTable();  
        return returnValue;

    }         
//-------------------------     
    function check(obj) {
        if(isNumber(Temizle(obj.value,".").replace(",","."))==false   ||  obj.value<0){
            alert("Geçersiz Değer Girdiniz!");
            obj.value="";
            obj.focus();
            obj.select();
            return false;
        }                     
        return true;          
    }    
//-------------------------  
function kuralKontrol(objIndex,bolumCount,bolum_kod,islem,kural){
    if(kural=="" || kural==undefined || kural==null)
        return true;
        
    if(bolumCount>1)
        var objD=document.all["D_"+bolum_kod][objIndex];
    else
        var objD=document.all["D_"+bolum_kod];
    objValue=Temizle(objD.value,".");    
    var valid=false;
    evalKural=eval(kural);
  
    switch(islem){
        case "<":
            if(objValue<evalKural)
                valid=true;
            else
                alert(evalKural +" üstünde bir değer yazamazsınız!"); 
            break;
        case "<=":
            if(objValue<=evalKural)
                valid=true;
            else
                alert(evalKural +" üstünde bir değer yazamazsınız!");         
            break;
        case "==":
            if(objValue==evalKural)
                valid=true;
            else
                alert("Sadece "+ evalKural +" girebilirsiniz !");         
            break;
        case ">":
        
            if(objValue>evalKural)
                valid=true;
            else
                alert(evalKural +" altında bir değer yazamazsınız!");        
            break;
        case ">=":
            if(objValue>=evalKural)
                valid=true;
            else
                alert(evalKural +" altında bir değer yazamazsınız!");         
            break;       
    }
    if(!valid){
        objD.focus();
        objD.select();
        //form1.btnKaydet.disabled=true;
    }
    else{
        //form1.btnKaydet.disabled=false;
    }
    return valid; 
}    
//-------------------------         
function hesaplaRightCell(cellName,objIndex,bolumCount,bolum_kod,D_kural,D1_kural,D2_kural){
    if(bolumCount>1){
        if(cellName=="D0")
            var objD0=document.all["D0_"+bolum_kod][objIndex];
        
        var objD=document.all["D_"+bolum_kod][objIndex];
        var objD1=document.all["D1_"+bolum_kod][objIndex];
        var objD2=document.all["D2_"+bolum_kod][objIndex];
        
        if(cellName=="DB" || cellName=="D1B" || cellName=="D2B" ){
            var objDB=document.all["DB_"+bolum_kod][objIndex];
            var objD1B=document.all["D1B_"+bolum_kod][objIndex];
            var objD2B=document.all["D2B_"+bolum_kod][objIndex];                     
        }
    }
    else
    {
        if(cellName=="D0")
            var objD0=document.all["D0_"+bolum_kod];
        
        var objD=document.all["D_"+bolum_kod];
        var objD1=document.all["D1_"+bolum_kod];
        var objD2=document.all["D2_"+bolum_kod];
        
        if(cellName=="DB" || cellName=="D1B" || cellName=="D2B"){
            var objDB=document.all["DB_"+bolum_kod];
            var objD1B=document.all["D1B_"+bolum_kod];
            var objD2B=document.all["D2B_"+bolum_kod];                     
        }            
    }
    //-----------D0 değişince D hesapla----------
    if(cellName=="D0"){
        objD0Value=(objD0.value*D_kural)    //hesaplanmış D hali
    //        if(objD0Value<0 || objD0Value=="")
    //            return
        objD.value=formatCurrency(objD0Value,0,".",","); 
    }
    
        
    objDValue=(Temizle(objD.value,".")*D1_kural)    //hesaplanmış D1 hali

//    if(objDValue<0 || objDValue=="")
//        return
        
    if(cellName=="DB" || cellName=="D1B" || cellName=="D2B"){            
        objD1B.value=formatCurrency((Temizle(objDB.value,".")*D1_kural),0,".",",");     //hesaplanmış D1B hali
        objD2B.value=formatCurrency((Temizle(objD1B.value,".")*D2_kural),0,".",",");    //hesaplanmış D2B hali
        
        if(objD1B.value=="0")
            objD1B.value="";
        if(objD2B.value=="0")
            objD2B.value="";                
                
    }else{ 
        objD1.value=formatCurrency((Temizle(objD.value,".")*D1_kural),0,".",",");     
        objD2.value=formatCurrency((Temizle(objD1.value,".")*D2_kural),0,".",",");             
    }
       
}
//-------------------------         
    function Hesapla(objAlias){
        var bToplam=0;
        var gToplam=0;
        
        for(i=0;i<form1.bolumKod.length;i++){
            bToplam=0;
            bolumKod=form1.bolumKod[i].value
            
            //objLength=document.all[objAlias+"_"+bolum_kod].length
            objLength=document.getElementsByName(objAlias+"_"+bolumKod).length
            
            if(objLength){ 
                var obj=document.getElementsByName(objAlias+"_"+bolumKod);           
                for(j=0;j<objLength;j++){
                    //var obj=document.all[objAlias+"_"+bolumKod][j];                                                                                                                   
                    bToplam=bToplam+1*(formatNumber(obj[j].value))                                                          
                } 
            }
            else{                    
                var obj=document.getElementById(objAlias+"_"+form1.bolumKod[i].value);                       
                bToplam=bToplam+1*(formatNumber(obj.value))                    
            }
            //document.all[objAlias+"T"][i].value=formatCurrency(bToplam,0,".",",");
            document.getElementsByName(objAlias+"T")[i].value=formatCurrency(bToplam,0,".",",");
            gToplam=gToplam+1*(bToplam);
            
        }        
        document.getElementById(objAlias+"GT").value=formatCurrency(gToplam,0,".",",");        
                                
    }
//------------------------- 
function bindButceOzetTable(){
    var DBGT=document.getElementById("DBGT");
    if(DBGT==null){//gelirler
            document.getElementById("lblGelirDT").innerHTML=form1.document.getElementById("DGT").value;
            document.getElementById("lblGelirD1T").innerHTML=form1.document.getElementById("D1GT").value;
            document.getElementById("lblGelirD2T").innerHTML=form1.document.getElementById("D2GT").value;
    }
    else{ 
            document.getElementById("lblGiderDT").innerHTML=formatCurrency(1*(Temizle(form1.document.getElementById("DGT").value,"."))+1*(digerDGT),0,".",",");
            document.getElementById("lblGiderD1T").innerHTML=formatCurrency(1*(Temizle(form1.document.getElementById("D1GT").value,"."))+1*(digerD1GT),0,".",",");
            document.getElementById("lblGiderD2T").innerHTML=formatCurrency(1*(Temizle(form1.document.getElementById("D2GT").value,"."))+1*(digerD2GT),0,".",",");
    }

}   
//------------------------- 
function butceGirisInit(){
    var DBGT=document.getElementById("DBGT");
    var DGT=document.getElementById("DGT");
    
    if(DGT==null)
        return;
    
    if(DBGT==null){//gelirler

        Hesapla("D0");    
        Hesapla("D");
        Hesapla("D1");
        Hesapla("D2");        
    }else{
        Hesapla("D");
        Hesapla("D1");
        Hesapla("D2");
        
        Hesapla("DB");
        Hesapla("D1B");
        Hesapla("D2B");
        
    }

} 
//------------------------- 
function butceAktar(){
    var DBGT=document.getElementById("DBGT");
    if(DBGT!=null){//giderler
        for(i=0;i<form1.bolumKod.length;i++){
            objLength=document.all["D_"+form1.bolumKod[i].value].length
            if(objLength){                
                for(j=0;j<objLength;j++){
                   document.all["DB_"+form1.bolumKod[i].value][j].value=document.all["D_"+form1.bolumKod[i].value][j].value
                   document.all["D1B_"+form1.bolumKod[i].value][j].value=document.all["D1_"+form1.bolumKod[i].value][j].value
                   document.all["D2B_"+form1.bolumKod[i].value][j].value=document.all["D2_"+form1.bolumKod[i].value][j].value  
                }                        
            }
            else{
                   document.all["DB_"+form1.bolumKod[i].value].value=document.all["D_"+form1.bolumKod[i].value].value
                   document.all["D1B_"+form1.bolumKod[i].value].value=document.all["D1_"+form1.bolumKod[i].value].value
                   document.all["D2B_"+form1.bolumKod[i].value].value=document.all["D2_"+form1.bolumKod[i].value].value                      
            }
            
        }
        
        Hesapla("DB");
        Hesapla("D1B");
        Hesapla("D2B");
    }
}
//------------------------- 
//Aktarma taleplerini bakanlık kabulune aktarmak için
function aktarmaAktar(){

    for(i=0;i<form1.bolumKod.length;i++){
        objLength=document.all["DB_"+form1.bolumKod[i].value].length
        if(objLength){                
            for(j=0;j<objLength;j++){
               document.all["DB_"+form1.bolumKod[i].value][j].value=Temizle( document.all["DArtirilan_"+form1.bolumKod[i].value][j].value,".")-Temizle( document.all["DEksiltilen_"+form1.bolumKod[i].value][j].value,".");
               document.all["DB_"+form1.bolumKod[i].value][j].value=formatCurrency(document.all["DB_"+form1.bolumKod[i].value][j].value,"0",".",",");
            }                        
        }
        else{
               document.all["DB_"+form1.bolumKod[i].value].value=Temizle( document.all["DArtirilan_"+form1.bolumKod[i].value].value,".")-Temizle( document.all["DEksiltilen_"+form1.bolumKod[i].value].value,".");
               document.all["DB_"+form1.bolumKod[i].value].value=formatCurrency(document.all["DB_"+form1.bolumKod[i].value].value,"0",".",",");

        }
        
    }
    
    AktarmaHesapla("DB");

}
//-------------------------  
function DArtirilan_Changed(obj,objIndex,bolumCount,bolum_kod){
    if(bolumCount>1){
        var bool=check(document.all[obj.lang+"_"+bolum_kod][objIndex])
    }else{
        var bool=check(document.all[obj.lang+"_"+bolum_kod])
    }

    AktarmaHesapla(obj.lang);    

} 
//-------------------------  
function AktarmaEksiltmeKontrol(BValue,obj){

    BValue=formatNumber(BValue)
    objValue=formatNumber(obj.value)
    
    if(obj.id.indexOf("DEksiltilen_")>-1){
        if(objValue*1>=BValue*1){
            alert("Bakanlığın Kabul Ettiği Bütçeden Daha Fazla Eksiltme Yapamazsınız!\nBütçe Kalemi Devlet Muhasebe Tekniği Açısından En Az 1 TL Kalmalıdır.");
            obj.value=BValue*1-1;
        }        
    }
    if(obj.id.indexOf("DB_")>-1){
        if(objValue*1<0 && (objValue*-1)>=BValue*1){
            alert("Bakanlığın Kabul Ettiği Bütçeden Daha Fazla Eksiltme Yapamazsınız!\nBütçe Kalemi Devlet Muhasebe Tekniği Açısından En Az 1 TL Kalmalıdır.");
            obj.value=BValue*1-1;
        }        
    }    

}
//-------------------------         
function AktarmaHesapla(objAlias){
        var bToplam=0;
        var gToplam=0;
        var bolum_kodLength=0;
                
        bolum_kodLength=form1.bolumKod.length
        
            
        for(i=0;i<bolum_kodLength;i++){
            bToplam=0;
            bolum_kod=form1.bolumKod[i].value
            objLength=document.getElementsByName(objAlias+"_"+bolum_kod).length
            if(objLength){ 
                var obj=document.getElementsByName(objAlias+"_"+bolum_kod);           
                for(j=0;j<objLength;j++){                    
                    bToplam=bToplam+1*(formatNumber(obj[j].value))                                                          
                } 
            }
            else{   
                    var obj=document.getElementById(objAlias+"_"+form1.bolumKod[i].value); 
                    bToplam=bToplam+1*(formatNumber(obj.value))                    
            }
            document.getElementsByName(objAlias+"T")[i].value=formatCurrency(bToplam,0,".",",");
            gToplam=gToplam+1*(bToplam);            
        }        
        document.getElementById(objAlias+"GT").value=formatCurrency(gToplam,0,".",",");        
                                
    }
//-------------------------  
function DEkButce_Changed(obj,objIndex,bolumCount,bolum_kod,islem,kural,GelirGider){
    if(bolumCount>1){
        var bool=check(document.all[obj.lang+"_"+bolum_kod][objIndex])
    }else{
        var bool=check(document.all[obj.lang+"_"+bolum_kod])
    }
    
    
    if(ekButceKuralKontrol(objIndex,bolumCount,bolum_kod,islem,kural))
    {
        EkButceHesapla(obj.lang,GelirGider);
        if(GelirGider=="Gelir"){
            butce=Temizle(document.getElementById("BGTGelir").value,".")*1+Temizle(document.getElementById("DGTGelir").value,".")*1;
        }
        return true;
    }
    else{
        if(bolumCount>1){
            document.all["D_"+bolum_kod][objIndex].value=0;
            document.all["D_"+bolum_kod][objIndex].focus();
        }else{
            document.all["D_"+bolum_kod].value=0;
            document.all["D_"+bolum_kod].focus();
        }    
        return false;
    }       

} 
//-------------------------         
function EkButceHesapla(objAlias,GelirGider){
        var bToplam=0;
        var gToplam=0;
        var bolum_kodLength=0;
                
        bolum_kodLength=form1.bolumKod.length
        
        //DB sayısını tutar            
        DBIndex=0;
        
        for(i=0;i<bolum_kodLength;i++){
            bToplam=0;
            bolum_kod=form1.bolumKod[i].value
            
            if(form1.bolumKod[i].lang!=GelirGider)
                continue;
            
            
            objLength=document.getElementsByName(objAlias+"_"+bolum_kod).length
            if(objLength){ 
                var obj=document.getElementsByName(objAlias+"_"+bolum_kod);           
                for(j=0;j<objLength;j++){                    
                    bToplam=bToplam+1*(formatNumber(obj[j].value))                                                          
                } 
            }  
            else{   
                    var obj=document.getElementById(objAlias+"_"+form1.bolumKod[i].value); 
                    bToplam=bToplam+1*(formatNumber(obj.value))                    
            }
            document.getElementsByName(objAlias+"T")[DBIndex].value=formatCurrency(bToplam,0,".",",");
            gToplam=gToplam+1*(bToplam);
            DBIndex++;                        
        }//end for        
        document.getElementById(objAlias+"GT"+GelirGider).value=formatCurrency(gToplam,0,".",",");        
                                
    }
//-------------------------  
function ekButceKuralKontrol(objIndex,bolumCount,bolum_kod,islem,kural){
    if(kural=="" || kural==undefined)
        return true;
    
    if(bolumCount>1){
        var objD=document.all["D_"+bolum_kod][objIndex];
        var objB=document.all["B_"+bolum_kod][objIndex];}
    else{
        var objD=document.all["D_"+bolum_kod];
        var objB=document.all["B_"+bolum_kod];
    }
        
    objDValue=Temizle(objD.value,".");
    objBValue=Temizle(objB.value,".");
    objDValue=objDValue*1+  objBValue*1;
    kuralValue=eval(kural);
    
    var valid=false;
  
    switch(islem){
        case "<":
            if(objDValue<kuralValue)
                valid=true;
            else
                alert(formatCurrency(kuralValue-objBValue,0,".",",") +" üstünde bir değer yazamazsınız!"); 
            break;
        case "<=":
            if(objDValue<=kuralValue)
                valid=true;
            else
                alert(formatCurrency(kuralValue-objBValue,0,".",",") +" YTL üstünde bir değer yazamazsınız!");         
            break;
        case "=":
            if(objDValue==kuralValue)
                valid=true;
            else
                alert("Sadece "+ formatCurrency(kuralValue-objBValue,0,".",",") +" YTL girebilirsiniz !");         
            break;
        case ">":
        
            if(objDValue>kuralValue)
                valid=true;
            else
                alert(formatCurrency(kuralValue-objBValue,0,".",",") +" YTL altında bir değer yazamazsınız!");        
            break;
        case ">=":
            if(objDValue>=kuralValue)
                valid=true;
            else
                alert(formatCurrency(kuralValue-objBValue,0,".",",") +" YTL altında bir değer yazamazsınız!");         
            break;       
    }
    if(!valid){
        objD.focus();
        objD.select();
        //form1.btnKaydet.disabled=true;
    }
    else{
        //form1.btnKaydet.disabled=false;
    }
    return valid; 
}    
//------------------------- 
//Ek Bütçe taleplerini bakanlık kabulune aktarmak için
function ekButceAktar(){

    for(i=0;i<form1.bolumKod.length;i++){
        if(form1.bolumKod[i].lang!="Gider")
            continue;
            
        objLength=document.all["DB_"+form1.bolumKod[i].value].length
        if(objLength){                
            for(j=0;j<objLength;j++){
               document.all["DB_"+form1.bolumKod[i].value][j].value=document.all["D_"+form1.bolumKod[i].value][j].value;
            }                        
        }
        else{
               document.all["DB_"+form1.bolumKod[i].value].value=document.all["D_"+form1.bolumKod[i].value].value;
        }
        
    }
    
    EkButceHesapla("DB","Gider");

}