var swapImages;
var tagsReplace;
var tagsbyID;
var tagsbyClass;
var replacers = new Array();
var replacecount = 0;
var tagsUsed = new Array();
var docHold = "x";
var hasImgs = false;
var hasIds = false;
var hasClass = false;
var hasWild = false;
var leadFrameChanged = false;
var financeFrameChanged = false;
var cookieUrl = "/for-sale/spanishcookie.action";
var alreadyRan = false;

isnet = false;
isie = false;
var browserName=navigator.appName; 
if (browserName=="Netscape"){isnet=true;}
else 
{if (browserName=="Microsoft Internet Explorer"){isie=true;}else{isunsub=true;}}




String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}


function getCookie(cookiename)
{

    var cookiestring = ""+document.cookie;
	
    var index1 = cookiestring.indexOf(';');
    if (index1==-1 || cookiename=="")
        return ""; 


var cookieArray = cookiestring.split(';');
for(i=0;i<cookieArray.length;i++){

if(cookieArray[i].indexOf('=') > -1){

ca2 = cookieArray[i].split('=');

if(ca2[0].trim() == cookiename) {return ca2[1]}
}
}
return "";
}


/* AB cookie setter */
function writeLang_OLD(name, value, expires, remove)
{


	var now = new Date();
	if(remove){
	var expiration_date = new Date((new Date()).getTime() - 3600*1000);
	} else {
	var expiration_date = new Date((new Date()).getTime() + ((expires*24)*3600000));
	}

	var expiration_date = expiration_date.toGMTString();

	document.cookie = name + "=" + value + ";domain=www.cars.com; path=/;  expires=" + expiration_date;
	

}

/* AB cookie setter */
function writeLang(name, value, expires, remove)
{

var spanAJX = new Ajax();

	spanAJX.start("GET", cookieUrl+"?val="+value+"&expr="+expires);

}


/* AB cookie setter */
function writeLangReload(name, value, expires, remove, reload)
{

var spanAJX = new Ajax();
spanAJX.followup = "specialReload("+reload+")";
	spanAJX.start("GET", cookieUrl+"?val="+value+"&expr="+expires);

}


var ajx = new Ajax();
var isSpan = false;
var useDoc = document;

function initLangChange(rDoc){
if(!alreadyRan){
if(document.getElementById("blkDiv")){
document.getElementById("blkDiv").style.display = "block";
}
useDoc = rDoc;


if(getCookie("span") == "true" || langPageName == "SpanishLanding" || lang == "es"){

if(document == rDoc){
if(document.getElementById("langOptions") && langPageName != 'SpanishLanding'){
document.getElementById("langOptions").innerHTML = "<a href=\"javascript:writeLangReload('span', 'false', 1, false, 1);\">See Listings in English</a>&nbsp;&nbsp;&nbsp;";
}
writeLang('span', 'true', 30, false);
}


ajx.followup = "swapLang(useDoc);";

ajx.start("GET", "/ajax_xml/lang.xml");

} else {
if(document == rDoc && getCookie('span') == 'false'){
if(document.getElementById("langOptions") && langPageName != 'SpanishLanding'){
document.getElementById("langOptions").innerHTML = "<a href=\"javascript:writeLangReload('span', 'true', 30, false, 2);\">Ver los listados en Espa&ntilde;ol</a>&nbsp;&nbsp;&nbsp;";
}
}
}
alreadyRan = true;
}
}

/*

function specialReload(mode){

if(langPageName == "SpanishLanding"){
window.location.href = "/go/buyIndex.jsp";
} else {
var newUrl = document.location.href;
if(mode==1){newUrl = newUrl.replace("lang=es", "lang=");}
if(newUrl.indexOf('?')>0 && isnet){newUrl = newUrl + '&lr=' +langRandomizer;}

if(window.location.href == newUrl){alert("reloading");window.location.reload();} else {
window.location.href = newUrl;
}
}

}
*/


