$(document).ready( function() {
	initNav();
	$("#address").css("color","#999999");
	var clearedField = 0;
});

function initNav() {
	var theLinks = $("#navM > a");
	var dropOn = false;
	theLinks.each(function(i) {
		var theLink = $(this);
		var dropBox = (theLink.attr('rel') != "") ? $("#"+theLink.attr('rel')): null;
		theLink.mouseover(function() { 
			if(dropBox != null) toggleDrop(theLink,dropBox,'over');
			toggleNavLink(theLink,'over');
		});
		theLink.mouseout(function() {
			if(dropBox != null && dropOn == false) toggleDrop(theLink,dropBox,'out');
			toggleNavLink(theLink,'out');
		});
		if(dropBox != null) {
			dropBox.mouseover(function() {
				dropOn = true;
				toggleDrop(theLink,dropBox,'over');
			});
			dropBox.mouseout(function() { 
				dropOn = false;
				toggleDrop(theLink,dropBox,'out');	
			});
		}
	});
}

function toggleNavLink(link,state) {
	(state == "over") ? link.addClass('selected'): link.removeClass('selected');
}

function toggleDrop(link,dropBox,state) {
	var linkOffsets = link.offset();
	var navOffsets = $("#navM").offset();
	var dropLeft = (linkOffsets.left-navOffsets.left)+246;
	//var dropLeft = (Browser.Engine.gecko) ? linkOffsets.left-3: linkOffsets.left-4;
	(state == "over") ? link.addClass('selected'): link.removeClass('selected');
	if(state == "over") {

		dropBox.css({'left':dropLeft,'z-index':'10000','display':'block'});

	}

	else dropBox.css('display','none');

}

function clearField() {
	$("#address").attr('value') = "";
	$("#address").css("color","#000000");
	clearedField = 1;

}


var tabHashes = new Array('agent','listings','contact');
function initBrokersPage() {
	var firstTab = (window.location.hash) ? window.location.hash.replace("#",""): 'agent';
	if(tabHashes.indexOf(firstTab)) switchBrokerTab(tabHashes.indexOf(firstTab));
	
	//MAKE BIO AND QUALIFICATIONS BOXES SAME HEIGHT
	var bioHeight = $('#brBio').height();
	var qualHeight = $('#brQuals').height();
	var divToMod = (bioHeight > qualHeight) ? $('#brQuals'): $('#brBio');
	var yardStick = (bioHeight > qualHeight) ? bioHeight: qualHeight;
	divToMod.height(yardStick);
}

function switchBrokerTab(num) {
	var tabs = $('#brokersTabs a');
	var contents = $('#brokersContentBox .brokersContent');
	tabs.each(function(i) { (i == num) ? $(this).addClass('selected'): $(this).removeClass('selected'); });
	contents.each(function(i) { (i == num) ? $(this).addClass('selected'): $(this).removeClass('selected'); });
}





