// #####################################
// # Hilfsfunktionen
// #####################################

	function countItems(elementPath) {
		var count = 0;
		var o = jQuery(elementPath);
		for(var i=0;i<o.length;i++){ count ++; }
		
		return count;
	};

	function stristr (haystack, needle, bool) {
	    // Finds first occurrence of a string within another, case insensitive  
	    var pos = 0;
	 
	    haystack += '';
	    pos = haystack.toLowerCase().indexOf( (needle+'').toLowerCase() );    if (pos == -1){
	        return false;
	    } else{
	        if (bool) {
	            return haystack.substr( 0, pos );        } else{
	            return haystack.slice( pos );
	        }
	    }
	}

	function ajax_getData(targetElement,urlController,urlParameter) {
		var url = '' + encodeURIComponent('ajax_get' + urlController + '.php?') + urlParameter;

		jQuery.get(url, function(data){
			jQuery('#' + targetElement).html(data);
		});

		return false;
	}

	function trikr_getValue(elementid) {
		if(!document.getElementById) return;
		var obj = document.getElementById(elementid);
		return obj.value;
	}

	function str_replace(search, replace, subject) {
		return subject.split(search).join(replace);
	}

	onload=function(){
	if (document.getElementsByClassName == undefined) {
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];

			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}

			return results;
		}
	}
	}

	$timer = function (interval, callback)
	{
		var interval = interval || 100;
		if (!callback)
			return false;
		_timer = function (interval, callback) {
			this.stop = function () {
				clearInterval(self.id);
			};
			this.internalCallback = function () {
				callback(self);
			};
			this.reset = function (val) {
				if (self.id)
					clearInterval(self.id);
				var val = val || 100;
				this.id = setInterval(this.internalCallback, val);
			};
			this.interval = interval;
			this.id = setInterval(this.internalCallback, this.interval);
			var self = this;
		};
		return new _timer(interval, callback);
	};

	(function(jQuery) {
		if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8
			var oldCurCSS = jQuery.curCSS;
			jQuery.curCSS = function(elem, name, force){
				if(name === 'background-position'){
					name = 'backgroundPosition';
				}
				if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
					return oldCurCSS.apply(this, arguments);
				}
				var style = elem.style;
				if ( !force && style && style[ name ] ){
					return style[ name ];
				}
				return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
			};
		}
		
		var oldAnim = jQuery.fn.animate;
		jQuery.fn.animate = function(prop){
			if('background-position' in prop){
				prop.backgroundPosition = prop['background-position'];
				delete prop['background-position'];
			}
			if('backgroundPosition' in prop){
				prop.backgroundPosition = '('+ prop.backgroundPosition;
			}
			return oldAnim.apply(this, arguments);
		};
		
		function toArray(strg){
			strg = strg.replace(/left|top/g,'0px');
			strg = strg.replace(/right|bottom/g,'100%');
			strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
			var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
			return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
		}
		
		jQuery.fx.step. backgroundPosition = function(fx) {
			if (!fx.bgPosReady) {
				var start = jQuery.curCSS(fx.elem,'backgroundPosition');
				
				if(!start){//FF2 no inline-style fallback
					start = '0px 0px';
				}
				
				start = toArray(start);
				
				fx.start = [start[0],start[2]];
				
				var end = toArray(fx.options.curAnim.backgroundPosition);
				fx.end = [end[0],end[2]];
				
				fx.unit = [end[1],end[3]];
				fx.bgPosReady = true;
			}
			var nowPosX = [];
			nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
			nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
			fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

		};
	})(jQuery);

	function toggleDisp() {
	    for (var i=0;i<arguments.length;i++){
	        var d = $(arguments[i]);
	        if (d.style.display == 'none')
	            d.style.display = 'block';
	        else
	            d.style.display = 'none';
	    }
	}

	function switchid(id1,id2) {
	 var obj1 = document.getElementById(id1);
	 if(!obj1 || !obj1.style) return;
	 obj1.id = id2;
	return false;
	}

	function mergeParams(paramString1, paramString2) {
		alert('MergeIt');		
		var paramString = '';
		
		// Erstmal String2Array bauen
		if(stristr(paramString1, "&")) {
			var paramSet = paramString1.split("&");
			jQuery.each(paramSet, function(i, n){
				  var nRes = n.split("=");
				  alert(nRes[0] + ' - ' + nRes[1])
				});
		}

		return paramSet;
	}
	
