Dim UyariMesaji,imzaKontrol
UyariMesaji = ""
imzaKontrol = "0"

Sub TarihSirala(TarihAlanlari,TarihAlanIsimleri,count)
Dim i 
	
	for i = 0 to count-1
		if isdate(TarihAlanlari(i)) then
			exit sub			
		end if
	Next

	
	for i = 0 to count-2 	
		if TarihAlanlari(i) = "" then
			TarihAlanlari(i) = TarihAlanlari(i+1)
		
		elseif TarihAlanlari(i+1) = "" then
			TarihAlanlari(i+1) = TarihAlanlari(i+1) 		
		else
			if CDate(TarihAlanlari(i+1)) - CDate(TarihAlanlari(i)) < 0  then
				UyariMesaji = UyariMesaji & TarihAlanIsimleri(i) & " alanı "  & TarihAlanIsimleri(i+1) & " alanından büyük olamaz" & vbCrLf
				Exit Sub	
			end if
		end if
	Next 	
end Sub	

Sub NumAlan(AlanDeger, AlanAdi, MaxDeger, MinDeger, BosKabul)
		
    If Trim(AlanDeger) <> AlanDeger Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanının başında veya sonunda boşluk(lar) bulunmaktadır." & vbCrLf
    End if
    If Instr(1,AlanDeger,"+") > 0 or Instr(1,AlanDeger,"-") > 0 Then 
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçersiz Karakterler İçeriyor." & vbCrLf
		Exit Sub    
	End If
	If IsNumeric(AlanDeger) Then
		If csng(AlanDeger) <> Round(csng(AlanDeger),0) or InStr(AlanDeger,",")>0 or InStr(AlanDeger,".")>0 then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer Tamsayı Olmalıdır." & vbCrLf
	        Exit Sub
		End If
	   If CSng(AlanDeger) > MaxDeger And MaxDeger <> -1 Then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer " & MaxDeger & " Değerinden Büyük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	   If CSng(AlanDeger) < CSng(MinDeger) And MinDeger <> -1 Then			
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer " & MinDeger & " Değerinden Küçük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	Else
		If Not (AlanDeger = "" and BosKabul) then
	      UyariMesaji = UyariMesaji & AlanAdi & " Alanına Nümerik Bir Değer Girilmesi Gereklidir." & vbCrLf
	    	Exit Sub
		End If
	End If	
End Sub

Sub NumAlan2(AlanDeger, AlanAdi, MaxDeger, MinDeger, HaneSayisi,BosKabul)
	
	If Trim(AlanDeger) <> AlanDeger Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanının başında veya sonunda boşluk(lar) bulunmaktadır." & vbCrLf
    End if
    If IsNumeric(AlanDeger) Then
		If csng(AlanDeger) <> Round(csng(AlanDeger),0) or InStr(AlanDeger,",")>0 or InStr(AlanDeger,".")>0 then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer Tamsayı Olmalıdır." & vbCrLf
            Exit Sub
		End If
        If CSng(AlanDeger) > MaxDeger And MaxDeger <> -1 Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer " & (HaneSayisi) & " Haneli Bir Sayı Olmalıdır." & vbCrLf
            Exit Sub
        End If
        If CSng(AlanDeger) < MinDeger And MinDeger <> -1 Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Değer " & (HaneSayisi) & " Haneli Bir Sayı Olmalıdır." & vbCrLf
            Exit Sub
        End If
    Else
		If Not (AlanDeger = "" and BosKabul) then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanına Nümerik Bir Değer Girilmesi Gereklidir." & vbCrLf
        	Exit Sub
		End If
    End If

End Sub
Sub TelefonAlan(AlanDeger, AlanAdi,BosKabul)
	AlanDeger = Trim(AlanDeger)
    If IsNumeric(AlanDeger) Then
		If csng(AlanDeger) <> Round(csng(AlanDeger),0) or InStr(AlanDeger,",")>0 or InStr(AlanDeger,".")>0 then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
            Exit Sub
		End If
        If CSng(AlanDeger) > 9999999999 Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
            Exit Sub
        End If
        If CSng(AlanDeger) < 0 Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
            Exit Sub
        End If
        If Len(AlanDeger) < 10 Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
            Exit Sub
        End If
        If Left(cstr(AlanDeger),1) = "0" Then
            UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
            UyariMesaji = UyariMesaji & " Alan Kodu yazılırken başına 0 eklenmemelidir." & vbCrLf
            Exit Sub
        End If        
    Else
		If Not (AlanDeger = "" and BosKabul) then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanına Alan Kodu + 7 Hane Rakam Girilmelidir." & vbCrLf
        	Exit Sub
		End If
    End If

