﻿// JScript File

function ValidateMalString()
{
    //If clientsidevalidation has been marked off, then do not validate
    if (typeof DataValidate != "undefined")
        if (!DataValidate) return true; 
    
    var length = document.forms[0].elements.length;
    for (var i = 0; i < document.forms[0].elements.length; i++) 
    {
        if (document.forms[0].elements[i].value != malstring(document.forms[0].elements[i].value))
            {
                var alertString = "The characters '< >' and '&#' are not permitted.";
                alert (alertString);
                return (false);
            }
     }
     return true;
}

function malstring(string) {
    try
    {
        if(string!="<" && string!=">" && string!="<=" && string!=">=" && string!="<>")
        { 
	        string = string.replace(/\</g,"");
	        string = string.replace(/\>/g, "");
	        string = string.replace(/&#/, "");
	    }
	}
	catch(err)
	{}
	//string = string.replace(/\+/g,"");
	return (string);
}

/* ----------Phone Validation --------------- */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone) {
    var bracket = 3
    strPhone = trim(strPhone)
    if (strPhone.indexOf("+") > 1) return false
    if (strPhone.indexOf("-") != -1) bracket = bracket + 1
    if (strPhone.indexOf("(") != -1 && strPhone.indexOf("(") > bracket) return false
    var brchr = strPhone.indexOf("(")
    //if (strPhone.indexOf("(") != -1 && strPhone.charAt(brchr + 2) != ")") return false
    if (strPhone.indexOf("(") == -1 && strPhone.indexOf(")") != -1) return false
    s = stripCharsInBag(strPhone, validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}



/*-----------------*/
