var pPs = 9;
var start = 0;
var products = new Array();
var pr = new Array();

//Komplexes FilterObject
var filter = new Object();
filter["types"]=new Array();
filter["colors"]=new Array();
filter["models"]=new Array();
filter["sizes"]=new Array();
filter["materials"]=new Array();

function inArray(val,arr) {
 for (var i=0;i<arr.length;i++) {
  if (arr[i]==val) return true;
 }
 return false;
}


function checkFilter(val) {
 result = true;
 //Ausnahme: Filter ist gar nicht gesetzt
 if (filter["types"].length>0) { //Filter ist gesetzt
  if (inArray(val["type"],filter["types"]))
   result = result && true;
  else
   result = result && false;
 } else {
  result = result  && true;
 }
 if (filter["colors"].length>0) { //Filter ist gesetzt
  if (inArray(val["color"],filter["colors"]))
   result = result && true;
  else
   result = result && false;
 } else {
  result = result  && true;
 }
 if (filter["models"].length>0) { //Filter ist gesetzt
  if (inArray(val["model"],filter["models"]))
   result = result && true;
  else
   result = result && false;
 } else {
  result = result  && true;
 }
 if (filter["sizes"].length>0) { //Filter ist gesetzt
  sizes = val["sizes"].split(",");
  swap = false
  for (i=0;i<sizes.length;i++) {
   if (inArray(sizes[i],filter["sizes"])) {
    swap = true;
//     alert(sizes[i]+' '+val["name"]);
    break;
   }
//    else
//     result = result && false;
  }
  result = result && swap;
 } else {
  result = result  && true;
 }
 return result;
}


function delArray(val,arr) {
 if (arr.length==0) return arr;    //Fallback
 var result = new Array(arr.length-1);
 for (var i=0;i<arr.length;i++) {
  if (arr[i]!=val) result[i]=arr[i];
  else break;
 }
 for (var j=i+1;j<arr.length;j++) {
  result[j-1]=arr[j];
 }
 return result;
 
}


function setType(id) {
 filter["types"][0]=id;
//  if (!inArray(id,filter["types"])) filter["types"][filter["types"].length]=id;
//  else filter["types"] = delArray(id,filter["types"]);
 setFilter();
}

/*
function unsetType(aus) {
 filter["types"]=new Array();
 sizes = document.getElementById('typ-content').getElementsByTagName('td');
 for (i=0;i<sizes.length;i++) {
  sizes[i].className=aus;
 }
 setFilter();
}
*/

function unsetType(aus) {
 filter["types"]=new Array();
 sizes = document.getElementById('typ-content').getElementsByTagName('div');
 for (i=0;i<sizes.length;i++) {
    sizes[i].className=aus;}
 setFilter();
}

function setColor(id) {
 filter["colors"][0]=id;
//  if (!inArray(id,filter["colors"])) filter["colors"][filter["colors"].length]=id;
//  else filter["colors"] = delArray(id,filter["colors"]);
 setFilter();
}

function unsetColor(aus) {
 filter["colors"]=new Array();
 sizes = document.getElementById('color-content').getElementsByTagName('div');
 for (i=0;i<sizes.length;i++) {
    if (sizes[i].className == 'listing_color_back_right_on')
     {sizes[i].className='listing_color_back_right';}
    else if (sizes[i].className == 'listing_color_back_right')
     {sizes[i].className='listing_color_back_right';}
     else
    {sizes[i].className=aus;}
    //sizes[i].className=aus;
    }
 setFilter();
}

function setMaterial(id) {
 if (!inArray(id,filter["materials"])) filter["materials"][filter["materials"].length]=id;
 else filter["materials"] = delArray(id,filter["materials"]);
 setFilter();
}

function unsetMaterial(aus) {
 filter["materials"]=new Array();
 sizes = document.getElementById('materials-content').getElementsByTagName('div');
 for (i=0;i<sizes.length;i++) {
    sizes[i].className=aus;}
 setFilter();
}

function setModel(cat,catid,typ,size,color) {
 id = document.getElementById('modell_select').value;
//  if (id!='all') filter["models"][0]=id;
//  else filter["models"]=delArray(filter["models"][0],filter["models"]);
//  setFilter();
 lnk = "think-"+cat+"-"+catid+"-"+typ+"-"+size+"-"+color+"-"+id+".html";
 location.href = lnk;
}

function unsetModel(aus) {
 filter["models"]=new Array();
 sizes = document.getElementById('modell-content').getElementsByTagName('div');
 for (i=0;i<sizes.length;i++) {
  sizes[i].className=aus;
 }
 setFilter();
}

function setSize(cat,catid,typ,color,model) {
 id = document.getElementById('size_select').value;
//  if (id!='all') filter["models"][0]=id;
//  else filter["models"]=delArray(filter["models"][0],filter["models"]);
//  setFilter();
 lnk = "think-"+cat+"-"+catid+"-"+typ+"-"+id+"-"+color+"-"+model+".html";
 location.href = lnk;
}

function unsetSize(aus) {
 filter["sizes"]=new Array();
 sizes = document.getElementById('size-content').getElementsByTagName('div');
 for (i=0;i<sizes.length;i++) {
    
    //abfangen der spezial-klassen
    if (sizes[i].className == 'listing_sizes_back_right_on')
     {sizes[i].className='listing_sizes_back_right';}
    else if (sizes[i].className == 'listing_sizes_back_right')
     {sizes[i].className='listing_sizes_back_right';}
     else
    {sizes[i].className=aus;}
    
  //sizes[i].className=aus;
 }
 setFilter();
}

