function pdfPopup(link) {
        var winWidth = 675;
        var winHeight = 625;
        var winLeft = (screen.width - winWidth) - 20;
        pdfWindow = window.open('/pdf/loansummaries/' + link,'pdfWindow', 'width='+winWidth+', height='+winHeight+', resizable=1, status=1, screenX='+winLeft+', screenY=30,left='+winLeft+',top=30');}


function BrowserCheck() {
	this.ff = ((navigator.userAgent.indexOf('Firefox')>0))
	this.ie = (navigator.userAgent.indexOf('MSIE')>0)
}

// automatically create the "b" object
b = new BrowserCheck()


/**
	Function
		formValidate
	Params - Accepts many arguments but has to be in Element, ElementDisplay, ElementValidation order
		Element -  The form element name
		ElementDisplay - The name to display in error
		ElementType - The element type, 1 : Text; 2 : Numeric; 8 : Email;
		ElementRequired - Is the element required, 1 : Yes; 0 : No
**/
function formValidate()
{
	var sElementArray = new Array()
	var sElementDisplayArray = new Array()
	var sElementTypeArray = new Array()
	var sElementRequiredArray = new Array()

	var iArgumentCount = formValidate.arguments.length
	if(iArgumentCount == 0)
	{
		alert("No elements to validate.")
		return false
	}
	var iElementCount = iArgumentCount / 4

	var sErrorReport = ""

	var bErrorsExist = false
	var bElementError = false

	var oElement = null
	var oFirstInValidElement = null

	for(i = 0; i < iArgumentCount; i += 4)
	{
		sElementArray[sElementArray.length] = formValidate.arguments[ i ]
		sElementDisplayArray[sElementDisplayArray.length] = formValidate.arguments[ i + 1 ]
		sElementTypeArray[sElementTypeArray.length] = formValidate.arguments[ i + 2 ]
		sElementRequiredArray[sElementRequiredArray.length] = formValidate.arguments[ i + 3 ]
	}

	for(i = 0; i < iElementCount; i++)
	{
		oElement = document.all[sElementArray[i]]
		if(oElement == null || oElement == "undefined")
		{
			bElementError = true
			sErrorReport += "- " + sElementArray[i] +" is not a valid element.\n"
			continue
		}

		// Check if the element is required
		if(parseInt(sElementRequiredArray[i]) == 1)
		{
			if(isEmpty(oElement.value))
			{
				bErrorsExist = true
				sErrorReport += "- " + sElementDisplayArray[i] + " is required.\n"
				if(oFirstInValidElement == null)
				{
					oFirstInValidElement = oElement
				}
				continue
			}
		}

		if(parseInt(sElementTypeArray[i]) == 1) // Text
		{
			if(hasIllegalChars(oElement.value))
			{
				bElementError = true
				sErrorReport += "- " + sElementDisplayArray[i] + " contains illegal characters.\n"
			}
		}
		else if(parseInt(sElementTypeArray[i]) == "2") // Number
		{
			if(!isNumeric(oElement.value))
			{
				bElementError = true
				sErrorReport += "- " + sElementDisplayArray[i] + " is not a valid entry.\n"
			}
		}
		else if(parseInt(sElementTypeArray[i]) == "8") // Email
		{
			if(isBadEmail(oElement.value))
			{
				bElementError = true
				sErrorReport += "- " + sElementDisplayArray[i] + " is not a valid email.\n"
			}
		}

		if(bElementError)
		{
			bErrorsExist = true
			if(oFirstInValidElement == null)
			{
				oFirstInValidElement = oElement
			}
		}
		bElementError = false

	}// End for

	if(bErrorsExist)
	{
		alert("The following errors were found:\n" + sErrorReport)
		oFirstInValidElement.focus()
		if(oFirstInValidElement.type == "text" || oFirstInValidElement.type == "textarea")
		{
			oFirstInValidElement.select()
		}
		return false
	}
	else
	{
		return true
	}
}

function isEmpty(sValue)
{
	var bIsEmpty = false

	sTemp = sValue.replace(/^[\s]*/g, "")

	if(sValue == "")
	{
		bIsEmpty = true
	}
	else if(sTemp == "")
	{
		bIsEmpty = true
	}
	return bIsEmpty
}

