// / Create the Namespace Manager that we'll use to
// / make creating namespaces a little easier.
if (typeof Namespace == 'undefined')
	var Namespace = {};
if (!Namespace.Manager)
	Namespace.Manager = {};

Namespace.Manager = {
	Register : function(namespace) {
		namespace = namespace.split('.');

		if (!window[namespace[0]])
			window[namespace[0]] = {};

		var strFullNamespace = namespace[0];
		for ( var i = 1; i < namespace.length; i++) {
			strFullNamespace += "." + namespace[i];
			eval("if(!window." + strFullNamespace + ")window."
					+ strFullNamespace + "={};");
		}
	}
}; 


/**
 * Main Slider
 * @param class_PhotoSlider
 * @param class_NavThumb
 * @param class_CrossLink
 * @return
 */
function mainSlider(count_Photo, class_PhotoSlider, class_NavThumb, class_CrossLink) {
	var theInt = null;
	var curclicked = 0;
	var timeToWait = 5; // 5 seconds to wait
	var $navthumb = jQuery(class_NavThumb);
	var $crosslink = jQuery(class_CrossLink);
	
	theInterval = function(cur){
		clearInterval(theInt);
		
		if( typeof cur != 'undefined' )
			curclicked = cur;
		
		$navthumb.removeClass('active-thumb');
		$navthumb.eq(curclicked).addClass('active-thumb');
		jQuery('#thumb-photo a').eq(curclicked).trigger('click');
		
		theInt = setInterval(function(){
			$navthumb.removeClass('active-thumb');
			$navthumb.eq(curclicked).addClass('active-thumb');
			jQuery('#thumb-photo a').eq(curclicked).trigger('click');
			curclicked++;
			if(curclicked == count_Photo)
				curclicked = 0;
		}, (timeToWait*1000));
	};
	
	jQuery(class_PhotoSlider).codaSlider({
		easeTime: 1000
	});

	$navthumb.click(function() {
		theInterval(jQuery(this).parent().attr('href').slice(1) - 1);
		clearInterval(theInt);
		return false;
	});
	
	theInterval();
}

//Register our Namespace
Namespace.Manager.Register('Com.EversMarthaler.Mussler');

Com.EversMarthaler.Mussler.Sidebar = function (css_class) {
	maxImg = 5;
	timeToWait = 10;
	pos = 0;
	
	var sidebar_Interval = setInterval(function(){
		// get height of view
		height = jQuery(css_class).height();
		// if pos greater than real size of picuture -> set to 0
		if(pos > (maxImg * height)) {
			pos = 0;
			window.clearInterval(sidebar_Interval);
		}
		jQuery(css_class).fadeOut(500, function() {
			jQuery(this).css('background-position', '0 -' + pos + 'px');
			jQuery(this).fadeIn('slow');
		});
		
		pos += height;
	}, (timeToWait*1000));
};

function Checkout_Cart_Item_Remove() {
	var info = 'Wollen Sie den Artikel löschen';
	
	return confirm(info);
}

Namespace.Manager.Register('Com.EversMarthaler.Mussler.Details');
Namespace.Manager.Register('Com.EversMarthaler.Web.Frontend.Facebook');

/**
 * Facebook Like This functionality
 * 
 * @param div
 *            ID Tag with a-link
 * @param URL
 *            Tage
 * @return
 */
Com.EversMarthaler.Web.Frontend.Facebook.LikeThis = function (type, divLayer, url, language) {
	snippet = null;
	
	if(type == 'like-this') {
		snippet = '<fb:like href="' + url + '" show_faces="false" font="arial"></fb:like>';
		
		window.fbAsyncInit = function() {
			FB.init( {
				appId : '',
				xfbml : true,
				status : true,
				cookie : true
			});
		};
		
		_lang = 'en_US';
		if(language == 'fr')
			_lang = 'fr_FR';
		else if(language == 'nl')
			_lang = 'nl_NL';
		else if(language == 'de')
			_lang = 'de_DE';
		else if(language == 'it')
			_lang = 'it_IT';
		
		var e = document.createElement('script');
		e.async = true;
		e.src = document.location.protocol + '//connect.facebook.net/' + _lang + '/all.js';
		jQuery(divLayer).append(e);
	}
	
	if(snippet != null)
		jQuery(divLayer).html(snippet);
}

/*
 * function for article Details to flip detail-images
 */
Com.EversMarthaler.Mussler.Details.PictureChange = function(divLayer, url, urlZoom) {
	_image = divLayer + ' img';
	_link = divLayer + ' a';
	//alert(url);
	
	jQuery(_link).attr('href', urlZoom);
	jQuery(_image).fadeOut('normal', function() {
		jQuery(_image).load(function() {
			jQuery(_image).css( {
				'width' : parseInt(jQuery(this).width()),
				'height' : parseInt(jQuery(this).height())
			});
			jQuery(_image).fadeIn('normal');
		}).attr('src', url);
		jQuery(_link).CloudZoom();
	});
};

//Register our Namespace
Namespace.Manager.Register('Com.EversMarthaler.Mussler.Main.Slider');

Com.EversMarthaler.Mussler.Main.Slider.Data = [];

Com.EversMarthaler.Mussler.Main.Slider.Add = function(imageUrl, urlLink) {
	params = {
		image : imageUrl,
		url : urlLink
	}
	Com.EversMarthaler.Mussler.Main.Slider.Data.push(params);
	
	if(Com.EversMarthaler.Mussler.Main.Slider.Data.length == 1)
		Com.EversMarthaler.Mussler.Main.Slider.SetFirst(Com.EversMarthaler.Mussler.Main.Slider.Data[0]);
};

Com.EversMarthaler.Mussler.Main.Slider.SetFirst = function(data) {
	cssClass = '#Slider ';
	
	jQuery(cssClass + 'a.active').attr('href', data.url);
	jQuery(cssClass + 'img.active').attr('src', data.image);
};

Com.EversMarthaler.Mussler.Main.Slider.Run = function(image, url) {
	cssClass = '#Slider ';
	timing = 2000; // X seconds

	now = jQuery(cssClass + 'a.active');
	nowImg = jQuery(cssClass + 'img.active');
	next = jQuery(cssClass + 'a.inactive');
	nextImg = jQuery(cssClass + 'img.inactive');

	positionNext = 0;

	data = Com.EversMarthaler.Mussler.Main.Slider.Data;
	for ( var i = 0; i < data.length; i++) {
		_data = data[i];
		if (nowImg.attr('src') == _data.image) {
			positionNext = i + 1;
			if ((i + 1) >= _data.image.length)
				positionNext = 0;

			break;
		}
	}
	if (positionNext >= data.length)
		positionNext = 0;
	
	// load image
	image = new Image();
	image.src = data[positionNext].image;

	if (image.complete == true) {
		url = '#'
		if (data[positionNext].url != '')
			url = data[positionNext].url;

		jQuery(next).attr('href', url);

		nextImg.attr('src', data[positionNext].image);
		nextImg.removeClass('inactive').addClass('active');
		nextImg.css('opacity', '0.0');
		next.removeClass('inactive').addClass('active');

		nowImg.removeClass('active').addClass('inactive');
		now.removeClass('active').addClass('inactive');

		nextImg.animate({
			opacity : 1.0
		}, timing, function() {
		});
	}
};

