﻿
// functions used in client-side validation

// illegal characters
var sIllegal = '%^*()<>/\|{}[]:;="';

function liteValidation()
{
  sIllegal = '%<>';
}
function pegsValidation() {
  sIllegal = '%<>/\:;&${}[]#~+=';
}

function heavyValidation()
{
  sIllegal = '!&$%^&*()<>?/\|{}[]:;+="';
}

function extremeLiteValidation()
{
  sIllegal = '<>';
}

function dotcheck(s)	{
	// used in email address validation
	var sLen = s.length
	if (s.substr(0,1)=="." || s.substr(sLen-1,1)==".") {
		return false ;
	}
	for ( var i = 0; i < sLen-2; i++ )	{
		if (s.substr(i,2)=="..") {
			return false ;
		}
	}
	return true ;
}


function dotcheck2(s)	{
	// used in email address validation
	var sLen = s.length
	for ( var i = 0; i < sLen-1; i++ )	{
		if (s.substr(i,1)==".") {
			return true ;
		}
	}
	return false ;
}


function isSpace(s) {
	// used in email address validation
	if (s.indexOf(" ") == -1) {
		return false ; 
	}
	else {return true ;}
}

function isEmail (s) {
	// used in email address validation
    	var count = 0;
		var res = 0;
		var retval = "true"
		var str=s
	if (isSpace(s) == true)	{
		return false;
	}	
	res = s.search("@");
	
	if (res > -1) {
		s1 = s.slice(0,res) ;
		s2 = s.slice(res+1) ;
		res = s2.search("@");
		if (res == -1) {
			if (dotcheck(s1) == true && dotcheck(s2) == true && dotcheck2(s2) ==true) {
				retval = "true" ;
			}
			else {retval = "false" ;}
			}
		else {retval = "false" ;}
						
		if (retval == "false") {
			return false ;
		}
		else if (retval == "true") {
			return true ;
		}
		else {return false ;}
	}
	else {return false ;}
}

function isValidEmail(sAddress) {
	if (isBlank(sAddress)) {
		alert("Пожалуйста, укажите адрес электронной почты.");
		return false;
	} else if (!isEmail(sAddress)) {
		alert("Пожалуйста, укажите правильный адрес электронной почты.");
		return false;
	} else {
		return true;
	}
}

        // function to check for alphanumerics
		function isAlphaNum(sValue) {
            var iLen = sValue.length;
            var sAlphaNum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
            for (var i=0; i < iLen ; i ++) {
                var sChar = sValue.substr(i,1);
                if (sAlphaNum.indexOf(sChar) == -1) {
                    return false;
                }
            }
            return true;
        }
        
        // function to check for numerics
		function isNumSpace(sValue) {
            var iLen = sValue.length;
            var sAlphaNum = '0123456789 ';
            for (var i=0; i < iLen ; i ++) {
                var sChar = sValue.substr(i,1);
                if (sAlphaNum.indexOf(sChar) == -1) {
                    return false;
                }
            }
            return true;
        }		
		
		// function to check for illegal characters that will cause trouble in the db
        function isLegal(sValue, bLite) {
            var iLen = sValue.length;
            sTIllegal = sIllegal;
            if (bLite) {
                // less rigid validation
                sTIllegal = '%<>\/';
            }
            for (var i=0; i < iLen ; i ++) {
                var sChar = sValue.substr(i,1);
                if (sTIllegal.indexOf(sChar) > -1) {
                    return false;
                }
            }
            return true;
        }
		
	// function to show an error popup - assumes there's an array called aErrors in the page
function showError(iError, bShow) {
   if (bShow) {
      alert("Please fill in " + aErrors[iError] + ".");
   } else {
      alert(aErrors[iError]);
   }
}

function isBlank(pValue) {
	var sValue = "" + pValue;
	var iLen = sValue.length;
	for (i=0; i<iLen; i++) {
		if (sValue.substr(i,1) != " ") {
			return false;
		}
	}
	return true;
}

function isValid(sValue, sName, bLite) {
    // bLite if true does much less rigid character checks
	if (isBlank(sValue))
	{
		alert('Пожалуйста, проверьте правильность ' + sName + '.\n\nУбедитесь, что поле заполнено.');
		return false;
	}
	else if (!isLegal(sValue, bLite))
	{
		alert('Пожалуйста, проверьте правильность ' + sName + '.\n\nУбедитесь, что поле не содержит одного из следующих символов: ' + sIllegal);
		return false;
	}
	return true;
}

function isValidCountry(sValue) {
	if (sValue=="select") {
		alert('Please select a country')
		return false;
	}
	return true;
}

