﻿var linkbase = 'http://www.autosales.com/';

jQuery(function() {jQuery("a[rel*=external]").each(function() {jQuery(this).attr("target", "_blank")});});

function CancelEvent() {
    try {
        var e = window.event;
        if (!e) e = window.Event;
        if (e) {
            e.returnValue = false;
            e.cancelBubble = true;
            e.stopPropagation();
        }
    } catch (c) {
        
    }
    return false;
}
function setCookie(name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = name + "=" + escape(value) +
    ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}
function SetSearchValues(zipId, mileageHighId, mileageLowId, priceHighId, priceLowId) {
    var txtZip = document.getElementById(zipId).value;
    var txtMileageHigh = document.getElementById(mileageHighId).value;
    var txtMileageLow = document.getElementById(mileageLowId).value;
    var txtPriceHigh = document.getElementById(priceHighId).value;
    var txtPriceLow = document.getElementById(priceLowId).value;
    setCookie('zip', txtZip, 360);
    setCookie('mileageHigh', txtMileageHigh, 360);
    setCookie('mileageLow', txtMileageLow, 360);
    setCookie('priceHigh', txtPriceHigh, 360);
    setCookie('priceLow', txtPriceLow, 360);
}
function SetFirst(dropdownid) {
    var dropdown = document.getElementById(dropdownid);
    dropdown.selectedIndex = 1;
} 

function SetText(item, text, basetext) {
    if (item.value == '' || item.value == basetext) {
        item.value = text;
        item.style.color = '#c8c8c8';
    }   
    if(text=='')
        item.style.color = 'black';
}
function SetTextDark(item, text, basetext) {
    if (item.value == '' || item.value == basetext) {
        item.value = text;
    }
}
function TogleThree(hidetabid, hidetabidtwo, showtabid, source, clicked) {
    var sourceelement = document.getElementById(source);
    var togletabs = sourceelement.getElementsByTagName('li')
    for (var i = 0; i < togletabs.length; i++) {
        if (togletabs[i].id == clicked)
            document.getElementById(clicked).style.background = 'url(../images/internal_content_subhead.gif) no-repeat';
        else
            document.getElementById(togletabs[i].id).style.background = 'url(../images/internal_content_subhead.png) no-repeat';
    }
    document.getElementById(hidetabid).style.display = 'none';
    document.getElementById(hidetabidtwo).style.display = 'none';
    document.getElementById(showtabid).style.display = 'block';
}
function TogleFour(hidetabid, hidetabidtwo, hidetabidthree, showtabid, source, clicked) {
    var sourceelement = document.getElementById(source);
    var togletabs = sourceelement.getElementsByTagName('li')
    for (var i = 0; i < togletabs.length; i++) {
        if (togletabs[i].id == clicked)
            document.getElementById(clicked).style.background = 'url(../images/internal_content_subhead.gif) no-repeat';
        else
            document.getElementById(togletabs[i].id).style.background = 'url(../images/internal_content_subhead.png) no-repeat';
    }
    document.getElementById(hidetabid).style.display = 'none';
    document.getElementById(hidetabidtwo).style.display = 'none';
    document.getElementById(hidetabidthree).style.display = 'none';
    document.getElementById(showtabid).style.display = 'block';
}
function TogleSix(hidetabid, hidetabidtwo,hidetabidthree,hidetabidfour,hidetabidfive, showtabid, source, clicked) {
    var sourceelement = document.getElementById(source);
    var togletabs = sourceelement.getElementsByTagName('li')
    for (var i = 0; i < togletabs.length; i++) {
        if (togletabs[i].id == clicked)
            document.getElementById(clicked).style.color = '#000';
        else
            document.getElementById(togletabs[i].id).style.color = 'rgb(200,200,200)';
    }
    document.getElementById(hidetabid).style.display = 'none';
    document.getElementById(hidetabidtwo).style.display = 'none';
    document.getElementById(hidetabidthree).style.display = 'none';
    document.getElementById(hidetabidfour).style.display = 'none';
    document.getElementById(hidetabidfive).style.display = 'none';
    document.getElementById(showtabid).style.display = 'block';
}
function TogleFive(hidetabid, hidetabidtwo, hidetabidthree, hidetabidfour, showtabid, source, clicked) {
    var sourceelement = document.getElementById(source);
    var togletabs = sourceelement.getElementsByTagName('li')
    for (var i = 0; i < togletabs.length; i++) {
        if (togletabs[i].id == clicked)
            document.getElementById(clicked).style.color = '#000';
        else
            document.getElementById(togletabs[i].id).style.color = 'rgb(200,200,200)';
    }
    document.getElementById(hidetabid).style.display = 'none';
    document.getElementById(hidetabidtwo).style.display = 'none';
    document.getElementById(hidetabidthree).style.display = 'none';
    document.getElementById(hidetabidfour).style.display = 'none';
    document.getElementById(showtabid).style.display = 'block';
}
function SearchNew(makeId, modelId) {
    var ddlMake = document.getElementById(makeId);
    var ddlModel = document.getElementById(modelId);
    var selectedMake = ddlMake.options[ddlMake.selectedIndex].text;
    var selectedModel = ddlModel.options[ddlModel.selectedIndex].text;
    var selectedModelId = ddlModel.options[ddlModel.selectedIndex].value;
    window.location = linkbase + "newcars/" + selectedMake.toLowerCase() + "/" + selectedModel.toLowerCase() + "/" + selectedModelId.toLowerCase();
}
function TabSearch(makeId,zipId,bodytypeId,priceId) {
    
    var highPrice = parseInt(document.getElementById(priceId).value.slice(1)) + 1000;
    var lowPrice = parseInt(document.getElementById(priceId).value.slice(1)) - 2000;

    window.location = linkbase + "usedcars/car-classifieds/make-" + document.getElementById(makeId).value + "-zip-" + document.getElementById(zipId).value + "-distance-25-bodytype-" +
                      document.getElementById(bodytypeId).value+"-highPrice-"+highPrice+"-lowPrice-"+lowPrice+"-condition-both";
}

