
var dhtml="<div id='disableDiv' style=\"display:none;vertical-align:middle;filter:alpha(opacity=80);-moz-opacity:.80;opacity:.80;background-color:#333333;text-align:center;width:1600px;;height:1400px;position:absolute;margin:0px;top:0px;left:0px;\"></div>";
var chtml="<div id='xcart' style='z-index:100;display:none;position:absolute;background-image:url(graphics/shadowdark.gif);width:420px;height:480px;top:150px;left:300px;'><div style='border:1px solid #666666;background-color:white;position:relative;top:-6px;left:-6px;width:420px;height:480px;background-image:url(graphics/fadedbg.gif);background-repeat:repeat-x;padding:5px;'><div style='text-align:right;padding:2px;'><img src='graphics/xout.gif' style='cursor:pointer' onclick='hideShowCart(\"none\");' border=1 alt='Close'></div><div class='cartHeader'>Cart Content</div><div id='cartCont' class='cartContentDiv'></div></div></div>"
var shtml="<div id='fContent' style='z-index:10;display:none;position:absolute;top:100px;left:200px;' class='popDiv'><div style='width:100%;text-align:right;' class='infoTab'><img src='graphics/xout.gif' style='cursor:pointer' onclick=\"hideShow('none');\" border=1 alt='Close'></div><div id='popMenu'></div><div id='popContent' class='popupContent'>"
shtml+="</div></div>";

document.write(chtml);
document.write(dhtml);
document.write(shtml);
//preload image
var backCount=1;

var sLeft=screen.width/2;
var sTop=screen.height/2;
function getCenter(w,h){

		leftPos = sLeft - w;
		topPos = sTop - h;

	return [leftPos,topPos];
}

function getWinWidth(){
	if(navigator.appName.indexOf("Microsoft")==-1){
		return window.innerWidth;	
	}else{
		return document.body.offsetWidth;
	}
}

function getWinHeight(){
	if(navigator.appName.indexOf("Microsoft")==-1){
		return window.innerHeight;	
	}else{
		return document.body.offsetHeight;
	}
}

function popupURL(url,tDiv,xw,xh){

	if(xh!=null){
		document.getElementById("fContent").style.height=xh+"px";
	}
	if(xw!=null){
		document.getElementById("fContent").style.width=xw+"px";
		var divLeft=getWinWidth()/2-(xw/2);
		document.getElementById("fContent").style.left=divLeft+"px";
	}

	document.getElementById("popContent").innerHTML="<div style='color:#666666;text-align:center;padding-top:100px;'>Loading...</div>";
	loadData(url,"popContent");
	hideShow('');
	window.scrollTo(0,0);
}


function popupWindow(url,tDiv,xw,xh){
	var centerWidth = (window.screen.width - xw) / 2;
    var centerHeight = (window.screen.height - xh) / 2;

	var sopt="width="+xw+",height="+xh+",top="+centerHeight+",left="+centerWidth+",scrollbars=yes";
	
	var mywinpop=window.open(url,"mypop",sopt);
	mywinpop.focus();	
//	constructMenu(tDiv);
	//hideShow('');
	//loadData(url,"popContent");
}

function submitSchedule(form){
	if(jsItValidate1(form)){
		//alert("submit it");	
		send_post(form,"popContent");
	}
}

function isEmail(email)
	{
	  var result = false
	  var theStr = new String(email)
	  var index = theStr.indexOf("@");
	  if (index > 0)
	  {
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	  }
	  return result;
	}

