function SetValue()
{
	var objTxt=document.all("txtAmendment");
	if(objTxt!=null && objTxt.value ==1)
	{
		objTxt.value="2";
	}
}
function ismaxlength(obj)
{
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
		obj.value=obj.value.substring(0,mlength)
}

function CheckNarrative()
{
	objNarrative=document.all("txtNarrative");
	if(objNarrative!=null && objNarrative.value.length > 255)
	{
		ShowMessage('NarrativeCharLimit');
		highlightControl(objNarrative);
		return false;
	}
	return true;
}

function CompareDates(val1, val2)
{
	var d1,d2;
	var m1,m2;
	var y1,y2;
	var Msg1="Invalid day with refrence to specified Month in Date From.";
	var Msg2="Invalid day with refrence to specified Month in Date To.";
	d1 = val1.substring(0,val1.indexOf('-'));
	m1 = val1.substring(val1.indexOf('-')+1,val1.lastIndexOf('-'));
	y1 = val1.substring(val1.lastIndexOf('-')+1,val1.length);
	d2 = val2.substring(0,val2.indexOf('-'));
	m2 = val2.substring(val2.indexOf('-')+1,val2.lastIndexOf('-'));
	y2 = val2.substring(val2.lastIndexOf('-')+1,val2.length);
	//if(IsValidDayOfMonth(d1, m1, y1,Msg1) && IsValidDayOfMonth(d2, m2, y2,Msg2))
	var res1 = IsValidDayOfMonth(d1, m1, y1);
	var res2 = IsValidDayOfMonth(d2, m2, y2);
	if(res1==1){
		if(res2==1){
			if(y1 > y2) return 1;
			else if(y1 < y2) return -1;
			else if(m1 > m2) return 1;
			else if(m1 < m2) return -1;
			else if(d1 > d2) return 1;
			else if(d1 < d2) return -1;
			else return 0;
		}
		else{
		}
	}
	else
	{
		return -1;
	}
}
function dateDiff(Date1,Date2)
{
/* this function will get two date strings and 
will return 1 if Date 1 is greater, return -1 if date2 is greater and
return zero if dates are equal
*/
var d1=new Date(Date1)
var d2=new Date(Date2)
var t1=d1.getTime()
var t2=d2.getTime()
if (t1>t2)
{
	return 1
}
else if(t1==t2)
{ 
	return 0
}
else
return -1
}

function isValidDate(valD, valM, valY)
{
	var dateStr = valM + "-" + valD + "-" + valY;
//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
	if(dateStr!="--")
	{
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		if (matchArray == null) 
		{
			ShowMessage('InvalidDate');
			return false;
		}
		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
		year = matchArray[4];
		if (month < 1 || month > 12) // check month range
		{ 
			ShowMessage('InvalidMonth');
			return false;
		}
		if (day < 1 || day > 31) 
		{
		
			ShowMessage('InvalidDay');
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) 
		{
			alert("Month "+month+" doesn't have 31 days.");
			return false
		}
		if (month == 2) // check for february 29th
		{ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) 
			{
				alert("February " + year + " doesn't have " + day + " days.");
				return false;
			}
		}
		var myDate=new Date(dateStr);
		var toDay=new Date();
		toDay.setHours(0,0,0,0);
		
		//Here we will place chaeck
		var objTxt=document.all("txtAmendment");
		if(objTxt!=null && objTxt.value > 1)
		{
			if(myDate<toDay)
			{
				ShowMessage('PaymentDate');
				return false;
			}

		}
		else if(objTxt!=null && objTxt.value == 1)
		{
			return true;
		} 
		else
		{
			if(myDate>toDay)
			{
				return true;// date is valid
			}
			else
			{
				ShowMessage('PaymentDate');
				
				return false;
			}
		}
	}
	else
	{
		var objCbo=document.all("cboPaymentType");
		if(objCbo!=null && objCbo.value=="Singly Future Payment")
		{
			ShowMessage('PaymentDate');
			highlightControl(objCbo);
			return false;
		}
		else
		{
			return true;
		}
	}
}