function SearchAdvanced(makeId, modelId, zipId,distanceId, beginYearId, endYearId,mileageId,colorExtId,priceAskHighId,priceAskLowId,bodyTypeId,transId,engineId, newUsed) {
    var ddlMake = document.getElementById(makeId);
    var ddlModel = document.getElementById(modelId);
    var ddlBeginYear = document.getElementById(beginYearId);
    var ddlEndYear = document.getElementById(endYearId);
    var ddlMileage = document.getElementById(mileageId);
    var ddlColorExt = document.getElementById(colorExtId);
    var ddlPriceAskHigh = document.getElementById(priceAskHighId);
    var ddlPriceAskLow = document.getElementById(priceAskLowId);
    var ddlBodyType = document.getElementById(bodyTypeId);
    var ddlTrans = document.getElementById(transId);
    var ddlEngine = document.getElementById(engineId);
    var newUsed = document.getElementById(newUsed);
    var txtZip = document.getElementById(zipId).value;
    var ddlDistance = document.getElementById(distanceId);
    
    var selectedMake = ddlMake.options[ddlMake.selectedIndex].text;
    var selectedMakeId = ddlMake.options[ddlMake.selectedIndex].value;
    var selectedModel = ddlModel.options[ddlModel.selectedIndex].text;
    var selectedModelId = ddlModel.options[ddlModel.selectedIndex].value;
    var selectedBeginYear = ddlBeginYear.options[ddlBeginYear.selectedIndex].value;
    var selectedEndYear = ddlEndYear.options[ddlEndYear.selectedIndex].value;
    var selectedMileage = ddlMileage.options[ddlMileage.selectedIndex].value;
    var selectedColorExt = ddlColorExt.options[ddlColorExt.selectedIndex].value;
    var selectedHighPrice = ddlPriceAskHigh.options[ddlPriceAskHigh.selectedIndex].value;
    var selectedLowPrice = ddlPriceAskLow.options[ddlPriceAskLow.selectedIndex].value;
    var selectedBodyType = ddlBodyType.options[ddlBodyType.selectedIndex].value;
    var selectedTrans = ddlTrans.options[ddlTrans.selectedIndex].value;
    var selectedEngine = ddlEngine.options[ddlEngine.selectedIndex].value;
    var selectedDistance = ddlDistance.options[ddlDistance.selectedIndex].value;
   
    var condition;
    //Find what value was chosen in the radio buttons
    for (var i = 0; i < newUsed.childNodes.length; i++) {
        if (newUsed.childNodes[i].nodeName == "INPUT") {
            if (newUsed.childNodes[i].checked == true)
                condition = newUsed.childNodes[i].value;
        }
    }
    window.location = linkbase + "usedcars/car-classifieds/make-" + selectedMake.toLowerCase() + "-model-" + selectedModel.toLowerCase() + "-zip-"
    + txtZip + "-distance-" + selectedDistance + "-beginYear-" + selectedBeginYear + "-endYear-" + selectedEndYear + "-mileage-" + selectedMileage + "-colorExt-" + selectedColorExt.toLowerCase() + "-highPrice-" + selectedHighPrice +
    "-lowPrice-" + selectedLowPrice + "-bodyType-" + selectedBodyType.toLowerCase() + "-transmission-" + selectedTrans.toLowerCase() + "-engine-" + selectedEngine.toLowerCase() + "-condition-" + condition;    
}

