//------------------------------------------------------------------------------    
//                             WARENKORB-NG 2.0
//------------------------------------------------------------------------------
    // onCklick Event auf kd_btn_login setzen
    function setLogin()
    {
        //console.log('Setze setLogin onClick Event');
        // Login
        $('#btn_kdlogin').unbind('click');
        $('#btn_kdlogin').click(function(){
            
            var username = $('#kd_username').val();
            var password = $('#kd_password').val();
            
            //console.log('KDLOGIN : USER: ' + username + ' \nPW:' + password );
            
            if(password == '')
            {
                var params = 'action=kdnew&username=' + username + '&' + $('#frm_userdetails').serialize()+'&'+ $('#lvn').val() +'='+$('#lval').val();
            }
            else
            {
                var params = 'action=kdlogin&username=' + username + '&password=' + password+'&'+ $('#lvn').val() +'='+$('#lval').val();
            }
                
            $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                
                var msg = $(data).find("msg").text();
                var error = $(data).find("error").text();
                //alert(error);
                if(error == '-1')
                {
                    $('#wk_meldung').attr({innerHTML : ''});
                }
                else if(error == '0')
                {
                    var params = 'action=showui&texte_id=' + $('#texte_id').val()+'&'+ $('#lvn').val() +'='+$('#lval').val();
                $.post("module/warenkorb-ng/ui_controller.php",params,function(data){
                    $('#wk_ui_container').attr({innerHTML:data});
                    $("a[rel=colorbox]").colorbox({width:"80%", height:"90%", iframe:true});
                    $("a[rel=smallwindow]").colorbox({width:"50%", opacity: "0.7", height:"45%", iframe:true, rel:'nofollow'});
                    // Logout Eventhandler
                    setLogout();
                    
                    // Bestandskunde
                    // Bestellen Button
                    $('#btn_bestellen').unbind('click');
                    $('#btn_bestellen').click(function(){
                        
                        // Kundendaten speichern & Bestellung abschliessen
                        
                        if(Validate_ajax('wk_frm_kunde') == true)
                        {
                        
                            var params = 'action=kdedit&' + $('#wk_frm_kunde').serialize();
                            $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                                // Bestellung abschliessen
                                 var params = 'action=ende';
                                
                                $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
									$('#warenkorb').attr({innerHTML:''});
                                	$('#warenkorb').attr({innerHTML:data});
                                	// Update wk_iconbar
								updateIconBar('120',true);
                                	
                                	
                                });
                            
                            });
                        }
                        
                        
                    });
                    
                });
                
                }
            });
        });        
    
    }
    // onClick Event auf btn_logout
    function setLogout()
    {
        $('#btn_logout').click(function(){
                var params = 'action=kdlogout&texte_id=' + $('#texte_id').val()+'&'+ $('#lvn').val() +'='+$('#lval').val();
                $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                    $('#wk_meldung').attr({innerHTML:data});
                    location.href="index.php?mod=warenkorb&kat=" + $('#kat').val()+'&texte_id=' + $('#texte_id').val()+'&'+ $('#lvn').val() +'='+$('#lval').val();
                    //alert($('#kat').val());
            });
        });
    }
    
    // �berpr�ft ob noch Zusatzinformationen ben�tigt werden
    // und gibt diese in Abh�ngigkeit vom gew�hlten Slot aus
    function checkpayment_slot(slot_id)
    {
        
        var params = "action=checkpayment&slot_id=" + slot_id;
                $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                    
                    //var htmlcode = $(data).find("htmlcode").text();
                   
                    $('#wk_payment_details').html(data);
                    
                    // Event Speicher Button
                    $('#wk_payment_details_btn_save').unbind('click');
                    $('#wk_payment_details_btn_save').click(function(){
                        
                        var params = 'action=payment_details_set&' + $('#wk_frm_payment_details').serialize()+'&'+ $('#lvn').val() +'='+$('#lval').val(); 
                        $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                           
                            
                                                            
                        });
                    });
                });
    }
    
    // Setzt Versandkosten in Abh�ngigkeit des gew�hlten Slots
    // und berechnet den Warenkorb neu
    function set_shipment(slot_id)
    {
        var params = "action=versand_set&slot_id=" + slot_id;
                $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                    $('#wk_porto').attr({innerHTML:data});
                    
                    var params = "action=get_rechnung"+'&'+ $('#lvn').val() +'='+$('#lval').val();
                    $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                    //data = round(Number(data),2);
                    $('#wk_rechnung').attr({innerHTML:''});
                    $('#wk_rechnung').attr({innerHTML:data});
                    });
                });
        
    }
    // Initialisierung des WK Script 
    // muss im <HEAD> geladen werden
    function wk_init()
    {
        // UI 
        
        var params = 'action=showui&texte_id=' + $('#texte_id').val()+'&'+ $('#lvn').val() +'='+$('#lval').val();
            $.post("module/warenkorb-ng/ui_controller.php",params,function(data){
                
                
                $('#wk_ui_container').attr({innerHTML:data});
                
                // Setzte onCLick Events des Login Buttons
                // Logout Eventhandler
                    setLogout();
                
                //setLogin();
                $("a[rel=colorbox]").colorbox({width:"80%", height:"90%", iframe:true});
                $("a[rel=smallwindow]").colorbox({width:"50%", opacity: "0.7", height:"45%", iframe:true, rel:'nofollow'});
            
               
                    // Anmelde Button Event
                    setLogin();
                    // Bestell Button
                    $('#btn_bestellen').unbind('click');
                    $('#btn_bestellen').click(function(){
                        
                        // Kundendaten speichern & Bestellung abschliessen
                        
                        if(Validate_ajax('wk_frm_kunde') == true)
                        {
                            // Bestellen als Bestandskunde
                            var params = 'action=kdnew&' + $('#wk_frm_kunde').serialize();
                            $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                                
                            	// Abschluss
                                var params = 'action=ende&texte_id=' + $('#texte_id').val()+'&'+ $('#lvn').val() +'='+$('#lval').val();
                                $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
									$('#warenkorb').attr({innerHTML:''});
                                	$('#warenkorb').attr({innerHTML:data});
                                // Update wk_iconbar
								updateIconBar('284',true);	
                                	
                                	
                                });
                            });
                        }
                        
                        
                    });  
                //}
                
            
            });
            
    }
    // WK Refresh
            function refresh_WK(artid,lang,lang_var_name)
			{
				var params = 'action=edit_&artid=' + artid + '&menge=' + getValue('wk_mengeID_' + artid) + '&'+ lang_var_name + '=' + lang;
				$.post('module/warenkorb-ng/ajax_controller.php',params,function(data){
					$('#wk_container').attr({innerHTML : ''})	
					$('#wk_container').attr({innerHTML : data})
					var params = "action=get_rechnung";
                    $.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
                    //data = round(Number(data),2);
                    $('#wk_rechnung').attr({innerHTML:data});
                    });
				});
			}
			
	// Updater f. WK Iconbar
	function updateIconBar(linenumber,debug)
	{
		// Update wk_iconbar
		
		// Request an ajax_controller:
		// params: action = update_wk_icon
		
		var params = 'action=update_wk_icon';
		$.post("module/warenkorb-ng/ajax_controller.php",params,function(data){
		    var wk_article_count = $(data).find("wk_article_count").text();
		    var wk_total         = $(data).find("wk_total").text();
		    //alert(wk_total);
		    $('#wk_total').attr({innerHTML:wk_total});
			$('#wk_article_count').attr({innerHTML:wk_article_count});					           
					
			if(wk_total == 0)
			{
				$('#wk_icon_bar_td').attr({'class':'warenkorb0'});
			}
			else
			{
				$('#wk_icon_bar_td').attr({'class':'warenkorb1'});
			}
			if(debug == true)
			{
				//alert('z:' + linenumber);
			}
				
		});
	}
