/* listing.js 7/27/2010 5:30:18 PM */

gmap={init:function(lat,lng)
{if(lat==""||lng=="")
{$("gmap").hide();return;}
if(GBrowserIsCompatible())
{var mapDiv=$('map');if(mapDiv)
{var map=new GMap2(mapDiv);point=new GLatLng(lat,lng);map.addControl(new GSmallMapControl());map.setCenter(point,15);var icon=new GIcon();icon.image="http://www.thecassinagroup.com/images/home.png";icon.shadow="http://www.thecassinagroup.com/images/home-shadow.png";icon.iconSize=new GSize(26,31);icon.shadowSize=new GSize(26,31);icon.iconAnchor=new GPoint(13,31);map.addOverlay(new GMarker(point,icon));}}}};var doneCalc=false;function calcMortgage(payment)
{if(!doneCalc)
{new Ajax.Request("/service.ashx",{method:"get",parameters:{method:"calcmortgage",ListingID:listingID,StreetFull:addr,Price:$F('price'),Interest:$F('interest'),Years:$F('years'),DownPayment:$F('downpayment'),Payment:payment},onSuccess:function(transport)
{if(transport.responseText=="1")
doneCalc=true;}});return false;}}
function askAnAgent()
{var errorMessage='';var emailFilter=/^([a-zA-Z0-9+_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;var askError=$('askError');askError.innerHTML='';askError.hide();var firstName=$('askFirstName');var lastName=$('askLastName');var email=$('askEmail');var phone=$('askPhone');var question=$('askQuestion');if(firstName.value=="")
errorMessage+="Please provide your first name<br />";if(lastName.value=="")
errorMessage+="Please provide your last name<br />";if(!emailFilter.test(email.value))
errorMessage+="Please enter a valid email address<br />";if(question.value==""||question.className=='example')
errorMessage+="Please provide a question<br />";if(errorMessage.length>0){askError.innerHTML=errorMessage;askError.show();return;}
$('ask-btn','ask-busy').invoke('toggle');new Ajax.Request("/service.ashx",{method:"get",parameters:{method:"askQuestion",ListingID:listingID,StreetFull:addr,askFirstName:firstName.value,askLastName:lastName.value,askEmail:email.value,askPhone:phone.value,askQuestion:question.value},onSuccess:function(transport)
{if(transport.responseText.length==0)
{askError.innerHTML='Your question has been sent to an agent and we will be in contact with you shortly.  Thank you!';askError.className='alert success';askError.show();Element.hide('askForm');$('ask-btn','ask-busy').invoke('toggle');}else{askError.innerHTML=transport.responseText;askError.show();}},onFailure:function(transport)
{askError.innerHTML=transport.responseText;askError.show();}});return false;}
var ordinal=0;function showBigImage(link,url)
{var bigImage=$('bigimage');bigImage.src=url;ordinal=link.id.replace("photo","");}
function showPhotoPopUp()
{var url='/ListingPhotos.aspx?listingid='+listingID+'#'+ordinal;window.open(url,'photos','height=650,scrollbars=1,resizable=1');}
function showChart(link,duration)
{var img=$("graph");if(!img){alert('no image');return false;}
var url=img.src;var newUrl=url.replace(/chartDuration=\d+years?/i,"chartDuration="+duration+"years");if(duration==1)newUrl=newUrl.replace("years","year");img.src=newUrl;$$("#chart a").each(function(item){item.removeClassName("selected");if(item==link)item.addClassName("selected");});}
function showCalcOptions()
{var extra=$("mortgage-extra");var adjust=$("adjustoptions");var linkText="Adjust Options";if(extra)
{if(extra.style.display=="none")
{extra.show();linkText="Hide Options";}
else{extra.hide();linkText="Adjust Options";}
adjust.innerHTML=linkText;}}
function calculatePayments(reCalculated)
{var principal=new Number($("price").value.replace(/,/g,''));var downpayment=new Number($("downpayment").value)/100;var interest=new Number($("interest").value);var duration=new Number($("years").value)*12;var result;var payment=0;var irate=0;principal=principal-(principal*downpayment);irate=(interest/100)*(1.0/12.0);payment=(principal*irate)/(1-1/Math.pow((1+irate),duration));result=Math.round(payment*100)/100;if(isNaN(result))return;$("payment").innerHTML=formatCurrency(result);if(reCalculated)
{calcMortgage(result);new Effect.Highlight("payment");}}
function formatCurrency(num)
{num=num.toString().replace(/\$|\,/g,'');if(isNaN(num))num="0";var sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);var 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);}
function initExtras()
{if(hideAVM=='true')return;if(catID==1||catID==2)
{new Ajax.Updater('zillow',"/service.ashx?method=getzillowdata",{method:"get",parameters:{address:addr,cityStateZip:zip},evalScripts:true,onSuccess:function(transport)
{if(transport.responseText!="null")
{$("zillow").show();}}});}}
var modalEmail;var modalInfo;var modalShowing;var modalBuyNow;function initModals()
{var height=700;if(Prototype.Browser.IE)height=511;modalEmail=new Control.Modal('link_email_top',{width:550,height:height-24,iframe:true,afterOpen:function(){addCloseModalLink('modalEmail');}});modalShowing=new Control.Modal('link_show_top',{width:550,height:height,iframe:true,afterOpen:function(){addCloseModalLink('modalShowing');}});modalInfo=new Control.Modal('link_info_top',{width:550,height:height,iframe:true,afterOpen:function(){addCloseModalLink('modalInfo');}});if($('link_buynow_top')){modalBuyNow=new Control.Modal('link_buynow_top',{width:550,height:height,iframe:true,afterOpen:function(){addCloseModalLink('modalBuyNow');}});}}
function addCloseModalLink(modalName)
{var closeLink=document.createElement('a');closeLink.href='#';closeLink.title='Close window';closeLink.className='closeLink pop-close';closeLink.appendChild(document.createTextNode(' '));closeLink.onclick=new Function('evt',modalName+'.close();return false;');$('modal_container').appendChild(closeLink);}
Event.observe(window,"load",function(){calculatePayments(false);initModals();initExtras();});