// #####################################
// # Felgen Filter (Size)
// # onChange DropDown
// #####################################
	function kfzfilter_addfilter_size(targetElement,urlController,urlParameter) {
		jQuery('.adj-nav-progress').show();

		setTimeout(function(){
			var kfzfilter1 = jQuery('#hersteller').val();
			var kfzfilter2 = jQuery('.dditem2').val();
			var kfzfilter3 = jQuery('.dditem3').val();
	
			var targetUrl = '';
			var aktUrl = window.location.href;
			var urlParams = '';
	
			if(stristr(aktUrl, "///")) {
				var tmpUrla = aktUrl.split('///');
				var tmpUrlb = tmpUrla[1].split('.html'); 
				aktUrl = tmpUrla[0] + '.html' + tmpUrlb[1];
			}
	
			if(stristr(aktUrl, "?")) { 
				aktUrl = aktUrl.split('?');
				urlParams = 'kfzfilter[hersteller]=' + kfzfilter1 + '&kfzfilter[modell]=' + kfzfilter2 + '&' + kfzfilter3;
				targetUrl = aktUrl[0] + '?' + aktUrl[1] + '&' + urlParams;
			} else {
				urlParams = '?kfzfilter[hersteller]=' + kfzfilter1 + '&kfzfilter[modell]=' + kfzfilter2 + '&' + kfzfilter3;
				//Hotfix 27.09.2010
				if(stristr(window.location.href,'alufelgen_sommer')) {
					if(stristr(window.location.href,'/en/')) {
						targetUrl = 'http://www.rollinonchrome.de/en/felgen/shop/catalog/category/view/alufelgen_sommer.html';
					} else {
						targetUrl = 'http://www.rollinonchrome.de/nc/felgen/shop/catalog/category/view/alufelgen_sommer.html';
					}
				}
				if(stristr(window.location.href,'winter')) {
					if(stristr(window.location.href,'/en/')) {
						targetUrl = 'http://www.rollinonchrome.de/en/felgen/shop/catalog/category/view/winter.html';
					} else {
						targetUrl = 'http://www.rollinonchrome.de/nc/felgen/shop/catalog/category/view/winter.html';
					}
				}
				
				targetUrl = targetUrl + urlParams;
				//---
			}
			window.location.href = targetUrl;
			return false;
		},1000);
	}
	
// #####################################
// # Reifen Filter
// # onChange DropDowns
// #####################################
	function reifenfilter_addfilter(targetElement,urlController) {
/*		//Parameter holen und schreiben
		var el = document.getElementById('reifen_breite');
		el.disabled = true;
		var reifen_breite = el.options[el.selectedIndex].value;
		var el = document.getElementById('reifen_hoehe');
		el.disabled = true;
		var reifen_hoehe = el.options[el.selectedIndex].value;
		var el = document.getElementById('reifen_groesse');
		el.disabled = true;
		var reifen_groesse = el.options[el.selectedIndex].value;
		document.getElementById('adj-nav-params').value = 'reifen_breite=' + reifen_breite;
		document.getElementById('adj-nav-params').value += '&reifen_hoehe=' + reifen_hoehe;
		document.getElementById('adj-nav-params').value += '&reifen_groesse=' + reifen_groesse;
		var urlParameter = document.getElementById('adj-nav-params').value;
		var url = '' + encodeURIComponent('ajax_get' + urlController + '.php?') + urlParameter;
	
		new Ajax.Updater(targetElement,url, {
		  method: 'get',
		  onSuccess: function(transport) {
			var objFahrzeugId = document.getElementById('kfzfilterconf');
			adj_nav_make_request(urlParameter);
		  }
		});
		return false;*/
		jQuery('.adj-nav-progress').show();
		
		setTimeout(function(){
		var breite = jQuery('#reifen_breite').val();
		var hoehe = jQuery('#reifen_hoehe').val();
		var groesse = jQuery('#reifen_groesse').val();

		var targetUrl = '';
		var aktUrl = window.location.href;
		var urlParams = '';

		var didSomeThing = 0;

		if(stristr(aktUrl, "///")) {
			var tmpUrla = aktUrl.split('///');
			var tmpUrlb = tmpUrla[1].split('.html'); 
			aktUrl = tmpUrla[0] + '.html' + tmpUrlb[1];
			didSomeThing = 1;
		} if(stristr(aktUrl, "?")) { 
			aktUrl = aktUrl.split('?');
			//alert(aktUrl[1]);
			// Hier kommt ein Funktionsaufruf um die bestehenden parameter mit den neuen zu verschmelzen
			aktUrl = aktUrl[0];
		        //urlParams = '?filter[reifen_breite]=' + breite + '&filter[modell]=' + kfzfilter2 + '&' + kfzfilter3;
			urlParams = '?filter[reifen_breite]=' + breite + '&filter[reifen_hoehe]=' + hoehe + '&filter[reifen_groesse]=' + groesse;
			targetUrl = aktUrl + urlParams;
			didSomeThing = 1
		}
		if(didSomeThing == 0) {
			urlParams = '?filter[reifen_breite]=' + breite + '&filter[reifen_hoehe]=' + hoehe + '&filter[reifen_groesse]=' + groesse;
			targetUrl = aktUrl + urlParams;
		}
		//jQuery('.adj-nav-progress').css('display','block');
		window.location.href = targetUrl;
		return false;
		},1000);
	}

