/*! $Id: site.js 9588 2010-06-08 14:55:51Z mwelte $ */
/*global $:false, jQuery:false, catFeature: true,
 window:false, showNewContent:false, hideLoader:false, embedSWF:false, document:false, lvl3: true */

//noinspection BadExpressionStatementJS
"use strict";
/**
 * Lorem Ipsum!
 *
 * @author	www.ignitiongroupe.com
 * @version	0.1.0
 */

var timeout = 500,
		closetimer = 0,
		ddmenuitem = 0;

function jsddm_close() {
	if (ddmenuitem) {
		ddmenuitem.css('visibility', 'hidden');
	}
}

function jsddm_timer() {
	closetimer = window.setTimeout(jsddm_close, timeout);
}

function jsddm_canceltimer() {
	if (closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function jsddm_open() {
	jsddm_canceltimer();
	jsddm_close();
	ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');
}

/* */
function callLevel04(ziel) {
	var toLoad = ziel + ' #contentArea';

	function hideLoader() {
		$('#load').fadeOut('normal');
	}

	function showNewContent() {
	  $('#contentArea').fadeIn(500, function() {
			hideLoader();
			loadLightbox();
	  });
	}	

	function loadContent() {
		$('#contentArea').load(toLoad, '', showNewContent());
	}

	$('#contentArea').fadeOut(500, loadContent);
	$('#load').remove();
	$("#ajax-loader").clone().attr("id", "load").removeClass("hidden").insertBefore("#contentWrp");
	$('#load').fadeIn(10);
	window.location.hash = ziel.substr(0, ziel.length - 5);//$(this).attr('href').substr(0,$(this).attr('href').length-5);

	return false;
}

function loadLightbox() {
	$('#lightbox-download-copy').hide();
	var txtDwnl = $('#lightbox-download-copy').html();
	if(txtDwnl===null) {
		txtDwnl = 'Download';
	}
	$('.imageList a').lightBox({
		imageLoading: 			'/assets2/images/global/spark-launch/loader.gif',
		imageBtnClose: 			'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-btn-close.gif',
		imageBtnPrev: 			'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-btn-prev.gif',
		imageBtnNext:			'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-btn-next.gif',
		imageBtnPrevHover:		'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-btn-prev-hover.gif',
		imageBtnNextHover:		'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-btn-next-hover.gif',
		imageBlank:				'/assets2/images/global/spark-launch/jquery-lightbox/lightbox-blank.gif',
		txtImage:				'',
		txtOf:					'/',
		txtDownload: 			txtDwnl ,
		speicalHoverNavigation:	true,
		showDownloadImageLink:	true
	});
}

/* */

$(window).load(function () {
	if (typeof window.embedSWF === 'function') {
		// function exists, so we can now call it
		embedSWF();
	}
});

$(document).ready(function () {

	// The first thing to do:
	// Check for hash value in URL
	var	addThisJSSource = "http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b7565c272af5c4e",
		ct,
		hash = window.location.hash.substr(1),
		j2ndNavItems,
		j2ndNavItemsLvl3,
        live = ("undefined" === typeof(bpia));



	$('.lvl4 a').each(function () {
			var href = $(this).attr('href'),
					toLoad;
		if (hash === href.substr(0, href.length - 5)) {
				toLoad = hash + '.html #contentArea';
				$('#contentArea').load(toLoad);
			}
		});
	jQuery(".addthis_button").after("<scri" + "pt type='text/javascript' src='" + addThisJSSource + "'></scri" + "pt>");

	/* menuTheSpark */

	/* ACCORDION FOR DESIGN */
	j2ndNavItems = jQuery("#secondNavigation div");
	j2ndNavItemsLvl3 = j2ndNavItems.filter(".lvl3");
	if (1 < j2ndNavItemsLvl3.size()) {
		j2ndNavItemsLvl3.addClass("ui-state-default");
		j2ndNavItems.filter(".lvl4").prev("div.lvl3")
				.addClass("ui-state-active")
				.removeClass("ui-state-default");
	}

	//$('#design').accordion('option', 'active', 1);
	//$('#design').accordion({ clearStyle: true, autoHeight: false  });

	/* */

	/*  accordion replacement*/
	lvl3 = $(".lvl3");
	lvl3.hover(
			function () {
				if ($(this).hasClass("ui-state-default")) {
					$(this).removeClass("ui-state-default");
					$(this).addClass('ui-state-hover');
				}
			},
			function () {
				if ($(this).hasClass("ui-state-hover")) {
					$(this).removeClass("ui-state-hover");
					$(this).addClass('ui-state-default');
				}
			});

	/* remove ui-state- class (arrows) from single menu files*/
	if (1 === $('.lvl3').size()) {
		$('.lvl3').removeClass('ui-state-active');
	}

	/* count trim column add correct width */
	$('.trims-prices div  div .lvl4').hide();
	$('td.dataName').wrapInner('<div class="fixWidth"></div>');

    function ieFunction() {
        ct = $('.head tr').children('.dataTrim').size();
        switch (ct) {
        case 1:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol01"></div>');
            break;
        case 2:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol02"></div>');
            break;
        case 3:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol03"></div>');
            break;
        case 4:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol04"></div>');
            break;
        case 5:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol05"></div>');
            break;
        case 6:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol06"></div>');
            break;
        case 7:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol07"></div>');
            break;
        case 8:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol08"></div>');
            break;
        case 9:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol09"></div>');
            break;
        case 10:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol10"></div>');
            break;
        case 11:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol11"></div>');
            break;
        case 12:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol12"></div>');
            break;
        default:
            $('td.dataTrim').wrapInner('<div class="fixWidth dtCol"></div>');
            break;
        }
    }

    function handleRow() {
        var	i =	null,
            jCells = jQuery(this).find("td.dataTrim"),
            jCellsMax =	jCells.size(),
            jCurCell = null,
            jPrevCell =	null,
            sCurData = "",
            sPrevData =	"";

        var calculatedWidthTD = 100/jCellsMax; // tableCell
        var calculatedWidth = (624-((jCellsMax) * 6))/jCellsMax;  // A1 div in tableCell

        for	(i = 0;	i <	jCellsMax; i += 1) {
            jCurCell = jCells.eq(i);
            sCurData = jCurCell.html();
            jCurCell.attr("width", calculatedWidthTD+"%");
            jCurCell.wrapInner('<div class="fixWidth" style="width:' + calculatedWidth + 'px;"></div>'); // A1 div in tableCell
            if (sCurData.length	!== sPrevData.length || sCurData != sPrevData) {
                jPrevCell =	jCurCell;
                sPrevData =	sCurData;
                continue;
            }
            jCurCell.hide();
            jPrevCell.attr("colspan", parseInt((jPrevCell.attr("colspan") || 1), 10) + 1);
            var getColspan = jPrevCell.attr("colspan");
            if (getColspan !== undefined) {
                var newCalcWidth =  (getColspan * calculatedWidth) + ((getColspan) * 6); // A1 div in tableCell
                jPrevCell.children('.fixWidth').attr("style", 'width:' + newCalcWidth + 'px;text-align:center');  // A1 div in tableCell
                var newCalcWidthTD =  getColspan * calculatedWidthTD; // tableCell
            }
            jPrevCell.attr("width", newCalcWidthTD+"%");
        }
    }

    function handleTable() {
        /*
        var	jRows =	jQuery(this).find("tr.dataItem");
        jRows.eq(0).clone().hide().addClass("hidden").insertBefore(jRows.eq(0));
        jRows.each(handleRow);
        */
        jQuery(this).find("tr.dataItem").each(handleRow);
    }

    function handlePage() {
        jQuery("#trimTable table.trimsDataTable").each(handleTable);

        /* add dummy row */
        var jCellsMax = jQuery('.head tr').children('.dataTrim').size();
        var calculatedWidthTD = 100/jCellsMax; // tableCell
        var calculatedWidth = (624-((jCellsMax) * 6))/jCellsMax;  // A1 div in tableCell (638-(jCellsMax * 10))/jCellsMax;
        var clipBoard = "<div class='fixWidth' style='width: " + calculatedWidth + "px; height: 0px;'></div>"
        var dummyRow ="<tr class='arrangeRow' style='visibility: hidden;'><td/></tr>";
        var dummyCell ="<td width='" + calculatedWidthTD + "%'><div class='fixWidth' style='width: " + calculatedWidth + "px; height: 0px;'></div></td>";
        $("tbody", this).append(dummyRow);
        for	(i = 0;	i <	jCellsMax; i++) {
            $(".arrangeRow").append(dummyCell);
        }

    }

    /* trims & prices: collaps column for ie & the rest */
    /* if firefox, webkit, opera, mozilla and msie >= 8.0 run this script */
    if (!$.browser.msie || $.browser.msie && jQuery.browser.version.substr(0,3)>=8.0) {
       jQuery(document).ready(handlePage);
    }
    /* if borwser is msie version lower than 8.0   */
    if ($.browser.msie && jQuery.browser.version.substr(0,3)<8.0){
        ieFunction();
    }

	/* Trims even odd bgcolor*/
	/* BOH: compatibility fix, see */
	/* http://groups.google.com/group/jquery-en/browse_thread/thread/cfb0ff61f416e264/9b9235590c708a7c#msg_9b9235590c708a7c */
	/* http://api.jquery.com/nth-child-selector/ */

	/* $(".commentList .commentItem:first").addClass("commentItemFirst"); */
	/* $(".commentList .commentItem:nth-child(even)").addClass("odd"); */
	/* $(".commentList .commentItem:nth-child(odd)").addClass("even"); */
	/* */


	/* Trims even odd bgcolor*/
	$(".trimsDataTable tr:nth-child(even)").addClass("odd");
	$(".trimsDataTable tr:nth-child(odd)").addClass("even");
	/* */

	/* Dealer Locator even odd bgcolor*/
	$(".dealerDataTable tr:nth-child(even)").addClass("odd");
	$(".dealerDataTable tr:nth-child(odd)").addClass("even");
	/* */

	/* Dealer Locator even odd bgcolor*/
	$(".fbAppBox li:last-child").addClass("last").css("margin","0");

	/* */	
	
    /* bad hack for page reload on forms */
    if (!$('.formErrorLeft').length > 0) {
        $('.form input:text').not(".hasDatepicker").addClass('preColor');
        $('.form textarea, .form input[type="text"]').focus(function () {
            if (this.value === this.defaultValue) {
                this.value = '';
                jQuery(this).removeClass('preColor');
            }
            if (this.value !== this.defaultValue) {
                this.select();
            }
        });
    }

    if (live)
    {
        $('.lvl4 a').click(function () {

            var toLoad = $(this).attr('href') + ' #contentArea';

            function hideLoader() {
                $('#load').fadeOut('normal');
            }

            function showNewContent() {
                $('#contentArea').fadeIn(500,function() {
					hideLoader();
					loadLightbox();
			  	});
            }
		
            function loadContent() {
                $('#contentArea').load(toLoad, '', showNewContent());
            }

            // 3rd correct menu css
            $('.lvl4 a').removeClass();
            $(this).addClass('active');
            // end correct menu css

            $('#contentArea').fadeOut(500, loadContent);
            $('#load').remove();
            $("#ajax-loader").clone().attr("id", "load").removeClass("hidden").insertBefore("#contentWrp");
            $('#load').fadeIn(10);
            window.location.hash = $(this).attr('href').substr(0, $(this).attr('href').length - 5);

            return false;
        });
    }

	/* */
	$('#jsddm > li').bind('mouseover', jsddm_open);
	$('#jsddm > li').bind('mouseout', jsddm_timer);

	document.onclick = jsddm_close;
	/* */

	/* hide interior 360 on startup*/
	$('#flashStageInterior360').hide();

	$('#interior').click(function () {
		$('#flashStageInterior360').show();
		$('#flashStage').hide();
	});

	$('#exterior').click(function () {
		$('#flashStage').show();
		$('#flashStageInterior360').hide();
	});


	/* trims & prices: Expand all/Collaps all  */
	catFeature = $(".catFeature");

	catFeature.hover(
			function () {
				if ($(this).hasClass("cat-close")) {
					$(this).removeClass("cat-close");
					$(this).addClass('cat-hover');
				}
			},
			function () {
				if ($(this).hasClass("cat-hover")) {
					$(this).removeClass("cat-hover");
					$(this).addClass('cat-close');
				}
			});

	catFeature.addClass("cat-open");

	catFeature.click(
			function () {
				$(this).next(".catItemList").slideToggle(100);
				if ($(this).hasClass("cat-close")) {
					$(this).removeClass("cat-close");
					$(this).addClass("cat-open");
				} else if ($(this).hasClass("cat-open")) {
					$(this).removeClass("cat-open");
					$(this).addClass("cat-close");
				} else if ($(this).hasClass("cat-hover")) {
					$(this).removeClass("cat-hover");
					$(this).addClass("cat-open");
				}
			});

	$(".allOpen").click(function () {
		catFeature.next(".catItemList").show(100);
		catFeature.removeClass("cat-close");
		catFeature.addClass("cat-open");
		return false;
	});

	$(".allClose").click(function () {
		catFeature.next(".catItemList").hide(100);
		catFeature.removeClass("cat-open");
		catFeature.addClass("cat-close");
		return false;
	});
	/* end */

	/* clickable images get name + '_default', e.g. '.../youtube_default.jpg' */
	$('a img').each(function () {
		var	imgSrc = $(this).attr('src'),
			newSrc = imgSrc.replace(/(fb|flickr|more|rss|youtube)\.jpg/i, "$1_default.jpg");

		if (imgSrc !== newSrc) {
					$(this).attr('src', newSrc);
				}
	});

	$('.more').each(function () {
        var urlSrc = $(this).parent('a').attr('href');
        
		$(this).parent().parent('.block').css("cursor","pointer");
        $(this).parent().parent('.block img, .block .articleCopy').click(function () {																   
            window.open(urlSrc, "_self");
        });
	});

    // $('.fbAppBox li').css("border","1px solid red");
	
	$('.fbAppBox li').each(function () {
        var urlSrc = $(this).find('a').attr('href');
		$(this).find('a').attr("onclick","return false");
		$(this).css("cursor","pointer");
		$(this).find('p').css("text-decoration","none");
        $(this).click(function () {
            window.open(urlSrc, "_blank");
        });
	});

	/*
	 * Hover effect for images inside anchors like $(a img).
	 *
	 * Special treatment for the menu:
	 * $('ul li.menuTheSpark') is one single hover area,
	 * no additional hover events called from within.
	 */
	$('a').not('ul li.menuTheSpark *').add('ul li.menuTheSpark').hover(
			function () {
			var	imgSrc = $('img', this).attr('src'),
				newSrc = imgSrc ? imgSrc.replace(/_default\.jpg/i, "_hover.jpg") : imgSrc;

			if (imgSrc !== newSrc) {
				$('img', this).attr('src', newSrc);
				}
			},
			function () {
			var	imgSrc = $('img', this).attr('src'),
				newSrc = imgSrc ? imgSrc.replace(/_hover\.jpg/i, "_default.jpg") : imgSrc;

			if (imgSrc !== newSrc) {
				$('img', this).attr('src', newSrc);
				}
		});
	/* AddThis (Bookmark): */


    if ("function" === typeof(jQuery) && "function" === typeof(jQuery(document).lightBox))
    {
        /* lightbox for images */
        if (typeof window.loadLightbox === 'function') {
			// function exists, so we can now call it
			loadLightbox();
		}		
    }

});
