/*! $Id: galleries.js 6700 2009-10-21 18:26:57Z bhillebrand $ */
/*global $: false, window: false, modelName: false, modelYear: false, doPassVar: false, ModelGalleryVideo: false */
"use strict";

var containerGalleryID = "boxImageThumbnailsContainer",
	jContainerGallery = "#" + containerGalleryID,
	containerColorsID = "colorThumbnailsOnlyContainer",
	jContainerColors = "#" + containerColorsID,
	colorTextID = "colorsDescriptor",
	jColorText = "#" + colorTextID,
	colorThOffset = 10;

function writeCopy(text) {
	if ($("#mediaDescriptionContainer").length > 0) {
		$("#mediaDescriptionContainer").text(text);
	}
}

function writeMaxi(fileName) {
	var writeWin = window.open('', 'ImagePopup', 'top=0,left=0,width=1024,height=768,scrollbars=no,resizable=no'),
		wd,
		source = fileName,
		content = '<html><head><title>Chevrolet</title></head>' +
			'<body bgcolor="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">' +
			'<img src="' +
			source +
			'"></body></html>';

	wd = writeWin.document;
	wd.open();
	wd.write(content);
	wd.close();
}

function makeDownloadLink(s) {

	var d = s.replace(/-thumbnail-/, "-download-");
	$("#mediaDownloadLink").bind("click", function (e) {
		writeMaxi(d);
	});

}

function makeMovieDownloadLink(s) {
	$("#mediaDownloadLink").attr("href", s);
}

function xChgPic(src) {
	function removeNoise() {
		$(this).css({"filter": null});
	}

	$("#mediaScreen").append("<div class='mLoad'></div>");
	var nImg = new Image();
	$(nImg).load(function ()
	{
		$("#mediaScreen").empty().append(nImg);
		$(this).fadeIn("slow", removeNoise);
	})
	.error(function () {
		$("div.mLoad").remove();
	})
	.attr("src", src);

}

function browseImages(direction) {
	var elem = $(jContainerGallery).children('a.imgActive'),
		image,
		src,
		nElem,
		txt;

	if (direction === +1) {
		nElem = ($(elem).next().length > 0) ? $(elem).next() : $(jContainerGallery).children('a:first');
	}
	else if (direction === -1) {
		nElem = ($(elem).prev().length > 0) ? $(elem).prev() : $(jContainerGallery).children('a:last');
	}
	try {
		$(nElem).siblings().removeClass('imgActive');
		$(nElem).addClass('imgActive');
		image = $(nElem).find('img');
		src = $(image).attr('src');
		txt = $(image).attr('alt');
		makeDownloadLink(src);
		xChgPic(src.replace(/-thumbnail-/, "-"));
		writeCopy(txt);
	}
	catch (e) {
	}
}

// 360

/*
function init360(nc) {
	try {
		if (nc) {
			cColor = modelName + "/" + modelName + ".swf";
		}
		else {
			element = $(jContainerColors+' a:first');
			src = $(jContainerColors+' a:first img').attr('src');
			cColor = build360Path(src);
			writeColor($(jContainerColors+' a:first img').attr('alt'),getThumbnailPosition($(jContainerColors+' a:first')));
			$(jContainerColors+' a:first').addClass("imgActive");
			initSWF(cColor);
		}
	}
	catch (e) {

	}
	finally {

	}
}
function init360(nc) {

	element = $(jContainerColors+' a:first');
	src = $(jContainerColors+' a:first img').attr('src');
	cColor = build360Path(src);
	//writeColor($(jContainerColors+' a:first img').attr('alt'),getThumbnailPosition($(jContainerColors+' a:first')));
	$(jContainerColors+' a:first').addClass("imgActive");
	//cColor = "poly_silver/poly_silver.swf";
	initSWF(cColor);

}*/
function build360Path(s) {
	s = s.substring(s.lastIndexOf("/") + 1, s.length);
	s = s.replace(/\.png/, '');
	//s = s.replace(/(\w.-)_/, '');
	s = s.replace(/(\w[^\n\r$]-)_/, ''); //WARNING: Insecure '^'.
	s = s.replace(/_swatch/, '');
	//s = s.replace(/(\w.+)_/, '');
	s = s.replace(/(\w[^\n\r$]+)_/, ''); //WARNING: Insecure '^'.
	s = s.replace(/-/g, '_');
	s = s + "/" + s + ".swf";
	return s;
}

