//<![CDATA[
	var prrequestout=false;
	var controlgroup;
	var execute_no_prudsys=false;
	
	//Wenn IO6 aktiv --> Alle Prudsys-Requests unterbinden
	function setExecuteNoPrudsys($state){
		if ($state==1){
			execute_no_prudsys=true;
		}else{
			execute_no_prudsys=false;
		}
	}
	
	Recommendation = function(){
	    var kind_of_source=''; //Prudsys, IO oder Default
	    var active=''; //Schalter für active
	    var reload=''; //Nicht erneut Abfragen
	    var num_of_prod=''; //Anzahl dargestellter Produkte
	    var order_no=''; //Bei Artikeldetail für Ausblenden 
	    var sizeof=''; // Anzahl der ReleatedArtikel
	    var session=''; //Session
	    var fallback=0; //Default-Artikel anzeigen, wenn keine Empfehlungen geliefert werden ja/nein
	    var recommend =false;
	        
	    function getFallback(){
	    	return this.fallback;
	    }
	    
	    function getKind_of_Source(){
	    	return this.kind_of_source;
	    }
	    
	    function setKind_of_Source(source){
	    	this.kind_of_source=source;
	    }
	    
	    function getNum_of_Prod(){
	    	return this.num_of_prod;
	    }
	    
	    function getOrder_no(){
	    	return this.order_no;
	    }
	   
	   //IOffer2 aktivieren 
	    function initDefault(num_of_prod,related_article){
	    	this.num_of_prod=num_of_prod;
	    	
	    	// slide-Buttons setzen 
	    	if(related_article.length == 0)
	    		return;
	    		
	    	Recommendation.setKind_of_Source('recco.art');
	    	var numbers = '';
			for(var i = 0;i<related_article.length;i++){
				numbers = numbers + related_article[i]['order_number'] + '|';
			}
	    	Recommendation.getProductinfos(numbers,'recomm1',true);
	    }
	    
		function init(session,active,reload,num_of_prod,order_no,sizeof,kind_of_source,related_article,fallback){
			this.kind_of_source=kind_of_source;
			this.active=active;
			this.reload=reload;
			this.num_of_prod=num_of_prod;
			this.order_no=order_no;
			this.sizeof=sizeof;
			this.session=session;
			this.fallback=fallback;
			this.recommend=false;

			//Bei IOffer muss Coremetric aktiv sein
			if ((this.kind_of_source == 'recio.art' || this.kind_of_source == 'recio.wk')
			     && cm_tracking_enabled != true){
			     if (this.kind_of_source == 'recio.art'){
			     	Recommendation.initDefault(num_of_prod,related_article);
			     }else{
			     	Recommendation.showDefaultWKRecomm();
			     }
			     return;
			}

			if (this.kind_of_source == 'recio.art'){
				if (active == 1){
					Recommendation.checkReload();
					if (session == null || session == '')this.active='0';
				}
				Recommendation.initReleatdArticle(related_article);
			}
			Recommendation.startRecommendation();
		}
		
		function checkReload(){
			var splitt='';
			if (this.reload != '0'){
			    splitt= this.reload.split("~");
			    if (splitt[0] != this.order_no)
			       this.reload='0';
			 }
			if (reload != 0){
				this.kind_of_source=this.reload.split('_');
				this.reload=this.kind_of_source[1];
				this.kind_of_source=this.kind_of_source[0];
			}
		}
			
		function initReleatdArticle(related_article){
			if (this.active == '1'){
				$('#head_related').hide();
				$('#showrelated').hide();									
			}
			if (this.sizeof > this.num_of_prod){
					$('#linklinks'+related_article[0]['order_number']).show();
					$('#linkrechts'+related_article[0]['order_number']).show();
			}	
		}			
			  
		function startRecommendation(){	
		    switch(this.kind_of_source){
		    	case 'recpr.art':
		    		if (this.reload == 0)
						Prudsys.start(this.session,'recomm',this.order_no,'');
					else
						getProductinfos(this.reload,'recomm',true);
		    		break;
		    	case 'recio.art':
		    		IOffer.start('$RECOMM1',this.order_no);
		    		break;
		    	case 'recpr.wk':
						Prudsys.start(this.session,'basketrecomm',this.order_no,'');
		    		break;
		    	case 'recio.wk':
		    		IOffer.start('CARTREC1',this.order_no);
		    		break;		    			
		    }        
		}
		
	
	//Produktinfos fuer Prudsys-Artikel ermitteln
		function getProductinfos(numbers,type,filter){
            var zonetype=type;
            var url = null;
            if (zonetype.toLowerCase() == 'recomm1'){
             	zonetype='recomm';
            }else if (zonetype.toLowerCase() == 'cartrec1'){
            	zonetype='basketrecomm';
            }
            
	        if (filter)
		    	url = '/index.html?f=product_list.getproductinfos&pnr='+numbers+'&type='+zonetype;
		    else
		    	url = "GET", '/index.html?f=product_list.getproductinfos&pnr='+numbers+'&type='+zonetype+'&filter=no';
		    
		    if (type=='recomm' || type=='recomm1'){	
		   	 	requestAjax(url,"GET",[],Recommendation.callbackProductinfosRelated,true);
		   }else{
		   		requestAjax(url,"GET",[],Recommendation.callbackProductinfoZusatzangebot,true);	
		   	}		
		}		
			
	
	// Auswerten Produktinfos für Prudsys related article
	function callbackProductinfosRelated(data) {
	    
	     var setdefault=true;
	     var typeofrecom = '<!-- default -->';
	 
	     if (prrequestout == true) typeofrecom = '<!-- default timeout -->';

				var jsonData = JSON.parse(data);
				
				var setnumber = '';
				if (related_article.length > 0) setnumber=related_article[0]['order_number'];
				if (jsonData.length <= 0)setdefault=true;
			   
				//Wenn von Prudsys Empfehlungen geliefert wurden, dann werden die Daten von Coremetrics ueberschrieben.	
				if (jsonData['fallback'] != 'true' && jsonData.length > 0){
				   setdefault=false;
				  
				   //Vorbelegung, wenn über Reload gekommen
				   if (Recommendation.getKind_of_Source() == 'recpr.art') typeofrecom = '<!-- recomm -->'
				   if (Recommendation.getKind_of_Source() == 'recio.art') typeofrecom = '<!-- recomm io -->'
				   		
				    related_article = new Array();
				    for(var i = 0;i<jsonData.length;i++){
						related_article[i] = new Object();
						related_article[i]['text']=jsonData[i]['text'];
						related_article[i]['picture']='<a href="'+jsonData[i]['url']+'"><img src="'+path_media_art+jsonData[i]['image']+'" alt="'+jsonData[i]['long_title_clear']+'"></a>';
						related_article[i]['order_number']=jsonData[i]['order_number'];
						related_article[i]['long_title_clear']=jsonData[i]['long_title_clear'];
						related_article[i]['recomm_source']=Recommendation.getKind_of_Source();
					}
	            }

			if (related_article.length > 0){
				//Setzen der ersten 4 Artikel-Empfehlungen
				for(var i = 0;i<related_article.length;i++){
					if (i < Recommendation.getNum_of_Prod()){
						$('#bildpos'+i).html(related_article[i]['picture']);
						document.getElementById('bildpos'+i).onclick = new Function("Tracking.setTrackingInformation('"+related_article[i]['order_number']+"','"+related_article[i]['recomm_source']+"')");
						$('#textpos'+i).html(related_article[i]['text']);
						document.getElementById('textpos'+i).onclick =  new Function("Tracking.setTrackingInformation('"+related_article[i]['order_number']+"','"+related_article[i]['recomm_source']+"')");
					}
				}
				//Ausblenden weitere Elemente
					if (related_article.length < Recommendation.getNum_of_Prod()){
						for (var i=related_article.length ;i<Recommendation.getNum_of_Prod();i++){
								$('#pos1'+i).hide();
								$('#pos2'+i).hide();
							}
					}
				// slide-Buttons setzen 
						if (related_article.length > Recommendation.getNum_of_Prod()){
						    $('#linklinks'+setnumber).show();
						    $('#linkrechts'+setnumber).show();
						   	document.getElementById('linkrechts'+setnumber).onclick= function() {slideshow_rechts(related_article[0]['order_number']); return false;}; 
							$('#linkrechts'+setnumber).attr('id', 'linkrechts'+related_article[0]['order_number']);
							document.getElementById('linklinks'+setnumber).onclick= function() {slideshow_links(related_article[0]['order_number']); return false;};
							$('#linklinks'+setnumber).attr('id', 'linklinks'+related_article[0]['order_number']);
						}else{
							$('#linklinks'+setnumber).hide();
						    $('#linkrechts'+setnumber).hide();
						}	
		        //Art der Empfehlungen setzen
				if (document.getElementById('type') != null)
				    	document.getElementById('type').innerHTML=typeofrecom;
				//Einblenden der related article
				$('#head_related').show();
				$('#showrelated').show(); 
				
	 			Hyphenator.run();
				
				Recommendation.setDetailRecommCookie();
		    }			
	}
	
	//Fuer Reload der Artikelseite merken
	function setDetailRecommCookie(){
		var expires = new Date();
		var recommproduct = '';	
		expires = new Date(expires.getTime() + (5400000));  
		for(var i = 0;i<related_article.length;i++){
			if (i == 0)
				recommproduct=related_article[i]['order_number'];
			else
				recommproduct=recommproduct+'|'+related_article[i]['order_number'];	
		}	
				
		if (recommproduct != ''){
			if (Recommendation.getKind_of_Source() == '') Recommendation.setKind_of_Source('recco.art');
			recommproduct=Recommendation.getOrder_no()+'~'+recommproduct;
			recommproduct=Recommendation.getKind_of_Source()+'_'+recommproduct; 	
			document.cookie = 'detail_recomm='+escape(recommproduct)+';expires='+expires.toGMTString()+';path=/;';

		}
	}
		
		// Auswerten Produktinfos fuer Prudsys Zusatzangebot
		function callbackProductinfoZusatzangebot(data) {
		    
		     var setdefault=true;
		     var typeofrecom = '<!-- default -->';
				
			var jsonData = JSON.parse(data);
			if (jsonData.length <= 0)
				setdefault=true;
			//Pr�fung, ob Fallback angezeigt werden darf
			if (jsonData['fallback'] == 'true'){
				Recommendation.showDefaultWKRecomm();
				
				return false;
			}
			
			//Wenn von Prudsys Empfehlungen geliefert wurden, dann werden die Daten von Coremetrics ueberschrieben.	
			if (jsonData['fallback'] != 'true' && jsonData.length > 0){
			   setdefault=false;
			   existrecomm=true;
			   typeofrecom = '<!-- recomm -->';
			   
			   var anz = 2;
			   if (jsonData.length < 2)
			   	anz=jsonData.length;
			    
			   var explore= '';
			   if (exploreaddon != null)
			   	explore=",'"+exploreaddon+"'";
				var popupLayer = function(ev) {
					ev.preventDefault();
					var el = $(ev.currentTarget).find('a');
					var popup = new wb.desktop.Popup(null,'url');
					popup.setContentUrl(el.attr('href'));
					popup.show();
				}
			    for(var i = 0;i<anz;i++){
			    	$('#title'+i).html('<strong>'+jsonData[i]['long_title']+'</strong>');
			    	$('#subtitle'+i).html('<strong>'+jsonData[i]['sub_title']+'</strong>');
			    	$('#author'+i).html(jsonData[i]['person']);
			    	$('#price'+i).html(jsonData[i]['price']);
			    	
			    	$wkbutton='<a class="wkbutton b_mitbestellen" href="'+jsonData[i]['addtocart']+'&cat='+Recommendation.getKind_of_Source()+'" rel="nofollow" name="wklink_'+(i+1)+'"';
 					$wkbutton=$wkbutton+' onclick="';
 					if (cm_tracking_enabled){
 						$wkbutton=$wkbutton+"cmCreatePageviewTag('Warenkorbbutton (cart.wk)', 'cart.wk', null, null"+explore+ ");";
 					}
 					 var splitt= session.split(".");
 					 
 					$wkbutton=$wkbutton+"Prudsys.start('"+splitt[0]+"','eventbasket','"+jsonData[i]['order_number']+"','1');";
 					//$wkbutton=$wkbutton+"windowOpen('/index.html?p=popup.cart.hint','Danke',280,150,0,0,'no','no','no','no');";
 					$wkbutton=$wkbutton+"atcOpenClose('"+jsonData[i]['order_number']+"',true,'"+Recommendation.getKind_of_Source()+"');return false;";
 					$wkbutton=$wkbutton+'"><img src="'+path_media_lay+'x.gif" alt="mitbestellen"></a>';
 						
			    	$('#button'+i).html($wkbutton);
			   		$('#linkpopup'+i).html('<a href="'+jsonData[i]['popuplink']+'&amp;trbid=cart.wk" rel="nofollow">Mehr Infos</a>').click(function(ev){popupLayer(ev);});
			    		
			    	$('#image'+i).html('<a href="'+jsonData[i]['popuplink']+'&amp;trbid=cart.wk" rel="nofollow"><img src="'+path_media_art+jsonData[i]['image']+'" alt="'+jsonData[i]['long_title_clear']+'" class="middle"></a>').click(function(ev){popupLayer(ev);});
					$('#image'+i+' img').attr('src',path_media_art+jsonData[i]['image']);
					$('#pos'+i).show();

			    }//for

            }else{
            	$('#pos0').show();	
				$('#pos1').show();	
            }
          
           	//Art der Empfehlungen setzen
			if (document.getElementById('type') != null)
			    	document.getElementById('type').innerHTML=typeofrecom;
			//Einblenden der related article
			if (existrecomm == true){
			    if (document.getElementById('recblock') != null)
			    	document.getElementById('recblock').style.height="";
					$('#zusatzangebot').show();  
			}
		}

		//setzen von recommend
		function setRecommend(state){
			this.recommend=state;
		}
		

		function checkRecommState(){
		    	if ( this.recommend == false){
		    		this.recommend=true;
		    		prrequestout=true;
		    		if (Recommendation.getFallback() != '1'){
		    			Recommendation.cleanBasketRecomm();
		    		}else{
		    			if (this.kind_of_source == 'recio.wk' || this.kind_of_source == 'recpr.wk')
		    				Recommendation.showDefaultWKRecomm();
		    		}
		    	}
		}
		
		
		function showDefaultWKRecomm(){
			//Einblenden der related article
			if (existrecomm == true){
			    if (document.getElementById('recblock') != null)
			    	document.getElementById('recblock').style.height="";
				$('#zusatzangebot').show();  
				$('#pos0').show();	
				$('#pos1').show();	
				//Art der Empfehlungen setzen
			    if (document.getElementById('type') != null)
			    	document.getElementById('type').innerHTML='<!-- default timeout -->';
			} else {
				$('#zusatzangebot').hide();  
			}	
		}
		
		
		//Wenn keine Default-Produkte angezeigt werden
		function cleanBasketRecomm(){
			if (Recommendation.getKind_of_Source() == 'recio.wk' || Recommendation.getKind_of_Source() == 'recpr.wk')
				if (document.getElementById('zusatzangebot') != null)
					document.getElementById('zusatzangebot').style.display='none';
					
			if (cm_tracking_enabled)
					cmCreateConversionEventTag(Recommendation.getKind_of_Source(), 1, "Keine_Produktempfehlung_vorhanden", 1);
		}
		
		//für die extJS Methode kamenew
		function initWithExternalJS(){
			var params = extJSData.getParamsForMethod('Recommendation.initWithExternalJS');
			if(params["method"] == "init"){
				Recommendation.init(params["session"],params["active"],params["reload"],params["num_of_prod"],
					params["order_no"],params["sizeof"],params["kind_of_source"],params["related_article"],params["fallback"]);
			}else{
				Recommendation.initDefault(params["num_of_prod"],params["related_article"]);
			}
		}
		
		return {
			initWithExternalJS : initWithExternalJS,
			init : init,
			checkReload : checkReload,
			initReleatdArticle : initReleatdArticle,
			startRecommendation : startRecommendation,
			getKind_of_Source : getKind_of_Source,
			setKind_of_Source : setKind_of_Source,
			getNum_of_Prod : getNum_of_Prod,
			getOrder_no : getOrder_no,
			callbackProductinfosRelated : callbackProductinfosRelated,
			setDetailRecommCookie : setDetailRecommCookie,
			callbackProductinfoZusatzangebot : callbackProductinfoZusatzangebot,
			getProductinfos : getProductinfos,
			showDefaultWKRecomm : showDefaultWKRecomm,
			getFallback : getFallback,
			cleanBasketRecomm : cleanBasketRecomm,
			setRecommend : setRecommend,
			checkRecommState : checkRecommState,
			initDefault : initDefault
		};

	}();
	

