var init = function()
{
    if (iusConfig.swf) {
        for (var i in iusConfig.swf) {
            if (document.getElementById(i)) {
                var version = ( iusConfig.swf[ i ].version ) ? iusConfig.swf[ i ].version : "8.0.0";
                if ( !iusConfig.swf[i].params ) { iusConfig.swf[ i ].params = {}; }
                if ( !iusConfig.swf[i].params.wmode ) { iusConfig.swf[ i ].params.wmode = "window"; }
                if ( !iusConfig.swf[i].params.menu ) { iusConfig.swf[ i ].params.menu = "false"; }

                swfobject.embedSWF
                (
                    iusConfig.swf[i].file,
                    i,
                    iusConfig.swf[i].width,
                    iusConfig.swf[i].height,
                    version,
                    "/media/static/js/swfobject/expressInstall.swf",
                    iusConfig.swf[i].flashvars,
                    iusConfig.swf[i].params,
                    iusConfig.swf[i].attributes
                );

                if (typeof iusConfig.swf[ i ].fit != undefined
                	&& iusConfig.swf[ i ].fit == true
                ) {
                	swffit.fit(i , iusConfig.swf[i].width, iusConfig.swf[i].height);
                }
                
/*
                document.getElementsByTagName( "body" )[ 0 ].insertBefore( document.getElementById( i ), document.getElementById( "page-outer" ) );
                swffit.fit( i, "100%", iusConfig.swf[ i ].height );
*/
            }
            //console.debug( iusConfig.swf[ i ].file );
        }
    }


    inputFieldFocus ( 'spielesuche', '', 'Spieletitel, Publisher, etc...' );
    inputFieldFocus ( 'spielesucheservice', '', 'Spieletitel, Publisher, etc...' );
    onclickToggle( 'confirm_participation', 'eligibility-requirements', 'visible', 'hidden' );
    Marketplace.init();

    if (window.location.href.split('/')[4] == 'mcmedia') {
        /*alert ("Du befindest dich auf der Vorabversion von McMEDIA \n Diese Nachricht kann in der default.js deaktiviert werden");*/
        inputFieldFocus('newsletteremail', '', 'Deine E-Mail Adresse');
        inputFieldFocus('email', '', 'Deine E-Mail Adresse');
    } else {
        inputFieldFocus('email', '', 'Ihre E-Mail Adresse');
        inputFieldFocus('newsletteremail', '', 'Ihre E-Mail Adresse');
    }
    
    if (window.location.href.split('/')[3] == 'en') {
        inputFieldFocus('footer-city', '', 'Put in post code or village/town');
        inputFieldFocus('city', '', 'Put in post code or village/town');
        inputFieldFocus('nav-q', '', 'Post code or village/town, product name, catalogue number, manufacturer, ...');
        inputFieldFocus('q', '', 'Post code or village/town, product name, catalogue number, manufacturer, ...');
    } else {
        inputFieldFocus('footer-city', '', 'PLZ oder Ort eingeben');
        if(typeof $ == 'function') {
            if ($('body.gamestore_request').length == 0) {
                inputFieldFocus ('city', '', 'PLZ oder Ort eingeben');
            }
        }
        inputFieldFocus('nav-q', '', 'PLZ oder Ort, Produktname, Katalognummer, Hersteller, ...');
        inputFieldFocus('q', '', 'PLZ oder Ort, Produktname, Katalognummer, Hersteller, ...');
    }    
    
    
    

    /*var gamestores = YAHOO.util.Dom.getElementsByClassName ( 'gamestoresstatic' )[0];
    alert (gamestores);
    gamestores.style.visibility = 'hidden';
    gamestores.style.display = 'none';*/

    
    showevents();
    ProductTextExtender.detect();
    NavigationBrandSlider.init();
    GamestoreRequest.init();
    
    var sortableTables = $('table.sortable');
    

	$.tablesorter.addParser({
		id: "germanDate",
		is: function(s) {
            return false;
		},
		format: function(s,table) {
            var months = new Array();
            months[1] = 'Januar';
            months[2] = 'Februar';
            months[3] = 'M'+unescape('%E4')+'rz';
            months[4] = 'April';
            months[5] = 'Mai';
            months[6] = 'Juni';
            months[7] = 'Juli';
            months[8] = 'August';
            months[9] = 'September';
            months[10] = 'Oktober';
            months[11] = 'November';
            months[12] = 'Dezember';
            
            for (var i =1; i <= months.length; ++i) {
                var r = months[i];
                s = s.replace(r, i+'.');
            }

            s = s.replace(/ /g, '');            
            s = s.replace(/\.0/g, '.');    
			s = s.replace(/\-/g,"/");
            s = s.replace(/(\d{1,2})[\.](\d{1,2})[\.](\d{4})/, "$3/$2/$1");

			return $.tablesorter.formatFloat(new Date(s).getTime());
		},
		type: "numeric"
	});

    $.tablesorter.addParser({ 
		id: "gameTitle",
		is: function(s) {
            return false; 
        }, 
        format: function(s) { 
            x = $(s).find('a');
            if (x.length > 0) {
                s = $(x[0]).html();
            } else {
                s = strip_tags(s, '');
            }
            
			return $.trim(s.toLowerCase());
        }, 
        type: 'text' 
    }); 
    
    $.tablesorter.addParser({ 
		id: "gameUSK",
		is: function(s) {
            return false; 
        }, 
        format: function(s) { 
            
            if (s == '-' || s == '') {
                s = -1;
            }
            return $.tablesorter.formatFloat(s);

        }, 
        type: 'numeric' 
    }); 

    if (sortableTables.length > 0) {
        for (var i = 0; i < sortableTables.length; ++i) {
            $(sortableTables[i]).tablesorter({
                headers: {
                   0: {
                        sorter: 'gameTitle'
                   },
                   2: {
                        sorter: 'gameUSK'
                   },
                   4: {
                        sorter: 'germanDate'
                   }
                }
            }); 
        }
    }
    
    if ($('#country').length > 0) {
        $($('select.beautyfied')[0]).selectbox();
    }
    
    if ($('.dependency-checkboxes').length > 0) {
        DependencyCheckboxes.init();
    }
    
    if($('.switch-dependency').length > 0) {
        SwitchDependency.init();
    }
};

