function emailToFriend() {
	doOverlay();
	document.getElementById('emailProperty').style.display='block';
}

function emailToFriendStop() {
	document.getElementById('emailProperty').style.display='none';
	myLightbox.end();
}

function mortgageCalculator() {
	doOverlay();
	//alert('This feature is coming soon!');
	document.getElementById('mortgageCalc').style.display = 'block';
	dosum();
	
}

function mortgageCalcEnd() {
	document.getElementById('mortgageCalc').style.display='none';
        myLightbox.end();
}

function requestViewing() {
	doOverlay();
	document.getElementById('requestViewing').style.display='block';
}

function showSearch() {
	document.getElementById('searchBox').style.display = 'block';
}

function hideSearch() {
	document.getElementById('searchBox').style.display = 'none';
}

function toggleSearch() {
	if(document.getElementById('searchBox').style.display == 'block') {
		document.getElementById('searchBox').style.display = 'none';
	} else {
		document.getElementById('searchBox').style.display = 'block';
	}
}

function requestViewingEnd() {
	document.getElementById('requestViewing').style.display='none';
        myLightbox.end();
}

function doOverlay() {
	hideSelectBoxes();
	var arrayPageSize=getPageSize();
	Element.setHeight('overlay',arrayPageSize[1]);	
	new Effect.Appear('overlay',{duration:0.2,from:0.0,to:0.8});
}

function verifyForm(form_id) {
		var myForm = document.getElementById(form_id);
		var errorMessage = '';
		var logMessage = "";
		var inputs = myForm.getElementsByTagName('input');
		var selects = myForm.getElementsByTagName('select');
		var textareas = myForm.getElementsByTagName('textarea');
		var idx = 0;
		logMessage += "Found " + inputs.length + " inputs\n";
		logMessage += "Found " + selects.length + " selects\n";
		logMessage += "Found " + textareas.length + " textareas\n";
		
		for(idx=0; idx<inputs.length ; idx++) {
			if(inputs[idx].getAttribute('required') == 'required') {
				logMessage += "found a required field: " + idx + " with value = " + inputs[idx].value  + "\n";
				if(inputs[idx].value.length == 0) {
					var myName = inputs[idx]['name'];
					myName = myName.replace(/_/g, ' ');
					errorMessage += "The field '" + myName + "' must not be empty.\n";
				}
			}
			if(inputs[idx].getAttribute('required') == 'requiredemail') {
							logMessage += "found a required field: " + idx + " with value = " + inputs[idx].value  + "\n";
							if(inputs[idx].value.length == 0 || inputs[idx].value.indexOf('@') == -1) {
									var myName = inputs[idx]['name'];
									myName = myName.replace(/_/g, ' ');
									errorMessage += "The field '" + myName + "' must not be empty or must contain a valid email address.\n";
							}
					}
		}
		
		
			
		for(idx=0; idx<selects.length ; idx++) {
			if(selects[idx].getAttribute('required') == 'required') {
				logMessage += "found a required field: " + idx + " with value = " + selects[idx].selectedIndex + "\n";
				if(selects[idx].selectedIndex == 0) {
					var myName = selects[idx]['name'];
					myName = myName.replace(/_/g, ' ');
					errorMessage += "You must choose an option from the '" + myName + "' drop-down menu.\n";
				}
			}
		}
		
		
		for(idx=0; idx<textareas.length ; idx++) {
			if(textareas[idx].getAttribute('required') == 'required') {
				logMessage += "found a required field: " + idx + " with value = " + textareas[idx].value  + "\n";
				if(textareas[idx].value.length == 0) {
					var myName = textareas[idx]['name'];
					myName = myName.replace(/_/g, ' ');
					errorMessage += "The field '" + myName + "' must not be empty.\n";
				}
			}
		}
		
		if(errorMessage !='') {
			alert("The following errors were found:\n" + errorMessage);
			return false;
		} else {
			//alert(logMessage + "\n\nErrormessage: " + errorMessage);
			return true;
		}
	}


function floor(number)
{
  return Math.floor(number*Math.pow(10,2))/Math.pow(10,2);
}

function dosum() {
	var yp = document.temps.YP.value;
	var freq = "";
	switch(parseInt(yp)) {
		case 24: {
			freq = "Semi-Monthly";
		}break;
		case 26: {
			freq = "Bi-Weekly";
		}break;
		case 52: {
			freq="Weekly";
		}break;
		case 12: {
			freq="Monthly";
		}break;
		default: {
			freq="Unknown";
		}break;
	}
  	var mi = document.temps.IR.value / 1200;
  	var base = 1;
  	var mbase = 1 + mi;
  	for (i=0; i<document.temps.YR.value * yp; i++) {
    		base = base * mbase
  	}
	var DP = 0;
        if(document.temps.DPP.value=="p") {
                DP = (document.temps.DP.value/100) * document.temps.LA.value;
        } else {
                DP = document.temps.DP.value;
        }

  	document.temps.AA.value = document.temps.LA.value - DP;
  	document.temps.PI.value = floor((document.temps.LA.value-DP) * mi / ( 1 - (1/base))/ yp * 12);
  	document.temps.MT.value = floor(document.temps.AT.value / yp);
  	document.temps.MI.value = floor(document.temps.AI.value / yp);
	document.temps.CFP.value = floor(document.temps.CF.value / yp * 12);
	var dasum = ((document.temps.LA.value-DP) * mi / ( 1 - (1/base))/ yp * 12) +
        	document.temps.AT.value / yp + 
        	document.temps.AI.value / yp +
		document.temps.CF.value / yp * 12;

  	document.temps.MP.value = floor(dasum);
	document.getElementById('payment_span').innerHTML = "Total Payment (" + freq + ")";
}


function clickFloorplan() {
	var myLink = document.getElementById('floorplan');
	if(myLink.click) {
		// IE
		myLink.click();
	} else {
		var e = document.createEvent("MouseEvents");
		e.initEvent("click", true, true);
		myLink.dispatchEvent(e);
	}
}
