
if (!document.head) {
    document.head = document.getElementsByTagName("head")[0];
}
var cmsContext = document.location.href.indexOf("/author/") != -1 ? "/author": "";
var currentURI = window.location.href;
var isInfinitiSite = (location.hostname.indexOf('www.infiniti.com') > -1 || location.hostname.indexOf('secure.infiniti.com') > -1 || location.hostname.indexOf('stage.infiniti.com') > -1) ? true: false;
var isStageEnv = (currentURI.search('www.stage') > -1) ? true: false;
var securePath = (!isStageEnv) ? "https://secure.infiniti.com": "https://www.stage.infiniti.com";
var nonSecurePath = (!isStageEnv) ? "http://www.infiniti.com": "http://www.stage.infiniti.com";
var secureURIs = [["http://www.infiniti.com/iapps/ownership", "https://secure.infiniti.com/iapps/ownership"], ["https://www.infiniti.com/iapps/ownership", "https://secure.infiniti.com/iapps/ownership"], ["http://secure.infiniti.com/iapps/ownership", "https://secure.infiniti.com/iapps/ownership"], ["http://www.stage.infiniti.com/iapps/ownership", "https://www.stage.infiniti.com/iapps/ownership"], ["http://www.infiniti.com/iapps/preapprovedinput", "https://secure.infiniti.com/iapps/preapprovedinput"], ["https://www.infiniti.com/iapps/preapprovedinput", "https://secure.infiniti.com/iapps/preapprovedinput"], ["http://secure.infiniti.com/iapps/preapprovedinput", "https://secure.infiniti.com/iapps/preapprovedinput"], ["http://www.stage.infiniti.com/iapps/preapprovedinput", "https://www.stage.infiniti.com/iapps/preapprovedinput"]];
var secureURIfound = false;
if (isInfinitiSite && currentURI.search('http://') > -1) {
    for (var i in secureURIs) {
        if (currentURI.search(secureURIs[i][0]) > -1) {
            secureURIfound = true;
            location.replace(currentURI.replace(secureURIs[i][0], secureURIs[i][1]));
        }
    }
    if (!secureURIfound && currentURI.search('http://secure./') > -1) {
        location.replace(currentURI.replace("http://secure./", "http://www./"));
    }
}
 else if (isInfinitiSite && currentURI.search('https:///') > -1) {
    for (var i in secureURIs) {
        if (currentURI.search(secureURIs[i][1]) > -1) {
            secureURIfound = true;
        }
    }
    if (!secureURIfound && currentURI.search('https://www./') > -1) {
        location.replace(currentURI.replace("https://www./", "http://www./"));
    }
    else if (!secureURIfound) {
        location.replace(currentURI.replace(securePath, nonSecurePath));
    }
}
var xmlhttp = false;
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
 try {
    xmlhttp = new XMLHttpRequest();
} catch(e) {
    xmlhttp = false;
}
if (!xmlhttp && window.createRequest)
 try {
    xmlhttp = window.createRequest();
} catch(e) {
    xmlhttp = false;
}
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') window.onload = func;
    else {
        window.onload = function() {
            oldonload();
            func();
        };
    }
}
function $(ee) {
    return document.getElementById(ee);
}
function getHtml(elmId) {
    return $(elmId).innerHTML;
}
function setHtml(elmId, strContent) {
    $(elmId).innerHTML = strContent;
}
function SimpleSwap(el, which) {
    el.src = el.getAttribute(which || "origsrc");
}
function SimpleSwapSetup() {
    var x = document.getElementsByTagName("img");
    for (var i = 0; i < x.length; i++) {
        var oversrc = x[i].getAttribute("oversrc");
        if (!oversrc) continue;
        x[i].oversrc_img = new Image();
        x[i].oversrc_img.src = oversrc;
        x[i].onmouseover = new Function("SimpleSwap(this,'oversrc');");
        x[i].onmouseout = new Function("SimpleSwap(this);");
        x[i].setAttribute("origsrc", x[i].src);
    }
}
function SimpleSwapSetupFormImages() {
    var x = document.getElementsByTagName("input");
    for (var i = 0; i < x.length; i++) {
        if (x[i].type == "image") {
            var oversrc = x[i].getAttribute("oversrc");
            if (!oversrc) continue;
            x[i].oversrc_img = new Image();
            x[i].oversrc_img.src = oversrc;
            x[i].onmouseover = new Function("SimpleSwap(this,'oversrc');");
            x[i].onmouseout = new Function("SimpleSwap(this);");
            x[i].setAttribute("origsrc", x[i].src);
        }
    }
}
addLoadEvent(SimpleSwapSetup);
addLoadEvent(SimpleSwapSetupFormImages);
function setOverSrc(imgObj) {
    var _imgSrcPrefix = imgObj.src.substring(0, imgObj.src.lastIndexOf('.'));
    var _imgSrcSuffix = imgObj.src.substring(imgObj.src.lastIndexOf('.'));
    imgObj.setAttribute("oversrc", _imgSrcPrefix + '_on' + _imgSrcSuffix);
}
var menuTimer;
var menuTimeout;
var submenuTimeout;
var currentMenu;
var currentsubMenu;
function menuOn(menuName) {
    var theMenu;
    if (menuTimeout) {
        clearTimeout(menuTimeout);
    }
    if (currentMenu) {
        theMenu = $(currentMenu);
        theMenu.style.visibility = "hidden";
    }
    currentMenu = menuName;
    theMenu = $(currentMenu);
    theMenu.style.visibility = "visible";
}
function submenuOn(submenuName) {
    var thesubMenu;
    if (submenuTimeout) {
        clearTimeout(submenuTimeout);
    }
    if (currentsubMenu) {
        thesubMenu = $(currentsubMenu);
        thesubMenu.style.visibility = "hidden";
    }
    currentsubMenu = submenuName;
    thesubMenu = $(currentsubMenu);
    theMenu = $(currentMenu);
    thesubMenu.style.visibility = "visible";
    theMenu.style.visibility = "visible";
}
function menuOff(menuName) {
    if (menuTimeout) {
        clearTimeout(menuTimeout);
    }
    menuTimeout = setTimeout('$("' + menuName + '").style.visibility = "hidden"', 500);
}
function submenuOff(submenuName) {
    if (submenuTimeout) {
        clearTimeout(submenuTimeout);
    }
    submenuTimeout = setTimeout('$("' + submenuName + '").style.visibility = "hidden"', 330);
}
var langMgr = {
    enToEs: [],
    esToEn: [],
    rootEn: '/',
    rootEs: '/espanol/',
    doingReq: false,
    pairURLs: function(enURL, esURL) {
        langMgr.enToEs[enURL] = esURL;
        langMgr.esToEn[esURL] = enURL;
    },
    jumpToLanguage: function(lang) {
        if (langMgr.doingReq) return;
        langMgr.doingReq = true;
        var pathName = location.pathname;
        var hostName = location.href.substring(0, location.href.indexOf(pathName));
        var queryString = (location.search.length > 0) ? location.href.substring(location.href.indexOf(location.search)) : '';
        if (lang == 'es') {
            var destURL = langMgr.enToEs[pathName];
            if (destURL) location.href = hostName + destURL + queryString;
            else
            if (xmlhttp) langMgr.requestPage(hostName + '/espanol' + pathName, hostName + langMgr.rootEs, queryString);
            else location.href = hostName + langMgr.rootEs;
        }
        else if (lang == 'en') {
            var destURL = langMgr.esToEn[pathName];
            if (destURL) location.href = hostName + destURL + queryString;
            else
            if (xmlhttp) {
                var esString = '/espanol';
                var destUrlPrefix = pathName.substring(0, pathName.indexOf(esString));
                var destUrlSuffix = pathName.substring(pathName.indexOf(esString) + esString.length, pathName.length);
                langMgr.requestPage(hostName + destUrlPrefix + destUrlSuffix, hostName + langMgr.rootEn, queryString);
            }
            else location.href = hostName + langMgr.rootEs;
        }
    },
    requestPage: function(url, rootUrl, queryString) {
        xmlhttp.open("HEAD.html", url, true);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4)
            if (xmlhttp.status == 200) location.href = url + queryString;
            else location.href = rootUrl;
        };
        xmlhttp.send(null);
    }
};
function getModelName() {
    var arrModelNames = ['g_coupe', 'g_sedan', 'm', 'q', 'fx', 'qx'];
    var urlStr = location.href;
    for (i = 0; i < arrModelNames.length; i++) {
        if (urlStr.indexOf('/' + arrModelNames[i] + '/') != -1)
        return arrModelNames[i];
    }
}
function getModelNavStr() {
    var urlStr = location.href;
    var modelNavArr = [{
        submenuNum: 1,
        featureNum: 1,
        featureName: 'performance'
    },
    {
        submenuNum: 1,
        featureNum: 2,
        featureName: 'interior'
    },
    {
        submenuNum: 1,
        featureNum: 3,
        featureName: 'technology'
    },
    {
        submenuNum: 1,
        featureNum: 4,
        featureName: 'safety'
    },
    {
        submenuNum: 2,
        featureNum: 1,
        featureName: 'exterior_photos'
    },
    {
        submenuNum: 2,
        featureNum: 2,
        featureName: 'interior_photos'
    },
    {
        submenuNum: 2,
        featureNum: 3,
        featureName: 'colors'
    },
    {
        submenuNum: 3,
        featureNum: 1,
        featureName: 'packages'
    },
    {
        submenuNum: 3,
        featureNum: 2,
        featureName: 'individual_options'
    },
    {
        submenuNum: 3,
        featureNum: 3,
        featureName: 'dealer_accessories'
    },
    {
        submenuNum: 4,
        featureNum: 1,
        featureName: 'standard_features'
    },
    {
        submenuNum: 4,
        featureNum: 2,
        featureName: 'specifications'
    },
    {
        submenuNum: 5,
        featureNum: 1,
        featureName: 'review'
    }];
    var modelNavArr_q = [{
        submenuNum: 1,
        featureNum: 1,
        featureName: 'performance'
    },
    {
        submenuNum: 1,
        featureNum: 2,
        featureName: 'interior'
    },
    {
        submenuNum: 1,
        featureNum: 3,
        featureName: 'technology'
    },
    {
        submenuNum: 1,
        featureNum: 4,
        featureName: 'safety'
    },
    {
        submenuNum: 2,
        featureNum: 1,
        featureName: 'exterior_photos'
    },
    {
        submenuNum: 2,
        featureNum: 2,
        featureName: 'interior_photos'
    },
    {
        submenuNum: 2,
        featureNum: 3,
        featureName: 'colors'
    },
    {
        submenuNum: 3,
        featureNum: 1,
        featureName: 'individual_options'
    },
    {
        submenuNum: 3,
        featureNum: 2,
        featureName: 'dealer_accessories'
    },
    {
        submenuNum: 4,
        featureNum: 1,
        featureName: 'standard_features'
    },
    {
        submenuNum: 4,
        featureNum: 2,
        featureName: 'specifications'
    },
    {
        submenuNum: 5,
        featureNum: 1,
        featureName: 'review'
    }];
    if (getModelName() == 'q')
    var mArr = modelNavArr_q;
    else
    var mArr = modelNavArr;
    for (i = 0; i < mArr.length; i++) {
        if (urlStr.indexOf(mArr[i].featureName) != -1)
        return 'submenu=' + mArr[i].submenuNum + '&feature=' + mArr[i].featureNum;
    }
    return 'submenu=0&feature=0';
}
function trim(str) {
    return str.replace(' ', '').replace(/(\s)/g, '');
}
function getQueryString() {
    var objQSArgs = new Object();
    var strQuery = document.location.search.substring(1);
    var arrPairs = strQuery.split("&");
    for (var i = 0; i < arrPairs.length; i++) {
        var pos = arrPairs[i].indexOf('=');
        if (pos == -1) {
            continue;
        }
        var strName = arrPairs[i].substring(0, pos);
        var strValue = arrPairs[i].substring(pos + 1);
        objQSArgs[strName] = unescape(strValue);
    }
    return objQSArgs;
}
function showPricingDetails() {
    var obj = $('pricingDetails');
    obj.style.visibility = 'hidden';
    obj.style.display = 'inline';
    _currentDhtmlPop = obj;
    obj.style.top = (document.body.clientHeight - obj.clientHeight) / 2 + 'px';
    obj.style.left = (document.body.clientWidth - obj.clientWidth) / 2 + 'px';
    obj.style.visibility = 'visible';
}
function setupPricingDetails() {
return true;
}
function checkSrcParam() {
    var src,
    html,
    qPos;
    src = getQueryParam('src');
    if (src == '') return;
    html = getHtml('ufoMicroMovie');
    if (html) {
        qPos = html.indexOf('?');
        if (qPos > -1)
        html += '&';
        else
        html += '?';
        html = html + 'src=' + src;
        setHtml('ufoMicroMovie', html);
    }
}
function getQueryParam(paramName) {
    var qString = location.search.substring(1);
    if (qString.indexOf(paramName) == -1) return '';
    var pValueStart = qString.indexOf(paramName) + paramName.length + 1;
    var pValueEnd = qString.indexOf('&', pValueStart);
    if (pValueEnd == -1) pValueEnd = qString.length;
    return unescape(qString.substring(pValueStart, pValueEnd));
}
function _getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else
    begin += 2;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
}
function getThisPage() {
    var pageName;
    var urlStr = location.pathname;
    var fileNameStartIndex = urlStr.lastIndexOf('index.html') + 1;
    var fileNameExtIndex = urlStr.lastIndexOf('.');
    if (fileNameExtIndex > -1) {
        pageName = urlStr.substring(fileNameStartIndex, fileNameExtIndex);
        if (pageName == 'index' && urlStr.indexOf('colors/index.html') > -1)
        pageName = 'colors';
    } else {
        if (urlStr.indexOf('colors/index.html') > -1)
        pageName = 'colors';
        else
        pageName = 'index';
    }
    return pageName;
}
function launchMicrosite(url, launchUrl, winName, winParams) {
    try {
        var winObj = window.open(url, winName, winParams);
        winObj.focus();
    } catch(err) {
        location.href = launchUrl;
    }
}