End Sub

Function TarihAlan(AlanDeger, AlanAdi, BosKabul)
    AlanDeger = Trim(AlanDeger)
    TarihAlan = AlanDeger
    Dim MyIsDate
    MyIsDate = True
    
    if AlanDeger = "" And BosKabul Then Exit function
    if AlanDeger = "" And Not BosKabul then MyIsdate = False

    If Len(Trim(AlanDeger))>0 then
        If IsDate(AlanDeger) Then
         
		    if Mid(AlanDeger,2,1) = "/" Then AlanDeger = "0" & AlanDeger
		    if Mid(AlanDeger,5,1) = "/" Then AlanDeger = Left(AlanDeger,3) & "0" & Right(AlanDeger,Len(AlanDeger)-3)
		    
		    if Len(AlanDeger) <> 10 Then 	
				UyariMesaji = UyariMesaji & AlanAdi & " Alanına (gg/aa/yyyy) Şeklinde Geçerli Bir Tarih Girilmesi Gereklidir." & vbCrLf
				Exit function
			 End if

			if (Mid(AlanDeger,3,1) <> "/" OR Mid(AlanDeger,6,1) <> "/") Then
				MyIsDate = False
			End If 

            If cint(Mid(AlanDeger, 4, 2)) > 12 Then
                MyIsDate = False
            ElseIf DateDiff("d", "01/01/1900", AlanDeger) < 0 Then
                MyIsDate = False
            ElseIf cint(Right(AlanDeger, 4)) > 2050 Then
                MyIsDate = False
            End If
        Else
            MyIsDate = False
        End If
    End If

    If MyIsDate = False then 
		UyariMesaji = UyariMesaji & AlanAdi & " Alanına (gg/aa/yyyy) Şeklinde Geçerli Bir Tarih Girilmesi Gereklidir." & vbCrLf
    End If

End function

