﻿


//integer girişlerin kontrolü
function ConfirmInteger(_obj)
{

                                        //nokta virgül
    var newStr=AllowOnlyNumbers(_obj.value,false,false);
    if(_obj.value.length!=newStr.length)
        _obj.value=newStr;
   
}

//integer girişlerin kontrolü
function ConfirmMoney(_obj)
{

                                        //nokta virgül
    var newStr=AllowOnlyNumbers(_obj.value,false,true);
    if(_obj.value.length!=newStr.length)
        _obj.value=newStr;
   
}   
                                    //nokta         //virgül
function AllowOnlyNumbers(strNumber,allowPointer1,allowPointer2)
{
    var lastLen=0;
    var tempStr=strNumber;
    
    for(var i=0;i<=9;i++)
    {
        var re = /i/g
        strNumber=strNumber.replace(new RegExp(i,"g"),"");
    }
    
    if(allowPointer1)
       strNumber=strNumber.replace(".","");
        
   if(allowPointer2)
       strNumber=strNumber.replace(",","");
        
       lastLen=strNumber.length;
       
       if(lastLen!=0)
       {
           //diğer karkterleri çıkar
           for(var j=0;j<lastLen;j++)
           {
                tempStr=tempStr.replace(strNumber.substring(j,j+1),"");
           }  
       }
       
       return tempStr;
}

function FocusActions(_obj,isFocus)
{
    if(isFocus)
        _obj.style.backgroundColor='#FFFFFF';
    else
        _obj.style.backgroundColor='#F6F6FF';
        
    //küçük harfleri dönüştür.
    var ctl=new Array('txtNAME','txtLASTNAME','txtMAINROAD1','txtMAINROAD2');
    var char1=new Array('a','b','c','ç','d','e','f','g','ğ','h','ı','i','j','k','l','m','n','o','ö','p','q','r','s','ş','t','u','ü','v','w','y','z');
    var char2=new Array('A','B','C','Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M','N','O','Ö','P','Q','R','S','Ş','T','U','Ü','V','W','Y','Z');
    
    if(!isFocus)
    {
        var b=false;
        
        for(var i=0;i<ctl.length;i++)
        {
            if(_obj.id==ctl[i])
            {
                b=true;
                break;
            }
        }
        
        if(b)
        {
            var str=_obj.value;
            
            for(var i=0;i<char1.length;i++)
            {
                str=str.replace(new RegExp(char1[i],"g"),char2[i]);
            }
            _obj.value=str;
        }
    }
}

function ConfirmEmail(str) 
{


  var at="@"
  var dot="."
  var lat=str.indexOf(at)
  var lstr=str.length
  var ldot=str.indexOf(dot)
  if (str.indexOf(at)==-1){
     return false
  }
  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
     return false
  }
  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
      return false
  }
   if (str.indexOf(at,(lat+1))!=-1){
      return false
   }
   if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
      return false
   }
   if (str.indexOf(dot,(lat+2))==-1){
      return false
   }
   if (str.indexOf(" ")!=-1){
      return false
   }
   return true          
}