function jsItValidate1(form) 
	{
		var nRet = 1;
		var sFb = "";
		if(form.firstname.value=="") 
		{
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please Provide Your First Name\n"
			}
		}
		
		if(form.lastname.value=="") 
		{
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please Provide Your Last Name\n"
			}
		}
	
		if (isEmail(form.email.value) != true)
		{
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please provide a valid email address.\n";
			}
		}
		var firstdate = form.first_date.options[form.first_date.selectedIndex].value;
   		var seconddate = form.second_date.options[form.second_date.selectedIndex].value;
		var firsttime = form.first_time.options[form.first_time.selectedIndex].value;
		var secondtime = form.second_time.options[form.second_time.selectedIndex].value;
		
		if ((firstdate == seconddate)){
			nRet = 0;
			if(sFb == "") 
			{
				if (firstdate == "") {
					sFb =  "Please choose a showing time";
				} else {
					sFb =  "First date and second date cannot be identical.  Please select another date.\n";
				}
			}
		}
		if (seconddate != "" && firstdate != "") {
			var dtFisrtDate = new Date(firstdate.substring(6,10), firstdate.substring(0,2)-1, firstdate.substring(3,5))
			var dtSecondDate = new Date(seconddate.substring(6,10), seconddate.substring(0,2)-1, seconddate.substring(3,5))
			if(dtFisrtDate > dtSecondDate) {
				if(sFb == "") 
				{
					sFb =  "Please choose an earlier date for you first choice";
				}
			}
		}
		
		if (firstdate != "" && firsttime == "") {
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please select time for your first choice.\n";
			}
		
		}
		if (seconddate != "" && secondtime == "") {
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please select time for your second choice.\n";
			}
		}
		
		if (!form.AgentYN[0].checked && !form.AgentYN[1].checked) {
		
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please select if you are currently working with a real estate agent.\n";
			}
		}
		
		if (form.AgentYN[0].checked && form.Agent_Name.value=="") {
		
			nRet = 0;
			if(sFb == "") 
			{
				sFb =  "Please enter your real estate agent's name.\n";
			}
		}
		
		if(nRet == 0) 
		{
			alert(sFb);
			return false
		}
		else 
		{
			return true
		}
	}


function loadData(url,divName,custFunc){
var  xmlhttp=getHTTP();	
	xmlhttp.onreadystatechange=function(){
			if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
			   document.getElementById(divName).innerHTML=xmlhttp.responseText;
			     document.getElementById(divName).style.display="block";
				 if(custFunc!=undefined || custFunc!="")eval(custFunc);
			   isBusy=false;
			} else {
				alert("There was a problem retrieving the XML data:\n" +
					xmlhttp.statusText);
					isBusy=false;
			}
 		}
	};
  	xmlhttp.open("GET",url,true)
  	xmlhttp.send(null)
	isBusy=true;
	
}



function send_post(theFormName,rsDiv) {
	var  xmlhttp=getHTTP();	
    var xmlMessage = buildPOST(theFormName); 
	var URLto=theFormName.action;

	xmlhttp.open("POST", URLto, false) 
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xmlhttp.send(xmlMessage);
	document.getElementById(rsDiv).innerHTML=xmlhttp.responseText;
} 



var alreadyChecked="";
function buildPOST(theFormName) { 
    theForm = theFormName; 

    var qs = '' 
    for (e=0;e<theForm.elements.length;e++) { 
    
	   if(theForm.elements[e].type=="radio" ){
			var rStr=makeRadio(theForm.elements[e].name);
			if(rStr!=false){
				qs+=(qs=='')?'':'&' 
		   		qs+= rStr; // name+'='+escape(theForm.elements[e].value); 
			}
	  }
	   else{
		   if (theForm.elements[e].name!='') { 
				var name = theForm.elements[e].name; 
				qs+=(qs=='')?'':'&' 
				qs+= name+'='+escape(theForm.elements[e].value); 
			} 
	   }
    } 
    qs+="\n"; 

    return qs 
} 



function makeRadio(sName){

	var rObj=document.getElementsByName(sName);
	if(alreadyChecked.indexOf(theForm.elements[e].name)==-1){
		for(var i=0;i<rObj.length;i++){
			if(	rObj[i].checked==true){
				alreadyChecked+=sName+",";
				return sName+"="+rObj[i].value;	
			}
				
		}
		return false;
	}else{
		return false;	
	}
}

function hideShow(opt,xw,xj){
	var pobj=document.getElementById("disableDiv");
	var pobj2=document.getElementById("fContent");
	pobj2.style.display=opt;
	pobj.style.display=opt;
	if(opt=="none"){
		document.getElementById("popContent").innerHTML="";	
	}
}

function hideShowCart(opt){
	window.scrollTo(0,0)
	document.getElementById("disableDiv").style.display=opt;

	var centerP=getCenter(420,480);
	alert(centerP[0])
	document.getElementById("xcart").style.left=centerP[0];
	document.getElementById("xcart").style.top=centerP[1];
	
	document.getElementById("xcart").style.display=opt;
}


function constructMenu(mlid){
	var mhtml="<table cellspacing=1 border=0><tr>";
	//get all the links
	var myMenu=new Array("open_house","virtual_tour","map","photo_gallery","calculator","showing")
	for(var i=0;i<myMenu.length;i++){
		if(getLink(myMenu[i]+"_"+mlid)!=null){
			mhtml+="<td class='popMemItem'>"+getLink(myMenu[i]+"_"+mlid)+"</td>";
		}
	}
	mhtml+="</tr></table>";
	document.getElementById("popMenu").innerHTML=mhtml;
}

