// JavaScript Document
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

if (window.attachEvent) window.attachEvent("onload", sfHover);

/*************************************
*
*	FORM VALIDATION FUNCTIONS
*
*************************************/

//validate the first page of the business loan app
function validateBusApp1()
{
	var email1 = document.getElementById("txtEmail");
	var email2 = document.getElementById("txtConfirmEmail");
	var pwd1 = document.getElementById("txtPassword");
	var pwd2 = document.getElementById("txtConfirmpassword");
	
	if(email1.value == "")
	{
		alert("Email is a required field");
		return false;
	}

	if(pwd1.value == "")
	{
		alert("Password is a required field");
		return false;
	}

	if(email2.value == "")
	{
		alert("Please confirm your email address");
		return false;
	}

	if(pwd2.value == "")
	{
		alert("Please confirm your password");
		return false;
	}	
	
	if(email1.value != email2.value)
	{
		alert("The emails you entered do not match");
		return false;
	}

	if(pwd1.value != pwd2.value)
	{
		alert("The passwords you entered do not match");
		return false;
	}
	
	return true;

}

//busFinanceApp2 form validation
function validateBusApp2()
{
	var companyName = document.getElementById("txtCompanyName")
	var state = document.getElementById("ddlState");
	var yearsInBusiness = document.getElementById("txtYearsInBusiness");
	var city = document.getElementById("txtCity");
	var zip = document.getElementById("txtZipCode");
	var companyName = document.getElementById("txtCompanyName");
	var yearlyRevenue = document.getElementById("txtYearlyRevenue");
	var netProfit = document.getElementById("txtNetProfit");
	var commRealEstate = document.getElementById("txtCommercialRealEstate");
	var equipment = document.getElementById("txtEquipment");
	var pastCredit = document.getElementById("txtLargestPastCredit");
	
	//-txtYearsInBusiness -> number
	//-txtZipCode -> number
	//-txtYearlyRevenue -> number
	//-txtNetProfit -> number
	//-txtCommercialRealEstate -> number
	//-txtEquipment -> number
	//-txtLargestPastCredit -> number
	
	if(testForNumber(pastCredit.value))
	{
		alert("Largest Past Credit must be a number");
		return false;
	}		
	
	if(testForNumber(equipment.value))
	{
		alert("Equipment must be a number");
		return false;
	}			
	
	if(testForNumber(commRealEstate.value))
	{
		alert("Commercial Real Estate must be a number");
		return false;
	}		
	
	if(testForNumber(netProfit.value))
	{
		alert("Net Profit must be a number");
		return false;
	}	
	
	if(testForNumber(yearsInBusiness.value))
	{
		alert("Years In Business must be a number");
		return false;
	}

	if(testForNumber(yearlyRevenue.value))
	{
		alert("Yearly Revenue must be a number");
		return false;
	}

	if(testForNumber(zip.value))
	{
		alert("Zip Code must be a number");
		return false;
	}
	
	if(companyName.value == "" || companyName == null)
	{
		alert("Company Name is a required field");
		return false;
	}
	
	if(state.value == "")
	{
		alert("State is required");
		return false;
	}
	
	if(yearsInBusiness.value == "")
	{
		alert("Years in business is a required field");
		return false;
	}
	
	if(isNaN(yearsInBusiness.value))
	{
		alert("Years in business must be a number")
		return false;
	}
	
	if(city.value == "")
	{
		alert("City is a required field");
		return false;
	}
	if(zip.value == "")
	{
		alert("Zip is a required field");
		return false;
	}
	return true;
		
}

//busFinanceApp3 form validation
function validateBusApp3()
{
	var firstName = document.getElementById("txtFirstName");
	var lastName = document.getElementById("txtLastName");
	var grossIncome = document.getElementById("txtGrossIncome");
	var netWorth = document.getElementById("txtNetWorth");
	var liquidAssets = document.getElementById("txtLiquidAssets");
	var yrsWithEmployer = document.getElementById("txtYrsWithEmployer");
	
	//txtGrossIncome -> number
	//txtNetWorth -> number
	//txtLiquidAssets -> number
	//txtYrsWithEmployer -> number

	if(testForNumber(yrsWithEmployer.value))
	{
		alert("Years With Employer must be a number");
		return false;
	}


	if(testForNumber(liquidAssets.value))
	{
		alert("Liquid Assets must be a number");
		return false;
	}


	if(testForNumber(netWorth.value))
	{
		alert("Net Worth must be a number");
		return false;
	}

	if(testForNumber(grossIncome.value))
	{
		alert("Gross Income must be a number");
		return false;
	}
	
	if(firstName.value == "")
	{
		alert("First Name is a required fieled");
		return false;
	}

	if(lastName.value == "")
	{
		alert("Last Name is a required fieled");
		return false;
	}
}

