﻿//JS functions for Form Fields Validation

//elems: array içersindeki kontrol edilecek elemaların id listesi
//msg  : kontrol edilen elemanlara ait hata mesajı
//type : =1 Textbox ; =2 Dropdown;=3 Radio Button
function requiredValidator(elems,msg,type)
{
    var i;
    var showError=true;
    var elem;            
    for (i=0;i<elems.length;i++)
    {        
        elem=document.getElementById(elems[i]);          
        if (type==1)
        {      
            if (elem.value.trim()!='')
            {
                showError=false;                
                break;
            }
        }
        else if (type==2)
        {
            if (elem.selectedIndex>0)
            {
                showError=false;                
                break;
            }
        }
        else if (type==3)
        {   
            if (elem.checked)
            {
                showError=false;                
                break;
            }
        }
    }
    if (showError)
    { 
        msg=msg+"\n";
        return msg;  
    }        
    else return '';
}
function validateDate(fld,msg) 
{
    var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    
    
    if ((fld.value.match(RegExPattern)) && (fld.value!='')) 
    {
        return '';
    } 
    else 
    {
        return msg;
        
    } 
}
function intVal(elem,mn,mx,msg)
{
    var r="";
    var field = document.getElementById(elem);
    if (field.value.length>0)
    {
        if (mn>parseInt(field.value))r=msg+'\n';
        if (parseInt(field.value)>mx)r=msg+'\n';
    }
    return r;
}

function compareValidator(e1,e2,msg) 
{
    var r="";
    e1=document.getElementById(e1);
    e2=document.getElementById(e2);
    
    if (e1.value.length>0 || e2.value.length>0)   
    {
        if (e1.value!=e2.value)r=msg+'\n';
    }
    return r;
}

function textCounter(field,cntfield,maxlimit) 
{ 
    var field = document.getElementById(field);
    var cntfield = document.getElementById(cntfield);
    var fieldLength = field.value.length ;
    
    if (fieldLength > maxlimit) 
    {
        field.value = field.value.substring(0, maxlimit); 
    }
    else 
    {
        if (cntfield.type=='text')
            cntfield.value = maxlimit - fieldLength;
        else 
            cntfield.innerHTML = maxlimit - fieldLength;
    }
}

function checkEmail(e,msg)
{
    var r="";        
    var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        var returnval=emailfilter.test(e);
        if (returnval==false)r=msg+"\n";
    }
    return r;
}

function checkDomainNameWithOutExtention(elementId, message) 
{
    var filter = /^[a-zA-z]+$/;
    elementValue = document.getElementById(elementId).value;
    if (elementValue.length > 0) {
        var returnValue = filter.test(elementValue);
        if (returnValue == false)
            return message + '\n';
    }
    return '';
}

var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

var minDigitsInAreaCode = 3;
var minDigitsInPhoneNumber = 7;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {           
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }    
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkPhoneNumberBool(strPhone)
{
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length == minDigitsInPhoneNumber);
}

function checkPhoneNumber(e,msg)
{
    var res;
    var r="";
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        res=checkPhoneNumberBool(e);
        if (!res)r=msg+"\n"
    }
    return r;
}

function checkAreaCodeBool(strAreaCode)
{
    s=stripCharsInBag(strAreaCode,validWorldPhoneChars);
    return (isInteger(s) && s.length == minDigitsInAreaCode);
}

function checkAreaCode(e,msg)
{
    //ARBY-1963 - basinda 1,6,7,8,9 ve 0 olan alan kodu degeri girilememeli

    var returnval;
    var r="";        
    var phoneAreaCode = /^[2-5]\d\d$/;//2,3,4,5 ile baslayan min-max 3 char
   
    e=document.getElementById(e).value;

    if (e.length>0)
    {
        returnval=phoneAreaCode.test(e);
        if (!returnval)
        {
            r=msg+"\n";
        }
    }
    return r;
}

function checkCellPhoneAreaCode(e,msg)
{
    var returnval;
    var r="";        
    
    var CellPhoneAreaCode = /^5\d\d$/;//5 ile baslayan min-max 3 char
   
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        returnval=CellPhoneAreaCode.test(e);
        if (!returnval)
        {
            r=msg+"\n";
        }
    }
    return r;
}