// #####################################
// # Social Links
// #
// #####################################
	
	 function CreateBookmarkLink() {
		 title = document.title; 
		 url = window.location.href;
			if (window.sidebar) { // Mozilla Firefox Bookmark
				window.sidebar.addPanel(title, url,"");
			} else if( window.external ) { // IE Favorite
				window.external.AddFavorite( url, title); }
			else if(window.opera && window.print) { // Opera Hotlist
				return true; }
		 }
	
// #####################################
// # Komplettrad Tab (Wechseln zu)
// # onClick Komplettrad Reiter (view.phtml)
// #####################################
	function tabChangeKomplettrad(typ) {
		// Fahrzeug gewaehlt aber keine Felge
		if(jQuery('#confFahrzeugId').html() != '') {
			if(jQuery('.simplelistradio:checked').val() == null){
				jQuery('.tabContent').slideUp('fast'); jQuery('#tabContent1').toggle('fast', function() {	var test=1;	});
				jQuery('#tabs UL LI').removeClass('currenttab');
				jQuery('#tabHeader1').addClass('currenttab');
				jQuery('#prodTableTooltip2').show('slow');
			}
		}
		
		// Kein Fahrzeug gewaehlt
		if(jQuery('#confFahrzeugId').html() == '' || jQuery('#confFahrzeugId').html() == 'Kein Filter definiert') {
				jQuery('.tabContent').slideUp('fast'); jQuery('#tabContent1').toggle('fast', function() {	var test=1;	});
				jQuery('#tabs UL LI').removeClass('currenttab');
				jQuery('#tabHeader1').addClass('currenttab');
				jQuery('#prodTableTooltip1').show('slow');
		}
		
		// Everything is fine
		if(jQuery('#confFahrzeugId').innerHTML != '' && jQuery('#confFahrzeugId').html() != 'Kein Filter definiert') {
			if(jQuery('.simplelistradio:checked').val() != null){
				jQuery('#tabs UL LI').removeClass('currenttab');
				jQuery('#tabHeader2').addClass('currenttab');
				jQuery('.taberrors').hide('fast');
				var sku = jQuery('.simplelistradio:checked').val();
				komplettrad(sku,typ)
			}
		}
	};
	
// #####################################
// # Komplettrad Tab holen
// # onClick Komplettrad Reiter (view.phtml)
// #####################################
	function komplettrad(sku,typ) {
		jQuery('#tabContent2').html('<center><img src="/magento/skin/frontend/default/default/images/adj-nav-progress.gif"></center>');
		jQuery('.tabContent').slideUp('fast'); jQuery('#tabContent2').toggle('fast', function() {
			jQuery.ajax({
				url: "ajax_getkomplettrad.php?sku="+sku+"&komplettradtyp="+typ+"&lang="+jQuery('#storeViewId').val(),
				method: 'get',
				success: function(transport){
					jQuery('#tabContent2').html(transport);
				}
			});
		});
	}