//aaaaa 
function ValidateDate(ctrlDD, ctrlMM, ctrlYY) 
{
	var date;
	date = "--";
	if(ctrlDD!=null && ctrlYY!=null && ctrlMM != null)
	{
		date = parseInt(ctrlDD.value) + "-" + parseInt(ctrlMM.value) + "-" + parseInt(ctrlYY.value);
		if(date!="--")
		{
			if(date.indexOf('-')==0 ||date.indexOf('--')!=-1 || date.lastIndexOf('-')== (date.length-1))
			{
				ShowMessage('InvalidDate');
				highlightControl(ctrlDD);
				return false;
			}
			else
			{
				if(!IsValidDay(ctrlDD))
				{
					ShowMessage('InvalidDay');
					highlightControl(ctrlDD);
					return false;
				}
				if(!IsValidMonth(ctrlMM))
				{
					ShowMessage('InvalidMonth');
					highlightControl(ctrlMM);
					return false;
				}
				if(!IsValidYear(ctrlYY))
				{
					highlightControl(ctrlYY);
					return false;
				}
				// check for valid date.
				var dateStr = ctrlMM.value + "-" + ctrlDD.value + "-" + ctrlYY.value;
				// To require a 4 digit year entry, use this line instead:
					var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
					var matchArray = dateStr.match(datePat); // is the format ok?
					if (matchArray == null) 
					{
						ShowMessage('InvalidDate');
						highlightControl(ctrlDD);
						return false;
					}
					month = matchArray[1]; // parse date into variables
					day = matchArray[3];
					year = matchArray[4];
					if (month < 1 || month > 12) // check month range
					{ 
						ShowMessage('InvalidMonth');
						highlightControl(ctrlMM);
						return false;
					}
					if (day < 1 || day > 31) 
					{
						ShowMessage('InvalidDay');
						highlightControl(ctrlDD);
						return false;
					}
					if ((month==4 || month==6 || month==9 || month==11) && day==31) 
					{
						alert("Month "+ month +" doesn't have 31 days.");
						highlightControl(ctrlDD);
						return false
					}
					if (month == 2) // check for february 29th
					{ 
						var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
						if (day>29 || (day==29 && !isleap)) 
						{
							alert("February " + year + " doesn't have " + day + " days.");
							highlightControl(ctrlDD);
							return false;
						}
					}
			}
		}
	}
	return true;
}
function CheckValidDate(dateStr) 
{
	if(dateStr!="")
	{
	// check for valid date.
	// To require a 4 digit year entry, use this line instead:
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		if (matchArray == null) 
		{
			alert('Invalid Date');
			return false;
		}
		day = matchArray[1];
		month = matchArray[3]; // parse date into variables
		year = matchArray[4];
		if (month < 1 || month > 12) // check month range
		{ 
			alert('InvalidMonth');
			return false;
		}
		if (day < 1 || day > 31) 
		{
			alert('InvalidDay');
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) 
		{
			alert("Month "+ month +" doesn't have 31 days.");
			return false
		}
		if (month == 2) // check for february 29th
		{ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) 
			{
				alert("February " + year + " doesn't have " + day + " days.");
				return false;
			}
		}
	}
	return true;
}

// New Function By Kashif
// 1 Its ok
// -1 Please enter a valid Year
// -2 Please enter a valid Month
// -3 Please enter a valid Day
//
function IsValidDayOfMonth(valD, valM, valY)
{
	var res=true;
	if(valY.length!=4 ){
		if(valY.length==0 ){
			if(valD.length!=0 || valM.length!=0){return -1;}
		}
		else{return -1;}
	}
	if(valD.length!=0 && valM.length==0){
		return -2;
	}
	if(valM<13 && valM > 0){
		if (valM == 4 || valM == 6 || valM == 9 || valM == 11){
			if(valD>30 || valD<1){
				return -3;
			}
		}
		else if (valM == 1 || valM == 3 || valM == 5 || valM == 7 || valM == 8 || valM == 10 || valM == 12){
			if(valD>31 || valD<1){
				return -3;
			}
		}
		else if (valM == 2) {
			if (LeapYear(valY) == true) {
				if (valD > 29) {
					return -3;
				}
			}
			else{
				if (valD > 28) {
					return -3;
				}
			}
		}
	}
	else{return -2;}
	return 1;
}

