var selected='';
var gkselected='';
var school_selected='';

function select_tab(idx){
	if(idx!=selected){
		if(selected!='') deselect_tab(selected);
		selected = idx;
		document.getElementById('prop_tab_'+idx).className = 'prop_tab_selected';
		document.getElementById('prop_tab_'+idx+'_panel').style.visibility='visible';
		if(document.Form1.selTab) document.Form1.selTab.value = selected;
	}
	if(school_selected != ''){
		document.getElementById(school_selected).style.visibility = 'hidden';
		school_selected = '';
	}
}
function deselect_tab(idx){
	document.getElementById('prop_tab_'+idx).className = 'prop_tab';
	document.getElementById('prop_tab_'+idx+'_panel').style.visibility='hidden';
}

function select_gktab(idx, pg){
	//if(idx!=gkselected){
		if(gkselected!='') deselect_gktab(gkselected);
		gkselected = idx;
		document.getElementById('gktab_'+idx).className = 'gkTab_selected';
		parent.frames['main'].location.href='My'+pg+'.aspx';
//	}
}
function deselect_gktab(idx){document.getElementById('gktab_'+idx).className = 'gkTab';}

function calculateMortgage(){
	//var frm = document.Form1;
	//var frm = document.form1;
	var frm = document.aspnetForm;
	
	frm.mtgPrice.value = cleanMoney(frm.mtgPrice.value);
		
	frm.mtgDown.value = cleanMoney(frm.mtgDown.value);

	if(isNaN(frm.mtgPrice.value) || frm.mtgPrice.value == ''){
		alert('Asking Price is Required.');
		frm.mtgPrice.focus();
		return;
	}
	if(isNaN(frm.mtgDown.value) || frm.mtgDown.value == ''){
		alert('Down Payment must be a number.\n\rEnter 0 for none.');
		frm.mtgDown.focus();
		frm.mtgDown.select();
		return;
	}
	var amount = frm.mtgPrice.value - frm.mtgDown.value;
	var loan_split = frm.mtgLoan.options[frm.mtgLoan.selectedIndex].value.split('|');
	var years = loan_split[0];
	var rate = loan_split[1];
	
	frm.mtgPayment.value = getPayment(amount, years, rate);
	frm.mtgPrice.value = formatCurrencyDollar(frm.mtgPrice.value);
	frm.mtgDown.value = formatCurrencyDollar(frm.mtgDown.value);
}

function cleanMoney(val){return val.toString().replace(/\$|\,/g,'');}

function getPayment(amt, yrs, rate){
	// amt = Loan Amount, yrs = Term in Years, rate = Interest Rate (%)
	var m = yrs * 12;		// # of Months
	var i = rate/100;		// Decimal Interest Rate
	var mi = i/12;			// Monthly Interest
	var x = Math.pow((1 + mi), m);// Calculation that is used twice
	// Return the monthly payment formatted as currency.
	return formatCurrency((amt * x * mi)/(x - 1));
}

function formatCurrency(num){
	// Format Currency Function found on the internet
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)	cents = "0" + cents;
	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 (((sign)?'':'-') + '$' + num + '.' + cents);
}

function formatCurrencyDollar(num){
	// Format Currency Function found on the internet
	// *****changed for whole numbers only (dollars)
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	num = Math.floor(num/100).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 (((sign)?'':'-') + '$' + num);
}

function doRequestInfoFormSubmit(){
	// Called when someone clicks on the button to submit the request information form
	var frm = document.Form1;
	if(isEmpty(frm.ri_Question, "Question", true)) return false;
	frm.submit();
}

function doRequestInfoFormSubmitNotLoggedIn(){
	var frm = document.Form1;
	if(isEmpty(frm.ri_Name, "Name", true)) return false;
	if(isEmpty(frm.ri_Email, "Email", true) || !isEmail(frm.ri_Email)) return false;
	if(isEmpty(frm.ri_Phone, "Phone", true)) return false;
	if(isEmpty(frm.ri_Question, "Question", true)) return false;
	frm.submit();
}

