
//Currency 
function check_currency(dValue) 
{
    // Trim any whitespace...
    dValue = dValue.replace(/\s/g, "");

    // Match the currency format
    if(dValue.length == 0) 
	{
         return false;
    }
    else if(dValue.search(/^\$?\d{1,3}(,?\d{3})*(\.\d{1,2})?$/) == -1) 
	{
         return false;
    }
    else {
         return true;
    }
	return true;
}

function removeComma(iValue)
{
	iValue = iValue.replace(/,/g, "");
	return iValue;
}

function check_postcode(sValue)
{ 
    // Trim any whitespace...
    sValue = sValue.replace(/\s/g, "");
	sValue = sValue.toUpperCase()
	var reg = /^[A-Z]{1,2}[0-9]{1,2}[0-9]{1}[A-Z]{2}/  // Spaces have been removed previously
    // Match the currency format
    if(sValue.length == 0) 
	{
         return false;
    }
    else if(!reg.test(sValue)) 
	{
         return false;
    }
	return true;
}

function check_email(sValue)
{
	var str = sValue;
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(str) && reg2.test(str)) 
	{
	    return true;
	}
	return false;
}

function check_password_strong(sPassword1, sPassword2, iLengthMin, iLengthMax)
{
  	if ((sPassword1.length < 8) || (sPassword1.length > 12))
  	{
    	alert("Please enter at between 8 and 12 characters for your password");
    	return (false);
  	}

	var str = sPassword1;
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^[a-zA-Z]\w{3,14}$/; // valid
	if (!reg1.test(str) && reg2.test(str)) 
	{
	    return true;
	}
	return false;
}

function check_humanAdultAge(sValue)
{ 
    // Trim any whitespace...
    sValue = sValue.replace(/\s/g, "");
	var reg = /^[0-9]{2,3}/  // Spaces have been removed previously
    // Match the currency format
    if(sValue.length == 0) 
	{
         return false;
    }
    else if(!reg.test(sValue)) 
	{
         return false;
    }
	return true;
}
function check_humanAge(sValue)
{ 
    // Trim any whitespace...
    sValue = sValue.replace(/\s/g, "");
	var reg = /^[0-9]{1,3}/  // Spaces have been removed previously
    // Match the currency format
    if(sValue.length == 0) 
	{
         return false;
    }
    else if(!reg.test(sValue)) 
	{
         return false;
    }
	return true;
}

function check_Age(sValue, iMin, iMax)
{ 
    // Trim any whitespace...
    sValue = sValue.replace(/\s/g, "");
	var reg = /^[0-9]{1,3}/  // Spaces have been removed previously
    // Match the currency format
    if(sValue.length == 0) 
	{
         return false;
    }
    else if(!reg.test(sValue)) 
	{
         return false;
    }
	else if(sValue < iMin)
	{
	    return false;
	}
	else if(sValue > iMax)
	{
	    return false;
	}
	return true;
}

// Check value against minimum and Maximum
function check_percentage(dValue, iMin, iMax, sMsg)
{
    // Trim any whitespace...
    dValue = dValue.replace(/\s/g, "");

	//We want a series of upto 3 digits, possibly followed by a . and some more
	var reg = /^[0-9]{1,3}[\.]{0,1}[0-9]{0,2}/  // Spaces have been removed previously
	
    // Match the percentage format
    if(dValue.length == 0) 
	{
		sMsg = "Percentage value is not valid\n"
        return false;
    }
    else if(!reg.test(dValue)) 
	{
		sMsg = "Percentage is not a valid format i.e. xxx.yy\n";
       	return false;
    }
	else if(dValue < iMin)
	{
		sMsg = "Percentage too small\n";
	    return false;
	}
	else if(dValue > iMax)
	{
		sMsg = "Percentage too large\n"
	    return false;
	}
	return true;
}

function check_standardDate(sValue)
{
    // Trim any whitespace...
    sValue = sValue.replace(/\s/g, "");

	//We want a series of upto 3 digits, possibly followed by a . and some more
	var reg = /^[0-9]{1,2}[-]{1}[a-zA-Z]{3}[-]{1}[0-9]{4}/  // Spaces have been removed previously
	
    // Match the percentage format
    if(sValue.length == 0) 
	{
        return false;
    }
    else if(!reg.test(sValue)) 
	{
       	return false;
    }
	return true;
}
function check_integerRange(dValue, iMin, iMax)
{
    // Trim any whitespace...
    dValue = dValue.replace(/\s/g, "");
    dValue = dValue.replace(/,/g, "");

    // Match the currency format
    if(dValue.length == 0) 
	{
         return false;
    }
    else if(dValue.search(/[0-9]/) == -1) 
	{
        return false;
    }
	else if(dValue < iMin)
	{
	    return false;
	}
	else if(dValue > iMax)
	{
	    return false;
	}
	return true;
}

// Only check the integer range if the flag is set.
// This function is used for testing values with accompanying check boxes.
function check_integerRangeWithFlag(dValue, iMin, iMax, testFlag)
{
	if (testFlag)
	{
		// Trim any whitespace...
		dValue = dValue.replace(/\s/g, "");
		dValue = dValue.replace(/,/g, "");
	
		// Match the currency format
		if(dValue.length == 0) 
		{
			dValue = -1;
			 return false;
		}
		else if(dValue <= 0) 
		{
			//If there is a -ve then pass it as OK
			dValue = -1
			 return true;
		}
		else if(dValue.search(/[0-9]/) == -1) 
		{
			return false;
		}
		else if(dValue < iMin)
		{
			return false;
		}
		else if(dValue > iMax)
		{
			return false;
		}
	}
	return true;
}

function parseNumber(dValue)
{
	// Trim any whitespace...
	dValue = removeComma(dValue)
	if(!isNumeric(dValue))
	{
		dValue = -1
	}
	return dValue;
}
function isNumeric(dValue)
{
    // Trim any whitespace...
    dValue = dValue.replace(/\s/g, "");

	//We want a series of upto 3 digits, possibly followed by a . and some more
	var reg = /^[-]{0,1}[0-9][.]{0,1}[0-9]/  // Spaces have been removed previously
	
    // Match the percentage format
    if(dValue.length == 0) 
	{
        return false;
    }
    else if(!reg.test(dValue)) 
	{
       	return false;
    }
	return true;
}