function isNumeric(sValue)
{
	var sNumericPattern = /[^0-9]/
	var bIsNumeric = false

	bIsNumeric = (sValue.search(sNumericPattern) != -1)? false:true
	return bIsNumeric
}

function isDate(sValue)
{
	var sDatePattern = /([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{2,4})$/
	var bIsDate

	bIsDate = (sValue.search(sDatePattern) != -1)? false:true
	return bIsDate		
}

function hasIllegalChars(sValue)
{
	var sIllegalCharPattern = /\*/
	var bHasIllegalChars = false

	bHasIllegalChars = (sValue.search(sIllegalCharPattern) != -1)? true:false
	return bHasIllegalChars
}

function isBadEmail(sValue)
{
	var sEmailPattern = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
	//var sIllegalEmailPattern = /^\w+((-\w+)|(\.\w+)|(\_\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,5}$/
	var bIsBadEmail = false
	var oRegExp

	oRegExp = new RegExp(sEmailPattern)
	bIsBadEmail = (oRegExp.test(sValue))? false:true
	oRegExp = null
	return bIsBadEmail
}

function IsValidEmail(sValue)
{
	return ((isBadEmail(sValue))? false:true)
}


/**
	Function
		SwapImage
	Params - Accepts many arguments but has to be in ImageName, ImageSrc order
		ImageName
		ImageSrc
**/
function SwapImage()
{
	var ArrayArguments = SwapImage.arguments
	var iArgumentCount = ArrayArguments.length
	var iImagesToSwap = iArgumentCount / 2
	for(j = 0; j < iImagesToSwap; j+=2)
	{
		if(document.images[ ArrayArguments[ j ] ] != null)
		{
			document.images[ ArrayArguments[ j ] ].src = ArrayArguments[ j+1 ]
		}
	}
}

/**
	Function
		LoadImage
	Params - 
		ImageSrc
**/
function LoadImages()
{
	var ArrayArguments = LoadImages.arguments
	var oImageArray = new Array()
	if(document.images)
	{
		for(k = 0; k < ArrayArguments.length; k++)
		{
			oImageArray[k] = new Image()
			oImageArray[k].src = ArrayArguments[k]
		}
	}
}

/**
	Function
		IsPhoneValid
	Params - 
		sElementId
**/
function IsPhoneValid(sElementId)
{
	return ((FormatPhone(sElementId, 0) != '')? true:false)
}


/**
	Function
		FormatPhone
	Params - 
		sElementId
		iActionType
			0 - Return formatted string
			1 - Re-populate the form element give with the new formatted string
	Returns -
		Empty string is not valid otherwise a formatted string
**/
function FormatPhone(sElementId, iActionType)
{
	var oElement
	
	var sElementValue
	var sAreaCode
	var sNumberPart1
	var sNumberPart2
	var sFormattedNumber = ""
	
	var bIncludeAreaCode = false
	
	oElement = document.getElementById(sElementId)
	
	if(oElement == null || oElement == "undefined")
	{
		alert('Element: '+ sFormElement +', is not valid!')
		return;
	}
	
	sElementValue = oElement.value
	
	// strip out all non-numeric chars
	sElementValue = sElementValue.replace(/[^0-9]+/gi, "")

	// check if there is anything in the field
	if(sElementValue.length == 0)
	{
		return ''
	}

	// check if this has been formatted already
	if(sElementValue.indexOf("(") != -1)
	{
		return sElementValue
	}

	// if the number includes the US country code ie. 1, omit it
	if(sElementValue.charAt(0) == "1")
	{
		sElementValue = sElementValue.substr(1)
	}

	if(sElementValue.length < 7 || sElementValue.length > 10)
	{
		return ''
	}

	// if they've included area code, extract it
	if(sElementValue.length == 10)
	{
		bIncludeAreaCode = true
		sAreaCode = sElementValue.substring(0, 3)
		sElementValue = sElementValue.substr(3)
	}
	
	// Extract first 3
	sNumberPart1 = sElementValue.substring(0, 3)
	sElementValue = sElementValue.substr(3)
	
	// The remaining 4
	sNumberPart2 = sElementValue
	
	if(bIncludeAreaCode)
		sFormattedNumber = '('+ sAreaCode +') '
		
	sFormattedNumber += sNumberPart1 +'-'+ sNumberPart2
	
	if(iActionType == 0)
		return sFormattedNumber
	else if(iActionType == 1)
		oElement.value = sFormattedNumber
}

function OpenWindow(sURL, sWindowName, sConfig)
{
	window.open(sURL, "PCF_"+ sWindowName, sConfig);
}

function OpenGlossary(sURL)
{
	OpenWindow(sURL, "glossary", "width=500px, height=150px, scrollbars=yes")
}

function email(_u, _m)
{
	var _d = "&#112;&#111;&#105;&#110;&#116;&#99;&#101;&#110;&#116;&#101;&#114;&#46;&#99;&#111;&#109;";
	var _l  = _u + "&#64;" + _d;
	document.write("<a href='mailto:"+_l+"'>"+_m+"</a>");
}

/**
	Function
		ChangeToMoney
	Params - 
		sFieldName
	Returns -
		Nothing
	Comments -
		This changes the given field element's value to a formatted $$$ amount
**/
function ChangeToMoney(sFieldName)
{
	var oFormElement = null
	var sElementValue = ""
	
	oFormElement = document.getElementById(sFieldName)
	
	// Check if the field element exists
	if(oFormElement == "undefined" || oFormElement == null)
	{
		alert('Element: '+ sFieldName +', is not valid!')
		return
	}
	
	sElementValue = oFormElement.value
	
	// Check if the field is empty
	if(sElementValue.replace(/ /g, "") != "")
	{		
		// Format it
		sElementValue = FormatMoney(sElementValue)
		
		if(sElementValue != "")
		{
			oFormElement.value = "$" + sElementValue
		}
		else
		{
			oFormElement.value = ""
		}
	}
}

/**
	Function
		FormatMoney
	Params - 
		sAmount
	Returns -
		A formatted money string
**/

function FormatMoney(sAmount)
{
	var bCentsExist = false
	
	var sCentsString = "";
	var sAmountWithoutCents = "";
	var sNewAmountWithoutCents = "";
	
	var iAmountLength = 0
	
	if(sAmount.indexOf(".") != -1)
	{
		bCentsExist = true
		
		sCentsString = sAmount.substr(sAmount.indexOf("."))

		if(sCentsString == ".00")
		{
			sCentsString = "";
		}
	}
	
	// Get the amount without the cents
	if(bCentsExist)
	{
		sAmountWithoutCents = sAmount.substring(0, sAmount.indexOf("."))
	}
	else
	{
		sAmountWithoutCents = sAmount
	}

	// Clear out non-numeric characters
	sAmountWithoutCents = sAmountWithoutCents.replace(/[^0-9]+/gi, "")
	iAmountLength = sAmountWithoutCents.length

	if(sAmountWithoutCents.length < 4)
	{
		sNewAmountWithoutCents = sAmountWithoutCents
	}
	else if(sAmountWithoutCents.length > 3 && sAmountWithoutCents.length < 7) //1,000
	{
		sNewAmountWithoutCents = sAmountWithoutCents.substring(0, iAmountLength - 3) + "," + sAmountWithoutCents.substr(iAmountLength - 3)
	}
	else if(sAmountWithoutCents.length > 6 && sAmountWithoutCents.length < 10) //1,000,000
	{
		sNewAmountWithoutCents = sAmountWithoutCents.substring(0, iAmountLength - 6) + "," +  sAmountWithoutCents.substring(iAmountLength - 6, iAmountLength - 3) + ","+ sAmountWithoutCents.substr(iAmountLength - 3)
	}
	else if(sAmountWithoutCents.length > 9) //1,000,000,000
	{
		sNewAmountWithoutCents = sAmountWithoutCents.substring(0, iAmountLength - 9) + "," +  sAmountWithoutCents.substring(iAmountLength - 9, iAmountLength - 6) + ","+ sAmountWithoutCents.substr(iAmountLength - 3)
	}

	return sNewAmountWithoutCents + sCentsString
}