function NewCarDetails(ddlMakeId, ddlModelId) {
    var ddlMake = document.getElementById(ddlMakeId);
    var ddlModel = document.getElementById(ddlModelId);
    var makeSelectedText = ddlMake.options[ddlMake.selectedIndex].text;
    var modelSelectedText = ddlModel.options[ddlModel.selectedIndex].text;
    var modelSelectedValue = ddlModel.options[ddlModel.selectedIndex].value;
    window.location = linkbase + "newcars/new_car_contact.aspx?make=" + makeSelectedText + "&model="+modelSelectedText+"&id=" + modelSelectedValue;
}

/*------------------------------------------------------------------------------------------------------------------------------------------*/
function show_adv(adv_content) {
    if (adv_content == 'styles') {
        var showEl = document.getElementById('adv_search_style');
        var hideEl_1 = document.getElementById('adv_search_mans');
        var hideEl_2 = document.getElementById('adv_search_price');
        var active_tab = document.getElementById('adv_style_tab');
        var inactive_tab_1 = document.getElementById('adv_mans_tab');
        var inactive_tab_2 = document.getElementById('adv_price_tab');
    }
    else if (adv_content == 'mans') {
        var showEl = document.getElementById('adv_search_mans');
        var hideEl_1 = document.getElementById('adv_search_style');
        var hideEl_2 = document.getElementById('adv_search_price');
        var active_tab = document.getElementById('adv_mans_tab');
        var inactive_tab_1 = document.getElementById('adv_style_tab');
        var inactive_tab_2 = document.getElementById('adv_price_tab');
    }
    else if (adv_content == 'price') {
        var showEl = document.getElementById('adv_search_price');
        var hideEl_1 = document.getElementById('adv_search_mans');
        var hideEl_2 = document.getElementById('adv_search_style');
        var active_tab = document.getElementById('adv_price_tab');
        var inactive_tab_1 = document.getElementById('adv_mans_tab');
        var inactive_tab_2 = document.getElementById('adv_style_tab');
    }
    else return false;

    hideEl_1.style.display = 'none';
    hideEl_2.style.display = 'none';
    showEl.style.display = 'block';
    inactive_tab_1.setAttribute("class", "inactive");
    inactive_tab_2.setAttribute("class", "inactive");
    active_tab.setAttribute("class", "active");
    inactive_tab_1.setAttribute("className", "inactive");
    inactive_tab_2.setAttribute("className", "inactive");
    active_tab.setAttribute("className", "active");

    return true;
}

function choose_style(style_name) {
    var style_holder = document.getElementById('ctl00_cphMaster_chosen_style');
    style_holder.value = style_name;
    style_holder.style.color = 'black';

    return true;
}
function choose_man(man_name) {
    var man_holder = document.getElementById('ctl00_cphMaster_chosen_man');
    man_holder.value = man_name;
    man_holder.style.color = 'black';

    return true;
}
function calculate_price() {
    var price_apr = parseInt(document.getElementById('price_apr').value);
    var months = parseInt(document.getElementById('price_months').value);
    var price_down = parseInt(document.getElementById('price_down').value);
    var monthly_payment = parseInt(document.getElementById('price_monthly').value);
    var price_tradein = parseInt(document.getElementById('price_tradein').value);
    var i = (price_apr / 12) * .01;
    var P = monthly_payment;
    var N = months;
    var purchasing_power = (P / i) * (1 - Math.pow(1 + i, -N)) + price_down + price_tradein;
	if (isNaN(purchasing_power)) {
		purchasing_power = 0;
	}

    var pp_el = document.getElementById('calculated_price');
	pp_el.value = purchasing_power.toFixed(2);

    choose_price();
    return true;
}
function choose_price() {
    var price_el = document.getElementById('calculated_price');
    price = "$" + price_el.value;
    var price_holder = document.getElementById('ctl00_cphMaster_chosen_price');
    price_holder.value = price;
    price_holder.style.color = 'black';

    return true;
}
function show_mans_a() {
    var show_el = document.getElementById('mans_a');
    var hide_el = document.getElementById('mans_b');
    show_el.style.display = 'block';
    hide_el.style.display = 'none';

    return true;
}
function show_mans_b() {
    var show_el = document.getElementById('mans_b');
    var hide_el = document.getElementById('mans_a');
    show_el.style.display = 'block';
    hide_el.style.display = 'none';

    return true;
}
function adv_search_reset() {
    document.getElementById('ctl00_cphMaster_chosen_style').style.color = 'gray';
	document.getElementById('ctl00_cphMaster_chosen_style').value = 'Style';
    document.getElementById('ctl00_cphMaster_chosen_man').style.color = 'gray';
	document.getElementById('ctl00_cphMaster_chosen_man').value = 'Make';
    document.getElementById('ctl00_cphMaster_chosen_price').style.color = 'gray';
	document.getElementById('ctl00_cphMaster_chosen_price').value = 'Price';
    //document.getElementById('adv_search_form').reset()
}
function show_adv_filter() {
    var myEl = document.getElementById('adv_filter_bar');
    if (myEl.style.display != 'block') {
        myEl.style.display = 'block';
    }
    else
        myEl.style.display = 'none';

    return true;
}
function choose_type(car_type)
{
	console.log("Car Type is: " + car_type);
	$("#make_map_cars span").each(function() {
		var car_cat = $(this).attr("title");
		if(car_type == "all" || car_cat == car_type) {
			$(this).css("color", "#333");
		}
		else {
			$(this).css("color", "#eee");
		}
	});
}