/* listingmap.js 7/27/2010 5:30:18 PM */

var listingmap={options:{},init:function(options){listingmap.options=options;vemap.init(listingmap.options,function(){var tab=$j('#tab-birdseye');if(streetview.available===true){listingmap.showTab(tab);}
else{$j('#orientation ul').show();listingmap.selectTab(tab);listingmap.showControls('map');}});streetview.init(listingmap.options.latitude,listingmap.options.longitude,function(){listingmap.selectTab($j('#tab-street'));listingmap.showMap('street');});if(listingmap.options.latitude&&listingmap.options.longitude){vemap.findByLatLng(parseFloat(listingmap.options.latitude),parseFloat(listingmap.options.longitude));}
else{if(vemap.trim(listingmap.options.addr)==""||vemap.trim(listingmap.options.addr)=="Address Not Published"){listingmap.hideAll();}
else{var address=listingmap.options.addr+", "+listingmap.options.city+" "+listingmap.options.state+", "+listingmap.options.zip;vemap.findByAddress(address,function(){if(vemap.isExactLocation){streetview.init(vemap.latLng.Latitude,vemap.latLng.Longitude,function(){listingmap.selectTab($j('#tab-street'));listingmap.showMap('street');});}});}}},hideAll:function(){$j('#mapcontrols').hide();$j('#mapcontainer').hide();},showControls:function(type){$j('#mapcontrols .controls').hide();$j('#'+type).show();},showTab:function(el){$j(el).show();},selectItem:function(item,selector){$j(selector).removeClass('selected');$j(item).addClass('selected');},selectTab:function(el){listingmap.showTab(el);listingmap.selectItem(el,'#mapcontrols #tabs a');},setMapStyle:function(el,style){vemap.setMapStyle(style);listingmap.showMap('map');listingmap.selectTab(el);},setOrientation:function(el,direction){vemap.setOrientation(direction);$j('#'+vemap.container).show();listingmap.selectItem(el,"#mapcontrols .controls a");},showMap:function(type){if(type=='map'){$j('#'+vemap.container).show();$j('#'+streetview.container).hide();$j('#mapcontrols #map').show();$j('#mapcontrols #street').hide();}
else{listingmap.selectTab($j('#tab-street'));$j('#'+vemap.container).hide();$j('#mapcontrols #map').hide();$j('#'+streetview.container).show();$j('#mapcontrols #street').show();}}};

/* vemap.js 7/27/2010 5:30:18 PM */