function specialReload(mode){

if(langPageName == "SpanishLanding"){
window.location.href = "/go/buyIndex.jsp";
} else {
var newUrl = document.location.href;
if(mode==1){newUrl = newUrl.replace("lang=es", "lang=");}
if(newUrl.indexOf('?')>0 && isnet){newUrl = newUrl.replace('?', '?lr=' +langRandomizer + '&');}

if(window.location.href == newUrl){window.location.reload();} else {

window.location.href = newUrl;
}
}
}



function changeLangAjax(){
langX = readCookie('lang');
if(langX.length > 0){
importXmlResponse('GET', 'xml/lang.xml', true);
}
}





function resizeIMG(im, target){
target.width = im.width;
target.height = im.height;
}
function getNode(xnode){
if(xnode.childNodes.length > 0){return xnode.firstChild.nodeValue;} else {return "";}
}


function returnTextNode(nd, nm){

if(nd.getElementsByTagName(nm)[0].childNodes.length > 0){

return nd.getElementsByTagName(nm)[0].firstChild.nodeValue;
} else {
return "";
}
}

function swapLang(rDoc){

swapImages = new Array();
tagsReplace = new Object();
tagsbyID = new Array();
tagsbyClass = new Array();



//window.status = "SP PAGE NAME: " + langPageName;
/*esp = ajx.pb[1].getElementsByTagName('image');
for(y=0;y<esp.length;y++){
hasImgs = true;
swapImages[swapImages.length] = new Object();
swapImages[swapImages.length-1].search = esp[y].getElementsByTagName('searchstring')[0].firstChild.nodeValue;
swapImages[swapImages.length-1].newsrc = esp[y].getElementsByTagName('replace')[0].firstChild.nodeValue;
swapImages[swapImages.length-1].width = esp[y].getElementsByTagName('width')[0].firstChild.nodeValue;
swapImages[swapImages.length-1].height = esp[y].getElementsByTagName('height')[0].firstChild.nodeValue;
}*/
esp = ajx.pb[1].getElementsByTagName('patternmatch');
var nm, tagName;
	for(y=0;y<esp.length;y++){
	if(esp[y].getElementsByTagName('page')[0].firstChild.nodeValue == langPageName || esp[y].getElementsByTagName('page')[0].firstChild.nodeValue == 'ALL'){
	//alert(esp[y].getElementsByTagName('page')[0].firstChild.nodeValue + ":" + langPageName + ":" + esp[y].getElementsByTagName('searchstring')[0].firstChild.nodeValue);
		if(esp[y].getElementsByTagName('attr')[0].firstChild.nodeValue == 'id'){
		//alert(esp[y].getElementsByTagName('attrval')[0].firstChild.nodeValue);
		hasIds = true;
		tagsbyID[tagsbyID.length] = new Object();
		tagsbyID[tagsbyID.length-1].id = returnTextNode(esp[y], "attrval");
		tagsbyID[tagsbyID.length-1].search = esp[y].getElementsByTagName('searchstring')[0].firstChild.nodeValue;
		tagsbyID[tagsbyID.length-1].replace = esp[y].getElementsByTagName('replace')[0].firstChild.nodeValue;
		tagsbyID[tagsbyID.length-1].overrideDoc = returnTextNode(esp[y], "overrideDoc");


		} else if(esp[y].getElementsByTagName('attr')[0].firstChild.nodeValue == 'className'){
		hasClass = true;
		tagsbyClass[tagsbyClass.length] = new Object();
		tagsbyClass[tagsbyClass.length-1].attrval = esp[y].getElementsByTagName('attrval')[0].firstChild.nodeValue;
		tagsbyClass[tagsbyClass.length-1].search = esp[y].getElementsByTagName('searchstring')[0].firstChild.nodeValue;
		tagsbyClass[tagsbyClass.length-1].replace = esp[y].getElementsByTagName('replace')[0].firstChild.nodeValue;
		tagsbyClass[tagsbyClass.length-1].overrideDoc = returnTextNode(esp[y], "overrideDoc");
		} else {
		hasWild = true;
		tagName = esp[y].getElementsByTagName('tag')[0].firstChild.nodeValue;
		tagsUsed[tagsUsed.length] = tagName;
		if(!tagsReplace[tagName]){tagsReplace[tagName] = new Array();}
		tagsReplace[tagName][tagsReplace[tagName].length] = new Object();
		tagsReplace[tagName][tagsReplace[tagName].length-1].attr = esp[y].getElementsByTagName('attr')[0].firstChild.nodeValue;
		tagsReplace[tagName][tagsReplace[tagName].length-1].attrval = esp[y].getElementsByTagName('attrval')[0].firstChild.nodeValue;
		tagsReplace[tagName][tagsReplace[tagName].length-1].search = esp[y].getElementsByTagName('searchstring')[0].firstChild.nodeValue;
		tagsReplace[tagName][tagsReplace[tagName].length-1].replace = esp[y].getElementsByTagName('replace')[0].firstChild.nodeValue;
		}
		}
	}

tagsbyClass = bubbleSortClass(tagsbyClass);
allReplace(rDoc);
if(langPageName == "detail" && !leadFrameChanged && document.getElementById("leadFrame")){clearAssumptions();langPageName="leadform";initLangChange(document.getElementById("leadFrame").contentWindow.document);leadFrameChanged = true;}
}