function strip_tags (str, allowed_tags) {
    var key = '', allowed = false;
    var matches = [];    var allowed_array = [];
    var allowed_tag = '';
    var i = 0;
    var k = '';
    var html = ''; 
    var replacer = function (search, replace, str) {
        return str.split(search).join(replace);
    };
     // Build allowes tags associative array
    if (allowed_tags) {
        allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi);
    }
     str += '';
 
    // Match tags
    matches = str.match(/(<\/?[\S][^>]*>)/gi);
     // Go through all HTML tags
    for (key in matches) {
        if (isNaN(key)) {
            // IE7 Hack
            continue;        }
 
        // Save HTML tag
        html = matches[key].toString();
         // Is tag not in allowed list? Remove from str!
        allowed = false;
 
        // Go through all allowed tags
        for (k in allowed_array) {            // Init
            allowed_tag = allowed_array[k];
            i = -1;
 
            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
            if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}
 
            // Determine
            if (i == 0) {                allowed = true;
                break;
            }
        }
         if (!allowed) {
            str = replacer(html, "", str); // Custom replace. No regexing
        }
    }
     return str;
}

var loadScript = function
(
	sScriptSrc
)
{
	var oHead = document.getElementsByTagName('head')[0];
	var oScript = document.createElement('script');
   	oScript.type = 'text/javascript';
   	oScript.src = sScriptSrc;
   	oHead.appendChild(oScript);
}

YAHOO.util.Event.onDOMReady( init );

var ToggleContact =
{
	init: function
	(
	)
	{
        var Env = document.getElementById ( 'contact' );

		if
		(
			Env
		)
		{
            var Select = document.getElementById ( 'subject' );

			if
			(
				Select
			)
			{
				Select.onchange = function
				(
				)
				{
					var Env = document.getElementById ( 'contact' );

					var Elements = YAHOO.util.Dom.getElementsByClassName ( 'startup' );

					if
					(
						Elements.length > 0
					)
					{
						for
						(
							var i = 0; i < Elements.length; i++
						)
						{
							if
							(
								this.value == 3
							)
							{
								YAHOO.util.Dom.removeClass ( Elements [ i ] , 'hidden' );
							}
							else
							{
								YAHOO.util.Dom.addClass ( Elements [ i ] , 'hidden' );
							}
						}
					}
					
					var Elements = YAHOO.util.Dom.getElementsByClassName ( 'press' );
					
					if
					(
						Elements.length > 0
					)
					{
						for
						(
							var i = 0; i < Elements.length; i++
						)
						{
							if
							(
								this.value == 6
							)
							{
								YAHOO.util.Dom.removeClass ( Elements [ i ] , 'hidden' );
							}
							else
							{
								YAHOO.util.Dom.addClass ( Elements [ i ] , 'hidden' );
							}
						}
					}

					var Elements = YAHOO.util.Dom.getElementsByClassName ( 'membership' );
				
					if
					(
						Elements.length > 0
					)
					{
						for
						(
							var i = 0; i < Elements.length; i++
						)
						{
							if
							(
								this.value == 7
							)
							{
								if
								(
									(
										document.getElementById ( 'membership_country' ).value == 0
										||
										document.getElementById ( 'membership_country' ).value == 4
									)
									&&
									(
										(
											Elements [ i ].id == 'membership_adviser-label'
											||
											Elements [ i ].id == 'membership_adviser-element'
										)
										||
										(
											Elements [ i ].innerHTML.match ( /membership_adviser/ )
										)
									)
								)
								{
									YAHOO.util.Dom.addClass ( Elements [ i ] , 'hidden' );
								}
								else
								{
									YAHOO.util.Dom.removeClass ( Elements [ i ] , 'hidden' );
								}
							}
							else
							{
								YAHOO.util.Dom.addClass ( Elements [ i ] , 'hidden' );
							}
						}
					}

					if
					(
						this.value == 6
					)
					{
						var Labels = Env.getElementsByTagName ( 'label' );
						
						for
						(
							var i = 0; i < Labels.length; i++
						)
						{
							var Label = Labels [ i ];
							
							if
							(
								Label.innerHTML == 'Telefon *'
								||
								Label.innerHTML.match ('Hausnr')
								||
								Label.innerHTML == 'PLZ *'
								||
								Label.innerHTML == 'Ort *'
								||
								Label.innerHTML == 'Nachricht *'
							)
							{
								Label.innerHTML = Label.innerHTML.replace ( / \*/ , '' );
							}
							
						}
					}
					else
					{
						var Labels = Env.getElementsByTagName ( 'label' );
						
						for
						(
							var i = 0; i < Labels.length; i++
						)
						{
							var Label = Labels [ i ];
							
							if
							(
								(
									Label.innerHTML.match ( 'Telefon' )
									||
									Label.innerHTML.match ('Hausnr')
									||
									Label.innerHTML.match ('PLZ')
									||
									Label.innerHTML.match ('Ort')
									||
									Label.innerHTML.match ('Nachricht')
								)
								&&
								!
								Label.innerHTML.match ( /\*/ )
							)
							{
								Label.innerHTML+= ' *';
							}
							
						}
					}
				}
			}
			
			var CountrySwitch = document.getElementById ( 'membership_country' );
			
			if
			(
				CountrySwitch
			)
			{
				CountrySwitch.onchange = function
				(
				)
				{
					var AdvisorPoint = document.getElementById('membership_adviser-1').parentNode.parentNode;
                    
                    AdvisorPoint.nextObject = function() {
                    	var n = this;
                    	do n = n.nextSibling;
                    	while (n && n.nodeType != 1);
                    	return n;
                    }
                     
                    AdvisorPoint.previousObject = function() {
                    	var p = this;
                    	do p = p.previousSibling;
                    	while (p && p.nodeType != 1);
                    	return p;
                    }
                    
                    //alert(.parentNode.parentNode.previousObject().innerHTML);
                    //return;
                    
                    //alert(Yahoo.util.Dom.getElementsByClassName ('membership hidden')
                    if
					(
						this.value != 4
						&&
						this.value != 0
					)
					{
						YAHOO.util.Dom.removeClass ( AdvisorPoint , 'hidden' );
						YAHOO.util.Dom.removeClass ( AdvisorPoint.previousObject() , 'hidden' );
					}
					else
					{
						YAHOO.util.Dom.addClass ( AdvisorPoint, 'hidden' );
						YAHOO.util.Dom.addClass ( AdvisorPoint.previousObject() , 'hidden' );
					}
				}
			}	
		}

	}
};