function IsValidDay(obj)
{
	if(obj!=null && obj.value!="")
	{
		if(isNumber(obj.value) && obj.value >0 && obj.value <32)
		{
			return true;
		}
	}
	return false;
}
function IsValidMonth(obj)
{
	if(obj!=null && obj.value!="")
	{
		if(isNumber(obj.value) && obj.value >0 && obj.value <13)
		{
			return true;
		}
	}
	return false;
}
function IsValidYear(obj)
{ 
	var res=0;
	if(obj!=null && obj.value!=""){
		if(isNumber(obj.value) && obj.value.length==4){
			var y = parseInt(obj.value);
			if(y >= 1900){
				res=1;
			}
			else{
				res=2;
			}
		}
		else{
			res=2;
		}
	}
	if(res==1){
		return true;
	}
	else{
		return false;
	}		

}
function IsValidTestKey(objKey, objLocation)
{
	if(objKey!=null && objKey.value!="")
	{
	
		if(objKey.value.length!=4)
		{
			ShowMessage('InvalidTestKey');
			highlightControl(objKey);
			return false;
		}
	}
	else
	{
		ShowMessage('EnterTestKey');
		highlightControl(objKey);
		return false;
	}
	if(objLocation!=null && objLocation.value!="")
	{
	}
	else
	{
		ShowMessage('EnterTestKeyLocation');
		highlightControl(objLocation);
		return false;
	}
	return true;
	
}
function IsComboSelected(obj, type)
{
	if(obj!=null)
	{
		var indx=obj.selectedIndex;
		var val= obj.options[indx].value;
		if (val==-1 || val==0)
		{
			if(type==1)// From Account
			{
				ShowMessage('SelFromAccount');
			}
			else if(type==2)// To Account
			{
				ShowMessage('SelToAccount');
			}
			else if(type==3)// Beneficiary Account
			{
				ShowMessage('SelBeneficiary');
			}
			else
			{
				ShowMessage('SelectAccount');
			}
			highlightControl(obj);
			return false;
		}
	}
	
	return true;
}
function CheckComboSelected(obj)
{
	if(obj!=null)
	{
		var indx=obj.selectedIndex;
		var val= obj.options[indx].value;
		if (val==-1 || val==0)
		{
			return false;
		}
	}
	return true;
	
}
function IsValidPaymentDate(strDate)
{
	//myDate=new Date(strDay,strMonth, strYear);
	myDate=new Date(strDate);
	var today = new Date()

	if (myDate>today)
	{
		return true;
	}
	else
	return false;
}