//busFinanceApp4 form validation
function validateBusApp4()
{
	var termsConfirm = document.getElementById("ckTermsConfirm");
	
	if(!termsConfirm.checked)
	{
		alert("You must accept the terms and conditions to submit your application");
		return false;
	}
	
	return true;
}

//first page validation for commercial property app
function validateCommApp1()
{
	var email1 = document.getElementById("txtEmail");
	var email2 = document.getElementById("txtConfirmEmail");
	var pwd1 = document.getElementById("txtPassword");
	var pwd2 = document.getElementById("txtConfirmPassword");
	
	if(email1.value == "")
	{
		alert("Email is a required field");
		return false;
	}

	if(pwd1.value == "")
	{
		alert("Password is a required field");
		return false;
	}

	if(email2.value == "")
	{
		alert("Please confirm your email address");
		return false;
	}

	if(pwd2.value == "")
	{
		alert("Please confirm your password");
		return false;
	}	
	
	if(email1.value != email2.value)
	{
		alert("The emails you entered do not match");
		return false;
	}

	if(pwd1.value != pwd2.value)
	{
		alert("The passwords you entered do not match");
		return false;
	}
	
	return true;

}

//page 2 validation for commercial property app
function validateCommApp2()
{
	var state = document.getElementById("ddlState");
	var city = document.getElementById("txtCity");
	var zip = document.getElementById("txtZipCode");

	var propertyAge = document.getElementById("txtPropertyAge");
	var totalSquareFeet = document.getElementById("txtTotalSquareFeet");
	var propertyIncome = document.getElementById("txtPropertyIncome");
	var annualTaxes = document.getElementById("txtAnnualTaxes");
	var insurance = document.getElementById("txtInsurance");
	
	//txtPropertyAge -> number
	//txtTotalSquareFeet-> number
	//txtPropertyIncome -> number
	//txtAnnualTaxes -> number
	//txtInsurance -> number

	if(testForNumber(insurance.value))
	{
		alert("Insurance must be a number");
		return false;
	}
	
	if(testForNumber(annualTaxes.value))
	{
		alert("Annual Taxese must be a number");
		return false;
	}
	
	if(testForNumber(propertyIncome.value))
	{
		alert("Property Income must be a number");
		return false;
	}

	if(testForNumber(totalSquareFeet.value))
	{
		alert("Total Square Feet must be a number");
		return false;
	}

	if(testForNumber(propertyAge.value))
	{
		alert("Property Age must be a number");
		return false;
	}

	if(state.value == "")
	{
		alert("State is required");
		return false;
	}
	
	if(city.value == "")
	{
		alert("City is a required field");
		return false;
	}
	if(zip.value == "")
	{
		alert("Zip is a required field");
		return false;
	}
	return true;

}

//page 3 validation for commercial property app
function validateCommApp3()
{
	var firstName = document.getElementById("txtFirstName");
	var lastName = document.getElementById("txtLastName");
	var yearsWithEmployers = document.getElementById("txtYearsWithEmployers");
	var grossIncome = document.getElementById("txtGrossIncome");
	var netWorth = document.getElementById("txtNetWorth");
	var liquidAssets = document.getElementById("txtLiquidAssets");
	
	//txtYearsWithEmployers -> number
	//txtGrossIncome-> number
	//txtNetWorth -> number
	//txtLiquidAssets -> number

	if(testForNumber(liquidAssets.value))
	{
		alert("Liquid Assets must be a number");
		return false;
	}	

	if(testForNumber(netWorth.value))
	{
		alert("Net Worth must be a number");
		return false;
	}	
	
	if(testForNumber(grossIncome.value))
	{
		alert("Gross Income must be a number");
		return false;
	}	
		
	if(testForNumber(yearsWithEmployers.value))
	{
		alert("Years With Employer must be a number");
		return false;
	}	
	
	if(firstName.value == "")
	{
		alert("First Name is a required fieled");
		return false;
	}

	if(lastName.value == "")
	{
		alert("Last Name is a required fieled");
		return false;
	}
}