closemenu = function ( element )
{
    if ( menuopen == false && keepopen != true)
    {
        YAHOO.util.Dom.removeClass( element, 'unhide' );
        switchflashelements( 'visible' );
    }
};

switchflashelements = function ( status )
{
    flashelements = document.getElementsByTagName( 'object' );

    if
    (
        ! document.getElementById ( 'recommend-overlay' )
    )
    {
        for ( i = 0; i < flashelements.length; i++ )
        {
            //nur swfs ausblenden, die mit der navi in konflikt stehen
            //pos = YAHOO.util.Dom.getXY(flashelements[i]);
            //alert(varDump(pos));
            flashelements[i].style.visibility = status;
        }
    }
    
    iframeelements = document.getElementsByTagName( 'iframe' );
    
    if
    (
        ! document.getElementById ( 'recommend-overlay' )
    )
    {
        for ( i = 0; i < iframeelements.length; i++ )
        {
            //nur swfs ausblenden, die mit der navi in konflikt stehen
            //pos = YAHOO.util.Dom.getXY(flashelements[i]);
            //alert(varDump(pos));
            iframeelements[i].style.visibility = status;
        }
    }
};

YAHOO.util.Event.onDOMReady( ToggleContact.init );

var keepopen = false;

YAHOO.util.Event.onContentReady( 'navigation', function () {
    subnavis = YAHOO.util.Dom.getElementsByClassName( 'hassubnavi' , 'li', this );

    if ( subnavis.length > 0)
    {
        for ( i = 0; i < subnavis.length; i++ )
        {
            subnavi = YAHOO.util.Dom.getElementsByClassName( 'subnavi' , 'div', this );

            if ( subnavi.length  > 0)
            {
                subnavis[ i ].onmouseover = function ()
                {
                    menuopen = true;
                    subnavis = YAHOO.util.Dom.getElementsByClassName( 'hassubnavi' , 'li', document.getElementById('navigation') );
                    for ( i = 0; i < subnavis.length; i++ )
                    {
                        if
                        (
                            this != subnavis[ i ]
                        )
                        {
                            YAHOO.util.Dom.removeClass( subnavis[ i ], 'unhide' );
                        }
                    }
                    YAHOO.util.Dom.addClass( this , 'unhide' );
                    switchflashelements( 'hidden' );
                };

                subnavi.onmouseover = function ()
                {
                    menuopen = true;
                };

                subnavis[ i ].onmouseout = function ()
                {
                    menuopen = false;
                    element = this;
                    window.setTimeout( function(){ closemenu(element); }, 100 );
                    //closemenu( element );
                };
            }
        }
    }
});

var openWishlistPrint = function
(
)
{
	openPopup
	(
		iusConfig.printUrl,
		850,
		600,
		'Wunschkiste',
		'yes'
	);
}

