/**
 * (C) 2002 - 2009 SPLINELAB www.splinelab.de
 *
 * $Id: sl_functions.js 61 2010-01-20 12:46:59Z 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 helpWindow(content)
{
	var iTop  = (screen.height - 250) / 2;
	var iLeft = (screen.width  - 400) / 2;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + 400;
	sOptions += ",height=" + 250;
	sOptions += ",resizable=yes";
	sOptions += ",scrollbars=" + "yes";
	sOptions += ",left=" + iLeft;
	sOptions += ",top=" + iTop;

	var HelpWindow = window.open("help.php?id="+content, "Hilfe", sOptions);
	HelpWindow.focus();
	return false;
}*/

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)
{

    /*hideShowLayer('', 'formsubmitlayer');*/

    //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;
}

function countText(form, element, elementprint, max)
{
    //document.forms[form].elements[elementprint].disabled = "true";
    if (document.forms[form].elements[element].value.length > max) {
        document.forms[form].elements[element].value = document.forms[form].elements[element].value.substring(0, max);
    } else {
        document.forms[form].elements[elementprint].value = max - document.forms[form].elements[element].value.length;
    }
}

function hideShowLayer(hide, show)
{
    //ie
    if (document.all != null) {
        var mydiv = document.all.tags("div");
        for (i=0; i<(mydiv.length); i++) {
            if (mydiv[i]) {
                var mydivname = mydiv[i].id;
            } else {
                var mydivname = '';
            }
            if (mydivname.search(hide) != -1 && hide != '') {
                document.all[mydivname].style.visibility = 'hidden';
            }
            if (mydivname.search(show) != -1 && show != '') {
                document.all[mydivname].style.visibility = 'visible';
            }
        }
    //ns
    } else if (document.layers) {
        for (i=0; i<(document.layers.length); i++) {
            if (document.layers[i].name.search(hide) != -1 && hide != '') {
                document.layers[i].visibility = 'hide';
            }
            if (document.layers[i].name.search(show) != -1 && show != '') {
                document.layers[i].visibility = 'show';
            }
        }
    //mz
    } else if (document.getElementById) {
        var mydiv = document.getElementsByTagName("div");
        for (i=0; i<(mydiv.length); i++) {
            if (mydiv[i]) {
                var mydivname = mydiv[i].id;
            } else {
                var mydivname = '';
            }
            if (mydivname.search(hide) != -1 && hide != '') {
                document.getElementById(mydivname).style.visibility = 'hidden';
            }
            if (mydivname.search(show) != -1 && show != '') {
                document.getElementById(mydivname).style.visibility = 'visible';
            }
        }
    }
}

function htmlPopUp(f, width, height)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "no";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow = window.open(f, "in_com", sOptions)
	oMyWindow.focus();
}

function htmlPopUp(f, width, height, name)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	if (name == null || name == '') {
	    name = "in_com";
	}

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "no";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow2 = window.open(f, name, sOptions)
	oMyWindow2.focus();
}

function utilsPopUp(f, width, height)
{
	var iTop  = (screen.height - height) / 2 ;
	var iLeft = (screen.width  - width) / 2 ;

	var sOptions = "toolbar=no";
	sOptions += ",width=" + width;
	sOptions += ",height=" + height;
	sOptions += ",resizable=no";
	sOptions += ",scrollbars=" + "yes";
	sOptions += ",left=" + iLeft ;
	sOptions += ",top=" + iTop ;

	var oMyWindow = window.open(f, "in_com", sOptions)
	oMyWindow.focus();
}

/**
 * Text eines Tags ändern
 *
 * @param string element    der Name (id) des Tags
 * @param string html       Der Text
 * @return void
 */
function alterHtml(element, html)
{
    //IE 4+
    if (document.all != null) {
        document.all[element].innerHTML = html;
    //NS 6+
    } else if (document.getElementById) {
        rng = document.createRange();
        el = document.getElementById(element);
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(html);
        while (el.hasChildNodes())
            el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
    }
}


function openPlayerWindow(link)
{

    htmlPopUp(link, 167, 107, 'daPlaya');
    window.focus();
}





/** ------------------------------------------------------------------------------- **/
/** @TODO checken, was an funktionen über dieser Zeile überhaupt noch benötigt wird **/
/** ------------------------------------------------------------------------------- **/