function ConfirmDate(e,_obj)
{
    if(_obj.readOnly)
        return false;
        
    var keynum;
    var keychar;
    var numcheck;
    
    var minYear=1900;
    var maxYear=2999;
    
    var seperator='/';
    var mask='_';
    
	if(window.event) // IE
  	{
  		keynum = e.keyCode;
  	}
	else if(e.which) // Netscape/Firefox/Opera
  	{
  		keynum = e.which;
  	}
    
    //alert(keynum);

    var t=0; //0: izin verilmeyen tuşlar 1-izin verilen tuşlar 2-şartlı izin verilen tuşlar
    var b= false;
    var pos;
	if(window.event) // IE
  	{
        if(event.shiftKey || event.altKey)
            return false;
    }
    else if(e.which) // Netscape/Firefox/Opera
  	{
  		if(e.which.shiftKey || e.which.altKey)
            return false;
  	}
    //numerik tuşlar
    if((keynum>47 && keynum<58) || (keynum>95 && keynum<106))
    {
        b=true;
        pos=GetCaretPosition(_obj);
        
        if(pos==2 || pos==5)
            pos++;
        else
            if(pos==10)
                b=false;
                
                //alert(b);
        if(b)
        {
            var str = _obj.value.substring(0,pos) + _obj.value.substring(pos+1);
            
            var strDate = str.split(seperator);
            var keychar = GetCharCode(keynum);
            //girilen tarih doğru mu?
            //gün
            if(pos==0 || pos==1)
            {
                var day;
                
                if(pos==0)
                {
                    //gün kısmı için ilk karakter girildi ise ; 4 den küçük olmalı
                    if(parseInt(keychar)>3)
                        b=false;
                    else
                    {
                        //gün kısmında ilk karakter girilirken daha önce 2. karakter girildi ise; birlikte 0'dan büyük 32 den küçük olmalı
                        day = ReplaceHex( keychar + strDate[0].replace(mask,'') );
                        if(day.length==2 && (parseInt(day)>31 || parseInt(day)<=0))
                            b=false;
                     }       
                    
                }
                else
                {
                   //gün kısmı için 2. karakter girildi ise ; 32 den küçük olmalı, 0 dan büyük olmalı
                   //1. karakter girilmedi ise kontrole gerek yok
                   day = ReplaceHex( strDate[0].replace(mask,'') + keychar );
                   if(day.length==2 && (parseInt(day)>31 || parseInt(day)<=0))
                        b=false;
                }
                
            }
            
            if(pos==3 || pos==4)
            {
                var month;
                
                //ay kısmı için 1 karakter girildi ise ; 2 den küçük olmalı
                if(pos==3)
                {
                    if(parseInt(keychar)>1)
                        b=false;
                    else
                    {
                        //ay kısmında ilk karakter girilirken daha önce 2. karakter girildi ise; birlikte 0'dan büyük 13 den küçük olmalı
                        month = ReplaceHex( keychar + strDate[1].replace(mask,'') );
                        if(month.length==2 && (parseInt(month)>12 || parseInt(month)<=0))
                            b=false;
                     } 
                }
                else
                {
                    //ay kısmı için 2 karakter girildi ise ; 13 den küçük olmalı,0 dan büyük olmalı
                   month = ReplaceHex( strDate[1].replace(mask,'') + keychar );
                   if(month.length==2 && (parseInt(month)>12 || parseInt(month)<=0))
                        b=false;
                }
            }
            
            //yıl kısmı için girilen rakam 0000 dan farklı olmalı
            if(pos>=6)
            {
                var year;
                
                if(pos==6)
                {
                    //yıl için ilk karakter belirlenen min-max yıllarının ilk rakamları arasında olmalı
                    if(parseInt(keychar)<parseInt(minYear.toString().substr(0,1)) || parseInt(keychar)>parseInt(maxYear.toString().substr(0,1)) )
                        b=false;
                    else
                    {
                        //ikinci karakter girildi ise birlikte min-max yıllarının ilk iki rakamın oluşturduğu sayılar arasında olmalı 
                        year = keychar + strDate[2].substr(0,1).replace(mask,'');
                        if(year.length==2)
                        {
                            if(parseInt(year)< parseInt( minYear.toString().substr(0,2)) ||  parseInt(year)> parseInt(maxYear.toString().substr(0,2)) )
                                b=false;
                        }
                        
                    }   
                }
                else
                {
                    if(pos==7)
                    {
                        year =  strDate[2].substr(0,1).replace(mask,'') + keychar;
                        if(year.length==2)
                        {
                            if(parseInt(year)< parseInt( minYear.toString().substr(0,2)) ||  parseInt(year)> parseInt(maxYear.toString().substr(0,2)) )
                                b=false;
                        }
                    }
                }
            }
            
            if(b)
            {
                if(str.indexOf(mask)==-1)
                {
                    b=ConfirmDateControl(_obj.value.substring(0,pos) + keychar + _obj.value.substring(pos+1),seperator);
                }
                
                if(b)
                {
                    _obj.value = str ;
                    SetCaretPosition(_obj, pos);
                }
            }
        }
            
    }
    else
    {
        //home end vs..
        if(keynum==9 || keynum==20 || keynum==144 || keynum==35 || keynum==36 || keynum==37 || keynum==39 || keynum==91 || keynum==13 || keynum==27 || (keynum>111 && keynum<124))
        {
            b=true;
        }
        else
        {
            b=false;
            
            //backspace - delete
            if(keynum==8 || keynum==46)
            {
                pos=GetCaretPosition(_obj);
                
                if(keynum==8)
                {
                    if(pos==3 || pos==6)
                        pos--;
                        
                    SetCaretPosition(_obj, pos);
                    
                    if(pos>0)
                    {
                        _obj.value = _obj.value.substring(0,pos-1) + mask + _obj.value.substring(pos);
                        SetCaretPosition(_obj, pos-1);
                    }
                    
                }
                else
                {
                    if(pos==2 || pos==5)
                        pos++;
                        
                    SetCaretPosition(_obj, pos);
                    
                    if(pos<10)
                    {
                        _obj.value = _obj.value.substring(0,pos) + mask + _obj.value.substring(pos+1);
                        SetCaretPosition(_obj, pos+1);
                    }
                }
            }
            else
                 b=false;
        }
           
    }
    
    

	//;

	//numcheck = /\d/;

	return b;//!numcheck.test(keychar);
}