function clearAssumptions(){
hasImgs = false;
hasIds = false;
hasClass = false;
hasWild = false;
}

function allReplace(rDoc){
//if(hasImgs){doReplaceByImage(rDoc);}
if(hasIds){doReplaceById(rDoc);}
if(hasClass && langPageName != 'results' && langPageName != 'resultsMulti'){doReplaceByClass(rDoc);} //No ClassName Replaces on Results Page (Too Much HTML)
//if(hasWild){doReplaceByTag(rDoc);}
}

function doReplaceByImage(rdoc){
var docImages = rdoc.images;
for(i=0;i<docImages.length;i++){
for(j=0;j<swapImages.length;j++){
if(docImages[i].src.indexOf(swapImages[j].search) > 0 ){

document.images[i].parentNode.onmouseover = "";
document.images[i].parentNode.onmouseout = "";

var im = new Image();
docImages[i].src = swapImages[j].newsrc;
if(swapImages[j].width > 0){
docImages[i].width = swapImages[j].width;
docImages[i].height = swapImages[j].height;
}
//docImages[i].width = im.width;
//docImages[i].height = im.height;
//docImages[i].src = swapImages[j].newsrc;
//im.onLoad = resizeIMG(im, docImages[i]);

if(rdoc.images[i].parentElement && rdoc.images[i].parentElement.onmouseover != null){rdoc.images[i].parentElement.onmouseover == null;}

}
}
}
if(!hasIds && !hasClass){window.setTimeout('hideProgress()', 1);}
}

function doReplaceByTag(rdoc){
for(g=0;g<tagsUsed.length;g++){
var allMatch = rdoc2.getElementsByTagName(tagsUsed[g]);
	for(h=0;h<tagsReplace[tagsUsed[g]].length;h++){
		for(i=0;i<allMatch.length;i++){
			if(allMatch[i].getAttribute(tagsReplace[tagsUsed[g]][h].attr) == tagsReplace[tagsUsed[g]][h].attrval){
			swapVal(allMatch[i], tagsReplace[tagsUsed[g]][h].search, tagsReplace[tagsUsed[g]][h].replace);
			}
		}
	}
	window.setTimeout('hideProgress()', 1);
}

}
function doReplaceByAll(rdoc){
	for(i=0;i<rdoc.all.length;i++){
		if(tagsReplace[rdoc.all[i].tagName.toLowerCase]){
			for(g=0;g<tagsUsed.length;g++){
				for(h=0;h<tagsReplace[tagsUsed[g]].length;h++){
					if(rdoc.all[i][tagsUsed[g].attr] == tagsUsed[g].attrval){
					swapVal(rdoc.all[i], tagsReplace[tagsUsed[g]][h].search, tagsReplace[tagsUsed[g]][h].replace);
					}
				}
		}
	}
}

}
function doReplaceById(rdoc){
for(i=0;i<tagsbyID.length;i++){

if(rdoc.getElementById(tagsbyID[i].id)){
swapVal(rdoc.getElementById(tagsbyID[i].id), tagsbyID[i].search, tagsbyID[i].replace);
}
}
if(langPageName == 'results'){swapUpperLowerNavResults();}
if(!hasClass || langPageName == 'results'){window.setTimeout('hideProgress()', 1);}
}

