function GetUSDate(strDate) {

	if (strDate == '') {
		return '';
	}
	else {
		var dtDay, dtMonth, dtYear;
		dtDay = strDate.substr(0,2);
		dtMonth = strDate.substr(3,2);
		dtYear = strDate.substr(6,4);
	
		return dtMonth + "/" + dtDay + "/" + dtYear;
	}
}

function FormatAmount(parmAmount) {
// formats amount to two decimal points.

	parmAmount = String(parmAmount);
	if (parmAmount == "" || parmAmount == "0" || parmAmount == null) return "0.00"
	var DecimalIndex = parmAmount.indexOf(".");
		
	if (DecimalIndex == -1)
	{
		return parmAmount + ".00";
	}
	else {
		if (parmAmount.length == DecimalIndex + 2) {
			return parmAmount + "0";
		}
		else if (parmAmount.length == DecimalIndex + 1) {
			return parmAmount + "00";
		}
		else {
			var newAmount;
			if (parseInt(parmAmount.substring(DecimalIndex + 3, DecimalIndex + 4)) >= 5) {
				newAmount = parmAmount.substring(0, DecimalIndex + 2);
				newAmount += String(parseInt(parmAmount.substring(DecimalIndex + 2, DecimalIndex + 3)) + 1)
				return newAmount;
			}
			else
				return parmAmount.substring(0, DecimalIndex + 3);
		}
	}
}

function FormatNumber(input) {  // format input using 'separator' to mark 000's

	if (input.indexOf(".") == -1){
		input = FormatAmount(input)
	}
	if(FormatAmount(input)){ 
		var decimal = input.substring(input.indexOf(".") + 1)
		input = input.substring(0,input.indexOf("."))
		input = "" + input;
		var output = "";  // initialise output string
		for (var i=0; i < input.length; i++) {
		  if (i != 0 && (input.length - i) % 3 == 0) output += ',';
		  output += input.charAt(i);
		}
		if(decimal.length == 1)
		{
			decimal = decimal + 0
		}
		output = output + '.' + decimal
    return output;
   }
 }

function GetNumberOfPages(parmPageCount) {
// Code added by Adnan //

/*	var pathInfo ;
	var ctrAppendparentPathCounter, i ; 
	ctrAppendparentPathCounter = 0 ; 
	pathInfo = window.location.href ; 
	for (i=0;i<pathInfo.length;i++) {
		if (pathInfo.substr(i,1) == '/') {
			ctrAppendparentPathCounter ++ ; 
		}
	}
	//Should be -4 but since querystring contains date in format dd/mm/yy, hence the additional -2 i.e. -4 - 2 = -6
	ctrAppendparentPathCounter-=6 ; 
	var finalString = "" ; 
	for (i=0;i<ctrAppendparentPathCounter;i++) {
		finalString += "../" ; 
	}
	finalString += "Practice/CommonLibrary/NumberOfPages.htm" ; 
*/	
	finalString = ReductionFactorForRoot + "Practice/CommonLibrary/NumberOfPages.htm" ; 

// Code added By Adnan 

	var dialogWindow;
	if (parmPageCount) {
		//dialogWindow = window.showModalDialog("NumberOfPrintPages.htm", parmPageCount, "dialogHeight:125px; dialogWidth:256px; status:0") ;
		dialogWindow = window.showModalDialog(finalString, parmPageCount, "dialogHeight:150px; dialogWidth:256px; status:0") ;
	}
	else {
		//dialogWindow = window.showModalDialog("NumberOfPrintPages.htm", 1, "dialogHeight:125px; dialogWidth:256px; status:0")
		dialogWindow = window.showModalDialog(finalString, 1, "dialogHeight:150px; dialogWidth:256px; status:0") ;
	}

	if (dialogWindow) {
		return dialogWindow;
	}
	else {
		return 1;
	}
}