// #####################################
// # Komplettrad in Warenkorb legen
// # onSubmit Order Button
// #####################################
	
	function orderKomplettRad(ids) {
		//SKUS Splitten
		var idArray = ids.split(":::");
		//SKU Order Ajax
		jQuery('#tabContent2').html('<center><img src="/magento/skin/frontend/default/default/images/adj-nav-progress.gif"></center>');
		var groupedId = jQuery('#groupedId').val();

		var enLink = '';
		
		if(stristr(window.location.href,'/en/')) { enLink = 'en/'; }
		
		jQuery.ajax({ url: "http://www.rollinonchrome.de/" + enLink + "warenkorb/shop/checkout/cart/add?product="+idArray[0]+"&qty=4", context: document.body, success: function(){ 
			jQuery.ajax({ url: "http://www.rollinonchrome.de/" + enLink + "warenkorb/shop/checkout/cart/add?product="+idArray[1]+"&qty=4", context: document.body, success: function(){ 
				jQuery.ajax({ url: "http://www.rollinonchrome.de/" + enLink + "warenkorb/shop/checkout/cart/add?product=84853&qty=4", context: document.body, success: function(){ 
					//MiniCart 
					var f = document.getElementById('minicart_iframe');
					window.location.href ='/' + enLink + 'warenkorb.html';
					if(stristr(window.location.href,'/en/')) {
						jQuery('#tabContent2').html('<center>Wheels and tires successfully added to your cart. You will be redirected now.</center>');
					} else {
						jQuery('#tabContent2').html('<center>Ihr Komplettrad wurde in den Warenkorb gelegt. Sie werden weitergeleitet.</center>');
					}
					
				}});
			}});
		}});	
	}
	
// #####################################
// # Anfragen Tab Ausklappen und Daten vorbelegen
// # onClick Anfragen Reiter (view.phtml)
// #####################################
	function tabChangeAnfrage() {
			if(jQuery('.simplelistradio:checked').val() == null){
				jQuery('.tabContent').slideUp('fast');
				jQuery('#tabContent1').toggle('fast');
				jQuery('#tabs UL LI').removeClass('currenttab');
				jQuery('#tabHeader1').addClass('currenttab');
				jQuery('#prodTableTooltip2').show('slow');
			} else {
				
				var sku = jQuery('.simplelistradio:checked').val();
				var itemDetails = jQuery('.simplelistradio:checked').parent().attr('class');
				
				jQuery('#uid6').val(itemDetails);
				
				jQuery('#uid7').val(jQuery('#kfzauswahl').html());
				jQuery('.tabContent').slideUp('fast'); jQuery('.AnfrageTab').toggle('fast', function() {
					jQuery('#tabs UL LI').removeClass('currenttab');
					jQuery('.anfragetabheader').addClass('currenttab');
				});
			}
	}

// #####################################
// # Filter zuruecksetzen
// # onClick Filter loeschen ()
// #####################################
function clearSession() {
	var aktUrl = window.location.href;
	
	jQuery('#clear_all_eventlink').html('Seite wird neu geladen');
	jQuery.ajax({
		url: "ajax_clearfilter.php",
		method : "get",
		success: function(transport){
			jQuery.ajax({
				url: "/magento/index.php/adjnav/ajax/clear",
				method : "get",
				success: function(transport){				
					if(stristr(aktUrl, "?")) { 
						aktUrl = aktUrl.split('?');
						aktUrl = aktUrl[0];
					}
					if(stristr(aktUrl, "///")) {
						aktUrl = aktUrl.split("///");
	                                            aktUrl = aktUrl[0] + '.html'
					}
					// Eventuelle Pagination abfangen
					if(stristr(aktUrl,'/page/bro/')) {
						aktUrl = aktUrl.split("/page/bro/");
						aktUrl = aktUrl[0] + '.html';
					}

					window.location.href = aktUrl;
				}
			});
		}
	});
};

