/**
 * (C) 2002 - 2010 SPLINELAB www.splinelab.de
 *
 * $Id: sl_functions.js 121 2010-05-20 09:18:49Z mirsch $
 */


function newImage(arg)
{
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages()
{
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}


function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

var submitDisabled = false;

function disableSubmit(form, element)
{

    //document.forms[form].elements[element].disabled = "true";
    // knopf abschalten können wir nicht, da sonst der wert nicht mehr
    // mitgeschickt wird und wir im script eventuell nicht mehr unterscheiden
    // können, welcher knopf gedrückt wurde - also dieser kleine Trick:
    if (submitDisabled) {
        alert('Bitte nicht mehrfach abschicken!');
        return false;
    }
    submitDisabled = true;
	return true;
}



/** frame breaker **/
if(top.frames.length > 0)
      top.location.href=self.location;



/** ------------------------------------------------------------------------------- **/
/** generelle Funktionen						                             	    **/
/** ------------------------------------------------------------------------------- **/
// von http://www.dcljs.de/faq/antwort.php?Antwort=forms_radioselect
function radioWert(rObj) {
	if (!rObj) return ''; // by me ;)

    for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return false;
}











/** ------------------------------------------------------------------------------- **/
/** Searchpanel									                                    **/
/** ------------------------------------------------------------------------------- **/
var searchTimer = false;
var searchInput = false;
var panel = false;

$(document).ready(function(){

	searchInput = $('#quicksearch');
	if (!searchInput) return;

	panel = $('#searchpanel');
	if (!panel) return;


	panel.html('<div id="searchPanelNav"><form name="searchOptionForm">Suche in:<input type="radio" name="searchOption" value="all" checked="checked" id="soAll" /><span class="searchPanelSel">Alles</span><input type="radio" name="searchOption" value="men" id="soMen" /><span class="searchPanelSel">Men</span><input type="radio" name="searchOption" value="women" id="soWomen" /><span class="searchPanelSel">Women</span><input type="radio" name="searchOption" value="shoes" id="soShoes" /><span class="searchPanelSel">Shoes</span></form></div><div id="searchPanelContent"></div>');

	panel.css('left', searchInput.offset().left);
	panel.css('top', searchInput.offset().top + searchInput.height());

	searchInput.keyup(function(event) {		
		if (event.keyCode == 27) { // esc
			removeSearch();
			return;
		}
		displaySearch();
	});
	searchInput.blur(function() {
		hideSearch();
	});
	searchInput.focus(function() {
		displaySearch();
	});
	searchInput.click(function() {
		displaySearch();
	});

	panel.mouseover(function() {
		clearTimeout(searchTimer);
	});
	panel.mouseout(function() {
		hideSearch();
	});

	$('#soAll').click(searchOptionChange);
	$('#soMen').click(searchOptionChange);
	$('#soWomen').click(searchOptionChange);
	$('#soShoes').click(searchOptionChange);


	var lastWord = '';
	var lastOption = 'all';	
	if ($.cookie('sl_qsOpt')) {
		switch ($.cookie('sl_qsOpt')) {
			case 'men':
				$('#soMen').attr('checked', true);
				lastOption = 'men';
			break;
			case 'women':
				$('#soWomen').attr('checked', true);
				lastOption = 'women';
			break;
			case 'shoes':
				$('#soShoes').attr('checked', true);
				lastOption = 'shoes';
			break;
		}
	}

	function displaySearch() {

		clearTimeout(searchTimer);

		var word = searchInput.val();
		
		if (word == '') {
			panel.css('display','none');
			return;
		}
		panel.css('display','block');

		searchRequest();
	}



	function removeSearch() {
		clearTimeout(searchTimer);
		panel.css('display','none');
	}

	function hideSearch() {
		searchTimer = setTimeout(removeSearch, 300);
	}

	function searchOptionChange() {
		clearTimeout(searchTimer);
		$.cookie('sl_qsOpt', radioWert(document.searchOptionForm.searchOption));
		searchRequest();
	}

	function searchRequest() {
		var word = searchInput.val();

		var option = 'all';
		if (document.searchOptionForm.searchOption)
			option = radioWert(document.searchOptionForm.searchOption);

		if (word == lastWord && option == lastOption) return;

		searchInput.addClass('autocompleter-loading');

		$('#searchPanelContent').load(ajaxSearchURL, 'value='+escape(word)+'&option='+option, function(response, status, xhr) {
			searchInput.removeClass('autocompleter-loading');
			lastWord = word;
			lastOption = option;
		});
	}





});


function qsPrevNext(step, el) {

	clearTimeout(searchTimer);

	if (qsActivePage+step < 0) return;
	if (qsActivePage+step >= qsMaxPage) return;

	$('#quicksearch').addClass('autocompleter-loading');
	
	$('#qsPrd').load(ajaxSearchURL, 'value='+escape($('#quicksearch').val())+'&option='+radioWert(document.searchOptionForm.searchOption)+'&page='+(qsActivePage+step), function(response, status, xhr) {
		$('#quicksearch').removeClass('autocompleter-loading');
		$('#qsPages').html((qsActivePage+1)+'/'+qsMaxPage);
	});

	el.blur();
}





/** ------------------------------------------------------------------------------- **/
/** counter in linker spalte							                            **/
/** ------------------------------------------------------------------------------- **/

function hidecntitems(el) {
	cntItem = false;
	
	el = $(el);
	
	if (el.attr('orgtext'))
		el.html(el.attr('orgtext'));
}
var cntItem = false;
function cntitems(data, el) {

    el = $(el);

	cntItem = el;
	
	if (!el.attr('orgtext'))
		el.attr('orgtext', el.html());
	
	if (el.attr('cnt')) {
		el.html(el.attr('orgtext')+' ('+el.attr('cnt')+')');
		return;
	}

	el.addClass('cntitems-loading');

	$.get(ajaxCntItemsURL, data, function(html) {
		el.removeClass('cntitems-loading');
		el.attr('cnt', html);
		if (el == cntItem)
			el.html(el.attr('orgtext')+' ('+html+')');
	});

}








/******************************
 * Help Links
 *****************************/


$(document).ready(function(){

		$('a.helplink,area.helplink').fancybox({
			'width':400,
			'height':400,
			'autoScale':false,
			'autoDimensions':false,
			'titleShow':false
		});
		
		//new SmoothScroll({ duration:900 }); // sometimes mootools is much shorter than jQuery :(
		$('a[href*=#]').click(function() {	
			if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname && location.search == this.search) {
				var $target = $(this.hash);
				$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
				if ($target.length) {
					var targetOffset = $target.offset().top;
					$('html,body').animate({scrollTop: targetOffset}, 900);
					return false;
				}
			}
		});
});