function GetPages(parmPageCount) {
// Code added by Adnan //

/*	var pathInfo ;
	var ctrAppendparentPathCounter, i ; 
	ctrAppendparentPathCounter = 0 ; 
	pathInfo = window.location.href ; 
	for (i=0;i<pathInfo.length;i++) {
		if (pathInfo.substr(i,1) == '/') {
			ctrAppendparentPathCounter ++ ; 
		}
	}
//Should be -4 but since querystring contains date in format dd/mm/yy, hence the additional -2 i.e. -4 - 2 = -6
	ctrAppendparentPathCounter-=6 ; 
	var finalString = "" ; 
	for (i=0;i<ctrAppendparentPathCounter;i++) {
		finalString += "../" ; 
	}
	
	finalString += "Practice/CommonLibrary/NumberOfPages.htm" ; 
*/
	finalString = ReductionFactorForRoot + "Practice/CommonLibrary/NumberOfPages.htm" ; 

// Code added By Adnan 

	var dialogWindow;

	if (parmPageCount) {
		//dialogWindow = window.showModalDialog("NumberOfPages.htm", parmPageCount, "dialogHeight:125px; dialogWidth:256px; status:0")
		dialogWindow = window.showModalDialog(finalString, parmPageCount, "dialogHeight:150px; dialogWidth:256px; status:0") ;
	}
	else {
		//dialogWindow = window.showModalDialog("/UKLegal/Practice/CommonLibrary/NumberOfPages.htm", 1, "dialogHeight:125px; dialogWidth:256px; status:0")
		dialogWindow = window.showModalDialog(finalString, 1, "dialogHeight:150px; dialogWidth:256px; status:0") ; 
	}
	if (dialogWindow) {
		return dialogWindow;
	}
	else {
		return 1;
	}
}

function GetFaxNumber() {

	finalString = ReductionFactorForRoot + "Practice/CommonLibrary/GetFaxNumber.htm";

	var dialogWindow;

	dialogWindow = window.showModalDialog(finalString, "Spaces are not allowed", "dialogHeight: 160px; dialogWidth: 320px; status: 0");

	if (dialogWindow) {
		return dialogWindow;
	}
	else {
		return "";
	}
}

function LeadZero(nNum) {
     return (nNum<10 ? "0" : "" ) + nNum.toString();
}

function PrintHeading(Heading, TableWidth) {
	var tmpHTMLBuffer = "";
	tmpHTMLBuffer = '<table style="BORDER:silver 2px solid;" cellspacing="1" width=' + TableWidth + ' style="WIDTH: ' + TableWidth + '">'
	tmpHTMLBuffer += '<tr><td colspan=5 Class="PageHeading">' + unescape(Heading) + '</td></tr></table>'
	document.write(tmpHTMLBuffer)
}

function ValidateTextControl(TextObject, ValidationType, IsBlankAllowed) {
// TextObject - Is the Object to be validated
// ValidationType - Can be Text, Date, Numeric, Money, Picklist
// IsBlankAllowed - If the object has blank value then no validation is done
// In case of Numbers If passed as true then Zero values are allowed
// default is false
	if (! TextObject) {
		alert("The Object doesnot exists. Please check it");
		return false;
	}
	IsBlankAllowed = (ValidateTextControl.arguments[2]) ? IsBlankAllowed : false;
	
	if (IsBlankAllowed) {
		if (TextObject.value == "") {
			return true;
		}
	}
	else {
		if (TextObject.value == "") {
			TextObject.className = "Error";
			return false;
		}
		else {
			TextObject.className = "";
		}
	}
	
	ValidationType = (ValidateTextControl.arguments[1]) ? ValidationType : "Text";
	
	switch (ValidationType.toUpperCase()) {
		case "TEXT" :
			/*if (TextObject.value == "") {
				TextObject.className = "Error";
			}
			else {
				TextObject.className = "";
			}*/
			return true;
			break;
		case "DATE" :
			if (!validation.validDate(TextObject)) {
				TextObject.className = "Error";
				return false;
			}
			else {
				TextObject.className = "";
				return true;
			}
			break;
		case "NUMERIC" :
			if (IsBlankAllowed) {
				if (parseInt(TextObject.value) == 0) {
					TextObject.className = "";
					return true;
				}
			}
			if (!validation.validNumber(TextObject)) {
				TextObject.className = "Error";
				return false;
			}
			else {
				TextObject.className = "";
				return true;
			}
			break;
		case "MONEY" :
			if (IsBlankAllowed) {
				if (parseInt(TextObject.value) == 0) {
					TextObject.className = "";
					return true;
				}
			}
			if (parseFloat(TextObject.value) == 0 || !validation.validDecimalNumber(TextObject)) {
				TextObject.className = "Error";
				return false;
			}
			else {
				TextObject.className = "";
				TextObject.value = FormatAmount(TextObject.value)
				return true;
			}
			break;
		case "PICKLIST" :
			if (TextObject.value == "") {
				TextObject.className = "Error";
				return false;
			}
			else {
				TextObject.className = "";
				return true;
			}
			break;
// Added by sunita for email validation
		case "EMAIL"  :
		    if (!validation.validEmail(TextObject)) {
		       	TextObject.className = "Error";
				return false;
			}
		    else{
		        TextObject.className = "";
				return true;
			}
		    break;  			
	}
	alert("No match found")
	return false;
}

