
/*
jQuery(document).ready(function() {
    if(jQuery("#movFlashCore").size()>0){
        jQuery(".gBodyContainer").css("background-image","none");
    }
});
*/

var isCQ = false;
try {
    isCQ = (CQ) ? true : false;
} 
catch (e) {
}
var leftNext = '-129px';
var leftPrev = '0px';
var storyIndex = -1;
var storyId = '';
var technologyStory = new Array();
var techTerser = null;
var flashDisclaimersLoading = false;
var disclaimerLoadingInterval = null;

/*var crmEvents = [
 crmEvent2, // 0 default
 crmEvent3, // 1 around-view-monitor
 crmEvent4, // 2 distance-control
 crmEvent5, // 3 lane-departure-prevention
 crmEvent6, // 4 active-steer
 crmEvent7, // 5 intelligent-brake-assist
 crmEvent12,    // 6 intelligent-all-wheel-drive
 crmEvent8, // 7 enhanced-control
 crmEvent13,    // 8 intelligent-cruise-control
 crmEvent9, // 9 bluetooth
 crmEvent10,    // 10 ipod
 crmEvent11 // 11 welcome-lighting
 ];*/
function loadDeepLink(swfAddressEvent){
    var tech = '';
    var hash = '';
    var techRegex = new RegExp('[\\?&]technology=([^&#]*)');
    var hashRegex = new RegExp('/([\\w-]+)/');
    var results = '';
    
    results = techRegex.exec(window.location.href);
    tech = (results == null) ? '' : results[1];
    
    if (!isCQ) {
        results = hashRegex.exec(SWFAddress.getValue());
        hash = (results == null) ? '' : results[1];
    }
    else {
        results = hashRegex.exec(storyId);
        hash = storyId;
    }
    
    if ((tech == '') && (hash == '')) {
        jQuery('#pcaLoading').fadeTo(200, 0.0);
        //crmEvents[0]();
    }
    else {
        for (var i = 0; i < technologyStory.length; i++) {
            if (tech == technologyStory[i].deepLinkId || hash == technologyStory[i].deepLinkId) 
                storyIndex = i;
        }
        if (tech != '' && tech == technologyStory[storyIndex].deepLinkId) 
            loadStory(tech);
        else 
            if (hash && hash == technologyStory[storyIndex].deepLinkId) 
                loadStory(hash);
    }
}

function loadStory(storyId){
    updatePcaControls();
    
    jQuery('#pcaContainer').fadeTo(1, 0.0, function(){
        jQuery(this).html('');
    });
    jQuery('#pcaLoading').fadeTo(1000, 1.0);
    
    jQuery("body").scrollTo('0', 800, {
        easing: 'swing'
    });
    
    jQuery('#pcaLoading').fadeTo(200, 0.0, function(){
        showStory();
    });
}