function buildColorPath(s) {
	var basePath = "/assets/images/global/exterior/models/" + modelName + "/";

	s = s.substring(s.lastIndexOf("/") + 1, s.length);
	s = s.replace(/\.png/, '.jpg');
	s = s.replace(/_swatch/, '');
	/*
		s = s.replace(/(\w.-)_/, '');
		s = s.replace(/(\w.+)_/, '');
		s = s.replace(/-/, '_');
	*/
	s = basePath + modelName + "-" + modelYear + "-gallery-colour-" + s;
	return s;
}

function getThumbnailPosition(element) {
	var pos = {x: 0, y: 0};
	if (element) {
		pos.x += element.offsetLeft;
		pos.y += element.offsetTop;
	}
	return pos;
}

function writeColor(color, position) {
	var pos;

	$(jColorText).empty();
	pos = position.x - colorThOffset;
	if (pos < 0) {
		pos = 0;
	}
	$(jColorText).append(color).css({'padding-left': pos + 'px'});
}

// colors
function initColors() {
	try {
		//var imageSrc = $(jContainerColors+' a:first img').attr('src');
		//buildColorPath(imageSrc);
		writeColor($(jContainerColors + ' a:first img').attr('alt'), getThumbnailPosition($(jContainerColors + ' a:first')));
		$(jContainerColors + ' a:first').addClass('imgActive');

	}
	catch (e) {
	}
}

function initGallery() {
	try {
		var imageSrc = $(jContainerGallery + ' a:first img').attr('src');
		$(jContainerGallery + ' a:first').addClass("imgActive");
		makeDownloadLink(imageSrc);
		writeCopy($(jContainerGallery + ' a:first img').attr('alt'));
	}
	catch (e) {

	}
}

function init360() {
	var element = $(jContainerColors + ' a:first')[0];

	//element = $(jContainerColors+' a:first');
	writeColor($(element).find('img').attr("alt"), getThumbnailPosition(element));
	//writeColor($(element+' img').attr('src'),getThumbnailPosition(element));
}

function initMovies() {
	var txt,
		src;

	try {
		txt = $(jContainerGallery + ' div:first ul.movieMetaInfo li.movieMetaTitle').text();
		src = $(jContainerGallery + ' div:first ul.movieMetaInfo li.movieMetaDownload').text();

		$(jContainerGallery + ' div:first a').addClass("imgActive");
		makeMovieDownloadLink(src);
		writeCopy(txt);
	}
	catch (e) {
	}

}

$(document).ready(function () {
	var imageSrc,
		path;

    if ("undefined" === typeof(ModelGalleryVideo))
    {
        $(".colours360Btn").click(function () {
            $(this).siblings().removeClass("imgActive");
            $(this).addClass("imgActive");
            imageSrc = $(this).find('img').attr("src");
            path = build360Path(imageSrc);
            writeColor($(this).find('img').attr("alt"), getThumbnailPosition(this));
            doPassVar(path);
            //writeCopy($(this).find('img'));
        });
    }

	$(".movieThumbnailContainer").click(function () {
		$(".movieThumbnailContainer").removeClass("imgActive");
		$(this).addClass("imgActive");
		writeCopy($(this).parent().find('ul.movieMetaInfo li.movieMetaTitle').text());
		makeMovieDownloadLink($(this).parent().find('ul.movieMetaInfo li.movieMetaDownload').text());
	});

	$(".coloursBtn").click(function () {
		$(this).siblings().removeClass("imgActive");
		$(this).addClass("imgActive");
		imageSrc = $(this).find('img').attr("src");
		path = buildColorPath(imageSrc);
		writeColor($(this).find('img').attr("alt"), getThumbnailPosition(this));
		xChgPic(path);
		//writeCopy($(this).find('img'));
	});

	$(".thumbnailContainer").click(function () {
		imageSrc = $(this).find('img').attr("src");
		$(this).siblings().removeClass("imgActive");
		$(this).addClass("imgActive");
		makeDownloadLink(imageSrc);
		xChgPic(imageSrc.replace(/-thumbnail-/, "-"));
		writeCopy($(this).find('img').attr("alt"));
	});

	$(".galleryBoxTop * a").mouseover(function () {
		$(this).addClass("imgActiveHover");
	});
	$(".galleryBoxTop * a").mouseout(function () {
		$(this).removeClass("imgActiveHover");
	});
	$("div#mediaStageControlButtons *").mousedown(function () {
		$(this).addClass("btnActive");
		//$(this).css({"background-position":"4px 4px"});
	});
	$("div#mediaStageControlButtons *").mouseup(function () {
		$(this).removeClass("btnActive");
	});
});