// Verarbeitung der Prudsys-Requests	

	Prudsys = function(){
		//Artikeldetailseite Event senden und related article abfragen
		var urlrecomm = "https://rde.weltbild.de/rde_server/res/d22265304964/recomm/detailview/sid/<SESSION-ID>?item=<ITEM_ID>";
		//Event Artikel in den Warenkorb gelegt
		var urlbasket = "https://rde.weltbild.de/rde_server/res/d22265304964/event/basket/sid/<SESSION-ID>?itemids=<ITEM_ID>&quantity=<QUANTITY>";
		//Event Bestellabschluss Warenkorb
		var urlorder = "https://rde.weltbild.de/rde_server/res/d22265304964/event/order/sid/<SESSION-ID>?itemids=<ITEM_ID>&quantity=<QUANTITY>";
		//Abfrage Zusatzangebot der Woche
		var urlrecommbasket = "https://rde.weltbild.de/rde_server/res/d22265304964/recomm/basketrecomm/sid/<SESSION-ID>?itemids=<ITEM_ID>";
 
 			
		var type ="";
		var url ="";
		var session="";
		var aktiv=null;
		var max=0;
		
		
		//Ueber Typ die entspr. Url definierten
		function init(session,type,article,quantity){
			this.type=type;
			
		   prrequestout = false;
		    var splitt= session.split(".");
		    this.session=splitt[0];
			switch (this.type) {
			    case "recomm": url=urlrecomm.replace('<SESSION-ID>',this.session).replace('<ITEM_ID>',article);
			    			   controlgroup=null;
			                   break;
			    case "basketrecomm": 
			                        if (article != ''){
			    						url=urlrecommbasket.replace('<SESSION-ID>',this.session).replace('<ITEM_ID>',article);
			    					}else{
			    						url='';
			    					}
			    					 controlgroup=null;
			                     	 break;
			    case "eventbasket": url=urlbasket.replace('<SESSION-ID>',this.session).replace('<ITEM_ID>',article).replace('<QUANTITY>',quantity);
			                     break;
			    case "eventorder": url=urlorder.replace('<SESSION-ID>',this.session).replace('<ITEM_ID>',article).replace('<QUANTITY>',quantity);
			                       break;
			    default: this.type="";
			}

		}
		
		//Url abschicken
		function sendUrl()
		{	
			var head = document.getElementsByTagName("head")[0];
			script = document.createElement("script");
			script.id = "prudsys";
			script.type = "text/javascript";
		    script.src = url;
			head.appendChild(script);
		}
		
		//Auswerten der zurueckgelieferten Artikel
		function result(obj){	
			var count = 0;
			var numbers="";	
			var objects;
			controlgroup='true';
			
			try{
				if (obj == null){
				    if (Recommendation.getFallback() != '1'){
						Recommendation.cleanBasketRecomm();
						return false;
					}
				}
				
				if (obj.length == 2){
				        //Coremetrics, aber mit Liste --> keine Anzeige
						if (obj[1]['global']['controlgroup'] == null || obj[1]['global']['controlgroup'] == 'true'){
						   if (Recommendation.getFallback() != '1'){
						    	Recommendation.cleanBasketRecomm();
								return false;
							}
						}else{
							//Pruefung, Artikel vorhanden
						    if (obj[0]['query1'] != null){
						    	objects=obj[0]['query1'];
								count=obj[0]['query1'].length;
								if (count <= 0) {
								 	 if (Recommendation.getFallback() != '1'){
						    			Recommendation.cleanBasketRecomm();
										return false;
									}
								}
							}else{
							    if (Recommendation.getFallback() != '1'){
						    		Recommendation.cleanBasketRecomm();
									return false;
								}
							}
						}
					}else{
						//Prudsys ohne Liste --> keine Anzeige
						if (obj[0]['global']['controlgroup'] == 'false' || obj[0]['global']['controlgroup'] == null){
							if (Recommendation.getFallback() != '1'){
						    	Recommendation.cleanBasketRecomm();
								return false;
							}
						}
				}
				
				if (count > 1){
				        controlgroup='false';
						for(var i=0; i<objects.length; i++){
						 	if (objects[i]['product_nr'] != 'undefined' && objects[i]['product_nr'] != null){
							  if (numbers == "")
							  	numbers=objects[i]['product_nr'];
							  else
							  	numbers=numbers+'|'+objects[i]['product_nr'];
							}
						}   
				}  
				
			} catch (e) {};
			
			Recommendation.getProductinfos(numbers,this.type,true);
		}
		
		
		function start(session,type,article,quantity)
		{	 
			if (execute_no_prudsys == false){
			    
				Prudsys.init(session,type,article,quantity);
				if (session != null){
				   if (url.replace(' ','') != '' && session.replace(' ','') != ''){
						setTimeout("Prudsys.sendUrl()",100);
						
						if (type == 'recomm' && type == 'basketrecomm')
							setTimeout("Recommendation.checkRecommState()",2000);
				   }else{
					   	  if (type == 'recomm'){
					   	  	getProductinfos('',this.type,true);
					   	  }else if (type == 'basketrecomm'){
					   	  	Recommendation.showDefaultWKRecomm();
					   	  }
				   }
				}
			}
		}
		
		return {
			start : start,
			init : init,
			sendUrl : sendUrl,
			result : result
		};
		
	}();