//------------------------------------------------------------------------------    
//                        WARENKORB-NG 2.0 ENDE
//------------------------------------------------------------------------------
// Runden auf Nachkommastellen
	function round(zahl,n_stelle)
	{
   		n_stelle = n_stelle == 0 ? 1 : Math.pow(10,n_stelle);
   		
   		zahl = Math.round(zahl * n_stelle) / n_stelle;
  		return zahl;
	}
	
	function dump(arr,level) 
	{
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}
	// Hat eine Macke es konvertiert alles zu klein buchstaben-.-.-
	function JSON___() 
	{
      var formValues = '{';
      // Suche input el
      for (var i=0; i<document.forms[0].getElementsByTagName('input').length; i++) 
      with (document.forms[0].getElementsByTagName('input')[i])
      {
        formValues = formValues + '\"' + name + '\":\"' + value + '\",';
      }
      // Suche select el
      for (var i=0; i<document.forms[0].getElementsByTagName('select').length; i++) 
      with (document.forms[0].getElementsByTagName('select')[i])
      {
        formValues = formValues + '\"' + name + '\":\"' + value + '\",';
      }
      
      return formValues = formValues.substr(0,formValues.length-1) + '}';
    }
    // Gibt Formulardaten zur�ck
    function getFORMDATA(formid)
    {
    	var params = '&' + $('#' + formid).serialize();
    	return params;
    }