var ErrorList;
var Counter = 0;

function FlushError() {
	ErrorList = "Error List :";
	Counter = 0;
}

function AddError1(ErrorDescription, RowCount) {
	Counter++;
	{
		ErrorList += "\n" + Counter  + ". " + ErrorDescription;
	}
}

function AddError(ErrorDescription, RowCount) {
	Counter++;
	if (RowCount) {
		ErrorList += ("\n" + Counter  + ". " + "Row " + RowCount + " : " + ErrorDescription);
	}
	else {
		ErrorList += "\n" + Counter  + ". " + ErrorDescription;
	}
}

function ListErrors() {
	if (ErrorList == "Error List :") {
		return true;
	}
	else {
		alert(ErrorList + "\n" + "\n" + "    ... all these fields are mandatory !!!");
		return false;
	}
}
// Function added by Indraneel //
function checkDateInFinancialYear(parmdateVal)
{
		var todayDate = new Date();
		var presentYear = todayDate.getYear();
		var presentMonth = todayDate.getMonth() + 1;
		
		var enteredDate = parmdateVal.value
		var enteredYear	= enteredDate.substr(enteredDate.lastIndexOf("/") + 1, enteredDate.length)	
		var enteredMonth = 	enteredDate.substr(enteredDate.indexOf("/") + 1, 2)
		
		
		if(parseInt(enteredMonth) <= 3)
		{
			if (parseInt(presentMonth) >= 1 && parseInt(presentMonth) <=3)
			{
				if(parseInt(enteredYear) < (parseInt(presentYear)))
				{
					return false;
				}
			}
			else
			{
				if(parseInt(enteredYear) <= (parseInt(presentYear)))
				{
					return false;
				}
			}
		}
		return true;
}
// Function added by Indraneel //

function ConvertDateToStringObject(parmDateObj) {
	//parmDateObj should be Date object
	return LeadZero(Number(parmDateObj.getDate()))+ "/"+ LeadZero(Number(parmDateObj.getMonth() + 1))  + "/" + parmDateObj.getFullYear().toString();;
}

function ConvertStringToDateObject(parmString) {
	//String should be in DD/MM/YYYY format
	var month,day,year;
	var DateSeparator = ReturnMeSeparator(parmString);

	day = parmString.substr(0, parmString.indexOf(DateSeparator))
	month = parmString.substring(parmString.indexOf(DateSeparator) + 1, parmString.lastIndexOf(DateSeparator))
	if(month.substr(0,1) == '0')
	{
		month = month.substr(1,1)
	}
	year = parmString.substr(parmString.lastIndexOf(DateSeparator)  + 1, parmString.length)
		
	var tmpDate = new Date(year, parseInt(month) - 1, day)
	return tmpDate;
}