var openPopup = function
(
	strSeite,
	intBreite,
	intHoehe,
	strName,
	strScrollbars
)
{
	var intScreenWidth = screen.width;
	var intScreenHeight = screen.height;
	var intPosX = (intScreenWidth / 2) - (intBreite / 2);
	var intPosY = (intScreenHeight / 2) - (intHoehe / 2);
	winPopup = window.open(strSeite,strName,'width='+ intBreite +',height='+ intHoehe +',left='+ intPosX +',screenX='+ intPosX +',top='+ intPosY +',screenY='+ intPosY +',menubar=no,scrollbars='+ strScrollbars +',resizable=no,location=no,status=no,directories=no,dependent');
	winPopup.focus();
}

var trim = function
(
	s
)
{
	while
	(
		s.substring(0,1) == ' '
	)
	{
		s = s.substring(1,s.length);
	}

	while
	(
		s.substring(s.length-1,s.length) == ' '
	)
	{
    	s = s.substring(0,s.length-1);
	}

	return s;
}

function inputFieldFocus ( InputField, FocusValue, StandardValue )
{
    InputField = document.getElementById ( InputField );

    if
    (
        InputField
    )
    {
    	InputField.onfocus = function ()
        {
        	if
            (
                InputField.value == StandardValue
            )
            {
                InputField.value = FocusValue;
            }
            else
            {
                InputField.select ();
            }
            if
            (
                InputField.id == 'nav-q'
            )
            {
                keepopen = true;
            }
        }
        InputField.onblur = function ()
        {
            if
            (
                InputField.value == FocusValue
            )
            {
                InputField.value = StandardValue;
            }

            if
            (
                InputField.id == 'nav-q'
            )
            {
                keepopen = false;
            }
        }
    }
}

function onclickToggle( clickElemStr, toggleElemStr, fromClassStr, toClassStr )
{
    as = YAHOO.util.Dom.getElementsByClassName( clickElemStr, 'a' );
    toggleElem = document.getElementById( toggleElemStr );

    if( as.length && document.getElementById(toggleElemStr) )
    {
        for( i=0; i<as.length; ++i )
        {
	        as[i].onclick=function(){
	            if( YAHOO.util.Dom.hasClass( toggleElem, fromClassStr) == true )
	            {
	                YAHOO.util.Dom.replaceClass( toggleElem, fromClassStr, toClassStr);
	            }
	            else
	            {
	                YAHOO.util.Dom.replaceClass( toggleElem, toClassStr, fromClassStr);
	            }
	            return false;
	        };
        }
    }
}


























