
function isIntegerNC(a,lower,upper,msg)
{
	return isIntegerA(a,lower,upper,msg,false);
}

function isInteger(a,lower,upper,msg)
{
	return isIntegerA(a,lower,upper,msg,true);
	
}

function isIntegerA(a,lower,upper,msg,bCheck)
{
	var b = a.value;

	if (bCheck && !checkEntry(a,msg))
	{
		return false;
	}
	
	if (a.value.indexOf('.')>0) {
		b = a.value.substring(0,a.value.indexOf('.'));
	}
	err = internalCheckInt(b,lower,upper);	
	if (err == 1) {
		alert(msg+ " must be an integer.")
		//a.value = '';
		a.focus();
	} else if (err == 2) {
		alert(msg+" must be in range "+lower+" - "+upper+" .")
		//a.value = '';
		a.focus();
	} else
		a.value= b;

	//a.value = a.value.replace(",","")
	return (err==0);
}

function isNumericNC(a,lower,upper,msg)
{
	return isNumericA(a,lower,upper,msg,false);
}

function isNumeric(a,lower,upper,msg)
{
	return isNumericA(a,lower,upper,msg,true);
	
}

function isNumericA(a,lower,upper,msg,bCheck)
{
	var b = a.value;
	
	if (bCheck && !checkEntry(a,msg))
	{
		return false;
	}
	else if(isNaN(b))
	{
		alert(msg+ " must be numeric.")
		a.focus();
		return false;
	}
	else if (parseFloat(b)<lower || parseFloat(b)>upper)
	{
		alert(msg+" must be in range "+lower+" - "+upper+" .")
		a.focus();
		return false;
	}
	else
		return true;
	
}

function internalCheckInt(a,lower,upper) {
	var err = 0;
	if (a != '') 
	{
		for (i=0;i<a.length;i++) {
			var b = a.substring(i,i+1)
			if ((b < '0' || b > '9') && b!=',' && b!='-') {
				err = 1;
			} else if (b==',' && i!=a.length-4
				&& i!=a.length-8){
				err = 1;
			} else if (b=='-' && i!=0){
				err = 1;
			}				
		}
		if (a.substring(0,1)==',') {
			err = 1;
		} else if (a.length>8 && 
			((a.substring(a.length-4,a.length-3)==',' &&
			a.substring(a.length-8,a.length-7)!=',') ||
			(a.substring(a.length-4,a.length-3)!=',' &&
			a.substring(a.length-8,a.length-7)==','))) {
			err = 1;
		} else if (a.length > 9 && 
			a.substring(a.length-4,a.length-3)!=',' &&
			a.substring(a.length-8,a.length-7)!=',') {
			err = 2;
		} else if ((parseInt(a.replace(",","")) > upper) || (parseInt(a.replace(",","")) < lower)){
			err = 2
		}
	}
	return(err);
}

function isInt(sInteger) {

    var isInt = true;
    inputStr = sInteger.toString(); // in case not a string already
    for (var i = 0; i < inputStr.length; i++) {
        var oneChar = inputStr.charAt(i);
        if (oneChar < "0" || oneChar > "9") {
            isInt = false;
            i = inputStr.length; // break out of loop when bad char found
        }
    } return isInt;
}

/*
 * Validates date strings.
 *
 * Parameter: field    - field containing the date string
 * Internal Calls: isInteger() and isNotBlank()
 * Returns:   true (valid date) or false (not valid) boolean
 */
function isDate(field, msg) {
	if (field.value=="")
		return true;
    var valid = true;
    var sDate = field.value;
    var Slash1Pos = sDate.indexOf("/",0);
    var Slash2Pos = sDate.indexOf("/",Slash1Pos + 1);
    var dd = sDate.substring(0,Slash1Pos);
    var mm = sDate.substring(Slash1Pos + 1,Slash2Pos);
    var yyyy = sDate.substring(Slash2Pos + 1,sDate.length);

    // Validate date
    if (isInt(dd) == false || isInt(mm) == false || isInt(yyyy) == false)
        valid = false;

    if (yyyy.length != 4)
        valid = false;
    else if (mm < 1 || mm > 12)
        valid = false;
    else if (dd < 1 || dd > 31)
        valid = false;
    else if (mm == 2) {
        if (dd > 29)
            valid = false ;
        else if (dd == 29) {
            if (yyyy % 100 == 0 && yyyy % 400 != 0)
                valid = false;
            else if (yyyy % 4 != 0)
                valid = false;
        }
    } else if (mm == 4 || mm == 6 || mm == 9 || mm == 11) {
        if (dd > 30)
            valid = false;
    }

    if (valid == false) {
        alert(msg + " must be a date.\nPlease enter the date in DD/MM/YYYY format.");
        field.focus();
        field.select();
    }

    return valid;
}



function validEmail2(a) {

		var str=a.value;
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		var strMsg="Invalid E-mail address";
		if (str.indexOf(at)==-1){
		   alert(strMsg);
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert(strMsg);
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert(strMsg);
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert(strMsg);
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert(strMsg);
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert(strMsg);
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert(strMsg);
		    return false;
		 }

 		 return true;				
	}




	
	function checkSelected(a,msg)
	{
	//alert(a.options[a.selectedIndex].value);
		if(a.options[a.selectedIndex].value.toLowerCase()=="null")
		{
			alert("Please select " + msg+".");
			a.focus();
			return false;
		
		}
		
		return true;
	
	}
	
	
	function checkEntry(a,msg)
	{
		if(a.value=="")
		{
			alert("Please enter a value for "+msg);
			a.focus();
			return false;
		}
		return true;
	}
	
	function checkEntryX(a,iMin,iMax,msg)
	{
		if(a.value.length < iMin)
		{
			alert("Please enter a value for "+msg+" of >= " + iMin + " characters.");
			a.focus();
			return false;
		}
		if(a.value.length > iMax)
		{
			alert("Please enter a value for "+msg+" of <= " + iMax + " characters.");
			a.focus();
			return false;
		}
		return true;
	}
	

	function launchWindow(url)
	{

		nw=window.open(url,"nw","width=700,height=600,scrollbars=yes,resizable=yes");
		nw.focus();
	}
	
	function radioCheck(name, msg) 
	{
		 var i_check = -1;       
		 for (i=0; i < name.length; i++)
		 {
		     if  (name[i].checked) 
	         i_check = i;			 
		 }	 
		 if (i_check == -1)
		 {
 			alert("Please select a value for "+msg);
		 	return false
		 }
		 else
		 {
		 	return true
		 }
	}	 
		 	
		 

	