function calculate_loan() {
	var apr = parseFloat(document.getElementById("price_apr").value);
	var i = (apr / 12) * .01;
	var months = parseFloat(document.getElementById("price_months").value);
	var power = parseFloat(document.getElementById("loan_amt").value);
	
	if(this.value != "0" && this.value != ""){
	var calculated_amt = (power) * i / (1 - (Math.pow(1/(1 + i), months)));
	document.getElementById("chosen_price").value = (calculated_amt * 1).toFixed(2);
	}
	
	return;
}

//http://www.web-source.net/web_development/currency_formatting.htm   - CurrencyFormatted and CommaFormatted methods
function CurrencyFormatted(amount) {
    var i = parseFloat(amount);
    if (isNaN(i)) { i = 0.00; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if (s.indexOf('.') < 0) { s += '.00'; }
    if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
}
function CommaFormatted(amount) {
    var delimiter = ","; // replace comma if desired
    var a = amount.split('.', 2)
    var d = a[1];
    var i = parseInt(a[0]);
    if (isNaN(i)) { return ''; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    var n = new String(i);
    var a = [];
    while (n.length > 3) {
        var nn = n.substr(n.length - 3);
        a.unshift(nn);
        n = n.substr(0, n.length - 3);
    }
    if (n.length > 0) { a.unshift(n); }
    n = a.join(delimiter);
    if (d.length < 1) { amount = n; }
    else { amount = n + '.' + d; }
    amount = minus + amount;
    return amount;
}


/***********Google Maps***************/

var map;
var mapGenerated = false;
var dealerArr = new Array();
var carMarkers = new Array();
var infoContent = new Array();
var infoWindow;
var latlngObj = {};
var carObj = {};

function show_list() {
	document.getElementById("results").style.display = "block";
	document.getElementById("result_map").style.display = "none";
}
  
function initialize() {
	document.getElementById("results").style.display = "none";
	document.getElementById("result_map").style.display = "block";
	
	liList = document.getElementById("results").getElementsByTagName("li");
	
	if (!mapGenerated) {
		for(var i = 0; i < liList.length; i++) {
			var link = liList[i].getElementsByTagName("a")[1].href;
			var details = liList[i].getElementsByTagName("a")[1].getElementsByTagName("span");
			carObj[i] = {
				"link" : link,
				"title" : getTextContent(details[2]).toLowerCase(),
				"price" : getTextContent(details[4]),
				"mileage" : getTextContent(details[6]),
				"dealer" : getTextContent(details[8].getElementsByTagName("b")[0]),
				"dealerID" : document.getElementById("hfdealer_" + i).value,
				"pic" : liList[i].getElementsByTagName("a")[1].getElementsByTagName("img")[0].src
			}
			dealerArr[i] = document.getElementById("hfdealer_" + i).value;
		}
		
		ajaxDealerCall();
	}
}
  
function initializeMap() {
	var bound = new google.maps.LatLngBounds();
	for(var i = 0; i < dealerArr.length; i++) {
		//bound.extend(new google.maps.LatLng(latlngObj.ltlg[i].Latitude, latlngObj.ltlg[i].Longitude));
		bound.extend(new google.maps.LatLng(latlngObj[i].Latitude, latlngObj[i].Longitude));
	}

	var mapCenter = bound.getCenter();

	var myOptions = {
	  center: mapCenter,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	};

	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	map.fitBounds(bound);

	for(var i = 0; i < dealerArr.length; i++) {
		//markDealer(dealerArr[i], latlngObj.ltlg[i].Latitude, latlngObj.ltlg[i].Longitude, i);
		markDealer(dealerArr[i], latlngObj[i].Latitude, latlngObj[i].Longitude, i);
	}
	
	infoWindow = new google.maps.InfoWindow({
		content : ""
	});
	
	mapGenerated = true;
}

function markDealer(dealerID, lat, lng, num) {
	var latlng = new google.maps.LatLng(lat, lng);
	var marker = new google.maps.Marker({
		map: map, 
		icon: 'http://google-maps-icons.googlecode.com/files/car.png',
		title: carObj[num].title + " - " + carObj[num].dealer,
		position: latlng
	});
	
	contentString = "<div class='map_overlay'>" + 
					"<h3>" + carObj[num].title + " <a href='" + carObj[num].link + "'>&raquo; view details</a></h3>" + 
				  "<img src='" + carObj[num].pic + "' width='75' alt='' />" + 
				  "<p><b>Price</b> | " + carObj[num].price + "&nbsp;<a href='https://www.autosales.com/loanquote/start_loan.aspx'>&raquo; Free Auto Loan Quote</a></p>" + 
				  "<p><b>Mileage</b> | " + carObj[num].mileage + "</p>" + 
				  "<p><b>Dealer</b> | " + carObj[num].dealer + "</p></div>";
	
	infoContent[num] = contentString;
	carMarkers[num] = marker;

	google.maps.event.addListener(marker, 'click', function() {
		showInfo(num);
	});

	document.getElementById("addressSidebar").innerHTML += "<a href='#' onclick='return showInfo(" + num + ");'id='car" + num + "'>" +
	carObj[num].title + "</a><p>" + carObj[num].price + " &raquo<a href='http://www.autosales.com/auto_appraisal.aspx'>apprise trade</a></p>";
}

function showInfo(num) {
	//infoWindow.content = infoContent[num];
	//infoWindow.content += "<a href='#' style='display: none;' onclick='return createInfoTabs(" + num + ");'>create tabs</a>"
	//infoWindow.open(map, carMarkers[num]);
	createInfoTabs(num);
	return false;
}

function createInfoTabs(num) {
	var dealerToMatch = dealerArr[num];
	var duplicates = new Array();
	var curSpot = 0;
	for (var i = 0; i < dealerArr.length; i++) {
		if(dealerArr[i] == dealerToMatch) {
			duplicates[curSpot] = i;
			curSpot++;
		}
	}
	infoWindow.close();
	infoWindow.content = "";
	if (curSpot > 1) {
		infoWindow.content = "<div class='info_tabs'>More Here: ";
		for(var i = 0; i < duplicates.length; i++) {
			infoWindow.content += "<a href='#' onmouseover='selectTab(" + duplicates[i] + ");'><img src='" + carObj[duplicates[i]].pic + "' height='20' alt='' /></a> ";
		}
		infoWindow.content += "</div>";
	}
	infoWindow.content += "<div id='infoTabCurrent'></div>";
	infoWindow.open(map, carMarkers[num]);
	selectTab(num);
	return false;
}
function selectTab(num) {
	//infoWindow.close();
		document.getElementById("infoTabCurrent").innerHTML = infoContent[num];
	//infoWindow.open(map, carMarkers[num]);
}

function ajaxDealerCall()
{
	if (window.XMLHttpRequest){
		xmlhttp=new XMLHttpRequest();
	}
	else {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.onreadystatechange=function() {
	  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			latlngObj = eval(eval(xmlhttp.responseText));
			document.getElementById("loadingDiv").style.display = "none";
			document.getElementById("mapDiv").style.display = "block";
			initializeMap();
		}
	  }
	var getString = buildGetString();
	xmlhttp.open("GET", linkbase+"GeoCoding/JsonLatLong.svc/GetLatLong/" + getString, true);
	xmlhttp.send();
}
function buildGetString() {
	var retString = "";
	for(var i = 0; i < dealerArr.length; i++) {
		retString += dealerArr[i];
		if (i < dealerArr.length - 1) {
			retString += ",";
		}
	}
	return retString;
}
function getTextContent(el) {
	if(el.innerText)
		return el.innerText;
	else
		return el.textContent;
}
