' VBScript File
' VALIDAÇÃO DO CGC / CNPJ
function Valida_CGC(CGC)

	If InStr(1,CGC,".") > 0 Or _
	   InStr(1,CGC,"-") > 0 Or _ 
	   InStr(1,CGC,"/") > 0 Then 
	    Valida_CGC = False
	    exit function
	End If

	if Len(CGC)<>14 then 
	    Valida_CGC = False
	    exit function
	end if

	Dim Mz()
	Redim Mz(14)
	Dim A, B, IA, IB
	Dim DVA, DVB  
	Dim RA, RB
	Dim i
		  
	Valida_CGC = True

	For i = 1 to 14
		Mz(i) = Mid(CGC,i,1)
	Next

	A = 0
	B = 0
	IA = 5
	IB = 6

	For i = 1 to 12
		A = A + (Mz(i) * IA)
		B = B + (Mz(i) * IB)
		IA = IA - 1
		if IA = 1 then IA = 9
		IB = IB - 1
		if IB = 1 then IB = 9
	next

	RA = A - (int(A/11) * 11)
	if RA < 2 then DVA = 0 else DVA = 11 - RA

	B = B + (2 * DVA)
	RB = B - (int(B/11) * 11)
	if RB < 2 then DVB = 0 else DVB = 11 - RB

	If (DVA <> CINT(Mz(13))) or (DVB <> CINT(Mz(14))) then 
		Valida_CGC = False
	End If
	Erase Mz
end function 

' VALIDAÇÃO DO CPF
Function Valida_CPF(CPF)

	If InStr(1,CPF,".") > 0 Or _
	   InStr(1,CPF,"-") > 0 Or _ 
	   InStr(1,CPF,"/") > 0 Then 
	    Valida_CPF = False
	    exit function
	End If

	if Len(CPF)<>11 then 
	    Valida_CPF = False
	    exit function
	end if

	Dim Mz()
	Redim Mz(11)
	Dim A, B, Qtd
	Dim DVA, DVB 
	Dim i

	Valida_CPF = true

	For i = 1 to 11
		Mz(i) = Mid((Trim(CPF)),i,1)
	Next
		  
	A = 0
	B = 0
	Qtd = 11

	For i = 1 to 9
		A = A + (Mz(i) * (Qtd - 1))
		B = B + (Mz(i) * Qtd)
		Qtd = Qtd - 1
	next

	DVA = 11 - (A - (Int(A/11) * 11))

	If DVA = 10 or DVA = 11 then DVA = 0

	B = B + (2 * DVA)

	DVB = 11 - (B - (Int(B/11) * 11))

	If DVB = 10 or DVB = 11 then DVB = 0

	If (DVA <> CINT(Mz(10))) or (DVB <> CINT(Mz(11))) then 
		Valida_CPF = false
	End if

	Erase Mz
End Function

