Sacramento Top 10   Featured Website: BMW of Roseville Donate Your Car
To Charity







<!-- application up and running --> <html> <head> <title>Roseville BMW Dealer - BMW of Roseville California - New & Used BMW Cars & SUVs - Serving Sacramento, Davis, Granite Bay, Fair Oaks & Rancho Cordova CA</title> <meta name="charset" content="ISO-8859-1"> <meta name="expires" content="never"> <meta name="email" content="PerezT@autonation.com"> <meta http-equiv="reply-to" content="PerezT@autonation.com"> <meta name="resource-type" content="document"> <meta name="classification" content="Recreation"> <meta name="description" content="Roseville BMW offers deals on new and used BMW cars and SUVs in the Sacramento California area. Internet specials on BMW 3 Series, 7 Series, M5 Sedan, Z4 Roadster and others. Serving Roseville CA, Yuba City, Grass Valley, Auburn, El Dorado, Citrus Heights and surrounding communities."> <meta name="keywords" content="Sacramento BMW, Roseville BMW, Roseville BMW dealership, Yuba City BMW, Grass Valley BMW, Auburn BMW, El Dorado BMW, Citrus Heights BMW, California, CA, bmw dealer"> <meta name="distribution" content="Global"> <meta name="rating" content="GENERAL"> <meta name="author" content="BMW of Roseville"> <meta name="publisher" content="BMW of Roseville"> <meta name="generator" content="ColdFusion MX"> <meta name="language" content="english"> <meta name="copyright" content="Copyright ©2010 - BMW of Roseville"> <script language="JavaScript" src="Templates/Javascript.js" type="text/javascript"></script> <link href="/Templates/website/autonation_nonbranded2/stylesheet.css" rel="stylesheet" type="text/css" title="Stylesheet"> <script type='text/javascript' src='/templates/swfobject.js'></script><script type='text/javascript'>swfobject.registerObject('mediaplayer', '8.0.0');</script><style>BODY{background: url(/templates/website/autonation_family/images/bodyback.jpg) bottom repeat-x white fixed;}</style></head> <script LANGUAGE="JavaScript"> function hiLite(Name,Image) { document.images[Name].src = Image; } function windowredirect() { franchiseID = selectdealer.elements["franchiseID"].options[selectdealer.elements["franchiseID"].selectedIndex].value; if(franchiseID != '') { window.location.href="/index.cfm?action=contact&subaction=dealerdetail&franchiseID=" + franchiseID; } } </script> <body> <center> <div class="cf" id="contentcontainer"> <script language="JavaScript"> function mboxCreate() { // do nothing here, this is a bug fix. } </script> <!-- Add key-value pairs here consisiting of franchiseid = facebook url ---> <!-- Add key-value pairs here consisiting of franchiseid = Twitter url ---> <!-- Begin Outsell Chat Code --> <table width="985" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="right"> <A HREF="" onClick="javascript:return Outsell_StartChat('4b1697d749697', '4b1593cca5fb8');"><IMG border="0" src="templates/website/AutoNation_Family/images/livechat.gif" alt="Live Chat"> </A> <!-- End Outsell Chat Code --> </td> </tr> </table> <script language="Javascript" type="text/javascript" src="templates/website/autonation_family/outsell.js"></script> <div id="topbar"> <p><a href="/"><img src="/Templates/website/autonation_family/images//logos/2527A_brand_logo.gif" alt="BMW of Roseville" border="0"></a></p> <div id="navbar"> <script language=JavaScript> <!-- var hideTimeOut = ""; var nowShowing = ""; function hideLayer(thisLayer){ thisLayer.style.visibility = 'hidden'; } function showLayer(thisLayerName){ thisLayerRef = document.getElementById(thisLayerName); if(nowShowing.length){ hideLayer( document.getElementById(nowShowing)); } if(!isNaN(hideTimeOut) && (hideTimeOut + "").length){ window.clearTimeout(hideTimeOut); hideTimeOut = ""; } nowShowing = thisLayerName; thisLayerRef.style.visibility = 'visible'; } function hideLayersTimeOut(thisLayerName) { thisLayerRef = document.getElementById(thisLayerName); hideTimeOut = window.setTimeout("hideLayer(thisLayerRef)",900); } //--> </script> <table width="" cellpadding="0" cellspacing="0" border="0" > <tr> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=home" onmouseover="showLayer('Children3813621');" onmouseout="hideLayersTimeOut('Children3813621'); " onClick="pageTracker._trackEvent('TopNav_Home', 'home', 'TopNav_Home');globalTracker._trackEvent('TopNav_Home','home','TopNav_Home');" class="navlink">Home</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813621"> <div onmouseover="showLayer('Children3813621');" onmouseout="hideLayersTimeOut('Children3813621'); " id="Children3813621" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=inventorysearch" onmouseover="showLayer('Children3813622');" onmouseout="hideLayersTimeOut('Children3813622'); " onClick="pageTracker._trackEvent('TopNav_Find Your Vehicle', 'home', 'TopNav_Find Your Vehicle');globalTracker._trackEvent('TopNav_Find Your Vehicle','home','TopNav_Find Your Vehicle');" class="navlink">Find Your Vehicle</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813622"> <div onmouseover="showLayer('Children3813622');" onmouseout="hideLayersTimeOut('Children3813622'); " id="Children3813622" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverinventorysearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=inventorysearch&subaction=searchdisplaynew" onclick="pageTracker._trackEvent('home', 'TopNav_Search Make &amp; Model', 'TopNav_Search Make &amp; Model');globalTracker._trackEvent('home','TopNav_Search Make &amp; Model','TopNav_Search Make &amp; Model');" >Search Make &amp; Model</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverinventorysearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=inventorysearch&subaction=searchdisplaynew&SearchType=bodytype" onclick="pageTracker._trackEvent('home', 'TopNav_Search Vehicle Type', 'TopNav_Search Vehicle Type');globalTracker._trackEvent('home','TopNav_Search Vehicle Type','TopNav_Search Vehicle Type');" >Search Vehicle Type</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverinventorysearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=inventorysearch&subaction=searchdisplaynew&SearchType=paymentrange" onclick="pageTracker._trackEvent('home', 'TopNav_Search Payment &amp; Price', 'TopNav_Search Payment &amp; Price');globalTracker._trackEvent('home','TopNav_Search Payment &amp; Price','TopNav_Search Payment &amp; Price');" >Search Payment &amp; Price</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=research" onmouseover="showLayer('Children3813623');" onmouseout="hideLayersTimeOut('Children3813623'); " onClick="pageTracker._trackEvent('TopNav_Research', 'home', 'TopNav_Research');globalTracker._trackEvent('TopNav_Research','home','TopNav_Research');" class="navlink">Research</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813623"> <div onmouseover="showLayer('Children3813623');" onmouseout="hideLayersTimeOut('Children3813623'); " id="Children3813623" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverresearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research" onclick="pageTracker._trackEvent('home', 'TopNav_Shop &amp; Compare Home', 'TopNav_Shop &amp; Compare Home');globalTracker._trackEvent('home','TopNav_Shop &amp; Compare Home','TopNav_Shop &amp; Compare Home');" >Shop &amp; Compare Home</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverresearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research&subaction=researchvehicle" onclick="pageTracker._trackEvent('home', 'TopNav_Research &amp; Compare', 'TopNav_Research &amp; Compare');globalTracker._trackEvent('home','TopNav_Research &amp; Compare','TopNav_Research &amp; Compare');" >Research &amp; Compare</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverresearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research&subaction=researchcalculator" onclick="pageTracker._trackEvent('home', 'TopNav_How Much Can I Spend', 'TopNav_How Much Can I Spend');globalTracker._trackEvent('home','TopNav_How Much Can I Spend','TopNav_How Much Can I Spend');" >How Much Can I Spend</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverresearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research&subaction=researchincentives" onclick="pageTracker._trackEvent('home', 'TopNav_Incentives &amp; Rebates', 'TopNav_Incentives &amp; Rebates');globalTracker._trackEvent('home','TopNav_Incentives &amp; Rebates','TopNav_Incentives &amp; Rebates');" >Incentives &amp; Rebates</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverresearch'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research&subaction=researchcarreviews" onclick="pageTracker._trackEvent('home', 'TopNav_Car Reviews', 'TopNav_Car Reviews');globalTracker._trackEvent('home','TopNav_Car Reviews','TopNav_Car Reviews');" >Car Reviews</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=finance" onmouseover="showLayer('Children3813624');" onmouseout="hideLayersTimeOut('Children3813624'); " onClick="pageTracker._trackEvent('TopNav_Finance &amp; Insurance', 'home', 'TopNav_Finance &amp; Insurance');globalTracker._trackEvent('TopNav_Finance &amp; Insurance','home','TopNav_Finance &amp; Insurance');" class="navlink">Finance &amp; Insurance</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813624"> <div onmouseover="showLayer('Children3813624');" onmouseout="hideLayersTimeOut('Children3813624'); " id="Children3813624" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverfinance'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=finance" onclick="pageTracker._trackEvent('home', 'TopNav_Finance &amp; Insurance Home', 'TopNav_Finance &amp; Insurance Home');globalTracker._trackEvent('home','TopNav_Finance &amp; Insurance Home','TopNav_Finance &amp; Insurance Home');" >Finance &amp; Insurance Home</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverfinance'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=finance&subaction=financepledge" onclick="pageTracker._trackEvent('home', 'TopNav_Our Pledge to You', 'TopNav_Our Pledge to You');globalTracker._trackEvent('home','TopNav_Our Pledge to You','TopNav_Our Pledge to You');" >Our Pledge to You</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverfinance'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=research&subaction=researchleasebuy" onclick="pageTracker._trackEvent('home', 'TopNav_Leasing &amp; Financing Options', 'TopNav_Leasing &amp; Financing Options');globalTracker._trackEvent('home','TopNav_Leasing &amp; Financing Options','TopNav_Leasing &amp; Financing Options');" >Leasing &amp; Financing Options</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverfinance'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=finance&subaction=financeprotection" onclick="pageTracker._trackEvent('home', 'TopNav_Vehicle Protection Programs', 'TopNav_Vehicle Protection Programs');globalTracker._trackEvent('home','TopNav_Vehicle Protection Programs','TopNav_Vehicle Protection Programs');" >Vehicle Protection Programs</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverfinance'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=finance&subaction=financeform" onclick="pageTracker._trackEvent('home', 'TopNav_Express Credit', 'TopNav_Express Credit');globalTracker._trackEvent('home','TopNav_Express Credit','TopNav_Express Credit');" >Express Credit</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=service" onmouseover="showLayer('Children3813625');" onmouseout="hideLayersTimeOut('Children3813625'); " onClick="pageTracker._trackEvent('TopNav_Service &amp; Parts', 'home', 'TopNav_Service &amp; Parts');globalTracker._trackEvent('TopNav_Service &amp; Parts','home','TopNav_Service &amp; Parts');" class="navlink">Service &amp; Parts</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813625"> <div onmouseover="showLayer('Children3813625');" onmouseout="hideLayersTimeOut('Children3813625'); " id="Children3813625" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverservice'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=service" onclick="pageTracker._trackEvent('home', 'TopNav_Service &amp; Parts Home', 'TopNav_Service &amp; Parts Home');globalTracker._trackEvent('home','TopNav_Service &amp; Parts Home','TopNav_Service &amp; Parts Home');" >Service &amp; Parts Home</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverservice'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=service&subaction=serviceabout" onclick="pageTracker._trackEvent('home', 'TopNav_Why Service With Us', 'TopNav_Why Service With Us');globalTracker._trackEvent('home','TopNav_Why Service With Us','TopNav_Why Service With Us');" >Why Service With Us</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverservice'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=service&subaction=serviceformexternal" onclick="pageTracker._trackEvent('home', 'TopNav_Make a Service Appointment', 'TopNav_Make a Service Appointment');globalTracker._trackEvent('home','TopNav_Make a Service Appointment','TopNav_Make a Service Appointment');" >Make a Service Appointment</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverservice'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="http://accessories.bmwusa.com?CenterID=04923" onclick="pageTracker._trackEvent('home', 'TopNav_Order Parts &amp; Accessories', 'TopNav_Order Parts &amp; Accessories');globalTracker._trackEvent('home','TopNav_Order Parts &amp; Accessories','TopNav_Order Parts &amp; Accessories');" >Order Parts &amp; Accessories</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="index.cfm?action=specials" onmouseover="showLayer('Children3813626');" onmouseout="hideLayersTimeOut('Children3813626'); " onClick="pageTracker._trackEvent('TopNav_Specials', 'home', 'TopNav_Specials');globalTracker._trackEvent('TopNav_Specials','home','TopNav_Specials');" class="navlink">Specials</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813626"> <div onmouseover="showLayer('Children3813626');" onmouseout="hideLayersTimeOut('Children3813626'); " id="Children3813626" style="position:absolute; left: -1px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverspecials'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="index.cfm?action=specials" onclick="pageTracker._trackEvent('home', 'TopNav_Search All Specials', 'TopNav_Search All Specials');globalTracker._trackEvent('home','TopNav_Search All Specials','TopNav_Search All Specials');" >Search All Specials</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverspecials'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=specials&subaction=specialscoupons&special=new" onclick="pageTracker._trackEvent('home', 'TopNav_New Vehicle Specials', 'TopNav_New Vehicle Specials');globalTracker._trackEvent('home','TopNav_New Vehicle Specials','TopNav_New Vehicle Specials');" >New Vehicle Specials</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverspecials'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=specials&subaction=specialscoupons&special=used" onclick="pageTracker._trackEvent('home', 'TopNav_Used Vehicle Specials', 'TopNav_Used Vehicle Specials');globalTracker._trackEvent('home','TopNav_Used Vehicle Specials','TopNav_Used Vehicle Specials');" >Used Vehicle Specials</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverspecials'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=specials&subaction=specialscoupons&special=service" onclick="pageTracker._trackEvent('home', 'TopNav_Service Specials', 'TopNav_Service Specials');globalTracker._trackEvent('home','TopNav_Service Specials','TopNav_Service Specials');" >Service Specials</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkoverspecials'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=specials&subaction=specialscoupons&special=parts" onclick="pageTracker._trackEvent('home', 'TopNav_Parts Specials', 'TopNav_Parts Specials');globalTracker._trackEvent('home','TopNav_Parts Specials','TopNav_Parts Specials');" >Parts Specials</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td align="center"><a href="/index.cfm?action=contact&subaction=dealerdetail" onmouseover="showLayer('Children3813627');" onmouseout="hideLayersTimeOut('Children3813627'); " onClick="pageTracker._trackEvent('TopNav_Hours &amp; Directions', 'home', 'TopNav_Hours &amp; Directions');globalTracker._trackEvent('TopNav_Hours &amp; Directions','home','TopNav_Hours &amp; Directions');" class="navlink">Hours &amp; Directions</a></td></tr> <tr> <td> <div style="position: absolute; z-index:10;" id="Container3813627"> <div onmouseover="showLayer('Children3813627');" onmouseout="hideLayersTimeOut('Children3813627'); " id="Children3813627" style="position:absolute; left: -92px; top: 10px; width: 175px; z-index:10; visibility: hidden; "> <table width="175" border="0" cellspacing="0" cellpadding="0" id="navbarmenu"> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_top.gif"></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkovercontact'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=contact&subaction=dealerdetail&contact=1" onclick="pageTracker._trackEvent('home', 'TopNav_Store Hours', 'TopNav_Store Hours');globalTracker._trackEvent('home','TopNav_Store Hours','TopNav_Store Hours');" >Store Hours</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkovercontact'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=contact&subaction=dealerdetail&contact=1" onclick="pageTracker._trackEvent('home', 'TopNav_Department Contacts', 'TopNav_Department Contacts');globalTracker._trackEvent('home','TopNav_Department Contacts','TopNav_Department Contacts');" >Department Contacts</a></td> </tr> <tr> <td class="dmenulink" onmouseover="this.className='dmenulinkovercontact'; this.style.cursor='pointer'; this.style.cursor='hand';" onmouseout="this.className='dmenulink';"><a class="dmenulinktext" href="/index.cfm?action=contact&subaction=dealerdetail" onclick="pageTracker._trackEvent('home', 'TopNav_Directions to Store', 'TopNav_Directions to Store');globalTracker._trackEvent('home','TopNav_Directions to Store','TopNav_Directions to Store');" >Directions to Store</a></td> </tr> <tr> <td><img src="templates/website/autonation_family/images/navbar_dropmenu_bottom.gif"></td> </tr> </table> </div> </div> </td> </tr> </table> </td> </tr> </table> </div> </div> <script type="text/javascript" language="javascript"> function showHide(elementId){ showHideElement = document.getElementById(elementId); showHideElement.style.display=(showHideElement.style.display == 'none')?"":"none"; } function show(elementId){ showHideElement = document.getElementById(elementId); showHideElement.style.display="" } // highly customized validation routines function validate(thisForm){ var errors = ""; if(errors.length){ alert("The following errors occured:\n" + errors + "\n\nPlease fix these problems and re-submit."); return false; } else{ return true; } } function getRadioValue(radioOBJ){ selectedRadioValue = ""; for(i=0; i<radioOBJ.length; i++){ selectedRadioValue = (radioOBJ[i].checked)?radioOBJ[i].value:selectedRadioValue; } return selectedRadioValue; } // validation and value manipulation function submitSearch(searchForm){ //alert('here'); var errors = ""; if(searchForm.name == "paymentpriceform"){ // paymentpriceform validation if(searchForm.downpayment.value == ""){ errors+="Down Payment is a required field\n"; }else if(isNaN(searchForm.downpayment.value)){ errors+="Down Payment may only contain numeric values\n"; } if(searchForm.tradevalue.value == ""){ searchForm.tradevalue.value = 0; }else if(isNaN(searchForm.tradevalue.value)){ errors+="Trade-in value may only contain numeric values\n"; } if(searchForm.tradeowed.value == ""){ searchForm.tradeowed.value = 0; }else if(isNaN(searchForm.tradeowed.value)){ errors+="Owed on Trade value may only contain numeric values\n"; } if(searchForm.term.value == ""){ errors+="Term is a required field\n"; } if(searchForm.rate.value == "") { errors+="APR is a required field\n"; }else if(isNaN(searchForm.rate.value)){ errors+="APR may only contain numeric values\n"; } if(searchForm.pricerange.value == ""){ errors+="Monthly Payment Range is a required field\n"; } // set the startPriceRange and endPriceRange form elements based on the value pricerange field pricerange = searchForm.elements["pricerange"].options[searchForm.elements["pricerange"].selectedIndex].value; pos = pricerange.search("-"); pricestart = pricerange.substr(0,pos); priceend = pricerange.substr(pos+1,pricerange.length); pricevariation = .1; trade = parseInt(searchForm.tradevalue.value) - parseInt(searchForm.tradeowed.value); // set the pricestart = pricestart * pricevariation var pricestart = Math.round(parseInt(pricestart) - (parseFloat(pricestart * pricevariation))); // get the starting price range searchForm.startpricerange.value = calculateLoanTotal(pricestart, searchForm.term.value, searchForm.rate.value, searchForm.downpayment.value, trade); if(priceend.length > 0){ // set the priceend = priceend * pricevariation var priceend = Math.round(parseInt(priceend) + (parseFloat(priceend * pricevariation))); // get the ending price range searchForm.endpricerange.value = calculateLoanTotal(priceend, searchForm.term.value, searchForm.rate.value, searchForm.downpayment.value, trade); } } else { // ymm search and vehicle type search validation if(searchForm.name == "makemodelform"){ //alert(searchForm.inventoryType[1].checked); // required: year, make, model, zip, radius /* if(searchForm.yr.value == ""){ errors+="Year is a required field\n"; } */ if(searchForm.make.value == "" || searchForm.model.value == ""){ //errors+="Make is a required field\n"; searchForm.searchtype.value='allnew'; } else { searchForm.searchtype.value='ymm'; } //if(searchForm.zipcode.value.length != 5){ // errors+="A valid Zip code is required" //} //else if(isNaN(searchForm.zipcode.value)){ // errors+="A valid Zip code is required" //} } if(searchForm.name == "vehicletypeform"){ if(searchForm.bodycategoryid.value == "") { errors+="Vehicle Type is required\n"; } if(searchForm.pricerange.value == ""){ errors+="Price Range is a required field\n"; } // set the startPriceRange and endPriceRange form elements based on the value pricerange field pricerange = searchForm.elements["pricerange"].options[searchForm.elements["pricerange"].selectedIndex].value; pos = pricerange.search("-"); pricestart = pricerange.substr(0,pos); priceend = pricerange.substr(pos+1,pricerange.length); if(pricestart.length > 0){ searchForm.startpricerange.value = pricestart; } if(priceend.length > 0){ searchForm.endpricerange.value = priceend; } //searchForm.elements["pricerange"].options[searchForm.elements["pricerange"].selectedIndex].value = ""; //if(searchForm.zipcode.value.length != 5){ // errors+="A valid Zip code is required" //} //else if(isNaN(searchForm.zipcode.value)){ // errors+="A valid Zip code is required" //} } } // set the dummy type field to nothing if(errors.length < 1) { action = searchForm.action; for(i=0; i<searchForm.elements.length; i++){ if(searchForm.elements[i].name.length){ nameValString = ""; switch(searchForm.elements[i].type){ // text,textarea and hidden fields get the same treatment case "hidden": case "textarea": case "text": if(searchForm.elements[i].value.length){ nameValString = searchForm.elements[i].name + "=" + searchForm.elements[i].value ; } break; // case for select box case "select-one": if(searchForm.elements[i].options[searchForm.elements[i].selectedIndex].value.length){ nameValString = searchForm.elements[i].name + "=" + searchForm.elements[i].options[searchForm.elements[i].selectedIndex].value; } break; // radio and checkbox fields get same treatment case "checkbox": case "radio": if(searchForm.elements[i].checked){ nameValString = searchForm.elements[i].name + "=" + searchForm.elements[i].value; } break; default: if(searchForm.elements[i].value.length){ nameValString = searchForm.elements[i].name + "=" + searchForm.elements[i].value ; } break; } action += (nameValString.length)?"&" + nameValString :""; } } oldAction = searchForm.action searchForm.action = action; searchForm.submit(); //searchForm.action = oldAction; //return true; }else{ alert("The following errors occured:\n" + errors + "\n\nPlease fix these problems and re-submit."); //return false; } } /* * payment calculator for loan * L = loan amount * n = number of months (term) * r = rate * P = monthly payment * * 1200P{(1+r/1200)^n-1}/r = L * ----------------------- * (1+r/1200)^n */ function calculateLoanTotal(payment, term, rate, downpayment, tradeequity) { var P = payment; var n = term; var r = rate; var dp = parseInt(downpayment) + parseInt(tradeequity) var a = 1 + (r/1200); // [1200P{a^n-1}/r]/(a^n) = L var b = Math.pow(a,n); // {1200P(b-1)/r}/b = L var c = b-1; // {1200P(c)/r}/b = L var d = 1200*P; // {d(c)/r}/b = L var e = (d*c)/r; // (e/b) = L var f = e/b; // f = L var g = (f - 0) + parseInt(dp); var ret = Math.round(g); return ret; } function check(x) { return (!isNaN(x) && (x != Number.POSITIVE_INFINITY) && (x != Number.NEGATIVE_INFINITY)); } function round(x) { return Math.round(x*100)/100; } function limitText(limitField, limitCount, limitNum, counterId) { var bName = navigator.appName; if (limitField.value.length > limitNum) { limitField.value = limitField.value.substring(0, limitNum); } else { limitCount.value = limitNum - limitField.value.length; if(bName == "Netscape"){ document.getElementById(counterId).textContent=limitNum - limitField.value.length; } else{ document.getElementById(counterId).innerText=limitNum - limitField.value.length; } } } </script> <style> #auxboxtwo {float:right;width:240px;height:185px;margin:0 0 0 0;background:url(http://www.bmwofroseville.com/custom_links/homecollision.gif) no-repeat;} </style> <div id="bigplayer"> <!--version 2.2 added ebay block to not use JS to render code Params: http://dealer2822.adpwebmarketingan.com 2822 Standard --> <div> <script type="text/javascript"> var flashvars = false; var params = { allowscriptaccess: "always", wmode: "opaque", quality: "high", bgcolor: "#FFFFFF", menu: "false", base: "http://www.bmwofroseville.com", flashvars: "franchiseWebAddress=http://dealer2822.adpwebmarketingan.com&FranchiseID=2822&PlaylistID=11276956&isEbay=false&isAdmin=0&loopshow=true&mediafileversion=_original&st_w=684&st_h=314&autoplay=true&isPopup=false&iconNav=true&" }; swfobject.embedSWF("http://dealer2822.adpwebmarketingan.com/templates/flash/mediaplayerV2.swf", "myContentDA1E6EE5", "684", "314", "9.0.0","expressInstall.swf", flashvars, params); </script> <div id="myContentDA1E6EE5"> <p><br><br> <i>For an enhanced experience, please install or enable the Adobe Flash player.</i><br><br> <a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" border="0" /></a></p> </div> <script language="javascript"> function set360PopUpFaderDivSize() { // Find Screen size, and x & y scroll ofset we we can precisely size the fader div var myWidth = 0, myHeight = 0; var scrOfX = 0, scrOfY = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } if( typeof( window.pageYOffset ) == 'number' ) { //Netscape compliant scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { //DOM compliant scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { //IE6 standards compliant mode scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } myWidth = myWidth + scrOfX; myHeight = myHeight + scrOfY; document.getElementById("s360PopUpFader").style.height=myHeight; document.getElementById("s360PopUpFader").style.width=myWidth; } function toggle360PopUp() { var width = 566 var height = 438 var topSep = 30 var leftPos = Math.round((document.body.clientWidth / 2) - (width/2)); var topPos = Math.round((document.body.clientHeight / 2) - (height/2+topSep)); var scrollPosY = 0 var obj = document.getElementById("s360PopUp"); var objFader = document.getElementById("s360PopUpFader"); set360PopUpFaderDivSize(); if (document.getElementById) { if ( obj.style.display == "none"){ /*if(window.pageYOffset != null){ scrollPosY = window.pageYOffset + topSep; }else if (document.body.scrollTop != null){ scrollPosY = document.body.scrollTop + topSep; }*/ obj.style.top = topPos + "px"; obj.style.left = leftPos + "px"; obj.style.display = ""; objFader.style.display=""; } else { obj.style.display = "none"; objFader.style.display="none"; obj.style.top = 0; obj.style.left = 0; } } } </script> </div> </div> <div id="homeinfobox"> <h3> 110 Automall Drive<br> Roseville, California 95661 </h3> <div id="homenumbers"><br> Service:<h4>866-246-2380</h4> New Vehicles:<h4>866-808-7139</h4> <br> </div> <div id="homenumbers"><br> Parts:<h4>877-657-4756</h4> Pre-Owned Vehicles:<h4>877-206-5148 </h4> <br> </div> <div id="smallplayer"> <!--version 2.2 added ebay block to not use JS to render code Params: http://dealer2822.adpwebmarketingan.com 2060 Standard --> <div> <script type="text/javascript"> var flashvars = false; var params = { allowscriptaccess: "always", wmode: "opaque", quality: "high", bgcolor: "#FFFFFF", menu: "false", base: "http://www.bmwofroseville.com", flashvars: "franchiseWebAddress=http://dealer2822.adpwebmarketingan.com&FranchiseID=2060&PlaylistID=11070945&isEbay=false&isAdmin=0&loopshow=true&mediafileversion=_original&st_w=280&st_h=132&autoplay=true&isPopup=false&iconNav=true&" }; swfobject.embedSWF("http://dealer2822.adpwebmarketingan.com/templates/flash/mediaplayerV2an.swf", "myContentDA1E6EF5", "280", "132", "9.0.0","expressInstall.swf", flashvars, params); </script> <div id="myContentDA1E6EF5"> <p><br><br> <i>For an enhanced experience, please install or enable the Adobe Flash player.</i><br><br> <a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" border="0" /></a></p> </div> <script language="javascript"> function set360PopUpFaderDivSize() { // Find Screen size, and x & y scroll ofset we we can precisely size the fader div var myWidth = 0, myHeight = 0; var scrOfX = 0, scrOfY = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } if( typeof( window.pageYOffset ) == 'number' ) { //Netscape compliant scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { //DOM compliant scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { //IE6 standards compliant mode scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } myWidth = myWidth + scrOfX; myHeight = myHeight + scrOfY; document.getElementById("s360PopUpFader").style.height=myHeight; document.getElementById("s360PopUpFader").style.width=myWidth; } function toggle360PopUp() { var width = 566 var height = 438 var topSep = 30 var leftPos = Math.round((document.body.clientWidth / 2) - (width/2)); var topPos = Math.round((document.body.clientHeight / 2) - (height/2+topSep)); var scrollPosY = 0 var obj = document.getElementById("s360PopUp"); var objFader = document.getElementById("s360PopUpFader"); set360PopUpFaderDivSize(); if (document.getElementById) { if ( obj.style.display == "none"){ /*if(window.pageYOffset != null){ scrollPosY = window.pageYOffset + topSep; }else if (document.body.scrollTop != null){ scrollPosY = document.body.scrollTop + topSep; }*/ obj.style.top = topPos + "px"; obj.style.left = leftPos + "px"; obj.style.display = ""; objFader.style.display=""; } else { obj.style.display = "none"; objFader.style.display="none"; obj.style.top = 0; obj.style.left = 0; } } } </script> </div> </div> </div> <div id="boxarea"> <div id="auxboxquote" style="padding-left:13"> <h1 style="margin-bottom:-11">your free price quote**</h1> <center> <script type="text/javascript"> function limitText(limitField, limitCount, limitNum, counterId) { var bName = navigator.appName; if (limitField.value.length > limitNum) { limitField.value = limitField.value.substring(0, limitNum); } else { limitCount.value = limitNum - limitField.value.length; if(bName == "Netscape"){ document.getElementById(counterId).textContent=limitNum - limitField.value.length + ' Characters Remaining'; } else{ document.getElementById(counterId).innerText=limitNum - limitField.value.length + ' Characters Remaining'; } } } </script> <script type="text/javascript"> function toggleQuickQuote(item) { var newDiv = document.getElementById('ymm_New'); var usedDiv = document.getElementById('ymm_Used') if (item == 'new') { newDiv.style.display = ""; usedDiv.style.display = "none"; document.quickQuoteForm.quickQuoteProcess.value = "new"; } else { newDiv.style.display = "none"; usedDiv.style.display = ""; document.quickQuoteForm.quickQuoteProcess.value = "used"; } } </script> <script language="javascript"> function isValidEmail(anEmail){ regEmail = /^[A-Za-z0-9\-_]+(\.[A-Za-z0-9\-_]+)*@([A-Za-z0-9\-_\.]+\.)+[A-Za-z]{2,3}$/i; return regEmail.test(anEmail); } function isValidZipCode(zipCode){ zipPattern = /(^\d{5}$)/ ; return zipPattern.test(zipCode); } function validateQuickQuote(thisForm){ errors = ""; errors += (thisForm.elements.firstname.value.length == 0)?"\nFirst Name is required.":""; errors += (thisForm.elements.lastname.value.length == 0)?"\nLast Name is required.":""; errors += (!isValidEmail(thisForm.elements.homeemail.value))?"\nA valid email address is required.":""; isValidAreaCode = ((!isNaN(thisForm.elements.homephonearea.value)) && thisForm.elements.homephonearea.value.length == 3); isValidPhonePrefix = ((!isNaN(thisForm.elements.homephoneprefix.value)) && thisForm.elements.homephoneprefix.value.length == 3) ; isValidPhoneSuffix = ((!isNaN(thisForm.elements.homephonesuffix.value)) && thisForm.elements.homephonesuffix.value.length == 4); errors += (!isValidAreaCode || !isValidPhonePrefix || !isValidPhoneSuffix)?"\nA valid phone number is required.":""; //errors += (thisForm.elements.CurrHomeZip.value.length == 0)?"\nZip Code is required.":""; errors += (!isValidZipCode(thisForm.elements.currhomezip.value))?"\nA valid zip code is required.":""; if (thisForm.elements.quickQuoteProcess.value == "new" || thisForm.elements.quickQuoteProcess.value == "") { errors += (thisForm.elements.vehicleYearNew.options[thisForm.elements.vehicleYearNew.selectedIndex].value.length == 0)?"\nVehicle Year is required.":""; errors += (thisForm.elements.vehicleMakeNew.options[thisForm.elements.vehicleMakeNew.selectedIndex].value.length == 0)?"\nVehicle Make is required.":""; errors += (thisForm.elements.vehicleModelNew.options[thisForm.elements.vehicleModelNew.selectedIndex].value.length == 0)?"\nVehicle Model is required.":""; } if (thisForm.elements.quickQuoteProcess.value == "used") { errors += (thisForm.elements.vehicleYearUsed.options[thisForm.elements.vehicleYearUsed.selectedIndex].value.length == 0)?"\nNot Older Than is required.":""; errors += (thisForm.elements.vehicleMakeUsed.options[thisForm.elements.vehicleMakeUsed.selectedIndex].value.length == 0)?"\nVehicle Make is required.":""; errors += (thisForm.elements.vehicleModelUsed.options[thisForm.elements.vehicleModelUsed.selectedIndex].value.length == 0)?"\nVehicle Model is required.":""; } if(errors.length){ alert(errors); return false; } else{ return true; } } </script> <form name="quickQuoteForm" id="frmQuote" action="/index.cfm?&gaconfirm=4" method="post" onsubmit="return validateQuickQuote(this);"> <input type="hidden" name="quickQuoteProcess" id="quickQuoteProcessVal" value="used" /> <input type="hidden" name="countdown"> <table align="center" style="margin:0 0 3 0" width="300"> <tr> <td colspan="2"> <strong>Quote Type:</strong>&nbsp;&nbsp;&nbsp; Used <input type="radio" name="quote_type" id="quote_type_used" value="used" checked onclick="toggleQuickQuote(this.value)" /> New <input type="radio" name="quote_type" id="quote_type_new" value="new" onclick="toggleQuickQuote(this.value)"/> </td> </tr> <tr> <td width="150" valign="top"> <input type="text" style="width: 140px;" class="textbox" name="firstname" value="First Name*" onfocus="if(this.value=='First Name*'){this.value=''}" onblur="if(this.value==''){this.value='First Name*';}" /> <input type="text" style="width: 140px;" class="textbox" name="lastname" value="Last Name*" onfocus="if(this.value=='Last Name*'){this.value=''}" onblur="if(this.value==''){this.value='Last Name*';}" /> <input type="text" style="width: 140px;" class="textbox" name="homeemail" value="Email Address*" onfocus="if(this.value=='Email Address*'){this.value=''}" onblur="if(this.value==''){this.value='Email Address*';}" /> <input type="text" style="width: 140px;" class="textbox" name="currhomezip" value="Zip Code*" maxlength="5" onfocus="if(this.value=='Zip Code*'){this.value=''}" onblur="if(this.value==''){this.value='Zip Code*';}" /> <textarea name="customerComments" onfocus="if(this.value == 'Additional Information') this.value='';" class="textbox" style="width:140px; height:52px; font-family:arial; overflow:auto;" onKeyUp="limitText(this.form.customerComments,this.form.countdown,80,'textareacharcounter');" onKeyDown="limitText(this.form.customerComments,this.form.countdown,80,'textareacharcounternew');">Additional Information</textarea> <div style="width:150;font-size:9px;"> <div id="textareacharcounternew">80 Characters Remaining</div> <div style="padding:0 0 0 10;text-transform:uppercase;">* Required fields</div> </div> </td> <td width="150" valign="top" align="right"> <div id="ymm_New" style="display:none"> <script language="javascript"> // functions to return constants var vehicleSelectorForm20217813635743 = document.forms["quickQuoteForm"]; function getCertifiedCheckbox20217813635743(){ return vehicleSelectorForm20217813635743.elements["certified"]; } function getYearSelector20217813635743(){ return vehicleSelectorForm20217813635743.elements["vehicleYearNew"]; } function getMakeSelector20217813635743(){ return vehicleSelectorForm20217813635743.elements["vehicleMakeNew"]; } function getModelSelector20217813635743(){ return vehicleSelectorForm20217813635743.elements["vehicleModelNew"]; } function getScriptsURL20217813635743(){ var scriptsURL = document.location.protocol + "//www.bmwofroseville.com/com/autofuse/inventory"; return scriptsURL; } function getVehicleType20217813635743(){ var vehicleType = "New" return vehicleType; } function getRequestingFranchiseId20217813635743(){ return "2060"; } function getRadioValue20217813635743(aRadio){ radioValue = ""; if(aRadio.length > 0){ for(i=0; i<aRadio.length; i++){ radioValue = (aRadio[i].checked)?aRadio[i].value:radioValue; } } else{ radioValue = (aRadio.checked)?aRadio.value:radioValue; } return radioValue; } function newXMLHttpRequest20217813635743() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { alert("Unable to create a Microsoft.XMLHTTP XMLHttpRequest."); } } return xmlreq; } function getYearSelectedValue20217813635743(){ return ""; } function getShowYearSelectorForNewCars20217813635743(){ return ("1" == "1")?true:false; } function getShowYearSelectorForUsedCars20217813635743(){ return ("0" == "1")?true:false; } function getMakeSelectedValue20217813635743(){ return "BMW"; } function getModelSelectedValue20217813635743(){ return ""; } /* * Returns a function that waits for the specified XMLHttpRequest to complete, then passes its XML response to the given handler function. * req - The XMLHttpRequest whose state is changing * responseXmlHandler - Function to pass the XML response to */ function getReadyStateHandler20217813635743(req, responseXmlHandler) { // If the request's status is "complete" (4) , then Check that a "successful" (200)server response was received // and pass the XML payload of the response to the handler function //alert("in handler - request.readystate was: " + req.status); return function () { if (req.readyState == 4) { (req.status == 200)?responseXmlHandler(req.responseXML):""; } } } function clearSelect(selectObject){ while (selectObject.options.length) selectObject.options[0] = null; return true; } function disableSelector(aSelector){ aSelector.disabled = true; aSelector.options[0].text = "Loading..."; return; } function enableSelector(aSelector){ aSelector.disabled = false; return; } function fetchAvailableYears20217813635743(requestingFranchiseId,vehicleType){ if( getShowYearSelectorForNewCars20217813635743() && (getVehicleType20217813635743() == "New") ){ document.getElementById("yearSelectorTR20217813635743").style.display=""; }else if (getShowYearSelectorForUsedCars20217813635743() && (getVehicleType20217813635743() == "Used") ){ document.getElementById("yearSelectorTR20217813635743").style.display=""; }else{ document.getElementById("yearSelectorTR20217813635743").style.display="none"; } disableSelector(getYearSelector20217813635743()); var fetchAvailableYears20217813635743Request = newXMLHttpRequest20217813635743(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20217813635743(fetchAvailableYears20217813635743Request, populateYearSelector20217813635743); var fetchAvailableYears20217813635743URL = getScriptsURL20217813635743() + "/getinstockyearsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableYears20217813635743Request.onreadystatechange = handlerFunction; fetchAvailableYears20217813635743Request.open("POST", fetchAvailableYears20217813635743URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableYears20217813635743Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableYears20217813635743Request.send(""); } function populateYearSelector20217813635743(responseXML) { yearSelector = getYearSelector20217813635743(); //clear whatever options may already be in there clearSelect(yearSelector); yearSelector.options[0] = new Option("Select a Year*","",false,false); // populate the selector var selected = false; var years = responseXML.getElementsByTagName("year"); for (var i = 0 ; i < years.length ; i++) { if(years[i].firstChild !== null){ year = years[i].firstChild.nodeValue; if (year == getYearSelectedValue20217813635743()) { selected = true; } else { selected = false; } yearSelector.options[yearSelector.options.length] = new Option(year,year,false,selected); } } //only "re-enable" the year selector if the user wants the year selector enabled for new vehicles if(getShowYearSelectorForNewCars20217813635743() && (getVehicleType20217813635743() == "New")){ // its a new vehicle and the user doesn't want to show year selector for new vehicles enableSelector(yearSelector); } else if(getShowYearSelectorForUsedCars20217813635743() && (getVehicleType20217813635743() == "Used")){ enableSelector(yearSelector); } else{ yearSelector.options[0].text = "All New Vehicle Years"; } } function fetchAvailableMakes20217813635743(requestingFranchiseId,vehicleType){ disableSelector(getMakeSelector20217813635743()); var fetchAvailableMakes20217813635743Request = newXMLHttpRequest20217813635743(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20217813635743(fetchAvailableMakes20217813635743Request, populateMakeSelector20217813635743); var fetchAvailableMakes20217813635743URL = getScriptsURL20217813635743() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableMakes20217813635743Request.onreadystatechange = handlerFunction; fetchAvailableMakes20217813635743Request.open("POST", fetchAvailableMakes20217813635743URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20217813635743Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20217813635743Request.send(""); } function fetchAvailableCertifiedMakes20217813635743(requestingFranchiseId,vehicleType,certified){ disableSelector(getMakeSelector20217813635743()); var fetchAvailableMakes20217813635743Request = newXMLHttpRequest20217813635743(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20217813635743(fetchAvailableMakes20217813635743Request, populateMakeSelector20217813635743); var fetchAvailableMakes20217813635743URL = getScriptsURL20217813635743() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&certified=" + certified; fetchAvailableMakes20217813635743Request.onreadystatechange = handlerFunction; fetchAvailableMakes20217813635743Request.open("POST", fetchAvailableMakes20217813635743URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20217813635743Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20217813635743Request.send(""); } function populateMakeSelector20217813635743(responseXML) { makeSelector = getMakeSelector20217813635743(); selectedMake = '' ; //get the make thats currently selected //selectedMake = makeSelector.options[makeSelector.selectedIndex].value; //clear whatever options may already be in there clearSelect(makeSelector); makeSelector.options[0] = new Option("Select a Make*","",false,false); var selected = false; var makes = responseXML.getElementsByTagName("make"); for (var i = 0 ; i < makes.length ; i++) { if(makes[i].firstChild !== null){ make = makes[i].firstChild.nodeValue; if ((getVehicleType20217813635743().toLowerCase() == "new" || getVehicleType20217813635743().toLowerCase() == "cpo") && make == getMakeSelectedValue20217813635743()) { selected = true; } else { selected = false; } makeSelector.options[makeSelector.options.length] = new Option(make,make,false,selected); } } enableSelector(makeSelector); } function fetchAvailableModels20217813635743(requestingFranchiseId,vehicleType,make){ disableSelector(getModelSelector20217813635743()); var fetchAvailableModels20217813635743Request = newXMLHttpRequest20217813635743(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20217813635743(fetchAvailableModels20217813635743Request, populateModelSelector20217813635743); var fetchAvailableModels20217813635743URL = getScriptsURL20217813635743() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make; //document.write(fetchAvailableModels20217813635743URL); fetchAvailableModels20217813635743Request.onreadystatechange = handlerFunction; fetchAvailableModels20217813635743Request.open("POST", fetchAvailableModels20217813635743URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20217813635743Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20217813635743Request.send(""); } function fetchAvailableCertifiedModels20217813635743(requestingFranchiseId,vehicleType,make,certified){ disableSelector(getModelSelector20217813635743()); var fetchAvailableModels20217813635743Request = newXMLHttpRequest20217813635743(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20217813635743(fetchAvailableModels20217813635743Request, populateModelSelector20217813635743); var fetchAvailableModels20217813635743URL = getScriptsURL20217813635743() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make + "&certified=" + certified; //document.write(fetchAvailableModels20217813635743URL); fetchAvailableModels20217813635743Request.onreadystatechange = handlerFunction; fetchAvailableModels20217813635743Request.open("POST", fetchAvailableModels20217813635743URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20217813635743Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20217813635743Request.send(""); } function populateModelSelector20217813635743(responseXML) { modelSelector = getModelSelector20217813635743(); //clear whatever options may already be in there clearSelect(modelSelector); modelSelector.options[0] = new Option("Select a Model*","",false,false); var selected = false; var models = responseXML.getElementsByTagName("model"); for (var i = 0 ; i < models.length ; i++) { if(models[i].firstChild !== null){ model = models[i].firstChild.nodeValue; if (model == getModelSelectedValue20217813635743()) { selected = true; } else { selected = false; } modelSelector.options[modelSelector.options.length] = new Option(model,model.replace("&","%26"),false,selected); } } enableSelector(modelSelector); } function changeYearEvent20217813635743(yearSelector){ thisForm = yearSelector.form; selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedVehicleType = getVehicleType20217813635743(); requestingFranchiseId = getRequestingFranchiseId20217813635743(); fetchAvailableMakes20217813635743(requestingFranchiseId,selectedVehicleType,selectedYear); //selectedMake = thisForm.make.options[thisForm.make.selectedIndex].value; //selectedMake = ''; //fetchAvailableModels20217813635743(requestingFranchiseId,selectedVehicleType,selectedYear,selectedMake); //selectedModel = ''; } function changeMakeEvent20217813635743(makeSelector){ thisForm = makeSelector.form; yearSelector = getYearSelector20217813635743(); selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedMake = makeSelector.options[makeSelector.selectedIndex].value; selectedVehicleType = getVehicleType20217813635743(); requestingFranchiseId = getRequestingFranchiseId20217813635743(); fetchAvailableModels20217813635743(requestingFranchiseId,selectedVehicleType,selectedMake); //fetchAvailableModels20217813635743(requestingFranchiseId,selectedVehicleType,selectedMake); } function buildMenus20217813635743(){ // This code is required to bypass ie6. bug "operations aborted" // You have to wait until onload in order to do document.body.appendChild which is a bug in Internet Explorer's implementation. if (window.addEventListener) window.addEventListener("load",buildMenus20217813635743,false); else if (window.attachEvent) window.attachEvent("onload",buildMenus20217813635743); //start creating menus var requestingFranchiseId = getRequestingFranchiseId20217813635743(); var vehicleType = getVehicleType20217813635743(); fetchAvailableYears20217813635743(requestingFranchiseId,vehicleType); fetchAvailableMakes20217813635743(requestingFranchiseId,vehicleType); fetchAvailableModels20217813635743(requestingFranchiseId,vehicleType,getMakeSelectedValue20217813635743()); } </script> <table cellpadding="0" cellspacing="0" width="150"> <tr style="display:none" > <td nowrap="nowrap" > <input type="radio" name="vehicleType" value="New" Checked onclick="buildMenus20217813635743();"/> <div class="" style="display:inline;"> New </div> </td> </tr> <tr id="yearSelectorTR20217813635743" > <td > <select style="width:140;" name="vehicleYearNew" onchange="changeYearEvent20217813635743(this);" class="textbox"> <option value="">Select a Year*</option> </select> </td> </tr> <tr> <td > <select style="width:140;" name="vehicleMakeNew" onchange="changeMakeEvent20217813635743(this);" class="textbox"> <option value="">Select a Make</option> <option value="BMW">BMW</option> </select> </td> </tr> <tr> <td > <select style="width:140;" name="vehicleModelNew" class="textbox"> <option value="">Select a Model</option> <option value="1 Series">1 Series</option> <option value="3 Series">3 Series</option> <option value="5 Series">5 Series</option> <option value="6 Series">6 Series</option> <option value="7 Series">7 Series</option> <option value="ActiveHybrid X6">ActiveHybrid X6</option> <option value="M3">M3</option> <option value="M5">M5</option> <option value="M6">M6</option> <option value="X3">X3</option> <option value="X5">X5</option> <option value="X5 M">X5 M</option> <option value="X6">X6</option> <option value="X6 M">X6 M</option> <option value="Z4">Z4</option> </select> </td> </tr> </table> <script language="javascript"> if(document.location.protocol == "https:"){ setTimeout(function(){buildMenus20217813635743(); }, 5000); } else{ buildMenus20217813635743(); } </script> </div> <div id="ymm_Used" style=""> <script language="javascript"> // functions to return constants var vehicleSelectorForm20218903563340 = document.forms["quickQuoteForm"]; function getCertifiedCheckbox20218903563340(){ return vehicleSelectorForm20218903563340.elements["certified"]; } function getYearSelector20218903563340(){ return vehicleSelectorForm20218903563340.elements["vehicleYearUsed"]; } function getMakeSelector20218903563340(){ return vehicleSelectorForm20218903563340.elements["vehicleMakeUsed"]; } function getModelSelector20218903563340(){ return vehicleSelectorForm20218903563340.elements["vehicleModelUsed"]; } function getScriptsURL20218903563340(){ var scriptsURL = document.location.protocol + "//www.bmwofroseville.com/com/autofuse/inventory"; return scriptsURL; } function getVehicleType20218903563340(){ var vehicleType = "Used" return vehicleType; } function getRequestingFranchiseId20218903563340(){ return "2060"; } function getRadioValue20218903563340(aRadio){ radioValue = ""; if(aRadio.length > 0){ for(i=0; i<aRadio.length; i++){ radioValue = (aRadio[i].checked)?aRadio[i].value:radioValue; } } else{ radioValue = (aRadio.checked)?aRadio.value:radioValue; } return radioValue; } function newXMLHttpRequest20218903563340() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { alert("Unable to create a Microsoft.XMLHTTP XMLHttpRequest."); } } return xmlreq; } function getYearSelectedValue20218903563340(){ return ""; } function getShowYearSelectorForNewCars20218903563340(){ return ("0" == "1")?true:false; } function getShowYearSelectorForUsedCars20218903563340(){ return ("1" == "1")?true:false; } function getMakeSelectedValue20218903563340(){ return "BMW"; } function getModelSelectedValue20218903563340(){ return ""; } /* * Returns a function that waits for the specified XMLHttpRequest to complete, then passes its XML response to the given handler function. * req - The XMLHttpRequest whose state is changing * responseXmlHandler - Function to pass the XML response to */ function getReadyStateHandler20218903563340(req, responseXmlHandler) { // If the request's status is "complete" (4) , then Check that a "successful" (200)server response was received // and pass the XML payload of the response to the handler function //alert("in handler - request.readystate was: " + req.status); return function () { if (req.readyState == 4) { (req.status == 200)?responseXmlHandler(req.responseXML):""; } } } function clearSelect(selectObject){ while (selectObject.options.length) selectObject.options[0] = null; return true; } function disableSelector(aSelector){ aSelector.disabled = true; aSelector.options[0].text = "Loading..."; return; } function enableSelector(aSelector){ aSelector.disabled = false; return; } function fetchAvailableYears20218903563340(requestingFranchiseId,vehicleType){ if( getShowYearSelectorForNewCars20218903563340() && (getVehicleType20218903563340() == "New") ){ document.getElementById("yearSelectorTR20218903563340").style.display=""; }else if (getShowYearSelectorForUsedCars20218903563340() && (getVehicleType20218903563340() == "Used") ){ document.getElementById("yearSelectorTR20218903563340").style.display=""; }else{ document.getElementById("yearSelectorTR20218903563340").style.display="none"; } disableSelector(getYearSelector20218903563340()); var fetchAvailableYears20218903563340Request = newXMLHttpRequest20218903563340(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20218903563340(fetchAvailableYears20218903563340Request, populateYearSelector20218903563340); var fetchAvailableYears20218903563340URL = getScriptsURL20218903563340() + "/getinstockyearsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableYears20218903563340Request.onreadystatechange = handlerFunction; fetchAvailableYears20218903563340Request.open("POST", fetchAvailableYears20218903563340URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableYears20218903563340Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableYears20218903563340Request.send(""); } function populateYearSelector20218903563340(responseXML) { yearSelector = getYearSelector20218903563340(); //clear whatever options may already be in there clearSelect(yearSelector); yearSelector.options[0] = new Option("Not Older Than*","",false,false); // populate the selector var selected = false; var years = responseXML.getElementsByTagName("year"); for (var i = 0 ; i < years.length ; i++) { if(years[i].firstChild !== null){ year = years[i].firstChild.nodeValue; if (year == getYearSelectedValue20218903563340()) { selected = true; } else { selected = false; } yearSelector.options[yearSelector.options.length] = new Option(year,year,false,selected); } } //only "re-enable" the year selector if the user wants the year selector enabled for new vehicles if(getShowYearSelectorForNewCars20218903563340() && (getVehicleType20218903563340() == "New")){ // its a new vehicle and the user doesn't want to show year selector for new vehicles enableSelector(yearSelector); } else if(getShowYearSelectorForUsedCars20218903563340() && (getVehicleType20218903563340() == "Used")){ enableSelector(yearSelector); } else{ yearSelector.options[0].text = "All New Vehicle Years"; } } function fetchAvailableMakes20218903563340(requestingFranchiseId,vehicleType){ disableSelector(getMakeSelector20218903563340()); var fetchAvailableMakes20218903563340Request = newXMLHttpRequest20218903563340(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20218903563340(fetchAvailableMakes20218903563340Request, populateMakeSelector20218903563340); var fetchAvailableMakes20218903563340URL = getScriptsURL20218903563340() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableMakes20218903563340Request.onreadystatechange = handlerFunction; fetchAvailableMakes20218903563340Request.open("POST", fetchAvailableMakes20218903563340URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20218903563340Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20218903563340Request.send(""); } function fetchAvailableCertifiedMakes20218903563340(requestingFranchiseId,vehicleType,certified){ disableSelector(getMakeSelector20218903563340()); var fetchAvailableMakes20218903563340Request = newXMLHttpRequest20218903563340(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20218903563340(fetchAvailableMakes20218903563340Request, populateMakeSelector20218903563340); var fetchAvailableMakes20218903563340URL = getScriptsURL20218903563340() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&certified=" + certified; fetchAvailableMakes20218903563340Request.onreadystatechange = handlerFunction; fetchAvailableMakes20218903563340Request.open("POST", fetchAvailableMakes20218903563340URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20218903563340Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20218903563340Request.send(""); } function populateMakeSelector20218903563340(responseXML) { makeSelector = getMakeSelector20218903563340(); selectedMake = '' ; //get the make thats currently selected //selectedMake = makeSelector.options[makeSelector.selectedIndex].value; //clear whatever options may already be in there clearSelect(makeSelector); makeSelector.options[0] = new Option("Select a Make*","",false,false); var selected = false; var makes = responseXML.getElementsByTagName("make"); for (var i = 0 ; i < makes.length ; i++) { if(makes[i].firstChild !== null){ make = makes[i].firstChild.nodeValue; if ((getVehicleType20218903563340().toLowerCase() == "new" || getVehicleType20218903563340().toLowerCase() == "cpo") && make == getMakeSelectedValue20218903563340()) { selected = true; } else { selected = false; } makeSelector.options[makeSelector.options.length] = new Option(make,make,false,selected); } } enableSelector(makeSelector); } function fetchAvailableModels20218903563340(requestingFranchiseId,vehicleType,make){ disableSelector(getModelSelector20218903563340()); var fetchAvailableModels20218903563340Request = newXMLHttpRequest20218903563340(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20218903563340(fetchAvailableModels20218903563340Request, populateModelSelector20218903563340); var fetchAvailableModels20218903563340URL = getScriptsURL20218903563340() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make; //document.write(fetchAvailableModels20218903563340URL); fetchAvailableModels20218903563340Request.onreadystatechange = handlerFunction; fetchAvailableModels20218903563340Request.open("POST", fetchAvailableModels20218903563340URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20218903563340Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20218903563340Request.send(""); } function fetchAvailableCertifiedModels20218903563340(requestingFranchiseId,vehicleType,make,certified){ disableSelector(getModelSelector20218903563340()); var fetchAvailableModels20218903563340Request = newXMLHttpRequest20218903563340(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20218903563340(fetchAvailableModels20218903563340Request, populateModelSelector20218903563340); var fetchAvailableModels20218903563340URL = getScriptsURL20218903563340() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make + "&certified=" + certified; //document.write(fetchAvailableModels20218903563340URL); fetchAvailableModels20218903563340Request.onreadystatechange = handlerFunction; fetchAvailableModels20218903563340Request.open("POST", fetchAvailableModels20218903563340URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20218903563340Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20218903563340Request.send(""); } function populateModelSelector20218903563340(responseXML) { modelSelector = getModelSelector20218903563340(); //clear whatever options may already be in there clearSelect(modelSelector); modelSelector.options[0] = new Option("Select a Model*","",false,false); var selected = false; var models = responseXML.getElementsByTagName("model"); for (var i = 0 ; i < models.length ; i++) { if(models[i].firstChild !== null){ model = models[i].firstChild.nodeValue; if (model == getModelSelectedValue20218903563340()) { selected = true; } else { selected = false; } modelSelector.options[modelSelector.options.length] = new Option(model,model.replace("&","%26"),false,selected); } } enableSelector(modelSelector); } function changeYearEvent20218903563340(yearSelector){ thisForm = yearSelector.form; selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedVehicleType = getVehicleType20218903563340(); requestingFranchiseId = getRequestingFranchiseId20218903563340(); fetchAvailableMakes20218903563340(requestingFranchiseId,selectedVehicleType,selectedYear); //selectedMake = thisForm.make.options[thisForm.make.selectedIndex].value; //selectedMake = ''; //fetchAvailableModels20218903563340(requestingFranchiseId,selectedVehicleType,selectedYear,selectedMake); //selectedModel = ''; } function changeMakeEvent20218903563340(makeSelector){ thisForm = makeSelector.form; yearSelector = getYearSelector20218903563340(); selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedMake = makeSelector.options[makeSelector.selectedIndex].value; selectedVehicleType = getVehicleType20218903563340(); requestingFranchiseId = getRequestingFranchiseId20218903563340(); fetchAvailableModels20218903563340(requestingFranchiseId,selectedVehicleType,selectedMake); //fetchAvailableModels20218903563340(requestingFranchiseId,selectedVehicleType,selectedMake); } function buildMenus20218903563340(){ // This code is required to bypass ie6. bug "operations aborted" // You have to wait until onload in order to do document.body.appendChild which is a bug in Internet Explorer's implementation. if (window.addEventListener) window.addEventListener("load",buildMenus20218903563340,false); else if (window.attachEvent) window.attachEvent("onload",buildMenus20218903563340); //start creating menus var requestingFranchiseId = getRequestingFranchiseId20218903563340(); var vehicleType = getVehicleType20218903563340(); fetchAvailableYears20218903563340(requestingFranchiseId,vehicleType); fetchAvailableMakes20218903563340(requestingFranchiseId,vehicleType); fetchAvailableModels20218903563340(requestingFranchiseId,vehicleType,getMakeSelectedValue20218903563340()); } </script> <table cellpadding="0" cellspacing="0" width="150"> <tr style="display:none" > <td nowrap="nowrap" > <input type="radio" name="vehicleType" value="Used" Checked onclick="buildMenus20218903563340();"/> <div class="" style="display:inline;"> Used </div> </td> </tr> <tr> <td > <select style="width:140;" name="vehicleMakeUsed" onchange="changeMakeEvent20218903563340(this);" class="textbox"> <option value="">Select a Make</option> <option value="BMW">BMW</option> </select> </td> </tr> <tr> <td > <select style="width:140;" name="vehicleModelUsed" class="textbox"> <option value="">Select a Model</option> <option value="1 Series">1 Series</option> <option value="3 Series">3 Series</option> <option value="5 Series">5 Series</option> <option value="6 Series">6 Series</option> <option value="7 Series">7 Series</option> <option value="ActiveHybrid X6">ActiveHybrid X6</option> <option value="M3">M3</option> <option value="M5">M5</option> <option value="M6">M6</option> <option value="X3">X3</option> <option value="X5">X5</option> <option value="X5 M">X5 M</option> <option value="X6">X6</option> <option value="X6 M">X6 M</option> <option value="Z4">Z4</option> </select> </td> </tr> <tr id="yearSelectorTR20218903563340" > <td > <select style="width:140;" name="vehicleYearUsed" class="textbox"> <option value="">Not Older Than*</option> </select> </td> </tr> <tr> <td > <select style="width:140;" name="vehicleMileageUsed" class="textbox"> <option value="">Mileage Under</option> <option value="20000">Under 20,000 miles</option><option value="40000">Under 40,000 miles</option><option value="60000">Under 60,000 miles</option><option value="80000">Under 80,000 miles</option><option value="100000">Under 100,000 miles</option> </select> </td> </tr> <tr> <td > <select style="width:140;" name="vehiclePriceUsed" class="textbox"> <option value="">Price Under</option> <option value="10000">$10,000.00</option><option value="15000">$15,000.00</option><option value="20000">$20,000.00</option><option value="25000">$25,000.00</option><option value="30000">$30,000.00</option><option value="35000">$35,000.00</option><option value="40000">$40,000.00</option><option value="45000">$45,000.00</option><option value="50000">$50,000.00</option><option value="55000">$55,000.00</option><option value="60000">$60,000.00</option><option value="65000">$65,000.00</option><option value="70000">$70,000.00</option><option value="75000">$75,000.00</option><option value="80000">$80,000.00</option><option value="85000">$85,000.00</option><option value="90000">$90,000.00</option><option value="95000">$95,000.00</option><option value="100000">$100,000.00</option> </select> </td> </tr> </table> <script language="javascript"> if(document.location.protocol == "https:"){ setTimeout(function(){buildMenus20218903563340(); }, 5000); } else{ buildMenus20218903563340(); } </script> </div> <div style="font-size:10px; padding:0 11px 0 0;"> *Phone:&nbsp;<input type="text" class="textbox" name="homephonearea" value="" maxlength="3" style="width:25px; font-size:10px; font-family:arial;" onkeyup="if(this.value.length == 3){this.form.elements['homephoneprefix'].focus();}"/> -&nbsp;<input type="text" class="textbox" name="homephoneprefix" value="" maxlength="3" style="width:25px; font-size:10px; font-family:arial;" onkeyup="if(this.value.length == 3){this.form.elements['homephonesuffix'].focus();}"/> -&nbsp;<input type="text" class="textbox" name="homephonesuffix" value="" maxlength="4" style="width:30px; font-size:10px; font-family:arial;"/> <br><input type="image" src="/Templates/website/autonation_family/images//nonbranded_submit_button.gif" onClick="s_objectID='home_quotebutton';" border="0"> </div> </td> </tr> </table> </form> </center> </div> <div id="auxbox"> <h1>inventory search</h1> <div id="auxboxarea" style="margin:0px 0 0 3px;"> <form action="index.cfm?action=inventorysearch&subaction=searchlistnew" method="post" name="makemodelform" > <script language="javascript"> // functions to return constants var vehicleSelectorForm20219068844083 = document.forms["makemodelform"]; function getCertifiedCheckbox20219068844083(){ return vehicleSelectorForm20219068844083.elements["certified"]; } function getYearSelector20219068844083(){ return vehicleSelectorForm20219068844083.elements["yr"]; } function getMakeSelector20219068844083(){ return vehicleSelectorForm20219068844083.elements["make"]; } function getModelSelector20219068844083(){ return vehicleSelectorForm20219068844083.elements["model"]; } function getScriptsURL20219068844083(){ var scriptsURL = document.location.protocol + "//www.bmwofroseville.com/com/autofuse/inventory"; return scriptsURL; } function getVehicleType20219068844083(){ var vehicleType = "Used,CPO,New" vehicleType = getRadioValue20219068844083(vehicleSelectorForm20219068844083.elements['inventorytype']); return vehicleType; } function getRequestingFranchiseId20219068844083(){ return "2060"; } function getRadioValue20219068844083(aRadio){ radioValue = ""; if(aRadio.length > 0){ for(i=0; i<aRadio.length; i++){ radioValue = (aRadio[i].checked)?aRadio[i].value:radioValue; } } else{ radioValue = (aRadio.checked)?aRadio.value:radioValue; } return radioValue; } function newXMLHttpRequest20219068844083() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { alert("Unable to create a Microsoft.XMLHTTP XMLHttpRequest."); } } return xmlreq; } function getYearSelectedValue20219068844083(){ return ""; } function getShowYearSelectorForNewCars20219068844083(){ return ("0" == "1")?true:false; } function getShowYearSelectorForUsedCars20219068844083(){ return ("0" == "1")?true:false; } function getMakeSelectedValue20219068844083(){ return "BMW"; } function getModelSelectedValue20219068844083(){ return ""; } /* * Returns a function that waits for the specified XMLHttpRequest to complete, then passes its XML response to the given handler function. * req - The XMLHttpRequest whose state is changing * responseXmlHandler - Function to pass the XML response to */ function getReadyStateHandler20219068844083(req, responseXmlHandler) { // If the request's status is "complete" (4) , then Check that a "successful" (200)server response was received // and pass the XML payload of the response to the handler function //alert("in handler - request.readystate was: " + req.status); return function () { if (req.readyState == 4) { (req.status == 200)?responseXmlHandler(req.responseXML):""; } } } function clearSelect(selectObject){ while (selectObject.options.length) selectObject.options[0] = null; return true; } function disableSelector(aSelector){ aSelector.disabled = true; aSelector.options[0].text = "Loading..."; return; } function enableSelector(aSelector){ aSelector.disabled = false; return; } function fetchAvailableYears20219068844083(requestingFranchiseId,vehicleType){ if( getShowYearSelectorForNewCars20219068844083() && (getVehicleType20219068844083() == "New") ){ document.getElementById("yearSelectorTR20219068844083").style.display=""; }else if (getShowYearSelectorForUsedCars20219068844083() && (getVehicleType20219068844083() == "Used") ){ document.getElementById("yearSelectorTR20219068844083").style.display=""; }else{ document.getElementById("yearSelectorTR20219068844083").style.display="none"; } disableSelector(getYearSelector20219068844083()); var fetchAvailableYears20219068844083Request = newXMLHttpRequest20219068844083(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20219068844083(fetchAvailableYears20219068844083Request, populateYearSelector20219068844083); var fetchAvailableYears20219068844083URL = getScriptsURL20219068844083() + "/getinstockyearsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableYears20219068844083Request.onreadystatechange = handlerFunction; fetchAvailableYears20219068844083Request.open("POST", fetchAvailableYears20219068844083URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableYears20219068844083Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableYears20219068844083Request.send(""); } function populateYearSelector20219068844083(responseXML) { yearSelector = getYearSelector20219068844083(); //clear whatever options may already be in there clearSelect(yearSelector); yearSelector.options[0] = new Option("Select a Year","",false,false); // populate the selector var selected = false; var years = responseXML.getElementsByTagName("year"); for (var i = 0 ; i < years.length ; i++) { if(years[i].firstChild !== null){ year = years[i].firstChild.nodeValue; if (year == getYearSelectedValue20219068844083()) { selected = true; } else { selected = false; } yearSelector.options[yearSelector.options.length] = new Option(year,year,false,selected); } } //only "re-enable" the year selector if the user wants the year selector enabled for new vehicles if(getShowYearSelectorForNewCars20219068844083() && (getVehicleType20219068844083() == "New")){ // its a new vehicle and the user doesn't want to show year selector for new vehicles enableSelector(yearSelector); } else if(getShowYearSelectorForUsedCars20219068844083() && (getVehicleType20219068844083() == "Used")){ enableSelector(yearSelector); } else{ yearSelector.options[0].text = "All New Vehicle Years"; } } function fetchAvailableMakes20219068844083(requestingFranchiseId,vehicleType){ disableSelector(getMakeSelector20219068844083()); var fetchAvailableMakes20219068844083Request = newXMLHttpRequest20219068844083(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20219068844083(fetchAvailableMakes20219068844083Request, populateMakeSelector20219068844083); var fetchAvailableMakes20219068844083URL = getScriptsURL20219068844083() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType; fetchAvailableMakes20219068844083Request.onreadystatechange = handlerFunction; fetchAvailableMakes20219068844083Request.open("POST", fetchAvailableMakes20219068844083URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20219068844083Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20219068844083Request.send(""); } function fetchAvailableCertifiedMakes20219068844083(requestingFranchiseId,vehicleType,certified){ disableSelector(getMakeSelector20219068844083()); var fetchAvailableMakes20219068844083Request = newXMLHttpRequest20219068844083(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20219068844083(fetchAvailableMakes20219068844083Request, populateMakeSelector20219068844083); var fetchAvailableMakes20219068844083URL = getScriptsURL20219068844083() + "/getinstockmakesxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&certified=" + certified; fetchAvailableMakes20219068844083Request.onreadystatechange = handlerFunction; fetchAvailableMakes20219068844083Request.open("POST", fetchAvailableMakes20219068844083URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableMakes20219068844083Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableMakes20219068844083Request.send(""); } function populateMakeSelector20219068844083(responseXML) { makeSelector = getMakeSelector20219068844083(); selectedMake = '' ; //get the make thats currently selected //selectedMake = makeSelector.options[makeSelector.selectedIndex].value; //clear whatever options may already be in there clearSelect(makeSelector); makeSelector.options[0] = new Option("All Makes","",false,false); var selected = false; var makes = responseXML.getElementsByTagName("make"); for (var i = 0 ; i < makes.length ; i++) { if(makes[i].firstChild !== null){ make = makes[i].firstChild.nodeValue; if ((getVehicleType20219068844083().toLowerCase() == "new" || getVehicleType20219068844083().toLowerCase() == "cpo") && make == getMakeSelectedValue20219068844083()) { selected = true; } else { selected = false; } makeSelector.options[makeSelector.options.length] = new Option(make,make,false,selected); } } enableSelector(makeSelector); } function fetchAvailableModels20219068844083(requestingFranchiseId,vehicleType,make){ disableSelector(getModelSelector20219068844083()); var fetchAvailableModels20219068844083Request = newXMLHttpRequest20219068844083(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20219068844083(fetchAvailableModels20219068844083Request, populateModelSelector20219068844083); var fetchAvailableModels20219068844083URL = getScriptsURL20219068844083() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make; //document.write(fetchAvailableModels20219068844083URL); fetchAvailableModels20219068844083Request.onreadystatechange = handlerFunction; fetchAvailableModels20219068844083Request.open("POST", fetchAvailableModels20219068844083URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20219068844083Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20219068844083Request.send(""); } function fetchAvailableCertifiedModels20219068844083(requestingFranchiseId,vehicleType,make,certified){ disableSelector(getModelSelector20219068844083()); var fetchAvailableModels20219068844083Request = newXMLHttpRequest20219068844083(); // Set the handler function to receive callback notifications from the request object var handlerFunction = getReadyStateHandler20219068844083(fetchAvailableModels20219068844083Request, populateModelSelector20219068844083); var fetchAvailableModels20219068844083URL = getScriptsURL20219068844083() + "/getinstockmodelsxml.cfm?&zipCode=95661&radius=&rooftopId=&city=&state=&requestingFranchiseID=" + requestingFranchiseId + "&vehicleType=" + vehicleType + "&make=" + make + "&certified=" + certified; //document.write(fetchAvailableModels20219068844083URL); fetchAvailableModels20219068844083Request.onreadystatechange = handlerFunction; fetchAvailableModels20219068844083Request.open("POST", fetchAvailableModels20219068844083URL, true); // Open an HTTP POST connection. Third parameter specifies request is asynchronous. fetchAvailableModels20219068844083Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify that the body of the request contains form data fetchAvailableModels20219068844083Request.send(""); } function populateModelSelector20219068844083(responseXML) { modelSelector = getModelSelector20219068844083(); //clear whatever options may already be in there clearSelect(modelSelector); modelSelector.options[0] = new Option("All Models","",false,false); var selected = false; var models = responseXML.getElementsByTagName("model"); for (var i = 0 ; i < models.length ; i++) { if(models[i].firstChild !== null){ model = models[i].firstChild.nodeValue; if (model == getModelSelectedValue20219068844083()) { selected = true; } else { selected = false; } modelSelector.options[modelSelector.options.length] = new Option(model,model.replace("&","%26"),false,selected); } } enableSelector(modelSelector); } function changeYearEvent20219068844083(yearSelector){ thisForm = yearSelector.form; selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedVehicleType = getVehicleType20219068844083(); requestingFranchiseId = getRequestingFranchiseId20219068844083(); fetchAvailableMakes20219068844083(requestingFranchiseId,selectedVehicleType,selectedYear); //selectedMake = thisForm.make.options[thisForm.make.selectedIndex].value; //selectedMake = ''; //fetchAvailableModels20219068844083(requestingFranchiseId,selectedVehicleType,selectedYear,selectedMake); //selectedModel = ''; } function changeMakeEvent20219068844083(makeSelector){ thisForm = makeSelector.form; yearSelector = getYearSelector20219068844083(); selectedYear = yearSelector.options[yearSelector.selectedIndex].value; selectedMake = makeSelector.options[makeSelector.selectedIndex].value; selectedVehicleType = getVehicleType20219068844083(); requestingFranchiseId = getRequestingFranchiseId20219068844083(); fetchAvailableModels20219068844083(requestingFranchiseId,selectedVehicleType,selectedMake); //fetchAvailableModels20219068844083(requestingFranchiseId,selectedVehicleType,selectedMake); } function buildMenus20219068844083(){ // This code is required to bypass ie6. bug "operations aborted" // You have to wait until onload in order to do document.body.appendChild which is a bug in Internet Explorer's implementation. if (window.addEventListener) window.addEventListener("load",buildMenus20219068844083,false); else if (window.attachEvent) window.attachEvent("onload",buildMenus20219068844083); //start creating menus var requestingFranchiseId = getRequestingFranchiseId20219068844083(); var vehicleType = getVehicleType20219068844083(); fetchAvailableYears20219068844083(requestingFranchiseId,vehicleType); fetchAvailableMakes20219068844083(requestingFranchiseId,vehicleType); fetchAvailableModels20219068844083(requestingFranchiseId,vehicleType,getMakeSelectedValue20219068844083()); } </script> <table cellpadding="0" cellspacing="0" width=""> <tr > <td align="right" ><div class="homesearchlabels"><strong>Type:</strong></div></td> <td nowrap="nowrap" > <input type="radio" name="inventorytype" value="Used" Checked onclick="buildMenus20219068844083();"/> <div class="homesearchlabels" style="display:inline;"> Used </div> <input type="radio" name="inventorytype" value="CPO" onclick="buildMenus20219068844083();"/> <div class="homesearchlabels" style="display:inline;"> CPO <a href="javascript:void(0);" title="Certified Pre-Owned vehicles have passed a rigorous inspection and are backed by a manufacturer warranty."><img src="/templates/website/autonation_family/images/info_icon_grey.gif" border="0"></a> </div> <input type="radio" name="inventorytype" value="New" onclick="buildMenus20219068844083();"/> <div class="homesearchlabels" style="display:inline;"> New </div> </td> </tr> <tr> <td align="right" > <div class="homesearchlabels"><strong>Make:</strong></div> </td> <td > <select style="width:95%;" name="make" onchange="changeMakeEvent20219068844083(this);" class="homesearchfields"> <option value="">All Makes</option> <option value="BMW">BMW</option> </select> </td> </tr> <tr> <td align="right" > <div class="homesearchlabels"><strong>Model:</strong></div> </td> <td > <select style="width:95%;" name="model" class="homesearchfields"> <option value="">All Models</option> <option value="1 Series">1 Series</option> <option value="3 Series">3 Series</option> <option value="5 Series">5 Series</option> <option value="6 Series">6 Series</option> <option value="7 Series">7 Series</option> <option value="ActiveHybrid X6">ActiveHybrid X6</option> <option value="M3">M3</option> <option value="M5">M5</option> <option value="M6">M6</option> <option value="X3">X3</option> <option value="X5">X5</option> <option value="X5 M">X5 M</option> <option value="X6">X6</option> <option value="X6 M">X6 M</option> <option value="Z4">Z4</option> </select> </td> </tr> <tr id="yearSelectorTR20219068844083" style="display:none;" > <td align="right" > <div class="homesearchlabels"><strong>*Year:</strong></div> </td> <td > <select style="width:95%;" name="yr" class="homesearchfields"> <option value="">Select a Year</option> </select> </td> </tr> </table> <script language="javascript"> if(document.location.protocol == "https:"){ setTimeout(function(){buildMenus20219068844083(); }, 5000); } else{ buildMenus20219068844083(); } </script> <div id="homesearchnow" style="margin:0 0 0 77px"><a href="#"><img src="/Templates/website/autonation_family/images//nonbranded_search_button.gif" alt="search now" border="0" onClick="JavaScript:submitSearch(document.makemodelform)"></a></div> <input type="hidden" name="sendinfo" value="Submit" /> <input type="hidden" name="searchtype" value="ymm" /> <input type="hidden" name="radius" value="200" /> </form> </div> </div> <div id="auxbox"> <h1>car buying tools</h1> <div id="auxboxarea"> <center style="padding:0 0 7px 0;"> <a href="/index.cfm?action=tradein&subaction=tradeinform"><img src="/Templates/website/autonation_family/images//buyingtools_pic.jpg" width="196" border="0"></a> </center> <div id="links"> <a href="index.cfm?action=dealerlink&Link=1591511">BMW Ultimate 7-6-2010</a><br> <a href="/index.cfm?action=tradein">Get Your KBB Value</a><br> <a href="https://securesite.adpwebmarketingan.com/index.cfm?action=finance&subaction=financeform&franchiseId=2060">Express Credit</a><br> <a href="/index.cfm?action=specials&subaction=specialscoupons&special=new">New Car Specials</a><br> <a href="/index.cfm?action=specials&subaction=specialscoupons&special=used">Used Car Specials</a><br> </div> </div> </div> <div id="auxbox"> <h1>parts & service</h1> <div id="auxboxarea"> <center style="padding:0 0 7px 0;"><img src="/Templates/website/autonation_family/images//partsservicecollision_pic.jpg" width="196"></center> <div id="links"> <a href="/index.cfm?action=service&subaction=serviceformexternal">Service Appointment</a><br> <a href="/index.cfm?action=specials&subaction=specialscoupons&special=service">Service Specials</a><br> <a href="/index.cfm?action=service&subaction=serviceabout&type=service">Why Service With Us</a><br> <a href="/index.cfm?action=specials&subaction=specialscoupons&special=parts">Parts Specials</a><br> </div> </div> </div> </div> <div id="footer"> <table bgcolor="white" cellpadding="5" cellspacing="0" width="990"> <tr> <td> <div id="superlongcontentbox"> <div class="aboutussuperlongheader" style="margin: 0;padding: 12px 0 0 0;font-size: 14px;text-transform: uppercase;color: white;"><b>About Us</b></div> </div> </td> </tr> <tr> <td style="padding:15px"> <h1 style="COLOR: #000000" align="center"><font color="#000000">Roseville BMW Dealer</font> </h1> <br /> <h2 style="COLOR: #000000" align="center"><font color="#000000">Roseville New & Used BMW Cars and SUVs</font> </h2> <br /> <h3 style="COLOR: #000000">BMW of Roseville California </h3> <p>Roseville BMW is a Roseville BMW Dealer, specializing in new BMW vehicle sales and service for the greater Sacramento California area. Roseville BMW has served buyers and owners in surrounding communities including Roseville, Yuba City, Grass Valley, Auburn, El Dorado, Citrus Heights.</p> <h3>Roseville BMW Dealership: Deals on BMW Cars and Sports Utility Vehicles</h3> <p>As a leader in BMW sales and service for the Sacramento California metropolitan area, Roseville BMW has access to one of the largest BMW vehicle inventories including both new and used cars and SUVs. At Roseville BMW, our dedicated BMW sales representatives will help you in researching your next automobile purchase.</p> <p>At Roseville BMW, it is our top priority to provide our customers and patrons with:</p> <ul><li>Competitive pricing on all BMW and preowned vehicles</li> <li>A friendly and knowledgeable staff familiar with the full line of BMW vehicles </li> <li>Convenient services and amenities </li> <li>The highest level of customer service</li> </ul> <h3 style="COLOR: #000000">Roseville&nbsp;BMW Vehicles</h3> <p>Roseville BMW has a large inventory of BMW vehicles, including the BMW 1 Series, 3 Series Convertible, 3 Series Coupe, 3 Series Sedan, 3 Series Wagon, 5 Series Sedan, 5 Series Wagon, 6 Series Convertible, 6 Series Coupe, 7 Series Sedan, M3 Convertible, M3 Coupe, M5 Sedan, M6, X3, X5, Z4 M Coupe or Z4 Roadster and other used cars, trucks and SUVs. </p> <h3 style="COLOR: #000000">BMW Service in Sacramento California</h3> <p>Roseville BMW provides BMW OEM factory service and warranty services for Roseville, Yuba City, Grass Valley, Auburn, El Dorado, Citrus Heights and surrounding communities in the Sacramento area.</p> <h3 style="COLOR: #000000">BMW Factory and OEM Service in Roseville California</h3> <p></p> <ul><li>BMW Tune Ups</li> <li>BMW Transmission Repair & Service</li> <li>BMW Brake System Services & Repair</li> <li>BMW Engine Repair and Maintenance</li> </ul> <p></p> <h3 style="COLOR: #000000">BMW OEM Parts & Accessories</h3> <p>Roseville BMW also sells BMW parts and BMW accessories for BMW cars and BMW SUVs to those in Roseville, Yuba City, Grass Valley, Auburn, El Dorado, Citrus Heights and surrounding communities of the Sacramento area.</p> <p></p> <ul><li>BMW Performance Parts and Accessories</li> <li>BMW Car Stereos and Audio Upgrades</li> <li>BMW Replacement and Performance Tires, Wheels and Brakes</li> <li>BMW Interior Accessories</li> </ul> <p></p> <h3 style="COLOR: #000000">Roseville BMW -- Location & Directions</h3> <p>From everyone here at Roseville BMW, thanks for visiting and we hope to see you soon!</p> <blockquote><p>Roseville BMW<br /> 110 Automall Drive<br /> Roseville, California 95661</p> </blockquote> <p>Find us on: <a href="http://maps.google.com/maps?f=q&hl=en&q=110 Automall Drive+Roseville California 95661" target="_blank">Google Maps</a> | <a href="http://maps.yahoo.com/dd?taddr=110 Automall Drive&tcsz=Roseville%2C+CA+95661&tcountry=us" target="_blank">Yahoo! Local</a> | <a href="http://www.mapquest.com/maps/110%20Automall%20Drive+Roseville+CA+95661" target="_blank">Mapquest</a> </p> </td> </tr> </table> <br> <div align="center"> <i> BMW of Roseville - A Sacramento BMW dealer serving the Sacramento, California area and part of the AutoNation auto dealership family.<br> AutoNation is the largest automotive retailer in the United States <br> <br> </i> </div> <div class="links"><a href="javascript:MM_openBrWindow('http://www.bmwofroseville.com/index.cfm?action=contact&subaction=privacy&window=true','','scrollbars=yes,resizable=yes','660','500')">Privacy Policy</a> <a href="http://corp.autonation.com/investors/">Investor Relations</a><a href="http://www.autonation.com">AutoNation.com</a><a href="/index.cfm?action=inventorysearch">Find Your Vehicle</a><a href="/index.cfm?action=research">Research Center</a><a href="/index.cfm?action=finance">Finance & Insurance</a><a href="/index.cfm?action=service">Service & Parts</a><a href="/index.cfm?action=specials">Specials</a><a href="/index.cfm?action=contact">Find A Dealer</a> <br /> <br /> <strong>AutoNation ©2010</strong>&nbsp;&nbsp;&nbsp; <a href="http://www.truste.org/ivalidate.php?url=www.autonation.com&sealid=101" target="_blank"><img src="/Templates/website/autonation_family/images//icon_trust.gif" width="88" height="23" border="0" alt="trust-e" align="absmiddle" /></a> &nbsp;&nbsp; <strong>Site by ADP</strong></div> </div> </div> </center> <script type="text/JavaScript" src="/Templates/website/autonation-branded/sitecatalyst/s_code.js"></script> <script language="JavaScript"> <!-- /* You may give each page an identifying name, server, and channel on the next lines. */ s.pageName="home"; s.server=""; s.channel=""; s.pageType=""; s.prop1=""; s.prop2=""; s.prop3=""; s.prop4=""; s.prop5=""; s.prop6=""; s.prop7=""; /* E-commerce Variables */ s.events=""; s.products=""; s.purchaseID=""; s.eVar1=""; s.eVar2=""; s.eVar3=""; s.eVar4=""; s.eVar5=""; /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ var s_code=s.t(); if(s_code) document.write(s_code) //--> </script> <!-- Google Code --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-9412889-17"); pageTracker._trackPageview(); var globalTracker = _gat._getTracker("UA-9412889-23"); globalTracker._setDomainName("none"); globalTracker._trackPageview(); } catch(err) {}</script> <!-- End Google Code --> <!-- BEGIN BAYNOTE INCLUDE --> <script type="text/javascript" src="/templates/javascript/baynote.js" defer="defer" ></script> <!-- END BAYNOTE INCLUDE --> </body> </html>