function swapUpperLowerNavResults(){
if(document.getElementById("upperNav") && document.getElementById("lowerNav")){
document.getElementById("lowerNav").innerHTML = document.getElementById("upperNav").innerHTML;
}
}

function doReplaceByClass(rdoc){
var classHold = "";
var rx;
for(i=0;i<tagsbyClass.length;i++){
var rdoc2 = rdoc;
if(classHold != tagsbyClass[i].attrval){
//alert(classHold + "!=" + tagsbyClass[i].attrval);
classHold = tagsbyClass[i].attrval;
rx = getElementsByClassName(rdoc, "*", tagsbyClass[i].attrval, rdoc);
}
for(j=0;j<rx.length;j++){
swapVal(rx[j], tagsbyClass[i].search, tagsbyClass[i].replace);
}
}

window.setTimeout('hideProgress()', 1);


}


function hideProgress(){
if(document.getElementById("blkDiv")){
document.getElementById("blkDiv").style.display = "none";
}
}


function swapVal(hn, s, r){
if(s == "*ALL"){hn.innerHTML = r;} else {
try{
hn.innerHTML = hn.innerHTML.replace(s, r);
} catch(err) {}
}
}
function setLang(langX){
if(langX != 'eng'){
document.cookie = 'lang='+langX+'; expires=Thu, 2 Aug 2010 20:47:11 UTC; domain=cars.com; path=/';
docHold = document.innerHTML;
changeLangAjax();
} else {
document.cookie = 'lang=eng; expires=Thu, 2 Aug 1970 20:47:11 UTC; domain=cars.com; path=/';
window.location = window.location;
//alert(docHold);
//document.innerHTML = docHold;
}
}




function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++){
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return "";
}


function getElementsByClassName(oElm, strTagName, oClassNames){
//alert(oClassNames);
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : 
    oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
            oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
        oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements) 
}


function getElementsByClassNameX(rootobj, strTagName, classname){

var temparray=new Array()
var inc=0
var rootlength=rootobj.length
for (i=0; i<rootlength; i++){
if (rootobj[i].className==classname)
temparray[inc++]=rootobj[i]
}
return temparray;
}


function bubbleSortClass(arrayName) {

//alert(arrayName.length);
    for (var i=0; i<(arrayName.length-1); i++){
	//alert(arrayName[i].lname);
        for (var j=i+1; j<arrayName.length; j++){
		//alert(arrayName[j].lname + ":" + arrayName[i].lname);
            if (arrayName[j].attrval < arrayName[i].attrval) {
                var dummy = arrayName[i];
                arrayName[i] = arrayName[j];
                arrayName[j] = dummy;
            }
			}
			}
			return arrayName;
			
}

function saveVehicle(paId, ref) {
var wasInserted = addSavedVehicleCookie(paId);
if (wasInserted){
ref.innerHTML = "Agregar a Mi Archivo";
ref.parentNode.className = "adSaved"
if(parseCookie('comparePopUpDetails') != "true"){
openPopup(ref.href,'saveMessage','height=260,width=300,left=200,top=200,resizable,scrollbars')
}
}
}