function processURL(url){
	var ttr=url.split("?");
	var purl=ttr[0];
	var tempary=ttr[1].split("&");

	var newStr="";
	for(var i=0;i<tempary.length;i++){
		if(tempary[i].indexOf('TID')==-1 && tempary[i].indexOf('siteType')==-1 && tempary[i].indexOf('cid')==-1 && tempary[i].indexOf('mlnums')==-1){
				newStr+=tempary[i]+"&";	
		}
	}
	newStr+=getURL();
	document.location=purl+"?"+newStr;
}

function getURL2(url){
	var ttr=url.split("?");
	var purl=ttr[0];
	var tempary=ttr[1].split("&");

	var newStr="";
	for(var i=0;i<tempary.length;i++){
		if(tempary[i].indexOf('TID')==-1 && tempary[i].indexOf('siteType')==-1 && tempary[i].indexOf('cid')==-1 && tempary[i].indexOf('mlnums')==-1){
				newStr+=tempary[i]+"&";	
		}
	}
	newStr+=getURL();
	return purl+"?"+newStr;
}


function getURL(){
		return "TID="+tid+"&siteType="+siteType+"&cid="+cid;//+"&mlnums="+myCart.toString()+"&pixr="+myPix.toString()+"&addr="+myAdd.toString();
}

function addToCart(mlid,pix,address){
	cartAction(mlid,pix,address,"add");
}




function cartAction(mlid,pix,add,opt,w,h){
	if(typeof(w)=="undefined"){w=400};
	if(typeof(h)=="undefined"){h=200};
	
	var pos=getCenter(w,h);
	
	var opts="width="+w+",height="+h+",left="+pos[0]+",top="+pos[1];
	var url=getURL2("doCart.cfm?mlid="+mlid+"&action="+opt+"&pix="+pix+"&addr="+add);

	newwindow=window.open(url,'name',opts);
	newwindow.focus();
}



function displayCart(divID){
	//if(countItem()>0){
		//document.getElementById(divID).innerHTML="<div style='text-align:left;padding-top:38px;background-repeat:no-repeat;background-image:url(graphics/cart_full.gif);height:40px;width:50px;color:red;'>"+countItem()+" Items</div>";	
		document.getElementById(divID).innerHTML="<img src='graphics/cart.png' style='cursor:pointer;' id='cartID' alt='Click here to View Cart' onclick='cartAction(0,null,null,\"displayCart\",500,550)' class='cartColor'>";
		alert(divID);
		//}else{
		//document.getElementById(divID).innerHTML="<img src='graphics/cart_empty.gif' id='cartID'>"
//	}
}

function displayCartFF(){
	//	if(countItem()>0){
		//document.getElementById(divID).innerHTML="<div style='text-align:left;padding-top:38px;background-repeat:no-repeat;background-image:url(graphics/cart_full.gif);height:40px;width:50px;color:red;'>"+countItem()+" Items</div>";	
		//document.write("<img src='graphics/cart_full.gif' style='cursor:pointer;' id='cartID' alt='Click here for options' onclick='doCartOption(this)'>");
		//}else{
		//document.write("<img src='graphics/cart_empty.gif' id='cartID'>");
		
		document.write("<img src='graphics/cart.png' style='cursor:pointer;' id='cartID' alt='Click here to View Cart' onclick='cartAction(0,null,null,\"displayCart\",500,550)' class='cartColor'>");
//	}
}

