//JavaScript functions (http://www.siteexperts.com/tips/functions/ts23/demo.asp)

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
		
	var radioLength = radioObj.length;
	
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
			
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	
	return "";
}


function ValidateElement(blnValue,strElement)
	{
	var strHelpText = 'ctl00_MainContent_HelpText' + strElement
	strElement = 'ctl00_MainContent_' + strElement
	
	if (blnValue == false)
		{
		document.getElementById(strElement).className = 'invalid';
		document.getElementById(strHelpText).className = 'ShowHelpText';
		}
	else
		{
		document.getElementById(strElement).className = 'valid';
		document.getElementById(strHelpText).className = 'HideHelpText';
		}
	}


function IsValidMoney(strValue)
{
   var temp_value = strValue;
   var strTemp = new String()

   if (temp_value == "")
   {
     strTemp = 'N';
   }
   
   var Chars = "0123456789.,";
   
   for (var i = 0; i < temp_value.length; i++)
   {
       if (Chars.indexOf(temp_value.charAt(i)) == -1)
       {
           strTemp = 'N';
       }
   }
   
   if (strTemp == 'N')
       {
       return false;
       }
   else
       {
       return true;;
       }
    
}

function IsValidOneOrZero(strValue)
	{
	if (strValue == '1' || strValue == '0' || strValue == 'False' || strValue == 'True')
		{
		return true;
		}
	else
		{
		return false;
		}
	}

function IsValidRequiredText(strValue)
	{
	if (strValue == '')
		{
		return false;
		}
	else
		{
		return true;
		}
	}


function IsValidDate(strValue)
	{
	if (CheckDate(strValue) == false)
		{
		return false;
		}
	else
		{
		return true;
		}
	}


function IsValidInteger(strValue)
	{
	if (validateInteger(strValue) == 'N')
		{
		return false;
		}
	else
		{
		return true;
		}
	}
	
	
function IsValidNumeric(strValue)
	{
	if (validateNumeric(strValue) == 'N')
		{
		return false;
		}
	else
		{
		return true;
		}
	}


function IsValidSelectList(strValue)
	{
	if (strValue == '')
		{
		return false;
		}
	else
		{
		return true;
		}
	}	



function removeCommas(strValue)
	/*
	Description:	Strips commas out from a value
	Parameters:		strValue - the value to check
	Returns:		A string without commas
	*/
	
	{
	var objRegExp = /,/g;	//search for commas globally
	
	return strValue.replace(objRegExp,'');	//replace all matches with empty strings
	}


function validateInteger(strValue)
	{
	/*
	Description:	Validates that a string contains only valid integer numbers
	Parameters:		strValue - the value to check
	Returns:		Y if valid, else N
	*/
	
	var objRegExp  = /(^-?\d\d*$)/;
	 
	//check for integer characters
	var blnAnswer = objRegExp.test(removeCommas(strValue));
	

	if (blnAnswer == true)
		{
		return 'Y'
		}
	else
		{
		return 'N'
		}
	}

function  validateNumeric(strValue) 
	{
	/*
	Description:	Validates that a string contains only valid numbers
	Parameters:		strValue - the value to check
	Returns:		Y if valid, else N
	*/
	
	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
	 
	//check for numeric characters
	var blnAnswer = objRegExp.test(removeCommas(strValue));
	
	if (blnAnswer == true)
		{
		return 'Y'
		}
	else
		{
		return 'N'
		}
	}



