var triPakte=null;
window.onload = function() { triPakte=new trpkt();  triPakte.init(); }

function trpkt() {
    //  this.init(); 
}

trpkt.prototype = {
 anzahl  : 12,
 objs	 : new Array(),
 rabatte : new Array(),
 kats	 : new Array(),
 overlay : null,
 produkte: new Object(),
 cart	 : new Array(),
 cartObj : null,
 curent_waehrungen : 'CHF',
 mailText : '',
 trilizenz: null,

 init: function()
 {  
  this.rabatte[1]  =  5;
  this.rabatte[5]  = 10;
  this.rabatte[10] = 15;
 
  this.kats[1] = new Object;
  this.kats[1]['titel'] = 'NEOPREN';
  this.kats[1]['katId'] = 180; 
  
  this.kats[2] = new Object;
  this.kats[2]['titel'] = 'SCHWIMBRILLE';
  this.kats[2]['katId'] = 182; 
  
  this.kats[3] = new Object;
  this.kats[3]['titel'] = 'TRISUIT';
  this.kats[3]['katId'] = 181; 
 
  this.kats[4] = new Object;
  this.kats[4]['titel'] = 'RAHMEN';
  this.kats[4]['katId'] = 184; 
  
  this.kats[5] = new Object;
  this.kats[5]['titel'] = 'KOMPLETTRAD';
  this.kats[5]['katId'] = 183; 
  
  this.kats[6] = new Object;
  this.kats[6]['titel'] = 'LAUFRAD';
  this.kats[6]['katId'] = 185; 
  
  this.kats[7] = new Object;
  this.kats[7]['titel'] = 'AUFSATZ';
  this.kats[7]['katId'] = 186; 
  
  this.kats[8] = new Object;
  this.kats[8]['titel'] = 'TRINKSYSTEME';
  this.kats[8]['katId'] = 188; 
  
  this.kats[9] = new Object;
  this.kats[9]['titel'] = 'RADHELME';
  this.kats[9]['katId'] = 189; 
  
  this.kats[10] = new Object;
  this.kats[10]['titel'] = 'RADSCHUHE';
  this.kats[10]['katId'] = 192; 
  
  this.kats[11] = new Object;
  this.kats[11]['titel'] = 'TIGHTS';
  this.kats[11]['katId'] = 195; 
  
  this.kats[12] = new Object;
  this.kats[12]['titel'] = 'COACHING';
  this.kats[12]['katId'] = 177;
  
  for(var i=1 ; i<=this.anzahl ; i++)
  {
   this.objs[i] = document.getElementById('tripkt_obj_'+i);
   this.objs[i].onclick = function() { triPakte.showSelection(this); };
   this.objs[i].innerHTML = this.kats[i]['titel']+'<br>w&auml;hlen';
  } 
  
  this.overlay = document.getElementById('tripkt_overlay');
  this.cartObj = document.getElementById('tripkt_cart_list');
  
  this.drawRabatte();
  this.calcCart();
  
  this.trilizenz = document.getElementById('tripkt_trilizenz');
  this.trilizenz.onkeypress = this.checkLizenzFeld;
 },
 
 showSelection: function( obj )  
 {
   var id = parseInt(obj.id.substr(11));
   
   this.overlay.innerHTML = '<img src="/admin/img/sanduhr.gif" border="0" />';
   this.overlay.style.display = 'block';
   
   sendRequest('/index.php', 'src=cats&kat='+this.kats[id].katId+'&_main_tpl_file=cats_json.tpl&do_utf8=1', REQUEST_GET, new Array('triPakte', 'buildSelection'), id);
 },
 
 buildSelection: function( AjaxObj )
 {
  var data = eval('('+AjaxObj.responseText+')');
  
  triPakte.curent_waehrungen = data.curent_waehrungen;
  
  var html = '<div id="btn_close" onClick="triPakte.closeOverlay()">schliessen</div><h2>'+data.kategorie.title+'</h2>';
  
  html += '<div class="cats_object_td_block"><table id="product" border="0"  cellpadding="3" cellspacing="0">';
  
  for(var i=0 ; i<data.news.length ; i+=5)
  {
   html += '<tr>';
   
   for(var x=0; x<5 ; x++)
   {
    if ((i+x)<data.news.length ) {
     html += '<td valign="bottom" onClick="triPakte.selectProdukt('+data.news[(i+x)].id+', '+AjaxObj.clipboard+')">'+triPakte.buildSelectionTd(data.news[(i+x)] )+'</td>';
	 triPakte.produkte[data.news[(i+x)].id] = data.news[(i+x)];	
    } else {
	 html += '<td>&nbsp;</td>'; 
	} 
   }
   
   html += '</tr>';
  }
  
  html += '</table></div><div id="btn_entfernen" onClick="triPakte.selectProdukt(0, '+AjaxObj.clipboard+')">Produkt entfernen</div>';
  
  triPakte.overlay.innerHTML = html;
 },
 

 buildSelectionTd: function( row )
 {
   var html = '<table border="0" cellpadding="2" cellspacing="0" bgcolor="#FFFFFF">';
   
   html += '<tr>';
   html += '<td class="tl"><a title="'+row.title+'">'+row.title+'</a></td>';
   html += '</tr>';
   if (row.images.id!='') {
    html += '<tr>';
    html += '<td class="img"><a title="'+row.title+'"><img src="'+row.images.url+'" alt="'+row.images.alt+'" border="0" /></a></td>';
    html += '</tr>';
   } else {
    html += '<tr>';
    html += '<td class="img"><a title="'+row.title+'">Leider kein Bild.</a></td>';
    html += '</tr>';  
   }
   html += '<tr>';
   html += '<td class="preis">';  
      
   if (row.old_preis>0 && row.preis!=row.old_preis) 
   {
   
    if (row.bestellform=='aa')  
    {                              
     html += 'auf Anfrage';
    } else {
     html += 'Aktion: '+triPakte.curent_waehrungen+' '+row.preis+'<br />';
     html += 'Orgpr.: '+triPakte.curent_waehrungen+' '+row.old_preis;
    }
   } else {   
    if (row.bestellform=='aa')  
    {                              
     html += 'auf Anfrage';
    } else {
     html += triPakte.curent_waehrungen+' '+row.preis;
	
	 if (row.artikelnummer!='')
	  html += '<br />Artnr: '+row.artikelnummer;
	}  
   }
   html += '</td>';
   html += '</tr>';    
   html += '</table>'; 
 
   return html; 
 },
 
 closeOverlay: function()
 {
  this.overlay.style.display = 'none';
 },
 
 selectProdukt: function(produktId, objId)
 {
  this.closeOverlay();
  
  if (produktId==0)
  {
   delete(this.cart[objId]);
   this.objs[objId].innerHTML = this.kats[objId]['titel']+'<br>w&auml;hlen';
   this.objs[objId].className = 'tripkt_obj';
  } else {
   this.cart[objId] = this.produkte[produktId];
   this.objs[objId].innerHTML = this.buildSelectionTd( this.produkte[produktId] );
   this.objs[objId].className = 'cats_object_td_block';
  }   
  
  this.calcCart();
 },
 
 drawRabatte: function()
 {
  var von    = 0;
  var rabatt = 0;
  var html = '<table border="0">';
  
  for(i in this.rabatte)
  {
   if(von>0)
    html += '<tr><td align="left">'+von+'-'+(i-1)+'</td><td align="left">Produkte</td><td align="right">'+rabatt+'%</td></tr>';  

   rabatt = this.rabatte[i];
   von = i;
  }
  
  html += '<tr><td align="left">'+i+'+</td><td align="left">Produkte</td><td align="right">'+rabatt+'%</td></tr>';
  
  html += '</table>'; 
 
  document.getElementById('tripkt_rabatte').innerHTML = html;
 },
 
 calcCart: function()
 { 
  if (this.cart.length==0)
  {
   this.cartObj.innerHTML = 'bitte oben w&auml;hlen';
  } else {
   var html = '<table border="0" cellspacing="0" cellpadding="2" width="100%">';
   var cartSum  = 0;
   var carCount = 0;
   triPakte.mailText = '';
   
   for(i in this.cart)
   { 
    html += '<tr><td align="left">'+this.cart[i].title+'</td><td align="right">'+triPakte.curent_waehrungen+' '+this.cart[i].preis+'</td></tr>';  
	triPakte.mailText += triPakte.str_pad(this.cart[i].title, 60, ' ')+' '+triPakte.curent_waehrungen+' '+this.cart[i].preis+"\n";
	cartSum += parseFloat(this.cart[i].preis);
	carCount++;
   }
   
   var rabatt = 0;
   for(i in this.rabatte)
   {
    if (i<=carCount)
	 rabatt =this.rabatte[i];
   }
   
   html += '<tr><td align="left">Rabatt</td><td align="right">'+rabatt+'%</td></tr>'; 
   triPakte.mailText += triPakte.str_pad('Rabatt', 60, ' ')+' '+rabatt+"%\n";
   
   var cartTotal = cartSum;
   if(rabatt>0) 
    cartTotal = cartTotal*(100-rabatt)/100;
	
   var triLiznez = document.getElementById('tripkt_trilizenz').value; 
   var havetriLiznez = (triLiznez!='Tri Lizenz' && triLiznez.length==5)?true:false;
	
   if (havetriLiznez==true)
   {
    cartTotal = cartTotal*(100-15)/100;
	
	html += '<tr><td align="left">Rabatt TriLizenz</td><td align="right">15%</td></tr>';  
	triPakte.mailText += triPakte.str_pad('Rabatt TriLizenz', 60, ' ')+' '+"15%\n";	
	
   } else {
    document.getElementById('tripkt_trilizenz').value='Tri Lizenz';
   }	
   	
   html += '<tr><td align="left" style="padding-top:5px; border-top:1px solid #666666;"><b>Gesamt</b></td><td align="right" style="padding-top:5px; border-top:1px solid #666666;"><b>'+triPakte.curent_waehrungen+' '+this.number_format(cartTotal, 2, ',')+'</b></td></tr>'; 	
   triPakte.mailText += "\n"+triPakte.str_pad('Gesamt', 60, ' ')+' '+triPakte.curent_waehrungen+' '+this.number_format(cartTotal, 2, ',')+"\n";	
   
   html += '</table>'; 
   html += '<div id="tripkt_BtncallGuidance" onclick="triPakte.callGuidance()">jetzt Beratung zu meiner Auswahl anfordern</div>'; 
   
   this.cartObj.innerHTML = html;
  }
 },
 
 callGuidance: function()
 { 
   var html = '<div id="btn_close" onClick="triPakte.closeOverlay()">schliessen</div><div style="width:344px; margin: 15px; margin-left:178px; background-color:#F1F1F1; border:1px solid #666666;" align="left"><div style="padding:5px"><b>Beratung anfordern</b><br>';
   html += '<form action="/index.php" method="post">';
   html += '<input type="hidden" name="src" value="details">';
   html += '<input type="hidden" name="id"  value="1137">';
   html += '<input type="hidden" name="betreff"  value="Tri Paket">';
   html += '<input type="hidden" name="text" value="'+triPakte.mailText+'" id="callGuidanceText">';
   html += '<table border="0">';
   html += '<tr><td align="left">Name   </td><td align="left"><input type="text" name="name"  value="" class="konf_form" maxlength="250" /></td></tr>';
   html += '<tr><td align="left">E-Mail </td><td align="left"><input type="text" name="email" value="" class="konf_form" maxlength="250" /></td></tr>';
   html += '<tr><td align="left">Telefon</td><td align="left"><input type="text" name="tel"   value="" class="konf_form" maxlength="250" /></td></tr>';
   html += '<tr><td>&nbsp;</td><td align="left"><input name="send_kontakt_form" class="send_kontakt_form" value=" senden " type="submit" />';
   html += '</table>';
   html += '</div></div>';
   
   triPakte.overlay.innerHTML = html;
   this.overlay.style.display = 'block';
 },
 
 number_format: function(number, decimals, dec_point, thousands_sep)
 {
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }
  
  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ? 
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }
  
  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }
  
  return sign + integer + fractional + exponent;
 },
 
 escapeHTML: function(str)
 {
   str = str.replace(/\"/g, '&quot;').replace(/\>/g, '&gt;').replace(/\</g, '&lt;');
   return str;
 },
 
 str_pad: function( input, pad_length, pad_string) 
 {
    var half = '', pad_to_go;
 
    var str_pad_repeater = function(s, len) {
        var collect = '', i;
 
        while(collect.length < len) {collect += s;}
        collect = collect.substr(0,len);
 
        return collect;
    };
 
    input += '';
    input = input.substring(0, pad_length);
 
    if ((pad_to_go = pad_length - input.length) > 0) {
      input = input + str_pad_repeater(pad_string, pad_to_go); 
    }
 
    return input;
 },
 
 checkLizenzFeld: function(evt)
 {     
  window.setTimeout("triPakte.checkLizenzFeldLength()", 10);
 
  var charCode = ( evt.which ) ? evt.which : event.keyCode;
  return ( charCode >= 48 && charCode <= 57 );

 },
 
 checkLizenzFeldLength: function(evt)
 {   
  if (triPakte.trilizenz.value.length==5)
  {
   triPakte.calcCart(); 
  } 
 }
 
 
}