/*
** Blätterkatalog Integration Script
** *********************************
**
** 1) 	addToCart(artno, shopsessionid)
**	Wird bei Linktyp "Artikel in Warenkorb legen"
**	aufgerufen.
**
**
** 2) 	blaetterkatalogflip(newPage)
**	Blättert auf die gegebene Seite
**	Wird bei Linktyp "Gehe zu Seite" verwendet.
**
**	TODO: Kann optional verwendet werden
**	      um mittels
**
**	<a href="javascript:blaetterkatalogflip(5)">Gehe zu Seite 5</a>
**
**	den Blätterkatalog umzublättern.
**	(Beispiel: Auf Kapitel-Startseite blättern)
**
** 3)   gotoURL(myURL)
**   	Wird bei Linktyp "Externer Link" und
**	von addToCart aufgerufen
**
*/
	/**
	*/
	function trackPageHit(page) {
	}

	function addToCart(artno, shopsessionid)
	{
	   var destinationURL = shopBase + shopURL + shopSessionIDParameterName + shopsessionid + shopArticleIDParameterName + artno + shopURLPostfix;

	   if (shopDebug) alert("ShopSessionID: "+shopsessionid+"\nArtikel "+artno+" in Detailansicht Shop aufrufen\n\nSHOP URL: "+destinationURL);


	   if (!shopDebug) gotoURL(destinationURL);

	}


	/**
	*  blättert auf die entsprechende seite um
	*  setzt voraus, dass der blätterkatalog in
	*  dem fenster noch geladen ist
	*/
	function blaetterkatalogflip(newPage)
	{
		flashCommand('jump_to_id', newPage)
	}


	/**
	* sprint zu einer URL
	* Ziel: Shop-Fenster
	*/
	function gotoURL( myURL )
	{
		if (myURL.indexOf("mailto:")!=-1) {
			location.href=myURL;
			return;
		}

		if (myURL.indexOf("http://")!=0 && myURL.indexOf("https://")!=0 && myURL.indexOf("mailto:")!=0) {
			myURL = "http://"+myURL;
		}

		try {
			if ( typeof( opener ) == "undefined" || typeof( opener ) == "unknown" ||
			    	typeof( opener.name ) == "undefined" || typeof( opener.name ) == "unknown" )
			{
				if ( shopFenster.closed )
				{
					shopFenster = window.open( myURL, "shop", "" );
					shopFenster.focus();
				}
				else
				{
					shopFenster.location.href=myURL;
					shopFenster.focus();
				}
			}
			else
			{
				opener.location.href = myURL;
				opener.blatterkatalogPopup = window;
				opener.focus();
			}
		}
		catch ( Exception )
		{
			if( opener && !opener.closed )
			{
				opener.location.href = myURL;
				opener.focus();
			}
			else
			{
				try {
					if ( shopFenster.closed )
					{
						shopFenster = window.open( myURL, "shop", "" );
						shopFenster.focus();
					}
					else
					{
						shopFenster.location.href = myURL;
						shopFenster.focus();
					}
				}
				catch ( Exception )
				{
						shopFenster = window.open( myURL, "shop", "" );
						shopFenster.focus();
				}
			}
		}
	}

	/**
	 * getFlashPath() ermittelt das Flash-Objekt
	 */
	function getFlashPath()
	{
    	if ( document.all )
    	{
	        //ie
	        return document.catalogflash;
    	}
    	else
    	{
	        //safari
	        var ffilm = document.getElementById( "catalogflash" );
	        try
	        {
	            flashfilm.SetVariable( "tst", "1" );
	       	}
	       	catch ( Exception )
	       	{
	            //firefox
            	ffilm = document.embeds["catalogflash"];
            }
            return ffilm;
	    }
	}



	/////////////////////////////////////
	// Funktion zum externen Aufruf der Flash-Commands
	// id => 'jump_to_id'
	// par => pageid
	// aufruf mit z.b. flashCommand('jump_to_id', 5)
	/////////////////////////////////////
	function flashCommand( id, par )
	{
	        alert(id);
		try
		{
		    var movie = getFlashPath();
		    movie.SetVariable( "jscommand", id + "|" + par );
		}
	    catch( Exception )
	    {
	      	//document.getElementById("catalogflash").SetVariable( "jscommand", id + "|" + par );
	      	document.getElementById("catalogflash").getElementsByTagName('object')[0].SetVariable( "jscommand", id + "|" + par );
	    }
	}


	function getURLParam( strParamName, defaultBKValue )
	{
	var strReturn = " ";
	var strHref = window.location.href;

	var i = strHref.indexOf( strParamName );

	if ( i > 0 )
	{
		var j = strHref.indexOf( "=", i + 1 );
		if ( j > 0 )
		{
			var endPos = strHref.length;
			var k = strHref.indexOf( "?", j + 1 );
			var l = strHref.indexOf( "&", j + 1 );
			if ( k > 0 && l > 0 )
			{
			   	if ( k < l )
			   	{
			   		endPos = k;
			   	}
				else
				{
					endPos = l;
				}
			}
			else if ( k > 0 )
			{
			  endPos = k;
			}
			else if ( l > 0 )
			{
			  endPos = l;
			}

			strReturn = strHref.substring( j + 1 , endPos );
		}
	}

	if (strReturn == "" || strReturn == " ")
  {
     if (defaultBKValue)
     {
       return defaultBKValue;
     }
  }

	return strReturn;
	}

	window.onerror = stoperror;

	function stoperror( a )
	{
  	return false;
	}

flushCart = function
(
	items
)
{
	var Splitted = items.split ( ';' );
	var itemLink = new Array();
	var link = null;

	var wishlist = YAHOO.util.Dom.getElementsByClassName ( 'wishlist' , 'li' , 'personalize' );
    var type = 'wunschkiste';
    var append = '';
    
    if (wishlist.length == 0) {
        wishlist = YAHOO.util.Dom.getElementsByClassName ( 'wunschzettel' , 'li' , 'personalize' );
        type = 'wunschzettel';
        append = 'c=m';
    }
    
	var HrefElements = wishlist [ 0 ].getElementsByTagName ( 'a' ) [ 0 ].href.split ( '/' );

	if
	(
		wishlist.length > 0
	)
	{
		var lang = wishlist [ 0 ].getElementsByTagName ( 'a' ) [ 0 ].href.split ( '/' ) [ 3 ];

		var wishlistHref = '/' + lang + '/'+type+'/';

		if
		(
			HrefElements[4] != 'wunschkiste'
		)
		{
			wishlistHref = '/' + lang + '/' + HrefElements[4] + '/'+type+'/';
		}

		if
		(
			Splitted.length > 0
		)
		{
			for
			(
				var i = 0; i < Splitted.length; i++
			)
			{
				var Item = Splitted [ i ].split ( ',' );
				itemLink [ i ] = Item [ 0 ];
			}

			var link = itemLink.join ( ',' );
			var link = link.substr ( 0 , link.length-1 );

            wishlistHref = wishlistHref + '?add=' + link
            if (append.length > 0) {
                wishlistHref+= '&'+append;
            }

			window.location.href = wishlistHref
		}
		else
		{
            if (append.length > 0) {
                wishlistHref+= '&'+append;
            }
            window.location.href = wishlistHref;
		}
	}
}

var recommendpage = function
(
	page
)
{
	Recommendation.initCatalog(page);
}

showeventsstatus = 'closed';