function getLink(divID){
	if(document.getElementById(divID)!=null){
		return document.getElementById(divID).innerHTML;
	}else{
		return null;	
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function getHTTP()
{
	var xmlhttp=null
	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
	  {
	 return new XMLHttpRequest()
	  }
	// code for IE
	else if (window.ActiveXObject)
	  {
	  return new ActiveXObject("Microsoft.XMLHTTP")
	  }
	if (xmlhttp==null)
	  {
	  alert("Your browser does not support XMLHTTP.")
	  }
}



//CALCULATOR
var isIE4 = false;
if(navigator.appName.indexOf("Microsoft") != -1  &&  parseInt(navigator.appVersion) >= 4)
	isIE4 = true;


var cache = '';
var blnPageLoaded = false;


function checkValidandSet(sObj,dValue){

	if(parseInt(sObj.value)!="NaN"){
		sObj.value=dValue;	
	}else{
		alert("Please enter valie");	
	}
		
}

function HighlightField(oField) {
	if(blnPageLoaded) {
		var intBeat = 275;
		var strStylePath = 'document.frmCalc.' + oField.name + (document.all ? '.style' : '') + '.backgroundColor';

		setTimeout(strStylePath + ' = "#ECBC34";', 1);
		setTimeout(strStylePath + ' = "#FFFFFF";', intBeat);
		setTimeout(strStylePath + ' = "#ECBC34";', intBeat*2);
		setTimeout(strStylePath + ' = "#FFFFFF";', intBeat*3);
		setTimeout(strStylePath + ' = "#ECBC34";', intBeat*4);
		setTimeout(strStylePath + ' = "#FFFFFF";', intBeat*5);
	}
}


function CheckAllFields(theForm) {
	var errorMsg = '';
	if(!CheckDollarField(theForm.price))
		errorMsg += ' + valid Home Price value\n';
	if(!CheckDollarField(theForm.downpay))
		errorMsg += ' + valid Down Payment dollar value\n';
	if(!CheckFloatField(theForm.downpayperc))
		errorMsg += ' + valid Down Payment percent value\n';
	if(!CheckIntField(theForm.termMonths))
		errorMsg += ' + valid Loan Term in months value (integer)\n';
	if(!CheckFloatField(theForm.termYears))
		errorMsg += ' + valid Loan Term in years value\n';
	if(!CheckFloatField(theForm.intYear))
		errorMsg += ' + valid Annual Interest Rate value\n';

	if(errorMsg == '')
		return true;
	else {
		alert('Please enter:\n' + errorMsg);
		return false;
	}
}


function CheckFloatField(field) {

	var val = field.value;

	// lop off trailing "0"s after a decimal point first
	if(val.indexOf(".") != -1) {
		while(val.charAt(val.length-1) == "0")
			val = val.substring(0,val.length-1);
		if(val.charAt(val.length-1) == ".")
			val = val.substring(0,val.length-1);
	}

	if("" + parseFloat(val) != val)
		return false;
	else
		return true;
}


function CheckIntField(field) {
	var val = field.value;

	if(isNaN(val))
		return false;
	else {
		field.value = '' + parseInt(val)
		return true;
	}
}


function CheckDollarField(field) {
	var flt = ReadDollarField(field);

	if(isNaN(flt))
		return false;
	else {
		str = FloatToDollarString(flt);
		field.value = str;
		return true;
	}
}


function ReadDollarField(field) {
	var str = field.value;
	if(str.charAt(0) == "$")
		str = str.substring(1, str.length);

	var pos = str.lastIndexOf(",");
	while(pos != -1) {
		str = str.substring(0,pos) + str.substring(pos+1, str.length);
		pos = str.lastIndexOf(",", pos);
	}

	return parseFloat(str);
}


function FloatToDollarString(flt) {
	// round off to nearest dollar
	var str = "" + Math.round(flt)

	// add commas
	pos = str.length;  // str.indexOf(".");
	pos -= 4;
	while(pos >= 0) {
		str = str.substring(0,pos+1) + "," + str.substring(pos+1, str.length);
		pos -= 3;
	}
	return str;
}

function recalcTermMonths(frm) {
	var tYr = parseFloat(frm.termYears.value);
	var tMon = Math.round(tYr * 12.0);
	tYr = parseFloat(tMon) / 12.0;
	frm.termYears.value = "" + tYr;
	frm.termMonths.value = "" + tMon;
	HighlightField(frm.termMonths);
}

function recalcTermYears(frm) {
	var tMon = parseInt(frm.termMonths.value);
	var tYr = parseFloat(tMon) / 12.0;
	frm.termYears.value = "" + tYr;
	frm.termMonths.value = "" + tMon;
	HighlightField(frm.termYears);
}

function RecalcMonthlyPay(frm) {
	var Principle  = ReadDollarField(frm.price) - ReadDollarField(frm.downpay);
	var AnnualInt  = parseFloat(frm.intYear.value);
	
	var MonthlyInt = AnnualInt / (12.0 * 100.0);
	var LenMonths  = parseInt(frm.termMonths.value);

	if(MonthlyInt == 0)
		var MonthlyPay = Principle / LenMonths;
	else
		var MonthlyPay = Principle * ( MonthlyInt / ( 1 - Math.pow((1 + MonthlyInt), -LenMonths) ) );
	MonthlyPay = Math.round(MonthlyPay * 100) / 100;

	frm.payMonth.value = FloatToDollarString(MonthlyPay);
	HighlightField(frm.payMonth);
}

function RecalcDownPay(frm) {
	var AnnualInt  = parseFloat(frm.intYear.value);
	var MonthlyInt = AnnualInt / (12.0 * 100.0);
	var LenMonths  = parseInt(frm.termMonths.value);
	var MonthlyPay = ReadDollarField(frm.payMonth);
	var Principle  = ReadDollarField(frm.price) - ReadDollarField(frm.downpay);
	var OldDownPay = ReadDollarField(frm.downpay);
	var EffPrinciple

	if(MonthlyInt == 0)
		EffPrinciple = MonthlyPay * LenMonths;
	else
		EffPrinciple = MonthlyPay * ((1 - Math.pow((1 + MonthlyInt), -LenMonths)) / MonthlyInt);

	var NewDownPay = OldDownPay + (Principle - EffPrinciple);
	frm.downpay.value = "" + NewDownPay;
	CheckDollarField(frm.downpay);
	HighlightField(frm.downpay);

	RecalcDownPayPerc(frm);
	RecalcMonthlyPay(frm);
}

function RecalcDownPayPerc(frm) {
	var HomePrice  = ReadDollarField(frm.price);
	var DownPay = ReadDollarField(frm.downpay);
	var DownPayPerc = 100 * DownPay / HomePrice;

	if(DownPayPerc >= 0  &&  DownPayPerc <= 100) {
		var DownPayPercStr = "" + DownPayPerc;

		var pos = DownPayPercStr.indexOf(".");
		if(DownPayPercStr.length > pos + 4)
			DownPayPercStr = DownPayPercStr.substring(0,pos+4);

		frm.downpayperc.value = DownPayPercStr;
	}
	else if(DownPayPerc < 0) {
		frm.downpayperc.value = "0";
		RecalcDownPayAmount(frm);
	}
	else {
		frm.downpayperc.value = "100";
		RecalcDownPayAmount(frm);
	}
	HighlightField(frm.downpayperc);
}

function RecalcDownPayAmount(frm) {
	var HomePrice  = ReadDollarField(frm.price);
	var DownPayPerc = parseFloat(frm.downpayperc.value);
	if(DownPayPerc < 0) {
		frm.downpayperc.value = "0";
		RecalcDownPayAmount(frm);
	}
	else if(DownPayPerc > 100) {
		frm.downpayperc.value = "100";
		RecalcDownPayAmount(frm);
	}
	else {
		var DownPay = HomePrice * DownPayPerc / 100;
		DownPay = FloatToDollarString(DownPay);
		frm.downpay.value = "" + DownPay;
		HighlightField(frm.downpay);
	}
}


var doAj=1; //always do ajax since we're not using iframe..
function validateForm(fObj,doAj){
	
			var err="";
			if(fObj.firstname.value==""){
				err+="  -First Name\n";
			}
			if(fObj.lastname.value==""){
				err+="  -Last Name\n";
			}
			if(!checkMail(fObj.email.value)){
				err+="  -Valid Email Address\n";
			}
			if (fObj.messagebody.value.length > 300){

					err+="  -Comments must be 300 characters or less\n";
			}
			
			if(err!=""){
				alert("Please fill out all the required fields:\n"+err);
				return false;
			}
				var http=getHTTPObject();
				var url=fObj.action+"&"+getFormVal(fObj)+"&nc="+Math.random();
				http.open("GET", url, false);
				http.send(null);
				//window.open(null).document.write(http.responseText);
				if(http.responseText.indexOf("sent")){
					clearForm(fObj);
					alert("Thanks You\nYour request has been sent");
					
				}else{
					alert("An error has occured while trying to send your request. Please try again.");
				}
				return false;
		}
		
		//clear form
		function clearForm(frmObj){
				for(var i=0;i<frmObj.length;i++){
					if(frmObj.elements[i].type=="text" || frmObj.elements[i].type=="textarea"){
						frmObj.elements[i].value="";		
					}
				}
			
		}
		
		function getFormVal(frmObj){
			var retText="";
			for(var i=0;i<frmObj.length;i++){
				retText+=frmObj.elements[i].name+"="+frmObj.elements[i].value+"&";
			}
			return retText;
		}
		
		function checkMail(email)
		{
			var x = email;
			if(email=="")return false;
			var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (filter.test(x)) return true;
			else return false;
		}


	 function getHTTPObject() {
	  var xmlhttp;
		try {
		  xmlhttp = new XMLHttpRequest();
		} catch (e) {
		  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	  
	  return xmlhttp;
}