/*********************************
 * Bubble und Overlay in Produktlisten
 *********************************/
var overlayCache = {};
var overlayItem = 0;
var overlayItems = [];
var activeOverlay = false;
var overlayIsOver = false;
var lastOverlayItems = {};
function displayOverlay(el, no) {
	
	if (typeof(ajaxOverlayURL) == "undefined") return;	
	
	el = $(el);
	
	if (overlayIsOver == el) return;
	
	overlayIsOver = el;
	
	var pel = el.parents('.prliSItem');
	var overlay = pel.children('.prliSOverlay2');
	overlay.css('display', 'block');
	overlay.mouseleave(function() {
		$(this).css('display', 'none');
		overlayIsOver = false;
		$(this).unbind('mouseleave');
		$(this).unbind('click');
		// reset image und link
		eval(overlayCache[no]);
		activeOverlay = pel;
		updateOverlay();
	});
	
	if (overlayCache[no]) {
		eval(overlayCache[no]);
		if (lastOverlayItems[pel])
			overlayItem = lastOverlayItems[pel];
		activeOverlay = pel;
		updateOverlay();
	} else {	
		$.get(ajaxOverlayURL, 'no='+escape(no), function(html) {
			eval(html);
			overlayCache[no] = html;
			activeOverlay = pel;
			updateOverlay();
		});
	}
}

function updateOverlay() {
	
	if (!overlayItems[overlayItem]) return;
	
	var pel = activeOverlay;
	
	var html = '<a href="'+overlayItems[overlayItem][0]+'" class="prliOverlayLink"></a><a href="'+overlayItems[overlayItem][0]+'" onmouseover="infoOverlay(\''+overlayItems[overlayItem][2]+'\', this, event);" class="prliOverlayInfo">i</a>';
	
	if (overlayItems.length > 1) {
		img = pel.find('img.prli');
		img.attr('src', overlayItems[overlayItem][1]);
		html += '<a href="javascript:nextOverlay();" class="prliOverlayNext">+</a><a href="javascript:prevOverlay();" class="prliOverlayPrev">-</a>';
	}
	
	var overlay = pel.children('.prliSOverlay2');
	overlay.html(html);
}

function nextOverlay() {
	overlayItem++;
	if (overlayItem >= overlayItems.length) overlayItem = 0;
	lastOverlayItems[activeOverlay] = overlayItem;
	updateOverlay();
}
function prevOverlay() {
	overlayItem--;
	if (overlayItem < 0 ) overlayItem = overlayItems.length - 1;
	lastOverlayItems[activeOverlay] = overlayItem;
	updateOverlay();
}

var infoOverlayCache = {};
function infoOverlay(no, el, ev) {
	if (!$('#bubble')) return;
	
	el = $(el);
	
	var bubble = $('#bubble');
	var content = $('#bubbleContent');
	
	el.mouseleave(function() {
		bubble.css('display','none');
		el.unbind('mouseleave');
	});
	
	
	var x = ev.clientX;
	var y = ev.clientY - 140;
	
	var windowWidth = $(window).width();
	var windowHeight = $(window).height();
	var scrollX = $(document).scrollLeft();
	var scrollY = $(document).scrollTop();
	
	// das ist noch nicht wirklich ausgereift ;)
	
	x += scrollX;
	
	if (x + 20 + 330 > windowWidth ) {
		x = x - 330 - 20;
	} else {
		x = x + 20;	
	}	
	
	y += scrollY;
	
	bubble.css('display', 'block');
	bubble.css('left', x);
	bubble.css('top', y);
	
	if (infoOverlayCache[no]) {
		content.html(infoOverlayCache[no]);
	} else {	
		content.html('<div id="bubbleContentLoader"><img src="templates/default/images/spinner.gif" /></div>');
		$.get(ajaxDetailsURL, 'no='+escape(no), function(html) {
			content.html(html);
			infoOverlayCache[no] = html;
		});
	}
}


/***************************************************
 * andere Produkte in Details vergrößern
 ***************************************************/
function showBigImage(src) {
	
	if (!$('#bigImage')) return;
	
	$('#bigImage').html('<img src="'+src+'" alt="" title="" />');
	$('#bigImage').css('display', 'block');
}

function hideBigImage() {
	$('#bigImage').css('display', 'none');
}


function hideFlashAnim() {
	if (!$('.pkAnim')) return;
	$('.pkAnim').css('display','none');
	$('.pkImage').css('display','block');
}
function showFlashAnim() {
	if (!$('.pkAnim')) return;
	$('.pkAnim').css('display','block');
	$('.pkImage').css('display','none');
}