/** 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;

document.addEvent('domready', function() {

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

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


	panel.set('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.setStyle('left', searchInput.getPosition().x);
	panel.setStyle('top', searchInput.getPosition().y + searchInput.getSize().y);

	searchInput.addEvent('keyup', function(event) {
		if (event.key == 'esc') {
			removeSearch();
			return;
		}
		displaySearch();
	});
	searchInput.addEvent('blur', function() {
		hideSearch();
	});
	searchInput.addEvent('focus', function() {
		displaySearch();
	});
	searchInput.addEvent('click', function() {
		displaySearch();
	});

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

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


	var lastWord = '';
	var lastOption = 'all';

	if (Cookie.read('sl_qsOpt')) {
		switch (Cookie.read('sl_qsOpt')) {
			case 'men':
				$('soMen').checked = true;
				lastOption = 'men';
			break;
			case 'women':
				$('soWomen').checked = true;
				lastOption = 'women';
			break;
			case 'shoes':
				$('soShoes').checked = true;
				lastOption = 'shoes';
			break;
		}
	}

	function displaySearch() {

		clearTimeout(searchTimer);

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

		searchRequest();
	}



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

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

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

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

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

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

		searchInput.addClass('autocompleter-loading');
		var searchRequest = new Request({
			url: ajaxSearchURL,
			data: 'value='+escape(word)+'&option='+option,
			method: 'get',
			link: 'cancel',
			async: true,
			evalScripts: true,
			onSuccess: function(html) {
				$('searchPanelContent').set('html', html);
				searchInput.removeClass('autocompleter-loading');
				lastWord = word;
				lastOption = option;
			}
		}).send();
	}





});


function qsPrevNext(step, el) {

	clearTimeout(searchTimer);

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

	$('quicksearch').addClass('autocompleter-loading');
	var searchRequest = new Request({
		url: ajaxSearchURL,
		data: 'value='+escape($('quicksearch').value)+'&option='+radioWert(document.searchOptionForm.searchOption)+'&page='+(qsActivePage+step),
		method: 'get',
		link: 'cancel',
		async: true,
		evalScripts: true,
		onSuccess: function(html) {
			$('qsPrd').set('html', html);
			$('quicksearch').removeClass('autocompleter-loading');

			$('qsPages').set('html', (qsActivePage+1)+'/'+qsMaxPage);
		}
	}).send();

	el.blur();
}





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

function hidecntitems(el) {
	cntItem = false;
	
	el = $(el); // fuck IE
	
	if (el.getProperty('orgtext'))
		el.set('html', el.getProperty('orgtext'));
}
var cntItem = false;
function cntitems(data, el) {

    el = $(el); // fuck IE

	cntItem = el;
	
	if (!el.getProperty('orgtext'))
		el.setProperty('orgtext', el.get('html'));
	
	if (el.getProperty('cnt')) {
		el.set('html', el.getProperty('orgtext')+' ('+el.getProperty('cnt')+')');
		return;
	}

	el.addClass('cntitems-loading');
	var cntRequest = new Request({
		url: ajaxCntItemsURL,
		data: data,
		method: 'get',
		link: 'ignore',
		async: true,
		evalScripts: false,
		elm: el,
		onSuccess: function(html) {
			this.options.elm.removeClass('cntitems-loading');

		    this.options.elm.setProperty('cnt', html);
			if (this.options.elm == cntItem)
				this.options.elm.set('html', this.options.elm.getProperty('orgtext')+' ('+html+')');
		}
	}).send();
}








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


window.addEvent('domready', function() {
		SqueezeBox.assign($$('a.helplink'), {
			size: {x:400,y:400},
			parse: 'rev'
		});		
});








/*********************************
 * Bubble in Produktlisten
 *********************************/

var bubbleInTimer = false;
var bubbleOutTimer = false;

var bubbleLastEl = false;
var bubbleLastNo = false;

var bubbleVisible = false;

function hideBubble() {
    if (!$('bubble')) return;
		
    bubbleVisible = false;
	clearTimeout(bubbleInTimer);
	bubbleOutTimer = setTimeout('removeBubble()', 500);
}

function removeBubble() {
	clearTimeout(bubbleOutTimer);
	$('bubble').setStyle('display','none');
	bubbleVisible = false;
}