//page 4 validation for commercial property app
function validateCommApp4()
{
	var termsConfirm = document.getElementById("ckTermsConfirm");
	
	if(!termsConfirm.checked)
	{
		alert("You must accept the terms and conditions to submit your application");
		return false;
	}
	
	return true;

}

//validate lender sign up page 1
function validateLenderLogin1()
{
	var companyName = document.getElementById("txtCompanyName");
	var contactFirstName = document.getElementById("txtContactFirstName");
	var contactLastName = document.getElementById("txtContactLastName");
	var state = document.getElementById("ddlState");
	var zipCode = document.getElementById("txtZipCode");
	var email = document.getElementById("txtEmail");
	var phone = document.getElementById("txtPhone");
	var userId = document.getElementById("txtUserId");
	var pwd1 = document.getElementById("txtPassword");
	var pwd2 = document.getElementById("txtConfirmPassword");

	if(companyName.value == "")
	{
		alert("Company Name is a required field");
		return false;
	}

	if(contactFirstName.value == "")
	{
		alert("First Name is a required field");
		return false;
	}

	if(contactLastName.value == "")
	{
		alert("Last Name is a required field");
		return false;
	}

	if(zipCode.value == "")
	{
		alert("Zip Code is a required field");
		return false;
	}

	if(email.value == "")
	{
		alert("Email is a required field");
		return false;
	}

	if(phone.value == "")
	{
		alert("Phone is a required field");
		return false;
	}	

	if(userId.value == "")
	{
		alert("User Id is a required field");
		return false;
	}	

	if(pwd1.value == "")
	{
		alert("Password is a required field");
		return false;
	}	
		
	if(pwd1.value != pwd2.value)
	{
		alert("The passwords you entered do not match");
		return false;
	}	

	return true;

}

function validateLenderLogin2()
{
	
}

//validate the newsletter sign up form
function checkEmail()
{
	var email = document.getElementById("txtNewsletterEmail");
	if(email.value == "")
	{
		alert("To sign up for the newsletter you must enter an email address.");
		return false;
	}	
	
	return true;
}

//check the login page
function validateLoginForm()
{
	var email1 = document.getElementById("txtEmail");
	var pwd1 = document.getElementById("txtPassword");
	
	if(email1.value == "")
	{
		alert("Email is a required field");
		return false;
	}

	if(pwd1.value == "")
	{
		alert("Password is a required field");
		return false;
	}
	
	return true;
}

function validateForgotPasswordForm()
{
	var pwd1 = document.getElementById("txtPassword");
	
	if(pwd1.value == "")
	{
		alert("How can we find your password if you don't enter an email?");
		return false;
	}
	
	return true;
}

//loan form 
function validateLoanStartForm()
{
	var loanType = document.getElementById("loantype");
	var loanAmount = document.getElementById("loanamount");
	var roleInLoan = document.getElementById("roleinloan");
	
	if(loanType.value == "")
	{
		alert("Please select a loan type");
		return false;
	}

	if(loanAmount.value == "")
	{
		alert("Please select a loan amount");
		return false;
	}

	if(roleInLoan.value == "")
	{
		alert("Please select your role in this loan");
		return false;
	}
	
	return true;

	
}

/********************************************************

	TAB FUNCTIONS

********************************************************/