var vemap={map:null,latLng:null,defaultZoom:14,tileBuffer:0,shape:null,isExactLocation:false,container:'vemap',options:{},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},init:function(options,birdseyeCallback){if(!window.VEMap)return;vemap.options=options;vemap.birdseyeCallback=birdseyeCallback;vemap.map=new VEMap(vemap.container);vemap.map.LoadMap(null,vemap.defaultZoom,null,false,null,true,vemap.tileBuffer);vemap.map.AttachEvent("onmousewheel",vemap.wheelCallback);},wheelCallback:function(e){var scrollAmount=-1;if(jQuery.support.leadingWhitespace)
scrollAmount=-7;window.scrollBy(0,scrollAmount*e.mouseWheelChange);return true;},addShape:function(){if(vemap.shape){vemap.map.DeleteShape(vemap.shape);}
if(!vemap.latLng)return;vemap.shape=new VEShape(VEShapeType.Pushpin,vemap.latLng);vemap.shape.SetTitle(vemap.options.addr);if(vemap.isExactLocation)
vemap.shape.SetDescription(vemap.options.city+' '+vemap.options.state+', '+vemap.options.zip);else
vemap.shape.SetDescription(vemap.options.city+' '+vemap.options.state+', '+vemap.options.zip+'<br />'+'Location is approximate');vemap.map.AddShape(vemap.shape);},findByLatLng:function(lat,lng){if(!window.VELatLong)return;try{vemap.isExactLocation=true;vemap.latLng=new VELatLong(lat,lng);vemap.map.SetCenter(vemap.latLng);vemap.map.AttachEvent("onobliqueenter",vemap.onObliqueEnter);vemap.addShape();}
catch(e){if(e)alert(e);}},findByAddress:function(address,addressCallback){if(!address)return;vemap.map.Find(null,address,null,null,0,10,true,true,true,true,vemap.addressFound);vemap.map.AttachEvent("onobliqueenter",vemap.onObliqueEnter);vemap.addressCallback=addressCallback;},addressFound:function(shapeLayer,results,places,hasMore,errorMessage){if(places.length>0){if(places[0].MatchCode==VEMatchCode.Good){vemap.isExactLocation=true;vemap.latLng=vemap.map.GetCenter();vemap.addressCallback();}}
vemap.latLng=vemap.map.GetCenter();vemap.addShape();},onObliqueEnter:function(){if(vemap.map.IsBirdseyeAvailable()&&vemap.isExactLocation){vemap.map.SetMapStyle(VEMapStyle.Birdseye);vemap.map.ZoomIn();vemap.map.DetachEvent("onobliqueenter",vemap.onObliqueEnter);vemap.birdseyeCallback();}},setMapStyle:function(style){var mapStyle=VEMapStyle.Road;switch(style.toLowerCase()){case'birdseye':if(vemap.map.IsBirdseyeAvailable()&&vemap.isExactLocation){mapStyle=VEMapStyle.Birdseye;}
break;case'aerial':mapStyle=VEMapStyle.Aerial;break;}
vemap.map.SetMapStyle(mapStyle);},setOrientation:function(direction){var orientation=VEOrientation.North;switch(direction.toLowerCase()){case"north":orientation=VEOrientation.North;break;case"south":orientation=VEOrientation.South;break;case"east":orientation=VEOrientation.East;break;default:orientation=VEOrientation.West;break;}
vemap.map.SetBirdseyeOrientation(orientation);},center:function(){vemap.map.SetCenter(vemap.latLng);},zoomIn:function(){vemap.map.ZoomIn();},zoomOut:function(){vemap.map.ZoomOut();}};

/* streetview.js 7/27/2010 5:30:18 PM */

var streetview={container:'streetview',available:null,pano:null,panoClient:null,options:{features:{streetView:true,userPhotos:false},latlng:null},init:function(lat,lng,callback){if(!lat||!lng||!window.GLatLng)return;streetview.options.latlng=new GLatLng(lat,lng);streetview.panoClient=new GStreetviewClient();streetview.callback=callback;streetview.panoClient.getNearestPanorama(streetview.options.latlng,function(panoData){if(panoData.code==200){var container=$j('#'+streetview.container);if(container)container.css('height','300px').css('width','650px');streetview.pano=new GStreetviewPanorama(document.getElementById(streetview.container),streetview.options);GEvent.addListener(streetview.pano,'error',streetview.error);streetview.available=true;streetview.callback();}});},pan:function(direction){var pov=streetview.pano.getPOV();switch(direction){case'right':pov.yaw=pov.yaw+45;break;case'left':pov.yaw=pov.yaw-45;break;case'up':pov.pitch=pov.pitch-20;break;case'down':pov.pitch=pov.pitch+20;break;}
streetview.pano.panTo(pov);},error:function(errorCode){if(errorCode==603){$j('#streetview').html("<br /><h3>This map view requires Flash.  Please install  <a href='http://get.adobe.com/flashplayer/'>Flash</a> or choose another map view above.</h3>");return;}}};