function doRequestInfoFormSubmitNoProperty(){
	// Called when someone clicks on the button to submit the request information form
	var frm = document.Form1;
	if(isEmpty(frm.ri_Name, "Name", true)) return false;
	if(isEmpty(frm.ri_Email, "Email", true) || !isEmail(frm.ri_Email)) return false;
	if(isEmpty(frm.ri_Phone, "Phone", true)) return false;
	if(isEmpty(frm.ri_Question, "Question", true)) return false;
	frm.submit();
}

function isEmpty(fld, lbl, sel){
	// This is a utility function for form field validation.
	//		fld = The Field
	//		lbl = The Label - if the field is empty the label will be used in the message
	//		sel = Select It	- if the field is empty, should it be selected
	// If the field is empty then it will display a message and return true.
	
	var txt = fld.value.replace(/ /g, "");
	if(txt == ''){
		alert('Please fill in ' + lbl + '.\n\rIt is required.');
		if(sel == true) fld.focus();
		return true;
	}
	return false;
}

function isEmail(fld){
	// This is a utility function for form field validation
	// It checks an email address using a pattern matching technnique.
	//		fld = The Field
	// If the email addres doesn't match the pattern, it will display a message and return false

	var email = fld.value;
	var re = /^(\".+\"|[a-z]\w*(\.[a-z]\w*)*)@(\[\d{1,3}(\.\d{1,3}){3}]|[a-z]\w*(\.[a-z]\w*)+)$/i;
	if(!re.test(email)){
		alert('Email address is an invalid format.\n\rPlease check your spelling and try again.');
		fld.focus();
		fld.select();
		return false;
	}
	return true;
}

function isNumeric(fld, lbl, sel){
	// This is a utility function for form field validation.
	//		fld = The Field
	//		lbl = The Label - if the field is empty the label will be used in the message
	//		sel = Select It	- if the field is not a number, should it be selected
	// If the field is not a number then it will display a message and return false.
	
	var txt = fld.value.replace(/ /g, "");
	if(isNaN(txt)){
		alert('Only the numbers 0-9 are allowed in ' + lbl);
		if(sel == true) fld.focus();
		return false;
	}
	return true;
}

function searchTabClick(){
	// This function is called when the search tab on PageTop is clicked
	// If we are on the results page, go back to the search page.
	var doc = parent.frames['left'].document;
	if(!isObject(doc.getElementById('Panel1'))) doc.getElementById('btnSearch').click();
}
function resultsTabClick(){
	// This function is called when the results tab on PageTop is clicked
	// If we are on the search page, try to do the search
	var doc = parent.frames['left'].document;
	if(isObject(doc.getElementById('Panel1'))) doc.Form1.btnSubmit2.click();
}
function isObject(x){return (x && typeof x == 'object');}
function isSearchPageShown(){return parent.frames['left'].document.getElementById('Panel1').visible;}

function chooseTheRightTab(){
	if(isObject(parent.frames['left'].document.getElementById('Panel1'))){
		// Search page is shown - select the search tab
		document.getElementById('srTab_S').className = 'srTab_selected';
	}
	else{
		// Results page is shown - select the results tab
		document.getElementById('srTab_R').className = 'srTab_selected';
	}
}


function schoolOverview(SchoolID){
	document.getElementById('School'+SchoolID).style.visibility='visible';
	school_selected='School'+SchoolID;
}
function schoolList(SchoolID){
	document.getElementById('School'+SchoolID).style.visibility='hidden';
	school_selected='';	
}

function loadSearch(code, passcode){
	parent.frames['pageTop'].deselect_gktab('2');
	parent.frames['left'].document.location.href='Loadsearch.aspx?code=' + code + '&passcode=' + passcode;
	parent.frames['main'].document.location.href='WelcomeResults.aspx';
}

function findPosY(obj){
	var is_ie   = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	if(!is_ie) curtop -= 15;
	return curtop;
}