//AFFORDABILITY CALCULATOR
//	document.temps.INCOME.select();
	function computeForm(form){	//	basicedit();
		var INCOME = replaceChars(form.INCOME.value);
		var INCOME = replaceChar(INCOME);
		var DOWN = replaceChars(form.DOWN.value);
		var DOWN = replaceChar(DOWN);
		var PRICE = replaceChars(form.PRICE.value);
		var PRICE = replaceChar(PRICE);
		
		var RATE = replaceDots(form.RATE.value);
		var RATE = replacePct(RATE);
		RATE = RATE/10000;
		var PTAX = replaceDots(form.PTAX.value);
		var PTAX = replacePct(PTAX);
		PTAX = PTAX/10000;
		var TERM = replaceChars(form.TERM.value);
		var TERM = replaceChar(TERM);
		var INS = replaceChars(form.INS.value);
		var INS = replaceChar(INS);
		var PmtPI = ((PRICE-DOWN) * (RATE/12)) / (1 - Math.pow(1 + (RATE/12), -(TERM*12)))
		var PmtT = (PRICE*PTAX)/12;
		var PmtI = INS/12;
		
		var PmtPITI = PmtPI + PmtT + PmtI;
		form.Payment.value = formatCurrency(PmtPITI);
		
		var PctIncome = PmtPITI/(INCOME/12);
		form.PmtPct.value = formatPercent(PctIncome*100,0);
		
		if(PctIncome <= 0.3) {
			form.Affordable.value = "YES";
			form.Affordable.style.backgroundColor = "#00C000";
		}
		else if (PctIncome <0.30495) {
			form.Affordable.value = "ALMOST";
			form.Affordable.style.backgroundColor = "#FFCC00";
		}
		else {
			form.Affordable.value = "NO";
			form.Affordable.style.backgroundColor = "#FF0000";
		}
	}
	function basicedit()
	{
		if 	(!IsMoney(document.temps.PRICE.value) || document.temps.PRICE.value.length ==0)
			document.temps.PRICE.value='$200,000';
	}
	function replaceChar(entry) {
		out = "$";		add = "";		temp = "" + entry;
		while (temp.indexOf(out)>-1) {
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add +			temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}
	function replacePct(entry) {
		out = "%";		add = "";		temp = "" + entry;
		while (temp.indexOf(out)>-1) {
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add +			temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}	
		
	function replaceChars(entry) {
		out = ",";		add = "";		temp = "" + entry;
		while (temp.indexOf(out)>-1) {
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add +			temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}
	function replaceDots(entry) {
		out = ".";		add = "";		temp = "" + entry;
		while (temp.indexOf(out)>-1) {
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add +			temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}
/*	function formatCurrency(num) {			
				num=replaceChar(num);
				num=replaceChars(num);
				num = num.toString().replace(/$|,/g,'');
				if(isNaN(num)) num = "0";
				num = Math.floor(num).toString();
			for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)				num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
						return ('$' + num );	
	}
*/
	function formatCurrency(strValue)
	{
		strValue = strValue.toString().replace(/\$|\,/g,'');
		dblValue = parseFloat(strValue);
		blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
		dblValue = Math.floor(dblValue*100+0.50000000001);
		intCents = dblValue%100;
		if(intCents >= 50)
			dblValue = dblValue+100;
		strCents = intCents.toString();
		dblValue = Math.floor(dblValue/100).toString();
		if(intCents<10)
			strCents = "0" + strCents;
		for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
			dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
			dblValue.substring(dblValue.length-(4*i+3));
		return (((blnSign)?'':'-') + '$' + dblValue/* + '.' + strCents*/);
	}
	function checkyear(form) {
		var theyear = replaceChars(form.YEAR.value);
		theyear=replaceChar(theyear);
		theyear=replaceChars(theyear);
		if (theyear < 1950 || theyear > 2008) {
			alert("This calculator is only valid for 1950-2008.");
			if(theyear < 1950){
				form.YEAR.value = '1950';
			} else {
				form.YEAR.value = '2008';
			}
			return false;
		}
		return true;
	}
	function formatPercent(strValue,precision)
	{
		strValue = strValue.toString().replace(/\%|\,/g,'');
		dblValue = parseFloat(strValue);
		blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
		dblValue = Math.floor(dblValue*100+0.50000000001);
		intCents = dblValue%100;
		strCents = intCents.toString();
		dblValue = Math.floor(dblValue/100).toString();
		if(intCents<10)
			strCents = "0" + strCents;
		for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
			dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
			dblValue.substring(dblValue.length-(4*i+3));
		if(precision>0)
			return (((blnSign)?'':'-') + dblValue + '.' + strCents + '%');
		else {
			if(strCents>=50)
				dblValue++;
			return (((blnSign)?'':'-') + dblValue + '%');
		}
	}
	function IsMoney(val)
		{
			var number="0123456789$,.";
			for (var i=0;i<val.length;i++)
			{
				if (number.indexOf(val.charAt(i)) == -1)
				{
					return false;
				}
			}
			return true;
		}


//MORTGAGE CALCULATOR
/*	Javascript Mortgage Calculator,v.1
	Carlos Labs Pty, 2007
	PID: 200711A, http://www.carloslabs.com
	
	This code is released under a Creative Commons license. 
	http://creativecommons.org/licenses/by/3.0/legalcode

	You may use this code in any software project, provided you
	do not remove or modify this header and you credit us as the
	original authors of the code. */

function runAnalysis()
{
	var outContent = '';
	var i, j;
	var ev;
	var fAmount = 0, fAPR = 0, fTerm = 0;
	var pYearly = 0, pMonthly = 0; pTotal = 0;
	var pCapitalOwing = 0, pInterestOwing = 0, pTotalOwing = 0;
	var ratioX = 0; ratioY = 0, iTerm = 0;
	var cGRAPHMARK = 'mdot.gif';
	var cCLEARLINE = '<img src="/images/cleardot.gif" width="1" height="160"/>';	
	var cCOLORLINE = '<img src="/images/' + cGRAPHMARK + '" width="1" height="1"/>';
	var cGRAPH_SIZE = 160;
	var cONE = 1;
	var cCURR_LABEL = '$';
	var cTIME_LABEL = '';	
 
	document.getElementById('visor').innerHTML = '';
	ev = updVar('iLoanAmt', 0)
	if (ev != 1) return;
		else fAmount = parseFloat(document.getElementById('iLoanAmt').value);
	ev = updVar('iLoanTerm', 0)
	if (ev != 1) return;
		else fTerm = parseFloat(document.getElementById('iLoanTerm').value);
	ev = updVar('iLoanAPR', 0)
	if (ev != 1) return;
		else fAPR = parseFloat(document.getElementById('iLoanAPR').value);
 
	fAPR = fAPR / 100;
	pYearly = fAmount * fAPR * ( 1 / ( 1 - (Math.pow((1 + fAPR),(-1 * fTerm)))));
	pMonthly = pYearly / 12;
	pTotal = parseInt(pYearly * fTerm);
	pTotalOwing = fAmount;				
	ratioX = Math.ceil(pTotal);
	ratioY = Math.floor(cGRAPH_SIZE / fTerm);
	document.getElementById('out_one').innerHTML = 'Repayments: Yearly $' + Math.floor(pYearly) + ', Monthly $' + Math.floor(pMonthly);
	i = cGRAPH_SIZE;
	for(j=0;j<cGRAPH_SIZE;++j)
	{
		if ((j % ratioY) == 1)
		{
			iTerm ++;
			if (iTerm > fTerm)
				iTerm = fTerm;
			pCapitalOwing = pTotalOwing * fAPR;
			pInterestOwing = pYearly - pCapitalOwing;		
			pTotalOwing = pTotalOwing - pInterestOwing;
			i = Math.ceil(pTotalOwing / (ratioX / cGRAPH_SIZE)) + 1;
		}
		outContent += '<img src="/images/' + cGRAPHMARK + '" width="' + cONE + '" height="' + i + '" onclick="javascript:showDetail('+ iTerm + ',' + pTotalOwing + ',' + fAmount + ');"/>';	
	}
	document.getElementById('visor').innerHTML = outContent;
	document.getElementById('X_label').innerHTML = cCURR_LABEL + ratioX.toString() + ' total repayable';
	document.getElementById('index_Y_axis').innerHTML = fTerm.toString() + cTIME_LABEL;
	document.getElementById('index_zero').innerHTML = '0';
	document.getElementById('Y_axis').innerHTML = '<img src="/images/y_axis_label.gif" width="66" height="13"/><br>Tan: interest, Gold: principal<br>Click graph for details';
		
}

function updVar(fi, deltaBit)
{
	var r = 0;
	var bl = 0, tl = 0
	var n = 0, d = 0;
	var tp = parseFloat(document.getElementById(fi).value);
	var ts = parseFloat(deltaBit);
	
	document.getElementById('visor').innerHTML = '<img src="/images/slope.gif" width="160" height="160"/>';	
	document.getElementById('X_label').innerHTML = '&nbsp;';
	document.getElementById('out_one').innerHTML = '&nbsp;';
	document.getElementById('out_two').innerHTML = '&nbsp;';
	document.getElementById('index_Y_axis').innerHTML = '&nbsp;';
	document.getElementById('index_zero').innerHTML = '&nbsp';
			
	if (fi == 'iLoanAmt')
	{
		r = 15000;
		bl = 10000;
		tl = 5000000;
		d = 150000;
		if (tp <= 100000)
			r = 5000;
		if (tp >= 250000)
			r = 50000;
	}

	if (fi == 'iLoanTerm')
	{
		r = 1;
		bl = 2;
		tl = 30;
		d = 16;
	}
	if (fi == 'iLoanAPR')
	{
		r = 0.25;
		bl = 2;
		tl = 35;
		d = 8.25;
	}
	n = tp + ts * r;
	if (isNaN(n))
			n = d;
	if ((n < bl) || (n > tl))
	{
		if ((tp < bl) || (tp > tl))
			n = d;
		else
			n = tp;
	}
	document.getElementById(fi).value = n;
	return 1
}

function showDetail(term, P, W)
{
	var st = 'Year ' + term.toString();
	var r = 100 - Math.floor(P / W * 100);
	if (r > 100)
	{
		r = 100;
		W = P;
	}
	st = st + '; $' + (Math.floor(W) - Math.floor(P)) + ' (' + r.toString() + '%) of principal has been paid';
	document.getElementById('out_two').innerHTML = st;
}