//------------------------------------------------------------------------------        
    
	// universal loader
	function ajax_load_get(url,uri,container_el,notification)
	{
		//alert(container_el);

		if(notification == undefined) var notification = false;
		
		var xhr = createXHR();
		var param = uri;
		var container = document.getElementById(container_el);
		if(xhr)
		{
			xhr.open('GET',url+param,true);
			
			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					
					// Reset Container ELmenent
					container.innerHTML = '';
					container.innerHTML = xhr.responseText;
					
					if(notification != '' )
					{
					Show();
					// FadeBox f. Ausgabe 
					document.getElementById('fadeBox').innerHTML = notification;
					delay_fade();
					
					}
					// Anzeige WK
					wk_init(); 
					
					updateIconBar('391',true);
					
				}
				else
				{
					//container.innerHTML = 'ReadyState ' + xhr.readyState;
				}
			};
			xhr.send(null);
		}
		else
		{
			alert('error create xhr');
		}
	}

		// universal loader POST
	function ajax_load_post(url,uri,container_el,notification)
	{
		
		if(notification == undefined) var notification = false;
		
		var xhr = createXHR();
		var param = uri;
		var container = document.getElementById(container_el);
		if(xhr)
		{
			xhr.open('POST',url,true);
			xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xhr.setRequestHeader("Content-length", param.length);
			xhr.setRequestHeader("Connection", "close");
			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					//alert('MiH2Su');
					// Reset Container ELmenent
					container.innerHTML = '';
					container.innerHTML = xhr.responseText;
					
					if(notification != '' )
					{
					Show();
					// FadeBox f. Ausgabe 
					document.getElementById('fadeBox').innerHTML = notification;
					delay_fade();
					wk_init();
					updateIconBar('391',true);
					} 
				}
				else
				{
					//container.innerHTML = 'ReadyState ' + xhr.readyState;
				}
			};
			xhr.send(param);
		}
		else
		{
			alert('error create xhr');
		}
	}
	
	
	// Confirm Dialog
	function ask(url,msg)
	{
		if (confirm(msg) )
		{
			location.href = url;
		}
		else
		{
			return false;
		}
	}
	// checkOnEnter Event Handler
	function checkOnEnter(e)
	{
			var keycode;
 			if(e.which)
 			{
 				/*FF*/
 				keycode = e.which;
 			}
 			else if(window.event)
 			{
 				keycode = e.keyCode;
 			} 
  
			  if(keycode == 13)
			  {
			  	//sendSearch('volltext');
			  }
			  else
			  {
			  return true;
			  }
	}
	// Value Getter
	
	function getValue(val)
	{
		return document.getElementById(val).value;
	}
	
	
	function Validate_ajax(formid)
	{
       
        var error = 0;
        // input felder
        var expr = '#' + formid + ' input';
        $(expr).each(function(){
           //alert(this.className);    
           
           if(this.className == "pflicht")
           {
               if(this.value == "")
               {
                   error++;
                   $(this).css({'background' : '#ffcccc'});
               }
               else
               {
                   $(this).css({'background' : '#ffffff'});
               }
               
               
               
              
           }
        
        });
        
        // Select
        var expr = '#' + formid + ' select';
        $(expr).each(function(){
           
           if(this.className == "pflicht")
           {
               if(this.value == -1)
               {
                   error++;
                   $(this).css({'background' : '#ffcccc'});
               }
               else
               {
                   $(this).css({'background' : '#ffffff'});
               }
           }
           
        
        });
        
        
        // Select
        var expr = '#' + formid + ' input:checkbox';
        $(expr).each(function(){
           
           if(this.className == "pflicht")
           {
               if($(this).is(':checked') )
               {
                
                   $(this).css({'background' : '#ffffff'});
               
               }
               else
               {
                   error++;
                   $(this).css({'background-color' : '#ffcccc'});
                   
               }
               
           }
           
           if(this.id == "agb")
           {
               if($(this).is(':checked') )
               {
                
                   $('#agb_msg').attr({innerHTML:''});
               
               }
               else
               {
                   $('#agb_msg').css({color:'red'});
                   $('#agb_msg').attr({innerHTML:$('#agb_text').val()});
                   
                   
               }
           }
        
        });
       
        if(error == 0)
		{
		    
			return true
		}
		else
		{
			
			Show();
			// FadeBox f. Ausgabe 
			$('#fadeBox').attr({innerHTML:$('#wk_msg_pflicht').val()});
			delay_fade();
			return false;
		}
     }
	
	
	// Validierung eines Formulars Pflichtfelder müssen