function showStory(){
    try {
        eval('crmEvent' + technologyStory[storyIndex].taggingEvent + '();');
    } 
    catch (e) {
    }
    
    // arranging the Available in links into the order of the top nav
    var sortModel = technologyStory[storyIndex].availableIn.split('</a>');
    sortModel.pop();
    var arrSorted = [];
    
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('Sedan') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('Coupe') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('Convertible') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('M') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
            if (sortModel[i].indexOf('EX') > -1) {
                arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('FX') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
    for (i = 0; i < sortModel.length; i++) {
        if (sortModel[i].indexOf('QX') > -1) {
            arrSorted.push(sortModel[i] + '</a>');
        }
    }
                    
    var arrToString = arrSorted.toString();
    var finalHtml = arrToString.replace(/\,/g,"");

    jQuery('#availableModels').html(finalHtml);
    //jQuery('#availableModels').html(technologyStory[storyIndex].availableIn);
    
    if (technologyStory[storyIndex].flashFLV != '') {
        var storyDisclaimers = new Array();
        jQuery('#pcaContainer').replaceWith('<div id="pcaContainer"></div>');
        
        techTerser = new Terser({
            name: "techTerser",
            shell: "/apps/nna/docroot/swf/videoPlayer_CMS.swf",
            element: "#pcaContainer",
            height: 361,
            width: 712,
            params: {
                wmode: "opaque",
                base: "/apps/nna/docroot/swf/"
            }
        });
        
        var flashDesc = jQuery(technologyStory[storyIndex].description);
        var disclaimerTotal = flashDesc.find("a[href*='Disclaimers']").length;
        
        flashDesc.find("a[href*='Disclaimers']").each(function(index){
            if (disclaimerTotal > 0) 
                flashDisclaimersLoading = true;
            
            jQuery(this).replaceWith('<a href="asfunction:showDisclaimerVid,' + index + '">' + jQuery(this).html() + '</a>');
            
            var newArr = jQuery(this).attr("href").split(".html#");
            var folder = newArr[1].slice(0, 11);
            var disc = newArr[1].slice(12);
            var theUrl = newArr[0] + "/jcr:content/" + folder + "/" + disc + ".html";
            
            jQuery.get(theUrl, null, function(data, status){
                var tmpEl = jQuery("<div></div>").html(data);
                var disclCopy = "";
                tmpEl.find('.mainDisc p').each(function(){
                    disclCopy = disclCopy + jQuery(this).text();
                });
                storyDisclaimers.push(disclCopy);
                disclaimerTotal = disclaimerTotal - 1;
            }, 'html');
        });
        
        disclaimerLoadingInterval = setInterval(function(){
            if (disclaimerTotal == 0) {
                flashDisclaimersLoading = false;
                clearInterval(disclaimerLoadingInterval);
                
                techTerser.extend({
                    videoData: {
                        imageSrc: technologyStory[storyIndex].backgroundImage,
                        flvSrc: technologyStory[storyIndex].flashFLV,
                        headline: technologyStory[storyIndex].teaserTitle,
                        runtime: technologyStory[storyIndex].demonstrationVideoCopy,
                        copy: flashDesc.html(),
                        disclaimers: storyDisclaimers,
                        id: "0",
                        section_id: "0",
                        taggingEventID: technologyStory[storyIndex].taggingEvent,
                        replayCopy: "Replay"
                    }
                });
                
                techTerser.load();
            }
        }, 200);
    }
    else {
        jQuery('#pcaContainer').replaceWith('<div id="pcaContainer" class="pca-' + technologyStory[storyIndex].deepLinkId + '">' +
        '<img class="pcaBg" src="' +
        technologyStory[storyIndex].backgroundImage +
        '"/>\n' +
        '<div class="pcaTitle">' +
        technologyStory[storyIndex].teaserTitle +
        '</div>' +
        '<div class="pcaTextContainer">' +
        technologyStory[storyIndex].description +
        '</div>' +
        '</div>');
        
        jQuery.each(jQuery("a[href*='Disclaimers']"), function(index){
            var newArr = jQuery(this).attr("href").split(".html#");
            var folder = newArr[1].slice(0, 11);
            var disc = newArr[1].slice(12);
            var theUrl = newArr[0] + "/jcr:content/" + folder + "/" + disc + ".html";
            
            jQuery(this).click(function(){
                jQuery("#disclaimers").load(theUrl + " .mainDisc p", function(){
                    jQuery('.forPopup').css('display', 'block');
                    jQuery("#disclaimers").dialog("destroy");
                    jQuery("#disclaimers").dialog({
                        autoOpen: true
                    }).show();
                });
                
                return false;
            });
        });
        
    }
    
    jQuery('#pcaContainer').fadeTo(400, 1.0);
}

function nextStory(){
    if (storyIndex < technologyStory.length) {
        storyId = technologyStory[storyIndex + 1].deepLinkId;
        if (!isCQ) 
            SWFAddress.setValue(technologyStory[storyIndex + 1].deepLinkId);
        else {
            storyId = technologyStory[storyIndex + 1].deepLinkId;
            loadDeepLink();
        }
    }
}

function prevStory(){
    if (storyIndex >= 1) {
        storyId = technologyStory[storyIndex - 1].deepLinkId;
        if (!isCQ) 
            SWFAddress.setValue(technologyStory[storyIndex - 1].deepLinkId);
        else {
            storyId = technologyStory[storyIndex - 1].deepLinkId;
            loadDeepLink();
        }
    }
}

function updatePcaControls(){
    updateTechnologyTeasers(storyIndex);
    
    jQuery('#pcaExplore').css('display', 'none');
    jQuery('#pcaAvailable').css('display', 'block');
    jQuery('#pcaNavigator').css('display', 'block');
    
    if (storyIndex <= 0) {
        jQuery('#arrowPrev').css('visibility', 'hidden');
        jQuery('#arrowNext').css('visibility', 'visible');
        jQuery('#arrowPrev').attr('href', '#');
        jQuery('#prevNext').attr('href', '#' + technologyStory[storyIndex + 1].deepLinkId);
        jQuery('#arrowNext').attr('href', '#' + technologyStory[storyIndex + 1].deepLinkId);
        
        jQuery('#prevNext').animate({
            left: leftNext
        }, 200, 'swing');
        
    }
    else 
        if (storyIndex == technologyStory.length - 1) {
            jQuery('#arrowPrev').css('visibility', 'visible');
            jQuery('#arrowNext').css('visibility', 'hidden');
            jQuery('#prevNext').attr('href', '#' + technologyStory[storyIndex - 1].deepLinkId);
            jQuery('#arrowPrev').attr('href', '#' + technologyStory[storyIndex - 1].deepLinkId);
            jQuery('#arrowNext').attr('href', '#');
            
            jQuery('#prevNext').animate({
                left: leftPrev
            }, 200, 'swing');
        }
        else {
            jQuery('#arrowPrev').css('visibility', 'visible');
            jQuery('#arrowNext').css('visibility', 'visible');
            jQuery('#prevNext').attr('href', (jQuery('#prevNext').css('left') == leftNext) ? '#' + technologyStory[storyIndex + 1].deepLinkId : '#' + technologyStory[storyIndex - 1].deepLinkId);
            jQuery('#arrowPrev').attr('href', '#' + technologyStory[storyIndex - 1].deepLinkId);
            jQuery('#arrowNext').attr('href', '#' + technologyStory[storyIndex + 1].deepLinkId);
        }
}

function updateTechnologyTeasers(teaserIndex){
    jQuery('.techItemWrapper').each(function(index){
        var itemWrapper = this;
        
        if (teaserIndex == index) {
            jQuery(itemWrapper).addClass('techItemActive');
            jQuery(itemWrapper).find('.techItemBgWrapper').fadeTo(300, 1.0);
        }
        else {
            jQuery(itemWrapper).removeClass('techItemActive').find('.techItemBgWrapper').fadeTo(300, 0.0);
        }
    });
}

jQuery(document).ready(function(){
    if (!jQuery.support.opacity) 
        jQuery('#techContainer').addClass('ie-compat');
    jQuery('#pcaControls').css('display', 'block');
    jQuery('#pcaLoading').css('display', 'block').fadeTo(1, 0.0);
    
    jQuery('#pcaExplore').attr('href', '#' + technologyStory[0].deepLinkId);
    
    jQuery('#pcaExplore').click(function(event){
        storyIndex = 0;
        storyId = technologyStory[storyIndex].deepLinkId;
        if (!isCQ) 
            SWFAddress.setValue(technologyStory[storyIndex].deepLinkId);
        else {
            storyId = technologyStory[storyIndex].deepLinkId;
            loadDeepLink();
        }
        return false;
    });
    
    jQuery('#arrowPrev').each(function(){
        jQuery(this).click(function(event){
            prevStory();
            return false;
        });
        
        jQuery(this).hover(function(){
            jQuery('#prevNext').addClass('active').animate({
                left: leftPrev
            }, 200, 'swing').attr('href', jQuery('#arrowPrev').attr('href'));
        }, function(){
            if (storyIndex != technologyStory.length - 1) {
                jQuery('#prevNext').attr('prevTimeout', setTimeout(function(){
                    jQuery('#prevNext').removeClass('active').animate({
                        left: leftNext
                    }, 200, 'swing').attr('href', jQuery('#arrowNext').attr('href'));
                }, 100));
            }
            else {
                jQuery('#prevNext').removeClass('active');
            }
        });
    });
    
    jQuery('#arrowNext').each(function(){
        jQuery(this).click(function(event){
            nextStory();
            return false;
        });
        
        jQuery(this).hover(function(){
            jQuery('#prevNext').addClass('active');
        }, function(){
            jQuery('#prevNext').removeClass('active');
        });
    });
    
    jQuery('#prevNext').each(function(){
        var button = this;
        
        jQuery(button).click(function(event){
            storyId = jQuery(button).attr('href').split('#')[1];
            if (!isCQ) 
                SWFAddress.setValue(jQuery(button).attr('href').split('#')[1]);
            else {
                storyId = jQuery(button).attr('href').split('#')[1];
                loadDeepLink();
            }
            return false;
        });
        
        jQuery(button).hover(function(){
            clearTimeout(jQuery('#prevNext').attr('prevTimeout'));
            if (jQuery(button).attr('href') == jQuery('#arrowPrev').attr('href')) 
                jQuery('#arrowPrev').addClass('active');
            else 
                jQuery('#arrowNext').addClass('active');
        }, function(){
            if (storyIndex == technologyStory.length - 1) {
                jQuery('#arrowPrev').removeClass('active');
                jQuery('#arrowNext').removeClass('active');
                
            }
            else {
                jQuery('#prevNext').removeClass('active').animate({
                    left: leftNext
                }, 200, 'swing').attr('href', jQuery('#arrowNext').attr('href'));
                
                jQuery('#arrowPrev').removeClass('active');
                jQuery('#arrowNext').removeClass('active');
                
            }
        });
    });
    
    jQuery('.techItemWrapper').each(function(index){
        var itemWrapper = jQuery(this);
        var itemBg = itemWrapper.find('.techItemBgWrapper');
        itemBg.fadeTo(1, 0.0, function(){
            jQuery(this).css('display', 'block');
        });
        
        itemWrapper.click(function(){
            if (!jQuery(this).hasClass('techItemActive')) {
                updateTechnologyTeasers(index);
                storyId = technologyStory[index].deepLinkId;
                if (!isCQ) 
                    SWFAddress.setValue(technologyStory[index].deepLinkId);
                else {
                    storyId = technologyStory[index].deepLinkId;
                    loadDeepLink();
                }
            }
        });
        
        itemWrapper.hover(function(){
            if (!itemWrapper.hasClass('techItemActive')) 
                itemWrapper.addClass('techItemHover');
        }, function(){
            jQuery(this).removeClass('techItemHover');
        });
    });

    if (!isCQ) 
        SWFAddress.addEventListener(SWFAddressEvent.CHANGE, loadDeepLink);
    else 
        loadDeepLink();
});