function FormatDate(dateVal) 
{
	return ConvertDateToStringObject(ConvertStringToDateObject(dateVal));
}

// To get coordinates of the control

function getTopCoords(AnyObject) {
    BndRct=AnyObject.getBoundingClientRect();
	  return BndRct.top
}

function getRightCoords(AnyObject) {
    BndRct=AnyObject.getBoundingClientRect();
	return BndRct.right
}
 
function getBottomCoords(AnyObject) {
    BndRct=AnyObject.getBoundingClientRect();
	  return BndRct.bottom
}

function getLeftCoords(AnyObject) {
    BndRct=AnyObject.getBoundingClientRect();
	return BndRct.left
}


function Trim(Text) {
	while (Text.indexOf(" ") == 0)
	{
		Text = Text.substr(1, Text.length)
	}
	if (Text.length > 0)
	{
		while (Text.lastIndexOf(" ") == (Text.length - 1))
		{
			Text = Text.substr(0, Text.length - 1)
		}
	}
	return Text;
}
var clsName;
function fnCheckAmount(psdObj)
{
	
	var GetStr = psdObj.id;
	
	if(eval("document.all." + psdObj.id).className != "Error")
	{
		clsName = eval("document.all." + psdObj.id).className;
	}
	
	GetStr = GetStr.substr(3);
	if(!ValidateTextControl(psdObj,"Money",true))
	{
		alert("Please Enter " + GetStr + " in proper format.");
		eval("document.all." + psdObj.id).focus();
		return false;
	}
	else
	{
		
		eval("document.all." + psdObj.id).value = FormatAmount(eval("document.all." + psdObj.id).value);
		var StrAmt = new String(eval("document.all." + psdObj.id).value);
		var StrC;
		for(var i = 0; i < StrAmt.length;i++)
		{
			StrC = StrAmt.charAt(i);
			if(StrC == ".")
			{
				if(i > 15)
				{
					alert("You cannot specify such a large amount.");
					eval("document.all." + psdObj.id).className = clsName;
					eval("document.all." + psdObj.id).focus();
					return false;
				}
			}
		}
	}
	eval("document.all." + psdObj.id).className = clsName;
	eval("document.all." + psdObj.id).style.backgroundColor = "white";
	return true; 
}

function ltrim(passedVal)
{
 var ltempstring;
 ltempstring = passedVal;
 for(count=0; count < passedVal.length + 1; count++)
 {
  if(passedVal.charAt(count) == " ")
  {
   ltempstring = passedVal.substr(count+1,passedVal.length);
  }
  else
  {
   break;
  }
 }
 passedVal = ltempstring;
 return passedVal;
}

function rtrim(passedVal)
{
 var rtempstring;
 rtempstring = passedVal;
 for(count=passedVal.length - 1; count > 0; count--)
 {
  if(passedVal.charAt(count) == " ")
  {
   rtempstring = passedVal.substr(0,count);
  }
  else
  {
   break;
  }
 }
 passedVal = rtempstring;
 return passedVal;
}

function trim(passedVal)
{
 var trimstring;
 trimstring = ltrim(rtrim(passedVal));
 return trimstring;
} 

// functions added by sunita for validating phone no., fax no
function IsValidPhoneNumber(TextObject){
	
	var StrPhone = new String(TextObject.value);
	if (TextObject.value == "" || StrPhone.length <= 0) {
		alert("Please enter the Phone Number.");
		return false;
	}
	var ValidCharacters = "1234567890{}[]- /,()+"
	if(!CharacterValidation(ValidCharacters, TextObject.value)){
		TextObject.className = "Error"
		TextObject.focus();
		return false;
	} 
	return true;
} 

function CharacterValidation(parmValidChars, parmString) 
{
 var ValidCharacters = parmValidChars;
 var i;
 for(var z = 0; z < parmString.length; z++)
 {
  i = ValidCharacters.indexOf(parmString.charAt(z));
  
  if(i == -1) 
   return false;
 }  
 return true;
}

function page_unload() {
	if (window.ischanged)
	return('You have not yet submitted this record.') }