﻿function validate_type(value, type) {
    function isEmpty(s) { return ((s == null) || (s.length == 0)); }
    function isDigit(c) { return ((c >= "0") && (c <= "9")); }

    var switcher = {
        Value: function(v) { return !(v == ""); },
        Integer: function(v) {
            if (isEmpty(v)) {
                return false;
            }
            for (var i = 0; i < v.length; i++) {
                if (!isDigit(v.charAt(i))) { return false; }
            }
            return true;
        },
        Email: validateEmail,
        Date: validateDate,
        SSN: validateSSN,
        ekkert: function(v) { return true; }
    }
    return switcher[type](value);
}
function validateDate(date) {
    if (date == "")
        return false;    
    else
        return true;
}
function validateEmail(email) {
    var filter = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
    return filter.test(email);
}

function validateSSN(ssn)
{	
		
	if(ssn.length == 0) 
	    return false;

	var regex = new RegExp("^([0-9]{6})(-?)([0-9]{3})[890]$");
	if(!regex.test(ssn))
		return false;
	
	ssn = ssn.replace("-" , "");
	
	if(ssn.length != 10)
		return false;
	
	var nSumma = parseInt(ssn.substr(0,1)) * 3 + parseInt(ssn.substr(1,1)) * 2 +
				parseInt(ssn.substr(2,1)) * 7 + parseInt(ssn.substr(3,1)) * 6 +
				parseInt(ssn.substr(4,1)) * 5 + parseInt(ssn.substr(5,1)) * 4 +
				parseInt(ssn.substr(6,1)) * 3 + parseInt(ssn.substr(7,1)) * 2;

	var nVartala = 11 - (nSumma % 11);

	if( nVartala == 11 )
		nVartala = 0;

	if( nVartala != parseInt(ssn.substr(8,1)) )
		return false; 
	else
		return true;
}







