/**
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * File : generalValidation.js
 * Description : General javascript validation
  
 * @Create Date : 21-6-2008
 * @Version : 1.0
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 */

/* generalValidation.js */

//alert('from generalValidation.js');

/*
Return a string containing the key-value array item
Input : 1. Name of the array
		2. Index of the item in the array
		3. Key of the item
		4. Value of the item
*/
function setKeyValueArray(arrName,arrIndex,itemKey,itemValue)
{
	return arrName + '[' + arrIndex + ']=new Array();'
			+ arrName + '[' + arrIndex + '][0]=\'' + itemKey + '\';'
			+ arrName + '[' + arrIndex + '][1]=\'' + itemValue + '\';';
}

function alertReturn(msg)
{
	if(!isEmptyStr(msg))
	{
		alert(msg);
		return false;
	}
	else
		return true;
}

/*
*/
function isEmpty(frmName,arr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(eleObj.type == 'checkbox')
		{
			if(!eleObj.checked)
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' checkbox should be checked';
			}
		}
		else if(isEmptyStr(eleObj.value))	/* Works for textbox,selectbox but not for radiobutton */
		{
			eleObj.focus();
			return '\'' + arr[i][1] + '\' should not be empty';
		}
	}
	
	return '';
}

function isNumeric(frmName,arr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(!isEmptyStr(eleObj.value))
		{
			if(!eleObj.value.match(/^([0-9 +\-\)\(\.]{1,})$/))
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' should be numeric only';
			}
		}
	}
	
	return '';
}

function isYear(frmName,arr,startYr,endYr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(!isEmptyStr(eleObj.value))
		{
			if(!eleObj.value.match(/^([0-9]{1,4})$/))
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' should be 4 digit numeric only';
			}
			
			if(startYr > 0)
			{
				if(eleObj.value < startYr)
				{
					eleObj.focus();
					return '\'' + arr[i][1] + '\' should be greater than ' + startYr;
				}
			}
			
			if(endYr > 0)
			{
				if(eleObj.value > endYr)
				{
					eleObj.focus();
					return '\'' + arr[i][1] + '\' should be less than ' + endYr;
				}
			}
		}
	}
	
	return '';
}

function isAlphaNumeric(frmName,arr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(!isEmptyStr(eleObj.value))
		{
			if(!eleObj.value.match(/^([0-9a-zA-Z\)\(`',+ \-\.]{1,})$/))
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' should be alpha-numeric only';
			}
		}
	}
	
	return '';
}

function isAlphabatic(frmName,arr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(!isEmptyStr(eleObj.value))
		{
			if(!eleObj.value.match(/^([a-zA-Z\)\(`',+ -]{1,})$/))
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' should be alphabets only';
			}
		}
	}
	
	return '';
}

function lessThanMinLimit(minLimit,frmName,arr)
{
	var eleObj;
	
	if(minLimit > 0)
	{
		for(var i=0;i<arr.length;i++)
		{
			eleObj=eval('document.' + frmName + '.' + arr[i][0]);
			
			if(!isEmptyStr(eleObj.value))
			{
				if(eleObj.value.length < minLimit)
				{
					eleObj.focus();
					return '\'' + arr[i][1] + '\' should not be shourter than ' + minLimit + ' characters';
				}
			}
		}
	}
	
	return '';
}

function moreThanMaxLimit(maxLimit,frmName,arr)
{
	var eleObj;
	
	if(maxLimit > 0)
	{
		for(var i=0;i<arr.length;i++)
		{
			eleObj=eval('document.' + frmName + '.' + arr[i][0]);
			
			if(!isEmptyStr(eleObj.value))
			{
				if(eleObj.value.length > maxLimit)
				{
					eleObj.focus();
					return '\'' + arr[i][1] + '\' should not be longer than ' + maxLimit + ' characters';
				}
			}
		}
	}
	
	return '';
}

function confirmPassword(frmName,arr)
{
	var passwdObj;
	var confirmPasswdObj;
	
	for(var i=0;i<arr.length;i++)
	{
		if(i == 0)
			passwdObj=eval('document.' + frmName + '.' + arr[i][0]);
		if(i == 1)
			confirmPasswdObj=eval('document.' + frmName + '.' + arr[i][0]);
	}
	
	if(passwdObj.value != confirmPasswdObj.value)
	{
		passwdObj.focus();
		return '\'' + arr[0][1] + '\' and \'' + arr[1][1] + '\' should be matched';
	}
	
	return '';
}

function isValidEmail(frmName,arr)
{
	var eleObj;
	
	for(var i=0;i<arr.length;i++)
	{
		eleObj=eval('document.' + frmName + '.' + arr[i][0]);
		
		if(!isEmptyStr(eleObj.value))
		{
			if(!eleObj.value.match(/^\w+([\.\+]?[-]{0,2}\w+)*[\.]?[-]?@\w+([\.-]?\w+)*(\.\w{2,4})+$/i))
			{
				eleObj.focus();
				return '\'' + arr[i][1] + '\' should be valid email Id';
			}
		}
	}
	
	return '';
}

/*
Return 'true' if the input string is empty otherwise 'false'
Input : 1. A string
*/
function isEmptyStr(str)
{
    for(var i=0; i < str.length; i++)
    {
        var char=str.charAt(i);

        if((char != ' ') && (char != "\n") && (char != "\t"))
            return false;
    }
    return true;
}