showevents = function
(
)
{
	var more = document.getElementById('show_more');
	var EventContainer = YAHOO.util.Dom.getElementsByClassName ( 'event-list' )	;
	
	if
	(
		YAHOO.util.Dom.getElementsByClassName ( 'event-list' ).length > 0
		&&
		more
	)
	{
		var Elements = YAHOO.util.Dom.getElementsByClassName ( 'csc-textpic-intext-left-nowrap' );

		if
		(
			Elements.length > 4
		)
		{
			eventsWalkSiblings ( false );
			
			more.onclick = function
			(
			)
			{
				if
				(
					this.getElementsByTagName('img')[0].src.match ( /hide/ )
				)
				{
					eventsWalkSiblings ( false );
					this.getElementsByTagName('img')[0].src = '/media/static/pics/button/show-all-events_01.gif';					
				}
				else
				{
					eventsWalkSiblings ( true );
					this.getElementsByTagName('img')[0].src = '/media/static/pics/button/hide-events_01.gif';
				} 
				/*
				eventsWalkSiblings ( true );
				this.getElementsByTagName('img')[0].src = '/media/static/pics/button/hide-events_01.gif';
				
				this.onclick = function
				(
				)
				{
					eventsWalkSiblings ( false );
					this.getElementsByTagName('img')[0].src = '/media/static/pics/button/show-all-events_01.gif';
				}*/
			}
		}
		else
		{
			more.style.visibility = 'hidden';
			more.style.display = 'none';
		}
		//
	}

/*
	if
	(
		more
	)
	{
		more.style.visibility = 'hidden';
		more.style.display = 'none';
	}

	if
	(
		document.getElementById('show_more')
	)
	{
		document.getElementById('show_more').onclick = function()
		{
			more = document.getElementById('more');

			if
			(
				more
				&&
				showeventsstatus == 'closed'
			)
			{
				more.style.visibility = 'visible';
				more.style.display = 'block';
				showeventsstatus = 'opened';
				this.getElementsByTagName('img')[0].src = '/media/static/pics/button/hide-events_01.gif';
			}
			else if
			(
				more
			)
			{
				more.style.visibility = 'hidden';
				more.style.display = 'none';
				showeventsstatus = 'closed';
				this.getElementsByTagName('img')[0].src = '/media/static/pics/button/show-all-events_01.gif';
			}
		}
	}
*/
}

eventsWalkSiblings = function
(
	display
)
{
	var ChildNodes = YAHOO.util.Dom.getElementsByClassName ( 'event-list' )[0];
	var elmCounter = 0;
	var nextChild = ChildNodes.firstChild;
	
	while
	(
		nextChild
	)
	{
		while
		(
			nextChild.nodeType == 3
		)
		{
			nextChild = nextChild.nextSibling;
		}
		
		if
		(
			YAHOO.util.Dom.hasClass ( nextChild,  'csc-textpic-intext-left-nowrap' )
		) 
		{
			elmCounter++;
		}
		
		if
		(
			elmCounter > 4
			&&
			nextChild.innerHTML != 'undefined'
			&&
			nextChild.tagName != 'undefined'
		)
		{
			nextChild.style.visibility = ((display == false) ? 'hidden' : 'visible' );
			nextChild.style.display = ((display == false) ? 'none' : 'block' );
		}
		
		nextChild = nextChild.nextSibling;
	}
}

var NavigationBrandSlider =
{
	_Container: null,
	init: function
	(
	)
	{
		var Container = YAHOO.util.Dom.getElementsByClassName ( 'productbrand' , 'div' , 'navigation' );
		
		if
		(
			Container.length > 0
		)
		{
			this._Container = Container [ 0 ];
			this._activateLinks ();
		}
		
	},
	
	_activateLinks: function
	(
	)
	{
		var Links = YAHOO.util.Dom.getElementsByClassName ( 'more' , 'li' , this._Container );
		
		if
		(
			Links.length > 0
		)
		{
			for
			(
				var i = 0; i < Links.length; i++
			)
			{
				var Link = Links [ i ];
				
				Link.onclick = function
				(
				)
				{
					var Layer = this.parentNode.parentNode;
					var layerNr = Layer.className.replace ( /[a-zA-Z \-]+/ , '' ).replace ( /[a-zA-Z \-]+/ , '' );
					
					if
					(
						layerNr == 0
					)
					{
						NavigationBrandSlider.hideSiblingLayers();
						YAHOO.util.Dom.addClass ( Layer.parentNode , 'expanded' );
						YAHOO.util.Dom.removeClass ( Layer , 'visible' );						
						var nextLayerNr = parseInt(layerNr)+1;
						var NextLayer = YAHOO.util.Dom.getElementsByClassName ( 'l'+nextLayerNr );
						if
						(
							NextLayer.length > 0
						)
						{
							NextLayer = NextLayer [ 0 ];
							YAHOO.util.Dom.addClass ( NextLayer , 'first' );
							YAHOO.util.Dom.addClass ( NextLayer , 'visible' );
						}
					}
					else
					{
						if
						(
							YAHOO.util.Dom.hasClass ( this , 'back' )
						)
						{
							var prevLayerNr = parseInt(layerNr)-1;
							var PrevLayer = YAHOO.util.Dom.getElementsByClassName ( 'l'+prevLayerNr );

							if
							(
								PrevLayer.length > 0
							)
							{
								PrevLayer = PrevLayer [ 0 ];
								
								if
								(
									prevLayerNr == 0
								)
								{
									YAHOO.util.Dom.removeClass ( Layer , 'visible' );
									YAHOO.util.Dom.removeClass ( Layer , 'first' );
									YAHOO.util.Dom.removeClass ( Layer.parentNode , 'expanded' );
									YAHOO.util.Dom.addClass ( PrevLayer , 'visible' );
									NavigationBrandSlider.showSiblingLayers();
								}
								else
								{
									YAHOO.util.Dom.removeClass ( Layer , 'visible' );
									YAHOO.util.Dom.removeClass ( Layer , 'first' );
									YAHOO.util.Dom.addClass ( PrevLayer , 'visible' );
									YAHOO.util.Dom.addClass ( Layer , 'first' );
								}
							}
						}
						else
						{
							var nextLayerNr = parseInt(layerNr)+1;
							var NextLayer = YAHOO.util.Dom.getElementsByClassName ( 'l'+nextLayerNr );
							if
							(
								NextLayer.length > 0
							)
							{
								NextLayer = NextLayer [ 0 ];
								YAHOO.util.Dom.removeClass ( Layer , 'visible' );
								YAHOO.util.Dom.removeClass ( Layer , 'first' );
								YAHOO.util.Dom.addClass ( NextLayer , 'first' );
								YAHOO.util.Dom.addClass ( NextLayer , 'visible' );
							}
						}
						
					}
					
					return false;
				}
				
			}
		}
	},
	hideSiblingLayers:function
	(
	)
	{
		YAHOO.util.Dom.addClass ( YAHOO.util.Dom.getElementsByClassName ( 'age' ) [ 0 ] , 'hidden' );
		YAHOO.util.Dom.addClass ( YAHOO.util.Dom.getElementsByClassName ( 'category' ) [ 0 ] , 'hidden' );
	},
	showSiblingLayers:function
	(
	)
	{
		YAHOO.util.Dom.removeClass ( YAHOO.util.Dom.getElementsByClassName ( 'age' ) [ 0 ] , 'hidden' );
		YAHOO.util.Dom.addClass ( YAHOO.util.Dom.getElementsByClassName ( 'age' ) [ 0 ] , 'first' );
		YAHOO.util.Dom.removeClass ( YAHOO.util.Dom.getElementsByClassName ( 'category' ) [ 0 ] , 'hidden' );
	}
}