var bubbleMouseEvent = null;
function displayBubble(el, no, event) {
	
	if (!$('bubble')) return;
	
	el = $(el); // fuck IE
	
    bubbleMouseEvent = new Event(event);
	
	el.removeEvent('mousemove');
	el.addEvent('mousemove', function(event) {
		bubbleMouseEvent = new Event(event);
		if (bubbleVisible)
				showBubble();
	});
		
	if (el == bubbleLastEl && no == bubbleLastNo && $('bubble').getStyle('display')=='block') return;

	bubbleLastEl = el;
	bubbleLastNo = no;
	bubbleInTimer = setTimeout(showBubble, 500);
}

var lastBubbleRequest = null;
function showBubble(/*el, no*/) {
	el = bubbleLastEl;
	no = bubbleLastNo;
	clearTimeout(bubbleInTimer);

	if (!el) return;
	if (!no) return;

	clearTimeout(bubbleOutTimer);

	var bubbleWidth = 320;
	var bubbleHeight = 172;

	var size = window.getSize();
	var windowWidth = size.x;
	var windowHeight = size.y;
	
	var scroll = window.getScroll();
	
    /*var pel = ($('prliOuterWrapMini')) ? $('prliOuterWrapMini') : $('prliOuterWrap');

    var pelPos = pel.getPosition();

	var pos = el.getPosition(pel);
	var top = pos.y + pelPos.y;
	var left = pos.x + pelPos.x; */ /* + $('prliOuterWrap').scrollLeft; */
    var top = bubbleMouseEvent.page.y;
    var left = bubbleMouseEvent.page.x;

	var bubble = $('bubble');
	if (!bubble) return;
	var content = $('bubbleContent');

	offsetX = 10;
	offsetY = 10;
	
	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
	
	image = (IE6) ? 'url(templates/default/images/v2/bubble_lt.gif)' : 'url(templates/default/images/v2/bubble_lt.png)';
	contentX = 24;

		//  rechts oben
	if (left+offsetX+bubbleWidth-scroll.x > windowWidth) {
		contentX = 8;
		image = (IE6) ? 'url(templates/default/images/v2/bubble_rt.gif)' : 'url(templates/default/images/v2/bubble_rt.png)';
		offsetX = -1 * bubbleWidth + offsetX;
				// rechts unten
		if (top+offsetY+bubbleHeight-scroll.y > windowHeight && top + -1 * bubbleHeight + offsetY > 0) {
			image = (IE6) ? 'url(templates/default/images/v2/bubble_rb.gif)' : 'url(templates/default/images/v2/bubble_rb.png)';
			offsetY = -1 * bubbleHeight - offsetY;
		}
	}
		// links unten
	if (top+offsetY+bubbleHeight-scroll.y > windowHeight && top + -1 * bubbleHeight + offsetY > 0) {
		image = (IE6) ? 'url(templates/default/images/v2/bubble_lb.gif)' : 'url(templates/default/images/v2/bubble_lb.png)';
		offsetY = -1 * bubbleHeight - offsetY;
				//  rechts oben
		if (left+offsetX+bubbleWidth-scroll.x > windowWidth) {
			contentX = 8;
			image = (IE6) ? 'url(templates/default/images/v2/bubble_rt.gif)' : 'url(templates/default/images/v2/bubble_rt.png)';
			offsetX = -1 * bubbleWidth + offsetX;
		}	
	}

    bubble.setStyle('position', 'absolute');
	bubble.setStyle('background-image',image);
	bubble.setStyle('left', left+offsetX);
	bubble.setStyle('top', top+offsetY);
	bubble.setStyle('display', 'block');
	
	bubbleVisible = true;

	bubble.removeEvents();
	bubble.addEvent('mouseover', function() {
		clearTimeout(bubbleOutTimer);
	});
	bubble.addEvent('mouseout', function() {
		hideBubble();
	});

	content.setStyle('left', contentX);

    if (lastBubbleRequest != no) {
		content.set('html', '<div id="bubbleContentLoader"><img src="templates/default/images/spinner.gif" /></div>');
	
		var detailsRequest = new Request({
			url: ajaxDetailsURL,
			data: 'no='+escape(no),
			method: 'get',
			link: 'cancel',
			async: false,
			evalScripts: true,
			onSuccess: function(html) {
				content.set('html', html);
			}
		}).send();
		
		lastBubbleRequest = no;
	}

}