/* Alles was passieren soll nachdem DOM geladen ist */
jQuery(document).ready(function()
{
	var newHref = 'http://www.facebook.com/sharer.php?u=' + window.location.href + '&t=Rollin On Chrome';
	jQuery('#facLink A').attr("href",str_replace('http://www.rollin','www.rollin',encodeURI(newHref)));
	newHref = 'http://twitter.com/?status=' + window.location.href;
	jQuery('#tweLink A').attr("href",str_replace('http://www.rollin','www.rollin',encodeURI(newHref)));
	jQuery('#filtergalactionbar').click(function() {
		jQuery('#filtergaltogglebar').slideToggle('fast');
	});	
	
	jQuery('SPAN.topnavitem').mouseenter(function(){	jQuery(this).stop().animate({backgroundPosition: "0 -40px"},{duration: 150});});
	jQuery('SPAN.topnavitem').mouseleave(function(){	jQuery(this).stop().animate({backgroundPosition: "0 0"},{duration: 150});});

	jQuery('.pager .pages li a').click(function() {
		jQuery('.adj-nav-progress').css('display','block');
	});
	
	jQuery('.tx_tipafriend_url').click(function() {
	    jQuery('.tx_tipafriend_formfield').slideToggle('fast');
	});
	
	// #####################################
	// # DCN Filterleiste
	// # onClick Events
	// #####################################
	
	/*jQuery('#filterset .title').bind("click",function(){
	    jQuery(this).parent().find('.item').slideToggle('fast');
	});*/
	
	// Vorbereiten
	jQuery('#infinite .items').css("left","0px");
	
	jQuery('a.left').click(function() {
		if(countItems('#infinite .items A') > 5){
			// Wenn nicht schon ganz links
			if(jQuery('.items').css("left") != 0 + "px") {
				jQuery('.items').animate({left: '+=369'},'fast','linear');
			}
		}
	});

	jQuery('a.right').click(function() {
		if(countItems('#infinite .items A') > 5){
			var aktLeft = str_replace('px','',jQuery('.items').css("left"));
			if(aktLeft != ((countItems('#infinite .items A') * 123) - 369) * -1) {
				jQuery('.items').animate({left: '-=369'},'fast','linear');
	        }
		} else {
			jQuery('.items').css("left","0px");
		}
	});

	/* jQuery("#infinite").scrollable({ vertical: false, circular: false, easing: 'swing', keyboard: false, mousewheel: false, prev: '.left', next: '.right'}); */
	
	// #####################################
	// # Flowplayer initialisieren
	// # onLoad()
	// #####################################
	
	flowplayer(".myPlayer", "/fileadmin/templates/js/flowplayer-3.2.3.swf", {
		 clip: {
		 autoPlay: true,
		 scaling: "fit",
		 loop: false,
		 autoBuffering: false,
		 fadeInSpeed: 2000,
		 fadeOutSpeed: 2000
		 },
		 canvas: {
		 background: '#000000',
		 backgroundGradient: 'none'
		 },
		 plugins: {
		 controls: {
		 autoHide: "always",
		 play: true,
		 volume: true,
		 mute: true,
		 time: true,
		 stop: false,
		 playlist: false,
		 fullscreen: true,
		 scrubber: true,
		 width: '98%',
		 //width: '300px',
		 //height: '300px',
		 bottom: 5,
		 left: '50%',
		 borderRadius: 15
		 }
		 }
		});
	
	// #####################################
	// # Galerie vorgaukeln
	// # onLoad()
	// #####################################
	
		var oldUrl = '';
		var newUrl = '';
	
		jQuery('.secondImage IMG').mouseenter(function() {
		    oldUrl = jQuery('.product-image-zoom IMG').attr('src');
		    newUrl = jQuery('.secondImage IMG').attr('src');
		    jQuery('.product-image-zoom IMG').attr('src',newUrl);
		    jQuery('.secondImage IMG').attr('src',oldUrl);
		});
		jQuery('.secondImage IMG').mouseleave(function() {
		    jQuery('.product-image-zoom IMG').attr('src',oldUrl);
		    jQuery('.secondImage IMG').attr('src',newUrl);
		});
	
});