Sub TextAlan(AlanDeger, AlanAdi, Uzunluk, BosKabul)
	
    If InStr(AlanDeger,"""")>0 or InStr(AlanDeger,"<")>0 or InStr(AlanDeger,">")>0 or InStr(AlanDeger,"!")>0 or InStr(AlanDeger,chr(39))>0 then
	UyariMesaji = UyariMesaji & AlanAdi & " Alanı Yanlış Karakterler İçeriyor. ' "" < > ! " & chr(39) & " karakterlerini kullanmayınız." & vbCrLf
    End If

    If Len(Trim(AlanDeger))=0 and BosKabul=False Then
	UyariMesaji = UyariMesaji & AlanAdi & " Alanı Boş Bırakılamaz." & vbCrLf
    End If

    If Len(AlanDeger) > Uzunluk Then
	UyariMesaji = UyariMesaji & AlanAdi & " Alanına en uzun " & Uzunluk & " karakter veri girilebilir." & vbCrLf
    End if
    
    If Trim(AlanDeger) <> AlanDeger Then
	UyariMesaji = UyariMesaji & AlanAdi & " Alanının başında veya sonunda boşluk(lar) bulunmaktadır." & vbCrLf
    End if
  
End Sub


Sub BosKontrol(AlanDeger, AlanAdi)
	AlanDeger = Trim(AlanDeger)
    If Len(Trim(AlanDeger))=0 Then
	UyariMesaji = UyariMesaji & AlanAdi & " Alanı Boş Bırakılamaz." & vbCrLf
    End If

End Sub

Function SubmitHelp(pageName)
Dim frm
Dim newWindow
	Set frm = Document.Forms("help_submit_form")
	frm.hlpPageName.value=pageName
	frm.submit
	set newWindow= window.open("","yardim_sayfasi")
	newWindow.focus
End Function

Sub EMailAlan(AlanDeger, AlanAdi, Uzunluk, BosKabul)
	if AlanDeger = "" and BosKabul then exit sub
	
    If InStr(AlanDeger,"""")>0 or InStr(AlanDeger,"<")>0 or InStr(AlanDeger,">")>0 or InStr(AlanDeger,"!")>0 or InStr(AlanDeger,chr(39))>0 then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Yanlış Karakterler İçeriyor. ' "" < > ! " & chr(39) & " karakterlerini kullanmayınız." & vbCrLf
    End If

    If Len(Trim(AlanDeger))=0 and BosKabul=False Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Boş Bırakılamaz." & vbCrLf
    End If

    If Len(AlanDeger) > Uzunluk Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanına en uzun " & Uzunluk & " karakter veri girilebilir." & vbCrLf
    End if
    
    If Trim(AlanDeger) <> AlanDeger Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanının başında veya sonunda boşluk(lar) bulunmaktadır." & vbCrLf
    End if
    If Trim(Left(AlanDeger,4)) = "www." Then 
		UyariMesaji = UyariMesaji & AlanAdi & " Alanının başına www yazmanıza gerek yoktur!" & vbCrLf
    End If
	
	Dim sEmail, nAtLoc
	ChkMail = True
	sEmail = Trim(AlanDeger)
	nAtLoc = InStr(1, sEmail, "@") 
	If Not (nAtLoc > 1 And (InStrRev(sEmail, ".") > nAtLoc + 1)) Then
		ChkMail = False
	ElseIf InStr(nAtLoc + 1, sEmail, "@") > nAtLoc Then
		ChkMail = False
	ElseIf Mid(sEmail, nAtLoc + 1, 1) = "." Then
		ChkMail = False
	ElseIf InStr(1, Right(sEmail, 2), ".") > 0 Then
		ChkMail = False
	End If

	if not (ChkMail) then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı elektronik posta adresi düzenine uygun bir yapıda değildir." & vbCrLf  
	end if
	
End Sub

Function buyukHarfYap(inpControl)
	inpControl.value = UCase(replace(replace(inpControl.value,"ı","I"),"i","İ"))
End Function

Sub IPAlan(AlanDeger, AlanAdi,BosKabul)
	AlanDeger = Trim(AlanDeger)
    If (AlanDeger = "" And BosKabul) then
	    UyariMesaji = UyariMesaji & AlanAdi & " Alanına Geçerli Bir IP Adresi Girilmelidir." & vbCrLf
       	Exit Sub
	End If
	If AlanDeger = "0.0.0.0" or AlanDeger = "255.255.255.255" Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçerli Bir IP Adresi Değildir" & vbCrLf
		UyariMesaji = UyariMesaji & "Her Üç Rakam Grubu 256 dan küçük olmak koşuluyla xxx.xxx.xxx.xxx Şeklinde Geçerli Bir IP Adresi Giriniz." & vbCrLf
		Exit Sub
	End If
	Dim aryIp
	aryIp = Split(AlanDeger,".")
	If UBound(aryIp) <> 3 Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçerli Bir IP Adresi Değildir" & vbCrLf
		UyariMesaji = UyariMesaji & "Her Üç Rakam Grubu 256 dan küçük olmak koşuluyla xxx.xxx.xxx.xxx Şeklinde Geçerli Bir IP Adresi Giriniz." & vbCrLf
		Exit Sub
	Else
		If cstr(aryIp(0)) <> "" And  cstr(aryIp(1)) <> "" And cstr(aryIp(2)) <> "" And cstr(aryIp(3)) <> "" And IsNumeric(aryIp(0)) And IsNumeric(aryIp(1)) And IsNumeric(aryIp(2)) And IsNumeric(aryIp(3)) Then		
			If aryIp(0) > 255 or aryIp(1) > 255 or aryIp(2) > 255 or aryIp(3) > 255 Then 
				UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçerli Bir IP Adresi Değildir" & vbCrLf
				UyariMesaji = UyariMesaji & "Her Üç Rakam Grubu 256 dan küçük olmak koşuluyla xxx.xxx.xxx.xxx Şeklinde Geçerli Bir IP Adresi Giriniz." & vbCrLf
				Exit Sub
			End If
		Else
			UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçerli Bir IP Adresi Değildir" & vbCrLf
			UyariMesaji = UyariMesaji & "Her Üç Rakam Grubu 256 dan küçük olmak koşuluyla xxx.xxx.xxx.xxx Şeklinde Geçerli Bir IP Adresi Giriniz." & vbCrLf		
		End If		
	End If	
End Sub


Sub YTLAlan(AlanDeger, AlanAdi, MaxDeger, MinDeger, BosKabul)
'****************************************************************************
'Aciklama    : YTL Giris Kontrollerini Denetler
'Yazan       : Bilgin Ercument BILTEKIN - Teknoloji Yazilimevi
'Tarih       : 08/07/2005
'****************************************************************************
	If Trim(AlanDeger) <> AlanDeger Then
		UyariMesaji = UyariMesaji & AlanAdi & " Alanının başında veya sonunda boşluk(lar) bulunmaktadır." & vbCrLf
		Exit Sub
   End if
      
   If Instr(1,AlanDeger,"+") > 0 or Instr(1,AlanDeger,"-") > 0 Then 
		UyariMesaji = UyariMesaji & AlanAdi & " Alanı Geçersiz Karakterler İçeriyor." & vbCrLf
		Exit Sub	
	End If
	Dim replaceAlanDeger
	
	If instr(1,AlanDeger,",") > 0 Then
		Dim aryDeger
		Dim AlanDegerKurus
		aryDeger = Split(AlanDeger,",")
		AlanDeger = aryDeger(0)
		AlanDegerKurus = aryDeger(1)	
	End If	
	
	replaceAlanDeger = Replace(Replace(AlanDeger,".",""),",","")	

	If IsNumeric(replaceAlanDeger) Then
		If csng(AlanDeger) <> Round(csng(AlanDeger),0) or InStr(AlanDeger,",")>0 or InStr(AlanDeger,".")>0 then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki YTL Değeri Tamsayı Olmalıdır." & vbCrLf
	        Exit Sub
		End If
	   If CSng(AlanDeger) > MaxDeger And MaxDeger <> -1 Then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki YTL Değeri " & MaxDeger & " Değerinden Büyük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	   If CSng(AlanDeger) < CSng(MinDeger) And MinDeger <> -1 Then			
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki YTL Değeri " & MinDeger & " Değerinden Küçük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	Else
		If Not (replaceAlanDeger = "" and BosKabul) then
	      UyariMesaji = UyariMesaji & AlanAdi & " YTL Alanına Nümerik Bir Değer Girilmesi Gereklidir." & vbCrLf
	    	Exit Sub
		End If
	End If
	
	If IsNumeric(AlanDegerKurus) Then
		If csng(AlanDegerKurus) <> Round(csng(AlanDegerKurus),0) or InStr(AlanDegerKurus,",")>0 or InStr(AlanDegerKurus,".")>0 then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Kuruş Değeri Tamsayı Olmalıdır." & vbCrLf
	        Exit Sub
		End If
	   If CSng(AlanDegerKurus) > 99 Then
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki Kuruş Değeri 99'dan Büyük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	   If CSng(AlanDegerKurus) < 0 Then			
	        UyariMesaji = UyariMesaji & AlanAdi & " Alanındaki YTL Değeri 00'dan Küçük Olamaz." & vbCrLf
	        Exit Sub
	   End If
	Else
		If Not (AlanDegerKurus = "") then
	      UyariMesaji = UyariMesaji & AlanAdi & " Kuruş Kısmına Nümerik Bir Değer Girilmesi Gereklidir." & vbCrLf
	    	Exit Sub
		End If
	End If

End Sub

Function OnlyNumberText()   
'****************************************************************************
'Aciklama    : Sadece Numeric Deger Girilmesi Istenilen Inputlarda Kullanilir
'Yazan       : Bilgin Ercument BILTEKIN - Teknoloji Yazilimevi
'Tarih       : 12/04/2005
'****************************************************************************
	OnlyNumberText =False	          
	Select Case window.event.keyCode		
		Case "48","49","50","51","52","53","54","55","56","57"
		OnlyNumberText = True		
	End Select	
End Function

Function FormatNumberInput(frmName,inputName)
'****************************************************************************
'Aciklama    : Numeric Alanlarin 3 erli gruplar halinde Formatlanmasi
'Yazan       : Bilgin Ercument BILTEKIN - Teknoloji Yazilimevi
'Tarih       : 12/04/2005
'****************************************************************************
   Dim frm
   set frm = document.forms(frmName)
   If eval("frm." & inputName).value <> "" and Len(eval("frm." & inputName).value) > 3 Then
	If IsNumeric(eval("frm." & inputName).value) Then 
	    eval("frm." & inputName).value = FormatNumber(eval("frm." & inputName).value,0)
	End If
   End If
End Function

Function dateInput(frmName,inputName)  
'****************************************************************************
'Aciklama    : Tarih Alanlarina Sadece Numeric Deger Girilmesinin ve Tarih
'					ayiracinin otomatik yapilmasini saglar
'Yazan       : Bilgin Ercument BILTEKIN - Teknoloji Yazilimevi
'Tarih       : 08/07/2005
'****************************************************************************
	dateInput =False          
	Dim frm,str,strValue
   set frm = document.forms(frmName)
	Select Case window.event.keyCode		
		Case "48","49","50","51","52","53","54","55","56","57"
		strValue = eval("frm." & inputName).value		
		For i = 1 to Len(strValue)
			str = str & mid(strValue,i,1)
			if (i = 2 or i = 5) And mid(strValue,i+1,1) <> "/" Then str = str & "/"
		Next
		dateInput = True
		eval("frm." & inputName).value = str
		
	End Select	
End Function

Function elektronikImzaIslemleri (formAdi)
'****************************************************************************
'Aciklama    : e-Imza Isleminin Yapilabilmesi Icin Client Tarafi Islemler
'Yazan       : Bilgin Ercument BILTEKIN - Teknoloji Yazilimevi
'Tarih       : 14/05/2005
'****************************************************************************
	On Error Resume Next
	Const CAPICOM_CURRENT_USER_STORE = 2
	Const CAPICOM_MY_STORE = "My"
	Const CAPICOM_STORE_OPEN_READ_ONLY = 0
	Const CAPICOM_STORE_OPEN_EXISTING_ONLY = 128
	Const CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12
	Const CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128
	Const CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME = 2
	
	imzaKontrol = "0"
	Dim formValue,frm,hashedValue
	Dim oSignedData,oStore,oCerts,oCert,oSignerCert,oSelectedCerts,oHashedData

	Set oStore = CreateObject("CAPICOM.Store")
	Set oCerts = CreateObject("CAPICOM.Certificates")
	Set oStoreCerts = CreateObject("CAPICOM.Certificates")
	Set oSigner = CreateObject("CAPICOM.Signer")
	Set oHashedData = CreateObject("CAPICOM.HashedData")
	
	Set frm = Document.Forms(formAdi)
	
	formValue = ""
	For i = 0 to frm.Elements.Length -1
		If instr(1,frm.Elements(i).Name,"txt") > 0 Then
				formValue = formValue  & frm.Elements(i).value & "#"
		End if
   Next
   
   oStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY Or CAPICOM_STORE_OPEN_EXISTING_ONLY
  
   For i = 1 To oStore.Certificates.Count
		oCerts.Add oStore.Certificates(i)        
   Next
   
   If oCerts.Count = 0 Then
		MsgBox "Geçerli Dijital Sertifika Bulunamamistir! Lütfen Kontrol Ediniz.",vbExclamation,"e-İmza Uyari"
		Exit Function
	Else      
		Set oSelectedCerts = oCerts.Select()        
        'Bir Sertifika Secilmesi Lazim. Eger Secilmezse Hata verecektir.
      If err.number = 0 then 
			Set oSignerCert = oSelectedCerts (1)
		Else
			MsgBox "e-İmza İşlemi Yapabilmek İçin Geçerli Bir Sertifika Seçiniz!.",vbExclamation,"e-İmza Uyari"
			Exit Function
		End If
		
		oHashedData.Algorithm = 0		
		oHashedData.Hash(Unicode2Ansi(formValue))
		hashedValue = oHashedData.Value
		
      oSigner.Certificate = oSignerCert
      Set oSignedData = CreateObject("CAPICOM.SignedData")
      oSignedData.Content = hashedValue
      frm.hdnSignValue.value =  oSignedData.Sign(oSigner)
      frm.hdnFormValue.value = formValue
      'frm.hdnHashValue.value = hashedValue
      
      
      imzaKontrol = "1"
      Set oSignedData = Nothing
      Set oCerts = Nothing
      Set oStore = Nothing
      Set oSigner = Nothing
	End if
   
End Function

Function Unicode2Ansi(unicodestring) 
	Dim lngLoop
	Dim strChar
	Ustr2Bstr = ""
	For lngLoop = 1 to Len(unicodestring)
		strChar = Mid(unicodestring, lngLoop, 1)
		Unicode2ANSI = Unicode2ANSI & ChrB(AscB(strChar))
	Next
End function