ProductTextExtender =
{
	linkMore: "show-more",
	showLess: "show-less",
	extendedText: "extended-text",
	
	
	detect:function
	(
	)
	{
		if
		(
			document.getElementById ( this.extendedText )
			&&
			document.getElementById ( this.linkMore )
		)
		{
			this.init();
		}
		
	},
	init:function
	(
	)
	{
		
		document.getElementById ( this.linkMore ).onclick = function
		(
		)
		{
			YAHOO.util.Dom.removeClass ( document.getElementById ( ProductTextExtender.extendedText ) , 'hidden' );
			YAHOO.util.Dom.addClass ( document.getElementById ( ProductTextExtender.linkMore ) , 'hidden' );
			
			if
			(
				! document.getElementById ( ProductTextExtender.showLess )
			)
			{
				var Less = document.createElement ( 'a' );
				Less.href = '#';
				Less.innerHTML = '&nbsp;weniger..';
				Less.id = ProductTextExtender.showLess;
				document.getElementById ( ProductTextExtender.extendedText ).appendChild ( Less ); 
				Less.onclick = function
				(
				)
				{
					YAHOO.util.Dom.addClass ( document.getElementById ( ProductTextExtender.extendedText ) , 'hidden' );
					YAHOO.util.Dom.addClass ( this , 'hidden' );
					YAHOO.util.Dom.removeClass ( document.getElementById ( ProductTextExtender.linkMore ) , 'hidden' );
	
					return false;
				}
			}
			else
			{
				YAHOO.util.Dom.removeClass ( document.getElementById ( ProductTextExtender.showLess ) , 'hidden' );	
			}
			
			return false;
		}

		document.getElementById ( this.linkMore ).innerHTML = 'mehr..';
		
		if
		(
			! window.location.href.match ( /t=extended/ )
		)
		{
			YAHOO.util.Dom.addClass ( document.getElementById ( this.extendedText ) , 'hidden' );
		}
		else
		{
			YAHOO.util.Dom.addClass ( document.getElementById ( ProductTextExtender.linkMore ) , 'hidden' );
			
			var Less = document.createElement ( 'a' );
			Less.href = '#';
			Less.innerHTML = '&nbsp;weniger..';
			Less.id = ProductTextExtender.showLess;
			document.getElementById ( ProductTextExtender.extendedText ).appendChild ( Less ); 
			Less.onclick = function
			(
			)
			{
				YAHOO.util.Dom.addClass ( document.getElementById ( ProductTextExtender.extendedText ) , 'hidden' );
				YAHOO.util.Dom.addClass ( this , 'hidden' );
				YAHOO.util.Dom.removeClass ( document.getElementById ( ProductTextExtender.linkMore ) , 'hidden' );

				return false;
			}
		}
	}
}