function unsetAll(typ,size,color,modell) {
 unsetType(typ);
 unsetSize(size);
 unsetColor(color);
 unsetModel(modell);
}

function setFilter() {
 for (var i=0;i<products.length;i++) {
  //zweiter Durchlauf: Alle einblenden, die den Kriterien entsprechen und unsichtbar sind
  if (checkFilter(products[i])) { 
//     document.getElementById('p'+i).style.display='block';
    products[i]["filtered"]=false;
  } else
//     document.getElementById('p'+i).style.display='none';
    products[i]["filtered"]=true;
 }
 start=0;
 setupPage();
}

function setupPage() {
//  pr = document.getElementById("productsBox").getElementsByTagName("div");
//  pr = document.getElementsByName("products");
//  i=start; //Counter der angezeigten
//   alert(pr.length+" "+products.length);
 j=0;//Alle vor dem ersten angezeigten nicht gefilterte
 k=0;//Tatsächlich angezeigte 
 l=0;//Alle inkl. nicht angezeigte nicht gefilterte
 for (i=0;i<pr.length;i++) {
  if (products[i]["filtered"]) {
   pr[i].style.display='none';
   continue;
  }
  if (!products[i]["filtered"] && k<(pPs) && j>=start) {
   pr[i].style.display='inline';
   //Bild einblenden
   document.getElementById('ip'+i).src="images/product_images/original_images/"+products[i]["image"]+"-suche.jpg";
   k++;l++;
   continue;
  }
  if (!products[i]["filtered"] && j<start) {
   pr[i].style.display='none';
   j++;
   l++;
  }
  if (!products[i]["filtered"] && k>=pPs) {
   pr[i].style.display='none';
   l++;
   k++;
  }
 }
//  if (start==0) document.getElementById("prv_t").style.display='none';
//  else document.getElementById("prv_t").style.display='inline';
//  if (pPs>=k) document.getElementById("nxt_t").style.display='none';
//  else document.getElementById("nxt_t").style.display='inline';
//  if (start==0) document.getElementById("prv_b").style.display='none';
//  else document.getElementById("prv_b").style.display='inline';
//  if (pPs>=k) document.getElementById("nxt_b").style.display='none';
//  else document.getElementById("nxt_b").style.display='inline';
 
 //Tabelle anzeigen
//  if (l>0) {
//   document.getElementById('searchTable').style.display="block";
//   document.getElementById('emptySearch').style.display="none";
//  } else {
//   document.getElementById('searchTable').style.display="none";
//   document.getElementById('emptySearch').style.display="block";
//  }
 
 
 //Alte Zahlen löschen
 oldfrb = document.getElementById('pn_b');
 frb = document.createElement('span');
 frb.id='pn_b';
//  oldfrt = document.getElementById('pn_t');
//  frt = document.createElement('span');
//  frt.id='pn_t';
 document.getElementById('navigator_b').replaceChild(frb,oldfrb);
//  document.getElementById('navigator_t').replaceChild(frt,oldfrt);
 
 //Seitenzahlen erzeugen
//   class="navigator{if $data==$currpage}_on{/if}"
 p=parseInt(l/pPs);
 if ((l%pPs)>0) p++;
 for (i=0;i<p;i++) {
//   var elt = document.createElement('span');
  var elb = document.createElement('a');
//   var numt = document.createTextNode(i+1);
  var numb = document.createTextNode(i+1);
//   elt.appendChild(numt);
  elb.appendChild(numb);
  elb.href='';
//   if ((i*pPs)==start) elt.className='navigator_on';
//   else elt.className='navigator';
  if ((i*pPs)==start) elb.className='navigator_on';
  else elb.className='navigator';
//   elt.onclick=function() {
//   		goto(parseInt(this.lastChild.data));
//   		}
  elb.onclick=function() {
  		goto(parseInt(this.lastChild.data));
  		return false;
  		}
  
   frb.appendChild(elb);
//    frt.appendChild(elt);
   if (i<(p-1)) {
//     var pht = document.createTextNode(' | ');
    var phb = document.createTextNode(' | ');
//     frb.appendChild(pht);
    frb.appendChild(phb);
   }
  }
 //Oben einfach ersetzen
//  newfrt = frb.cloneNode(true);
//  newfrt.id = 'pn_t';
//  document.getElementById('navigator_t').replaceChild(newfrt,oldfrt);
 
}

function nxtp() {
 start=start+pPs;
//  alert(start);
 setupPage();
}

function prvp() {
 start=start-pPs;
//  alert(start);
 setupPage();
}

function goto(p) {
 start=pPs*(p-1);
 setupPage();
}

//function do_hover(d) {
//if (d.className.indexOf("on") == -1) { d.className=d.className+'_on'; /*alert(d.className);*/}
//else { d.className=d.className.substring(0,d.className.length-3); /*alert(d.className);*/}
//}


function do_hover(d,an,aus) {
 if (d.className != an) { d.className=an; /*alert(d.className);*/}
 else { d.className = aus; /*alert(d.className);*/}
}

function merken(ean,color,name,cname,price) {

 aj = getAjaxObject();
 aj.open("GET","addToWishList.php?ean="+ean+"&color="+color+"&name="+name+"&cname="+cname+"&price="+price,false);
 aj.send(null);
 
//  alert(aj.responseText);
 
 el = document.getElementById("wishListBox");
 ne = document.createElement("div");
//  ne.style.textAlign="center";
 ne.innerHTML = aj.responseText;
 el.appendChild(ne);
 document.getElementById("wishList").style.display='block';
 if (document.getElementById("wishListEmpty")) document.getElementById("wishListEmpty").style.display='none';
}