// mit der Klasse "pflicht" markiert sein. 
// eb - 10.11.2009
function Validate(url,uri,formid,container_el,method)
	{
       
        var error = 0;
        // input felder
        var expr = '#' + formid + ' input';
        $(expr).each(function(){
          // alert(this.className);    
           
           if(this.className == "pflicht")
           {
               if(this.value == "")
               {
                   error++;
               }
               
               
              
           }
        
        });
        
        // Select
        var expr = '#' + formid + ' select';
        $(expr).each(function(){
           
           if(this.className == "pflicht")
           {
               if(this.value == -1)
               {
                   error++;
               }
           }
        
        });
        
        
        // Select
        var expr = '#' + formid + ' input:checkbox';
        $(expr).each(function(){
           
           if(this.className == "pflicht")
           {
               if($(this).is(':checked') )
               {
                   
               }
               else
               {
                   error++;
               }
               
           }
        
        });
       
        if(error == 0)
		{
		    
			if(method == "post")
				{
					
				    ajax_load_post(url,uri,container_el,'');
				}
				else
				{
					
				    ajax_load_get(url,uri,container_el,'');
				}
		}
		else
		{
			
			Show();
			// FadeBox f. Ausgabe 
			$('#fadeBox').attr({innerHTML:'Bitte alle Pflichtfelder ausf�llen.'});
			delay_fade();
		}
     }
	//--------------------------------------------------------------------------
	// Notifications
	// Trigger
	function delay_fade()
	{
		window.setTimeout('Hide()',2000);
	}
	
	//Show Message
	function Show()
	{
		//document.getElementById('fadeBox').style.display = 'block';
		$('#fadeBox').fadeIn('ease');		
	}
	
	// Restore StyleProperties fadeBox
	
	function Hide()
	{
		//document.getElementById('fadeBox').style.display = 'none';
		$('#fadeBox').fadeOut('ease');
	}
	
	//--------------------------------------------------------------------------
	
