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 = {};
    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;
    }
}

function openWindow(url){
	window.open(url,'_blank','height=720,width=1000,toolbar=no,scrollbars=no');
    return true;
};