//select a nav panel
//this needs to take the parent panel and the selected panel to accomodte multiple panels on one pages
//actually i probably want a group indicator where i can figure out the tab and the assoc. panel
function selectPanel(pSelected, pTabExtension, tabType)
{
    hideAllPanels(pTabExtension, tabType);
    //divSelect is the TAB, divMod is the associated PANEL
    var tab = getElementByContentId(pSelected);
    var panel = getElementByContentId(pSelected.replace("divSelect","divMod"));

		if(tabType == "top")    
		{
	    tab.className = "selectTabTop";
	  }
	  else
	  {
	    tab.className = "selectTab";
	  }
    panel.style.display = "block";

}
//hide all associated panels in the designated area
function hideAllPanels(pTabExtension, tabType)
{
    for(var i=0; i < getElementByContentId("divSelectPanels" + pTabExtension).childNodes.length; i++)
    {
      var el = getElementByContentId(getElementByContentId("divSelectPanels" + pTabExtension).childNodes[i].id);
			if(el != null)
			{
	      if(testForDPanel(el.id))
	      {
					if(tabType == "top")    
					{
	          el.className = "deSelectTabTop";
	        }
	        else
	        {
	          el.className = "deSelectTab";
	        }
	      }
      }
    }
    for(var i=0; i < getElementByContentId("divModPanels" + pTabExtension).childNodes.length; i++)
    {
      var el = getElementByContentId(getElementByContentId("divModPanels" + pTabExtension).childNodes[i].id);
			if(el != null)
			{
	      if(testForDModPanel(el.id))
	      {
	          el.style.display="none";
	      }
      }
    }   
}

function getElementByContentId(elId)
{
    var tryEl = document.getElementById(elId);
    return tryEl;
}

//is this a select handle?
function testForDPanel(elId) 
{
    var elReg = "divSelect";
    var regex = new RegExp(elReg);
    return regex.test(elId);
}    
//is this an associated panel?
function testForDModPanel(elId) 
{
    var elReg = "divMod";
    var regex = new RegExp(elReg);
    return regex.test(elId);
}  

//make sure this is a number
function testForNumber(el)
{
    var elReg = "[^0-9]";
    var regex = new RegExp(elReg);
    return regex.test(el);
}

/****************************************************

	OTHER STUFF

*****************************************************/

function toggleElement(elToTog,toggleMsg1,toggleMsg2)
{
		//alert(elToTog + ":" + toggleMsg1 + ":" + toggleMsg2)
    var tog = document.getElementById(elToTog);
    var togHandle = document.getElementById(elToTog + "Tog");
	
		//alert(tog.style)
		//alert(tog.style.display)
    
    if(tog.style.display == "none")
    {
        tog.style.display = "inline";
        if(toggleMsg2 != "none")
            togHandle.innerText = toggleMsg2;
    }
    else
    {
        tog.style.display = "none";
        if(toggleMsg1 != "none")
            togHandle.innerText = toggleMsg1;
    }
}



//get the x & y coordinates of the mouse on the screen
function getMouseXY(e) {
    var IE = document.all?true:false
    var tempX = 0
    var tempY = 0
  if (IE) 
  { 
    var offsetX
    var offsetY
    //have to do this for IE 6
    if (document.documentElement && document.documentElement.scrollTop)
    {
	    offsetY = document.documentElement.scrollTop
	    offsetX = document.documentElement.scrollLeft
    }
    else if (document.body)
    {
	    offsetY = document.body.scrollTop
	    offsetX = document.body.scrollLeft
    }

    tempX = event.clientX + offsetX
    tempY = event.clientY + offsetY
  } 
  else 
  {  
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  return {x:tempX, y:tempY};

}


//for this to work you need the div on the page and an iframe to act as a shim
function openDesc(divToOpen)
{
    //var mouseOffset = getMouseOffset(divToOpen)
    var newIframe = document.getElementById("ifHelpShim")
    var theDiv = document.getElementById(divToOpen)
    
    var coords = getMouseXY(divToOpen)
    //alert(document.body.scrollTop)
    newIframe.style.top = coords.y
    newIframe.style.left = coords.x-210
    newIframe.style.width=theDiv.offsetWidth
    newIframe.style.height=theDiv.offsetHeight
    //newIframe.style.zIndex = theDiv.style.zIndex - 1;
		newIframe.style.display = "block";
		newIframe.style.backgroundColor = "black";

    theDiv.style.position="absolute"
    theDiv.style.visibility="visible"
    theDiv.style.top=coords.y  
    theDiv.style.left=coords.x  //subtract 210 for nice positioning :^)
    theDiv.style.zIndex = newIframe.style.zIndex + 1

}
function closeDesc(divToOpen)
{
    var theDiv = document.getElementById(divToOpen)
    theDiv.style.position="absolute"
    theDiv.style.visibility="hidden"
    
    var newIframe = document.getElementById("ifHelpShim")
    newIframe.style.display="none"
}