function CheckDate(strDate) 
    {
    var strDatestyle = "US"; //United States date style
    //var strDatestyle = "EU";  //European date style
    
    var strDate;
    var strDateArray;
    var strDay;
    var strMonth;
    var strYear;
    var intday;
    var intMonth;
    var intYear;
    var booFound = false;
    var strSeparatorArray = new Array("-"," ","/",".");
    var intElementNr;
    var err = 0;
    var strMonthArray = new Array(12);
    
    strMonthArray[0] = "Jan";
    strMonthArray[1] = "Feb";
    strMonthArray[2] = "Mar";
    strMonthArray[3] = "Apr";
    strMonthArray[4] = "May";
    strMonthArray[5] = "Jun";
    strMonthArray[6] = "Jul";
    strMonthArray[7] = "Aug";
    strMonthArray[8] = "Sep";
    strMonthArray[9] = "Oct";
    strMonthArray[10] = "Nov";
    strMonthArray[11] = "Dec";


    if (strDate.length <= 1) 
        {
        return false;
        }

    for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
        {
        if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
            {
            strDateArray = strDate.split(strSeparatorArray[intElementNr]);
            if (strDateArray.length != 3) 
                {
                err = 1;
                return false;
                }
            else 
                {
                strDay = strDateArray[0];
                strMonth = strDateArray[1];
                strYear = strDateArray[2];
                }
            booFound = true;
            }
        }
        
if (booFound == false) 
    {
    if (strDate.length>5) 
        {
        strDay = strDate.substr(0, 2);
        strMonth = strDate.substr(2, 2);
        strYear = strDate.substr(4);
        }
    }
    
if (strYear.length == 2) 
    {
    strYear = '20' + strYear;
    }
    
//US style
if (strDatestyle == "US") 
    {
    strTemp = strDay;
    strDay = strMonth;
    strMonth = strTemp;
    }
    
intday = parseInt(strDay, 10);
if (isNaN(intday)) 
    {
    err = 2;
    return false;
    }
    
intMonth = parseInt(strMonth, 10);
    if (isNaN(intMonth)) 
        {
        for (i = 0;i<12;i++) 
            {
            if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) 
                {
                intMonth = i+1;
                strMonth = strMonthArray[i];
                i = 12;
                }
            }

            if (isNaN(intMonth)) 
                {
                err = 3;
                return false;
                }
        }


intYear = parseInt(strYear, 10);
if (isNaN(intYear)) 
    {
    err = 4;
    return false;
    }

if (intMonth>12 || intMonth<1) 
    {
    err = 5;
    return false;
    }
    
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
    {
    err = 6;
    return false;
    }

if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
    {
    err = 7;
    return false;
    }
    
if (intMonth == 2) 
    {
    if (intday < 1) {
    err = 8;
    return false;
    }
    
if (LeapYear(intYear) == true) 
    {
    if (intday > 29) 
        {
        err = 9;
        return false;
        }
    }
    else 
        {
        if (intday > 28) 
            {
            err = 10;
            return false;
            }
        }
    }

if (strDatestyle == "US") 
    {
    //datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
    }
else 
    {
    //datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
    }

return true;
}


function LeapYear(intYear) 
    {
    if (intYear % 100 == 0) 
        {
        if (intYear % 400 == 0) 
            { 
            return true; 
            }
        }
    else 
        {
        if ((intYear % 4) == 0) 
            { 
            return true; 
            }
        }
    
    return false;
    }


function rightTrim(strValue) 
	{
	var objRegExp = /^([\w\W]*)(\b\s*)$/;
	 
		if(objRegExp.test(strValue)) 
			{
			//remove trailing a whitespace characters
			strValue = strValue.replace(objRegExp, '$1');
			}
			
	return strValue;
	}


function leftTrim(strValue) 
	{
	var objRegExp = /^(\s*)(\b[\w\W]*)$/;
	 
		if(objRegExp.test(strValue)) 
			{
			//remove leading a whitespace characters
			strValue = strValue.replace(objRegExp, '$2');
			}
			
	return strValue;
	}


function trimAll(strValue) 
	{
	var objRegExp = /^(\s*)$/;

		//check for all spaces
		if(objRegExp.test(strValue)) 
			{
			strValue = strValue.replace(objRegExp, '');
			if( strValue.length == 0)
				return strValue;
			}
	    
	//check for leading & trailing spaces
	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(strValue)) 
		{
		//remove leading and trailing whitespace characters
		strValue = strValue.replace(objRegExp, '$2');
		}
		
	return strValue;
	}