function checkPassword(e,msg)
{
    var r="";        
    //en az 6 char min 1 harf ve 1 sayi icermeli
    var passwordfilter = /^(.{0,}(([a-zA-ZçÇşŞöÖüÜğĞıİ][^a-zA-ZçÇşŞöÖüÜğĞıİ])|([^a-zA-ZçÇşŞöÖüÜğĞıİ][a-zA-ZçÇşŞöÖüÜğĞıİ])).{4,})|(.{1,}(([a-zA-ZçÇşŞöÖüÜğĞıİ][^a-zA-ZçÇşŞöÖüÜğĞıİ])|([^a-zA-ZçÇşŞöÖüÜğĞıİ][a-zA-ZçÇşŞöÖüÜğĞıİ])).{3,})|(.{2,}(([a-zA-ZçÇşŞöÖüÜğĞıİ][^a-zA-ZçÇşŞöÖüÜğĞıİ])|([^a-zA-ZçÇşŞöÖüÜğĞıİ][a-zA-ZçÇşŞöÖüÜğĞıİ])).{2,})|(.{3,}(([a-zA-ZçÇşŞöÖüÜğĞıİ][^a-zA-ZçÇşŞöÖüÜğĞıİ])|([^a-zA-ZçÇşŞöÖüÜğĞıİ][a-zA-ZçÇşŞöÖüÜğĞıİ])).{1,})|(.{4,}(([a-zA-ZçÇşŞöÖüÜğĞıİ][^a-zA-ZçÇşŞöÖüÜğĞıİ])|([^a-zA-ZçÇşŞöÖüÜğĞıİ][a-zA-ZçÇşŞöÖüÜğĞıİ])).{0,})$/;
   
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        var returnval=passwordfilter.test(e);
        if (returnval==false)r=msg+"\n";
    }
    return r;
}

function checkPasswordEnterprise(e,msg)
{
    var r="";        
    //en az 6 char min 
    var passwordfilter = /^.{6,10}$/;
   
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        var returnval=passwordfilter.test(e);
        if (returnval==false)r=msg+"\n";
    }
    return r;
}

function checkPostalCode(e,msg)
{
    var r="";        
    //min-max 5 char
    var CellPhoneAreaCode = /^\d\d\d\d\d$/;
   
    e=document.getElementById(e).value;
    if (e.length>0)
    {
        var returnval=CellPhoneAreaCode.test(e);
        if (returnval==false)r=msg+"\n";
    }
    return r;
}

//function checkAracFiyatBool(strFiyat)
//{
//    return (isInteger(strFiyat) && (strFiyat >= 1000 && strFiyat <= 999999)  );
//}

//function checkAracFiyat(e,msg)
//{
//    var res;
//    var r="";
//    e=document.getElementById(e).value;
//    if (e.length>0)
//    {
//        res=checkAracFiyatBool(e);
//        if (!res)r=msg+"\n"
//    }
//    return r;
//}

function checkSelectionWithOtherTextbox(e,digertext,digercheck,msg)
{
    // select ve ilişkili textbox validasyonu
    // kişi select boxtan bişi seçmeli...
    // seçmedi ise check boxa bakılmalı, işaretli ise textbox a bişi yazılmış olmalı
    // bunlar sağlanmıyor ise hata var demektir.

    // e - select
    // digertext - diger metnin yazilacagi textbox
    // digercheck - diger metin yazilacak mi kontrolu checkbox
    // msg - mesaj sablonu icinde goruntulenmesi istenen kelime

    // kullanim 
    // m+=checkSelectionWithOtherTextbox('MarkaId','MarkaDiger','MarkaDigerCheck','Marka');

    
    var r="";
    //alert(digertext);
    e=document.getElementById(e);
    digertext = document.getElementById(digertext).value;
    digercheck = document.getElementById(digercheck);

    if( e.selectedIndex == 0 ) // selectten bisi secilmemis
    {
        if( digercheck.checked ) // diger checkbox secilmis
        {
            if(digertext.length==0) // isaretli ama text girilmemis...
            {
                r = "Diğer " + msg + " bölümüne " + msg + " yazınız\n"
            }
        }
        else
        { // selecten bisi secilmemisken diger checkbox da isaretlenmemis...
            r = "Bir " + msg + " seçiniz ya da Diğer " + msg + " bölümüne " + msg + " yazınız\n"
        }
    }

    return r;
}
function checkSelectionWithOtherTextbox2(e,msg)
{
  
    
    var r="";
    e=document.getElementById(e);
    if( e.selectedIndex == 0 ) // selectten bisi secilmemis
    {
        r = "Bir " + msg + " seçiniz\n"
    }

    return r;
}

//onkeypress="return alpha(event,numbers)"
var numbers='1234567890';
var charsWebName='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_1234567890';
var charsTextWithOutDash='ABCÇDEFGHIİJKLMNOÖPQRSŞTUÜVWXYZabcçdefghıijklmnoöpqrsştuüvwxyz_1234567890 ';

function CheckAllowChars(e,allow) 
{
    var k;
    k=document.all?parseInt(e.keyCode): parseInt(e.which);
    
    if (k == 8 || k == 0 ) //backspace veya extended tuslar
    {
        return true;
    }
    else
    {
        return (allow.indexOf(String.fromCharCode(k))!=-1);
    }
}