function IsValidNumberInput(obj)
{
	if(obj!=null)
	{
		var val= obj.value;
		
		if (val!="" && !isNumber(val))
		{
			return false;
		}
	}
	return true;
}
function isPositiveNumber(obj) 
{
	
	if(obj!=null)
	{
		var chkVal=obj.value;
		if(chkVal.indexOf('.')==0)
		{
			chkVal = "0" + chkVal;
		}
		var ValidChars = "0123456789.";
		var IsNumber=true;
		var Char;

		 
		for (i = 0; i < chkVal.length && IsNumber == true; i++) 
		{ 
			Char = chkVal.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
		
		if(IsNumber && chkVal>0)
		{
			
			if (chkVal.indexOf('.')>0)
			{
				var preText = chkVal.substring(0,chkVal.indexOf('.'));
				var testText="0";
				for (i = 0; i < preText.length-1; i++) 
				{ 
					testText +="0";
				}
				if(testText==preText)
				{
					ShowMessage('EnterAmount');
					highlightControl(obj);
					return false;
				}
				var restText = chkVal.substring(chkVal.indexOf('.')+1, chkVal.length);
				if (restText.length >4)
				{
					ShowMessage('EnterAmountDecimal');
					highlightControl(obj);
					return false;
				}
			}
		}
		else
		{
			IsNumber=false;
		}
		if(!IsNumber)
		{
			ShowMessage('EnterAmount');
			highlightControl(obj);
		}
		return IsNumber;
	}

}
/*
	Functions By Kashif ---   Ends
*/

/************************************************************/
function isDecimalNumber(obj) 
{
		var ValidChars = "-0123456789.";
		var IsNumber=true;
		var Char;
		
	if(obj!=null)
	{
		var chkVal=obj.value;
		if(chkVal.indexOf('.')==0)
		{
			chkVal = "0" + chkVal;
		}
		
		for (i = 0; i < chkVal.length && IsNumber == true; i++) 
		{ 
			Char = chkVal.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
	}
	return IsNumber
}
function isInteger(obj) 
{
 var ValidChars = "0123456789";
		var IsNumber=true;
		var Char;
	if(obj!=null)
	{
		var chkVal=obj.value;
		
		for (i = 0; i < chkVal.length && IsNumber == true; i++) 
		{ 
			Char = chkVal.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
	}
	return IsNumber
}
// Code by Abdul Mannan
// 04/06/06
function isNumber(chkVal) 
{
  chkVal = trimFields(chkVal);
  // This will verify if chkVal has digits.
  var objRegExp = new RegExp("^\\d{1,7}\$");
  var bResult = objRegExp.test( chkVal );
  if(!bResult) {
    return false;
  }
  return bResult;

}
function isEmpty(control) {
	if(!control) return false;
	var strTmp = control.value;
	do {
		strTmp = strTmp.replace('\r\n', '');
	} while (strTmp.indexOf('\r\n') > -1);
	do {
		strTmp = strTmp.replace('  ', ' ');
	} while (strTmp.indexOf('  ') >= 0);
	
	if(strTmp.replace(' ','')  == '') {
		return true;
	}
	return false;
}
function highlightControl(control) {
	if(!control) return;
	try {
		control.focus();
		control.select();
	}catch(e) { }
}
function isSelected(control) {
	if(!control) return false;
	return control.selectedIndex > -1;
}
function validateEmails(control) {
	if(!control) return false;
	
	if(control.value.indexOf(';') > 0 && control.value.indexOf(',') > 0) {
		return false;
	}
	
	if(control.value.indexOf(';') < 0 && control.value.indexOf(',') < 0) {
		return isEmail(control.value.trim());
	}
			
	if(control.value.indexOf(',')> 0) {
		var arrEmails = control.value.split(',');
		for(var loopX=0;loopX < arrEmails.length;loopX++) {
			if(!isEmail(arrEmails[loopX].trim())) return false;
		}
		return true;
	}
	
	if(control.value.indexOf(';') >0){
		var arrEmails = control.value.split(';');
		for(var loopX=0;loopX < arrEmails.length;loopX++) {
			if(!isEmail(arrEmails[loopX].trim())) return false;
		}
	}
	
	return true;
}
function validateEmailAddresses(control) {
	if(!control) return false;
	if(control.value.indexOf(',') < 0) {
		return isEmail(control.value.trim());
	}
	else {
		var arrEmails = control.value.split(',');
		for(var loopX=0;loopX < arrEmails.length;loopX++) {
			if(!isEmail(arrEmails[loopX].trim())) return false;
		}
	}
	return true;
}
//Validating email using regular expressions.
function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");
}


function trimFields(strValue) {
  var objRegExp = new RegExp("\\s+\$");
  strValue = strValue.replace(objRegExp,"");
  var objRegExp1 = new RegExp("^\\s+");
  strValue = strValue.replace(objRegExp1,"");
  return strValue;
}

function validateTitle(strValue) {
  strValue = trimFields(strValue);
  
  var objRegExp  = new RegExp("^[0-9a-zA-Z][0-9a-zA-Z\\s,.:()\$#?_/]*\$");
  var bResult= objRegExp.test( strValue );
  if(!bResult){
    return false;
   }
  return true;
}// End of function validateTitle

//----------------------------------------------------------------------------------------------------------------------//
	function LeapYear(intYear) {
		if (intYear % 100 == 0) {
			if (intYear % 400 == 0) { return true; }
			}
			else {
				if ((intYear % 4) == 0) { return true; }
			}
			return false;
		}
	
  /**
   * This function checks the size of a field.
   * @param strValue, value of any form field.
   * @param iMinLength, minimum length of strVAlue.
   * @param iMaxLength, maximum ength of strValue.
   * @return true, if strValue has valid size else false.
   * */
  function size(strValue, iMinLength,iMaxLength) {
    if(strValue.length<iMinLength || strValue.length>iMaxLength) {
      return false;
    }
    return true;
  }

	
	/**
	* it validates the Phone fields.It returns false if Phone number
	* is not prpoer format.
	* @return true if valid else false.
	*/
  function validatePhoneNo(strValue, iMinLength, iMaxLength) {
    strValue = trimFields(strValue);
    if(!size(strValue,iMinLength,iMaxLength)) {
      alert("Phone number length must be "+iMinLength+" to "+iMaxLength+ " characters long.");
      return false;
    }
    /*
     * This will verify the following conditions.
     * (1) strValue will only accept \\+\\(\\{0-9][%\\s()-_0-9+#&* charachters.
     */
    var objRegExp  = new RegExp("^[\\+\\(\\{0-9][%\\s()-_0-9+#&*]*\$");
    var bResult= objRegExp.test( strValue );
    if(!bResult){
       ShowMessage('Phone');
       return false;
    }
    return true;
  }

function ShowMessage(msgCode)
{
	//if (document.getElementById("lblError")==null)
	//	return ;
	
	switch(msgCode)
	{
		// Login
		case 'LoginRequired':
			alert("Login is required.");
			break;
			
		case 'PasswordRequired':
			alert("Password is required.");
			break;
			
	
		case 'InvalidDate':
			alert("Please enter date in valid format.");
			break;
		case 'InvalidMonth':
			alert("Please enter valid month (1-12).");
			break;
		case 'InvalidDay':
			alert("Please enter valid day (1-31).");
			break;
		default :
			break;
	}
}

function ConfirmMessage(msgCode)
{
	var result = false;
	switch(msgCode)
	{
		case 'DelTestKeys':
			result = confirm("Are you sure you want to delete previous unused Test keys and generate new Test keys?");
			break;
		case 'DelMessage':
			result = confirm("Are you sure you want to delete selected message(s)?");		
			break;
		case 'DelTransfer':
			result = confirm('Are you sure you want to delete this transfer?');
			break;
		case 'DelLimit':
			result = confirm('Are you sure you want to delete this limit?');
			break;
		case 'DelPayment':
			result = confirm("Are you sure you want to delete the Standing Payment?")
			break;
		case 'DelBeneficiary':
			result = confirm('Are you sure you want to delete this Beneficiary?')
			break;
			
		default :
			break;
	}
	return result;
}