GamestoreRequest = {
    init: function() {
        var elements = $('form.gamestore-request div.help div.option');
        
        if (elements.length > 0) {
            for ( var i = 0; i < elements.length; ++i) {
                var link = $(elements[i]).find('a.more');
                if (link.length > 0) {
                    $(link[0]).click (function() {
                        var parentNode = this.parentNode.parentNode.parentNode.parentNode;
                        var className = this.className;
                        var moreContent = $(parentNode).find('div.more');
                        
                        if (this.innerHTML == 'mehr...') {
                            moreContent = $(moreContent[0]);
                            moreContent.css('display', 'block');
                            moreContent.css('visibility', 'visible');
                            this.innerHTML = 'weniger...';
                        } else {
                            moreContent = $(moreContent[0]);
                            moreContent.css('display', 'none');
                            moreContent.css('visibility', 'hidden');
                            this.innerHTML = 'mehr...';
                        }
                    });
                }
            }
        }
    }
};

DependencyCheckboxes = {
    init: function() {
        var dependencies = $('.dependencyMaster');

        if (dependencies.length > 0) {
            for (var i = 0; i < dependencies.length; ++i) {
                var element = dependencies[i];
                var elementId = element.id.replace(/-[0-9]+$/, '');
                
                if (element.type == 'radio') {
                    var dependingElement = $('.dependsOn_'+elementId);
                    if (element.id.match(/1/)) {
                        if ((element.value == 1 && element.checked == true)) {
                            DependencyCheckboxes.getDependingElement(elementId).disabled = false;
                        } else {
                            DependencyCheckboxes.getDependingElement(elementId).disabled = true;
                        }
                    }
                } else {
                    if (element.checked == false) {
                        var dependingElement = $('.dependsOn_'+elementId);
                        DependencyCheckboxes.getDependingElement(elementId).disabled = true;
                    }
                }
                
                $(element).change(function() {
                    var dependingElement = DependencyCheckboxes.getDependingElement(this.id);
                    
                    if (this.type == 'radio') {
                        if (this.checked == true && this.value == 1) {
                            dependingElement.disabled = false;
                            dependingElement.focus();
                        } else { 
                            dependingElement.disabled = true;
                            dependingElement.value = '';
                        }
                    } else { 
                        if (this.checked == true) {
                            dependingElement.disabled = false;
                            dependingElement.focus();
                        } else { 
                            dependingElement.disabled = true;
                            dependingElement.value = '';
                        }
                    }
                });
            }
        }
    },
    getDependingElement: function (id) {
        var elementId = id.replace(/-[0-9]+$/, '');
        return dependingElement = $('.dependsOn_'+elementId)[0];
    }
}

SwitchDependency = {
    init: function() {
        var switches = $('.switch-dependency');
        if(switches.length > 0)
        {
            for (var i = 0; i < switches.length; ++i) {
                var select = $(switches[i]).find('select');
                for(var x = 0; x < select.length; ++x) {
                    $(select[x]).change(function() {
                        SwitchDependency.disableDependencySelect(this);
                    });
                }
                var checkboxes = $(switches[i]).find('input');
                for(var x = 0; x < checkboxes.length; ++x) {
                    if (checkboxes[x].type == 'checkbox') {
                        $(checkboxes[x]).change(function() {
                            SwitchDependency.disableDependencyCheckbox(this);
                        });
                    }
                }
            }
        }
    },
    disableDependencySelect:function(element) {
        var elementId = element.className.replace(/switchedDependency_/, '');

        if (parseInt(element.value) > 0) {
            $('#'+elementId)[0].disabled = true;
        } else { 
            $('#'+elementId)[0].disabled = false;
        }
    },
    disableDependencyCheckbox:function(element) {
        var elementId = element.className.replace(/switchedDependency_/, '');
        
        if (element.checked == true) {
            $('#'+elementId)[0].disabled = true;
        } else { 
            $('#'+elementId)[0].disabled = false;
        }
    }
}

Marketplace = {
    init: function() {
        if ($('body.marketplace div.searchform input.back').length > 0) {
            $('body.marketplace div.searchform input.back').click(function() {
                window.location.href = this.parentNode.action;
                return false;
            });
            
        }
        if ($('div.marketplace').length > 0) {
            inputFieldFocus ('product-name', '', 'Suchbegriff eingeben');
            
            if ($('div.marketplace div.more').length > 0) {
                $('div.marketplace div.more').click(function() {
                    var nextPage = parseInt($(this).attr('rel').replace('page-', ''))+1;
                    var params = $('div.tools form').serialize();
                    params+= "&page="+nextPage+"&ajax=true";
                    $.ajax({
                        type: "GET",
                        url: $($('div.tools form')[0]).attr('action'),
                        data: params,
                        success: function(data){
                            eval("var data ="+data);
                            $('div.results').append(data.html);
                            if (data.meta.hasNextPage && data.html) {
                                $('div.marketplace div.more').attr('rel', 'page-'+nextPage);
                            } else {
                                var linkLabel = $('div.marketplace div.more').remove();
                            }
                        }
                    });
                    return false;
                });
            }
        } else {
            inputFieldFocus('product-name', '', 'Suchbegriff eingeben');
        }
    },
    jCarouselInit:function (carousel) {

        // Disable autoscrolling if the user clicks the prev or next button.
        carousel.buttonNext.bind('click', function() {
            carousel.startAuto(0);
        });

        carousel.buttonPrev.bind('click', function() {
            carousel.startAuto(0);
        });

        // Pause autoscrolling if the user moves with the cursor over the clip.
        carousel.clip.hover(function() {
            carousel.stopAuto();
        }, function() {
            carousel.startAuto();
        });
    }
};