function SetCaretInit(elem) 
{
    SetCaretPosition(elem,elem.value.indexOf('_'));
}

function SetCaretPosition(elem, caretPos) {
    //var elem = document.getElementById(elemId);

    if(elem != null) {
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else {
            if(elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else
                elem.focus();
        }
    }
}

function GetCaretPosition (oField) {
    //var oField=document.getElementById(elemId);
    
     // Initialize
     var iCaretPos = 0;

     // IE Support
     if (document.selection) { 

       // Set focus on the element
       oField.focus ();
  
       // To get cursor position, get empty selection range
       var oSel = document.selection.createRange ();
  
       // Move selection start to 0 position
       oSel.moveStart ('character', -oField.value.length);
  
       // The caret position is selection length
       iCaretPos = oSel.text.length;
     }

     // Firefox support
     else if (oField.selectionStart || oField.selectionStart == '0')
       iCaretPos = oField.selectionStart;

     // Return results
     return (iCaretPos);
   }
   
function DisableRightClick(event)
{
    //For mouse right click 
    if (event.button==2)
    {
        alert("Sağ tıklamaya izin verilmiyor!");
    } 
    
}

function ReplaceHex(str)
{
    str=str.replace('01','1');
    str=str.replace('02','2');
    str=str.replace('03','3');
    str=str.replace('04','4');
    str=str.replace('05','5');
    str=str.replace('06','6');
    str=str.replace('07','7');
    str=str.replace('08','8');
    str=str.replace('09','9');
    return str;
}

function ConfirmDateControl(str,seperator)
{
    var b=true;
    
    var strDate=str.split(seperator);
    
    var day = ReplaceHex(strDate[0]);
    var month= ReplaceHex(strDate[1]);
    var year= parseInt(strDate[2]);
    
    var monthNames=new Array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
    
    //31 çeken aylar 1-3-5-7-8-10-12
    
    //30 çeken aylar kontrolü 4-6-9-11
    if(month==4 || month==6 || month==9 || month==11)
    {
        if(day>30)
        {
            b=false;
            alert(monthNames[month-1] + ' ayı en fazla 30 çekebilir.');
        }
    }
    else
    {
        //şubat her 4 yılda 29 çeker
        if(month==2)
        {
            if(year%4==0 && day>29)
            {
                b=false;
                alert(monthNames[month-1] + ' ayı ' + year.toString() + ' yılında en fazla 29 çekebilir.');
            }
            else
            {
                if(year%4!=0 && day>28)
                {
                    b=false;
                    alert(monthNames[month-1] + ' ayı ' + year.toString() + ' yılında en fazla 28 çekebilir.');
                }
            }
        }
    }
    
    
    return b;
}


function ConfirmPhone(e,_obj)
{

    if(_obj.readOnly)
        return false;
        
    var keynum;
    var keychar;
    //var numcheck;
    
//    var minYear=1900;
//    var maxYear=2999;
    
    var seperator='-';
    var mask='_';
    
	if(window.event) // IE
  	{
  		keynum = e.keyCode;
  	}
	else if(e.which) // Netscape/Firefox/Opera
  	{
  		keynum = e.which;
  	}
    
    //alert(keynum);

    var t=0; //0: izin verilmeyen tuşlar 1-izin verilen tuşlar 2-şartlı izin verilen tuşlar
    var b= false;
    var pos;
	if(window.event) // IE
  	{
        if(event.shiftKey || event.altKey)
            return false;
    }
    else if(e.which) // Netscape/Firefox/Opera
  	{
  		if(e.which.shiftKey || e.which.altKey)
            return false;
  	}
        
    //numerik tuşlar
    if((keynum>47 && keynum<58) || (keynum>95 && keynum<106))
    {
        
        b=true;
        pos=GetCaretPosition(_obj);
        
        if(pos==0 || pos==5  || pos==9 || pos==12)
            pos++;
        else
        {
            if(pos==4)
                pos=pos+2;
            else
            {
                if(pos==15)
                    b=false;
             }
         }       
                //alert(keynum);
                
        //ilk karakter yazılıyorsa ve basılan tuş 0 ise izin verme
        if(pos==1 && (keynum==48 || keynum==96))
            b=false;
                
        if(b)
        {
            var str = _obj.value.substring(0,pos) + _obj.value.substring(pos+1);
            //alert(str);
            _obj.value = str ;
            SetCaretPosition(_obj, pos);
        }
  
            
    }
    else
    {
        //home end vs..
        if(keynum==9 || keynum==20 || keynum==144 || keynum==35 || keynum==36 || keynum==37 || keynum==39 || keynum==91 || keynum==13 || keynum==27 || (keynum>111 && keynum<124))
        {
            b=true;
        }
        else
        {
            b=false;
            
            //backspace - delete
            if(keynum==8 || keynum==46)
            {
                pos=GetCaretPosition(_obj);

                if(keynum==8)
                {
//                    if(pos==3 || pos==6)
//                        pos--;

                    switch(pos)
                     {
                        case 1:
                            mask='(';
                            break;
                        case 5:
                            mask=')';
                            break;
                        case 6:
                            mask=' ';
                            break;
                        case 10:
                            mask='-';
                            break;
                        case 13:
                            mask='-';
                            break;
                        default :
                            mask='_';
                            break;
                     }
                    SetCaretPosition(_obj, pos);
                    
                    if(pos>0)
                    {    
                        _obj.value = _obj.value.substring(0,pos-1) + mask + _obj.value.substring(pos);
                        SetCaretPosition(_obj, pos-1);
                    }
                    
                }
                else
                {
                    switch(pos)
                     {
                        case 0:
                            mask='(';
                            break;
                        case 4:
                            mask=')';
                            break;
                        case 5:
                            mask=' ';
                            break;
                        case 9:
                            mask='-';
                            break;
                        case 12:
                            mask='-';
                            break;
                        default :
                            mask='_';
                            break;
                     }
                        
                    SetCaretPosition(_obj, pos);
                    
                    if(pos<15)
                    {
                        _obj.value = _obj.value.substring(0,pos) + mask + _obj.value.substring(pos+1);
                        SetCaretPosition(_obj, pos+1);
                    }
                }
            }
            else
                 b=false;
        }
           
    }
    
    

	//;

	//numcheck = /\d/;

	return b;//!numcheck.test(keychar);
}


function GetCharCode(keynum)
{
    if(keynum>90)
        keynum=keynum-48;
        
    var ret='';
    switch(keynum)
    {
        case 48:
            ret='0';
            break;
        case 49:
            ret='1';
            break;
        case 50:
            ret='2';
            break;
        case 51:
            ret='3';
            break;
        case 52:
            ret='4';
            break;
        case 53:
            ret='5';
            break;
        case 54:
            ret='6';
            break;
        case 55:
            ret='7';
            break;
        case 56:
            ret='8';
            break;
        case 57:
            ret='9';
            break;
    }
    
    return ret;
}


function ConfirmTime(e,_obj)
{
    if(_obj.readOnly)
        return false;
    var keynum;
    var keychar;
    var numcheck;
    
    var seperator=':';
    var mask='_';
    
	if(window.event) // IE
  	{
  		keynum = e.keyCode;
  	}
	else if(e.which) // Netscape/Firefox/Opera
  	{
  		keynum = e.which;
  	}
    

    var b= false;
    var pos;
    
	if(window.event) // IE
  	{
        if(event.shiftKey || event.altKey)
            return false;
    }
    else if(e.which) // Netscape/Firefox/Opera
  	{
  		if(e.which.shiftKey || e.which.altKey)
            return false;
  	}
        
    //alert(keynum);
    //numerik tuşlar
    if((keynum>47 && keynum<58) || (keynum>95 && keynum<106))
    {
        //alert(keynum);
        b=true;
        pos=GetCaretPosition(_obj);
        
        if(pos==2)
            pos++;
        else
            if(pos==5)
                b=false;
                
                //alert(b);
        if(b)
        {
            var str = _obj.value.substring(0,pos) + _obj.value.substring(pos+1);
            
            var strTime = str.split(seperator);
            var keychar = GetCharCode(keynum); //String.fromCharCode(keynum);
            
            //girilen saat doğru mu?
            //saat
            if(pos==0 || pos==1)
            {
                var h;
                
                if(pos==0)
                {
                    //saat kısmı için ilk karakter girildi ise ; 3 den küçük olmalı
                    if(parseInt(keychar)>2)
                        b=false;
                    else
                    {
                        //saat kısmında ilk karakter girilirken daha önce 2. karakter girildi ise; birlikte 0'dan büyük 24 den küçük olmalı
                        h = ReplaceHex( keychar + strTime[0].replace(mask,'') );
                        if(h.length==2 && (parseInt(h)>23))
                            b=false;
                     }       
                    
                }
                else
                {
                   //saat kısmı için 2. karakter girildi ise ; 23 den küçük olmalı, 0 dan büyük olmalı
                   //1. karakter girilmedi ise kontrole gerek yok
                   h = ReplaceHex( strTime[0].replace(mask,'') + keychar );
                   if(h.length==2 && (parseInt(h)>23))
                        b=false;
                }
                
            }
            
            if(pos==3 || pos==4)
            {
                var m;
                
                //dakika kısmı için 1 karakter girildi ise ; 6 den küçük olmalı
                if(pos==3)
                {
                    if(parseInt(keychar)>5)
                        b=false;
                    else
                    {
                        //dakika kısmında ilk karakter girilirken daha önce 2. karakter girildi ise; birlikte 0'dan büyük 60 den küçük olmalı
                        m = ReplaceHex( keychar + strTime[1].replace(mask,'') );
                        if(m.length==2 && (parseInt(m)>59))
                            b=false;
                     } 
                }
                else
                {
                    //dakika kısmı için 2 karakter girildi ise ; 60 den küçük olmalı
                   m = ReplaceHex( strTime[1].replace(mask,'') + keychar );
                   if(m.length==2 && (parseInt(m)>59))
                        b=false;
                }
            }
            
                if(b)
                {
                    _obj.value = str ;
                    SetCaretPosition(_obj, pos);
                }
                
        }//b      
    }//num
    else
    {
        //home end vs..
        if(keynum==9 || keynum==20 || keynum==144 || keynum==35 || keynum==36 || keynum==37 || keynum==39 || keynum==91 || keynum==13 || keynum==27 || (keynum>111 && keynum<124))
        {
            b=true;
        }
        else
        {
            b=false;
            
            //backspace - delete
            if(keynum==8 || keynum==46)
            {
                pos=GetCaretPosition(_obj);
                
                if(keynum==8)
                {
                    //alert('ok')
                    if(pos==3)
                        pos--;
                        
                    SetCaretPosition(_obj, pos);
                    
                    if(pos>0)
                    {
                        _obj.value = _obj.value.substring(0,pos-1) + mask + _obj.value.substring(pos);
                        SetCaretPosition(_obj, pos-1);
                    }
                    
                }
                else
                {
                    if(pos==2)
                        pos++;
                        
                    SetCaretPosition(_obj, pos);
                    
                    if(pos<5)
                    {
                        _obj.value = _obj.value.substring(0,pos) + mask + _obj.value.substring(pos+1);
                        SetCaretPosition(_obj, pos+1);
                    }
                }
            }
            else
                 b=false;
        }
           
    }
    
    return b;
}