function prudsysRecommCallback(obj){
	Recommendation.setRecommend(true);
	Prudsys.result(obj);
}

// IOffer-Verarbeitung

	IOffer = function(){
		var type='';
		function start(zone,order_no)
		{
			var split=order_no.split(',');
			var element = split.length-1;
			
			 prrequestout = false;
			 this.type=zone.toLowerCase() ;
			  
			if (element >= 0) {
				cmRecRequest(zone,split[element],'');
			} else
				cmRecRequest(zone,'','');
				
			setTimeout("Recommendation.checkRecommState()",2000);
			cmDisplayRecs();	
		}
		
		function result(obj){
			var numbers='';
			var split =Recommendation.getOrder_no().split(',')
			var order_id_array = new Array();
			
			for(var i=0; i<split.length; i++)
				order_id_array[split[i]]=' ';	
			try{
				if (obj != null){
					for(var i=0; i<obj.length; i++){
					
						if (order_id_array[obj[i]] == undefined){
							if (numbers == "")
								 numbers=obj[i];
							else
								 numbers=numbers+'|'+obj[i];
						}
					}  
				 }
				
			} catch (e) {};


            if (numbers != '' ) {
            	Recommendation.getProductinfos(numbers,this.type,true);
            } else if (numbers == '' && Recommendation.getFallback() == '1' && this.type == 'recomm1'){
            		Recommendation.initDefault(Recommendation.getNum_of_Prod(),related_article);
			}else if (Recommendation.getFallback() == '1') {
				Recommendation.getProductinfos(numbers,this.type,true);
			} else {
				Recommendation.cleanBasketRecomm();
			}
		}
		
		return {
			start : start,
			result : result
		};
	}();

function RECOMM1_zp(a_products_ids,zone,symbolic,target_id,category,rec_attributes,target_attributes,target_header_txt){
		Recommendation.setRecommend(true);
		IOffer.result(a_products_ids);
}

function CARTREC1_zp(a_products_ids,zone,symbolic,target_id,category,rec_attributes,target_attributes,target_header_txt){
        Recommendation.setRecommend(true);
		IOffer.result(a_products_ids);
}



