function ReadCookie(cookieName) {
 var theCookie=""+document.cookie;
 var ind=theCookie.indexOf(cookieName);
 if (ind==-1 || cookieName=="") return ""; 
 var ind1=theCookie.indexOf(';',ind);
 if (ind1==-1) ind1=theCookie.length; 
 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}


function nextSibling(elem) {
  do {
    elem = elem.nextSibling;
  } while (elem && elem.nodeType != 1);
  return elem;                
}


var WineSearch = Class.extend({

  ORDER_BY_YEAR: 0, // Used if the user does not know the current order. If it is currently order by ASC, it will order by DESC and vice versa
  ORDER_BY_YEAR_ASC: 1,
  ORDER_BY_YEAR_DESC: 2,

  ORDER_BY_NAME: 3, // Used if the user does not know the current order. If it is currently order by ASC, it will order by DESC and vice versa
  ORDER_BY_NAME_ASC: 4,
  ORDER_BY_NAME_DESC: 5,

  ORDER_BY_PRICE: 6, // Used if the user does not know the current order. If it is currently order by ASC, it will order by DESC and vice versa
  ORDER_BY_PRICE_ASC: 7,
  ORDER_BY_PRICE_DESC: 8,

  orderBy: null,

  boxPageId: 0,
  listPageId: 0,

  shiftBoxLink: null,
  shiftListLink: null,

  currentType: null,

  detailedProductNumber: 0,

  /**
   * This is what is written inside the "textfield" and will also be used in the popup
   */
  headers: {
    vintype: 'Vintype',
    prisniveau: 'Pris',
    land: 'Land',
    omraade: 'Område',
    producent: 'Producent',
    others: 'Øvrige'
  },

  /**
   * This is were we saves all the data that can be stored
   */
  datas: {
    vintype: [],
    prisniveau: [],
    land: [],
    omraade: [],
    district: [],
    producent: [],
    others: []
  },
  
  subdatas: {
    district: []
  },

  /**
   * This contains all the data that is currently selected
   */
  selecteddatas: {
    vintype: [],
    prisniveau: [],
    land: [],
    omraade: [],
    producent: [],
    others: [],
    district: []
  },

  unparsedSelects: {},

  /**
   * The constructure
   */
  init: function (box_pid, list_pid) {
    this.boxPageId = box_pid;
    this.listPageId = list_pid;
    this.setup();
  },

  setup: function () {

    this.checkAndAddReview();

    var amountOfProductsPerPage = jQuery('#amountOfProductsPerPage');
    if (amountOfProductsPerPage && amountOfProductsPerPage.length > 0) {

      var p = this;
      amountOfProductsPerPage.bind("change", function() {
        p.setAmountPerPage();
      });

      amountOfProductsPerPage = amountOfProductsPerPage[0];
      for (var i = 0; i < amountOfProductsPerPage.length; i++) {
        if (amountOfProductsPerPage[i].value == wpp) {
          amountOfProductsPerPage.selectedIndex = i;
        }
      }
    }

    var stbs = $('shift_to_box_style');
    if (document.getElementById('shift_to_box_style')) {
      shiftBoxLink = stbs.down('a');
      var href = '/?id=29669&displayType=grid';
      href = this.buildShiftLink(href);
      shiftBoxLink.href = href;
    }

    var stls = $('shift_to_list_style');
    if (document.getElementById('shift_to_list_style')) {
      shiftListLink = stls.down('a');
      var href2 = '/?id=29538&displayType=list';
      href2 = this.buildShiftLink(href2);
      shiftListLink.href = href2;
    }

    var par = this;

    jQuery("#wine_search_submit").bind('click', this.submitWineSelection);
    jQuery("#wine_search_reset").bind('click', function(){ window.location = '/'; });

    this.unparsedSelects = jQuery("span.categorySelect");
    for (var i = 0; i < this.unparsedSelects.length; i++) {
      var span = this.unparsedSelects[i];
      var pro_id = span.id.replace("category_span", "");
      var ar = new Array();
      ar[0] = ''; // Land
      ar[1] = ''; // Område
      ar[2] = ''; // Producent
      ar[3] = ''; // Type
      ar[4] = ''; // Alco
      ar[5] = ''; // Årgang
      ar[6] = ''; // Ø ko
      ar[7] = ''; // Fairtrade
      var sel = span.getElementsByTagName('select')[0];
      if (sel) {
        var opts = sel.getElementsByTagName('option');
        for (var o = 0; o < opts.length; o++) {
          var opt = opts[o];
          var label = opt.getAttribute('label');
          var n = opt.innerHTML;

          switch (label) {
            case 'land':
              ar[0] = n;
              break;
            case 'omraade':
              ar[1] = n;
              break;
            case 'producent':
              ar[2] = n;
              break;
            case 'vintype':
              ar[3] = n;
              break;
            case 'alco':
              ar[4] = n;
              break;
            case 'aargang':
              ar[5] = n;
              break;
            case 'oeko':
              ar[6] = n;
              break;
            case 'fair':
              ar[7] = n;
              break;
          }
        }
        span.innerHTML = '';

        if (span.parentNode.parentNode.parentNode.parentNode.className == 'box' || span.parentNode.parentNode.parentNode.className == 'box') {

          var main_row = jQuery('<div></div>');

          for (var a = 0; a < ar.length; a++) {
            var aa = ar[a];
            if (aa && a === 0) {
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Land:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 1) {
              if (aa.length > 13) {
                aa = aa.substr(0, 13) + '..';
              }
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Område:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 2) {
              if (aa.length > 13) {
                aa = aa.substr(0, 13) + '..';
              }
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Producent:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 3) {
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Type:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 4) {
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Alkohol:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 5) {
              var row = jQuery('<div class="row"></div>');
                var row_c1 = jQuery('<div class="row_cell left">Årgang:</div>');
                var row_c2 = jQuery('<div class="row_cell right">'+aa+'</div>');

                  row_c1.appendTo(row);
                  row_c2.appendTo(row);
                row.appendTo(main_row);
            }
            if (aa && a === 6) {
              var img = jQuery('<img src="/images/diverse/fairtrade.gif" alt="Fair trade" />');
              img.appendTo($('cat_images' + pro_id));
            }
            if (aa && a === 7) {
              var img = jQuery('<img src="/images/diverse/oeko.jpg" alt="Fair trade" />');
              img.appendTo($('cat_images' + pro_id));
            }
          }
          main_row.appendTo(span);
          
        } else {

          var table = jQuery('<table border="0" cellpadding="0" cellspacing="0"></table>');
          for (var a = 0; a < ar.length; a++) {
            var aa = ar[a];
            if (aa && a === 0) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Land:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 1) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Område:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 2) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Producent:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 3) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Type:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 4) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Alkohol:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'%</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 5) {
              var tr = jQuery('<tr></tr>');
              var td1 = jQuery('<td class="bold">Årgang:</td>');
              var td2 = jQuery('<td class="normal">'+aa+'</td>');
              td1.appendTo(tr);
              td2.appendTo(tr);
              tr.appendTo(table);
            }
            if (aa && a === 6) {
              var img = jQuery('<img src="/images/diverse/fairtrade.gif" alt="Fair trade" />');
              img.appendTo($('cat_images' + pro_id));
            }
            if (aa && a === 7) {
              var img = jQuery('<img src="/images/diverse/oeko.jpg" alt="Fair trade" />');
              img.appendTo($('cat_images' + pro_id));
            }
          }
          table.appendTo(span);
        }
        span.className = '';
      } else {
        var divs = span.getElementsByTagName('div');
        var imgDiv = null;
        for (var j = 0; j < divs.length; j++) {
          if (divs[j].className == 'moveable_imgs') {
            imgDiv = divs[j];
            break;
          }
        }
        
	if (imgDiv) {

          var imgDiv2 = imgDiv.cloneNode(true);
          imgDiv2.innerHTML = imgDiv.innerHTML;
          imgDiv.parentNode.removeChild(imgDiv);
          $('cat_images' + pro_id).appendChild(imgDiv2);
          imgDiv2.style.display = '';
	}
      }
    }

    this.buildPopup();
  },

  checkAndAddReview: function () {
    if (this.detailedProductNumber != null) {
      var src = '/images/anmeldelser/' + this.detailedProductNumber + '.jpg';
      var img = new Image();
      img.src = src;
      if (img.width > 0 || img.height > 0) {
        this.addAndShowReview();
      } else {
        var p = this;
        img.onload = function () {
          p.addAndShowReview();
        };
      }
    }
  },

  addAndShowReview: function () {
    $('product_review_image').src = '/images/anmeldelser/' + this.detailedProductNumber + '.jpg';
  },

  buildShiftLink: function (base) {
    var extended = new String(base);

    if (wcat && wcat != null && wcat != "") {
      extended += "&wcat[]=" + wcat.join("&wcat[]=");
    }

    if (nwcat && nwcat != null && nwcat != "") {
      extended += "&nwcat[]=" + nwcat.join("&nwcat[]=");
    }

    extended += "&wpp=" + wpp;
    if (search_word != "" && search_word != 0) {
      extended += "&search_word=" + search_word;
    }
    if (filter_year > 0) {
      extended += "&filter_year=" + filter_year;
    }
    if (filter_winetype > 0) {
      extended += "&filter_winetype=" + filter_winetype;
    }

    return extended;
  },

  buildPopup: function () {

    var content = jQuery("#popup_box");
    content = jQuery("#content");

    var par = this;

    var popup = jQuery('<div id="wine_popup"></div>');
      var top = jQuery('<div class="wine_popup_top"> </div>');
      top.appendTo(popup);
      var main_container = jQuery('<div class="wine_popup_main"></div>');
        var main = jQuery('<div id="wine_popup_content"><div id="wine_popup_content_inner"></div></div>');
        main.appendTo(main_container);
        jQuery('<br style="clear: both;" />').appendTo(main_container);
        
        var button_bar = jQuery('<div id="wine_popup_button_bar"></div>');

          var clo = jQuery('<div class="but-green"></div>');
            var clo_holder = jQuery('<div class="but-holder"></div>');
              var clo_a = jQuery('<a href="#" class="but-icon">Luk</a>');
              clo_a.bind('click', function () { par.hidePopup(); });
              clo_a.appendTo(clo_holder);
            clo_holder.appendTo(clo);
          clo.appendTo(button_bar);
      
          var nulstil = jQuery('<div class="but-green"></div>');
            var nulstil_holder = jQuery('<div class="but-holder"></div>');
              var nulstil_a = jQuery('<a href="#">Nulstil</a>');
              nulstil_a.bind('click', function () { par.resetSelection(); });
              nulstil_a.appendTo(nulstil_holder);
            nulstil_holder.appendTo(nulstil);
          nulstil.appendTo(button_bar);
          
          var vaelgalle = jQuery('<div class="but-green"></div>');
            var vaelgalle_holder = jQuery('<div class="but-holder"></div>');
              var vaelgalle_a = jQuery('<a href="#">Vælg alle</a>');
              vaelgalle_a.bind('click', function () { par.markAll(); });
              vaelgalle_a.appendTo(vaelgalle_holder);
            vaelgalle_holder.appendTo(vaelgalle);
          vaelgalle.appendTo(button_bar);

          var sub = jQuery('<div class="but-green"></div>');
            var sub_holder = jQuery('<div class="but-holder"></div>');
              var sub_a = jQuery('<a href="#" class="but-icon">Vælg</a>');
              sub_a.bind('click', function () { par.updateSelected(par.currentType); });
              sub_a.appendTo(sub_holder);
            sub_holder.appendTo(sub);
          sub.appendTo(button_bar);

        button_bar.appendTo(main_container);
        jQuery('<br style="clear: both;" />').appendTo(main_container);

      main_container.appendTo(popup);
      
      var bottom = jQuery('<div class="wine_popup_bottom"> </div>');
      bottom.appendTo(popup);

    jQuery('<br class="clr" />').appendTo(popup);
    popup.appendTo(content);
  },

  changeOrder: function (order) {
    
  },

  openPopup: function (type) {
    if (this.currentType != null) {
      this.hidePopup();
    }
    this.currentType = type;
    var el = $("wine_popup");
    if (el) {
      el.style.display = 'block';
    }

    var link = $('type_' + type);

    var linkTop = link.offsetTop;
    var linkLeft = link.offsetLeft;

    if (linkTop == 5) { // IE7 bug
      var linkParent = link.parentNode;
      while (linkParent.id != "popup_box") {
        linkTop += linkParent.offsetTop;
        linkParent = linkParent.parentNode;
      }
      linkTop += linkParent.offsetTop; // To get the popup_box top also
      linkTop -= 10;
    }

    linkTop += 180;

    $('wine_popup').style.left = ( 190 ) + 'px';
    $('wine_popup').style.top = ( linkTop ) + 'px';



    var wine_popup_content_inner = $('wine_popup_content_inner');
    var wine_popup_content = $('wine_popup_content');

    if (wine_popup_content_inner.offsetHeight <= 300) {
      wine_popup_content.style.height = wine_popup_content_inner.offsetHeight + 'px';
    } else {
      wine_popup_content.style.height = '300px';
    }

  },

  hidePopup: function (type) {
    var el = $("wine_popup");
    if (el) {
      var con = $("wine_popup_content");
      el.style.display = 'none';
    }
    this.currentType = null;
  },

  findPopupData: function (type) {
    var p = this;

    var aj = new Ajax.Request('/?id='+ajax_page+'&action=categorytypes&subaction=' + type + this.selectedAsArray(), {
      onComplete: function (rep) {
        p.parsePopupData(type, rep.responseXML);
      }
    });

    //aj.request('/?id='+ajax_page+'&action=categorytypes&subaction=' + type + this.selectedAsArray())
  },

  selectedAsArray: function () {

    var list = new Array();
    for (var i = 0; i < this.selecteddatas['vintype'].length; i++) {
      var sd = this.selecteddatas['vintype'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['prisniveau'].length; i++) {
      var sd = this.selecteddatas['prisniveau'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['land'].length; i++) {
      var sd = this.selecteddatas['land'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['omraade'].length; i++) {
      var sd = this.selecteddatas['omraade'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['producent'].length; i++) {
      var sd = this.selecteddatas['producent'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['district'].length; i++) {
      var sd = this.selecteddatas['district'][i];
      list[list.length] = sd[0];
    }
    for (var i = 0; i < this.selecteddatas['others'].length; i++) {
      var sd = this.selecteddatas['others'][i];
      list[list.length] = sd[0];
    }

    if (list.length === 0) {
      return '';
    }

    return '&cats[]=' + list.join('&cats[]=');
  },

  parsePopupData: function (type, xml) {
  
    var priorData;
    if (type == 'omraade') {
      priorData = this.datas[type];
      if (!priorData) {
        priorData = this.datas['district'];
      }
    }

    var data = new Array();
    if (xml.hasChildNodes()) {
      xml = xml.firstChild;
      if (xml.hasChildNodes()) {
        var categories = xml.getElementsByTagName("category");
        for (var i = 0 ; i < categories.length; i++) {
          var category = categories[i];
          var nextSib = nextSibling(category);
          if (nextSib && nextSib.tagName.toLowerCase() != "subcategories") {
            nextSib = null;
          }

          var id = categories[i].getAttribute("id");
          var n = categories[i].firstChild.nodeValue;
          data[data.length] = new Array(id, n, nextSib);
        }
      }
    }

    if (data.length > 0) {
      var par = this;
      var con = jQuery("#wine_popup_content_inner");
      con.empty();

      var head = jQuery('<h2>' + this.headers[type] + '</h2>');
      head.appendTo(con);
      
      var ii = 0;

      for (var j = 0; j < data.length; j++) {
        var row = jQuery('<div class="popup_row"></div>');

          var did = data[j][0];
          var chk = jQuery('<input type="checkbox" name="' + type + '[] type' + data[j][0] + '" value="' + data[j][0] + '" />');

          
          chk.keyup(function (ev) {
            if (!ev) {
              ev = window.event; // IE fix
            }
            if (ev.keyCode == 13) {
              par.updateSelected(par.currentType);
            }
          });
          for (var k = 0; k < this.selecteddatas[type].length; k++) {
            var sd = this.selecteddatas[type][k];
            if (sd[0] == did) {
              chk = jQuery('<input checked="true" type="checkbox" name="' + type + '[] type' + data[j][0] + '" value="' + data[j][0] + '" />');
              
          
              chk.keyup(function (ev) {
                if (!ev) {
                  ev = window.event; // IE fix
                }
                if (ev.keyCode == 13) {
                  par.updateSelected(par.currentType);
                }
              });
            }
          }
          
          this.setSelectEvent(chk, ii, type);

          chk.appendTo(row);
          var label = jQuery('<label for="type' + data[j][0] + '">' + data[j][1] + '</label>');
          label.appendTo(row);
          this.datas[type][this.datas[type].length] = data[j];
          
          if (data[j][2] != null) {
            var subs = this.createSubs(data[j][2], data[j][0]);
            subs.appendTo(row);
          }
          
        row.appendTo(con);
        ii++;
      }
      
      this.openPopup(type);
    } else {
      alert("Der er ingen valgmuligheder for dette felt!");
    }

  },
  
  createSubs: function (xml, type) {
    
    var sub = jQuery('<div class="popup_row_sub"></div>');
    
    
    var subcats = xml.getElementsByTagName('subcategory');
    
    for (var i = 0; i <subcats.length; i++) {
      var subc = subcats[i];
      this.subdatas['district'][this.subdatas['district'].length] = subc;
      var item = jQuery('<div class="sub_row"></div>');
      if (this.isSubSelected(subc.getAttribute('id'))) {
        var chk = jQuery('<input checked="" type="checkbox" name="district[] '+type+'[] type' + subc.getAttribute('id') + '" value="' + subc.getAttribute('id') + '" />');
      } else {
        var chk = jQuery('<input type="checkbox" name="district[] '+type+'[] type' + subc.getAttribute('id') + '" value="' + subc.getAttribute('id') + '" />');
      }
      var label = jQuery('<label for="type' + subc.getAttribute('id') + '">' + subc.firstChild.nodeValue + '</label>');
      chk.appendTo(item);
      label.appendTo(item);
      item.appendTo(sub);
    }
    
    return sub;
  },
  
  isSubSelected: function (id) {
   
    var districts = this.selecteddatas['district'];

    for (var i = 0; i < districts.length; i++) {
      var sd = this.selecteddatas['district'][i];
      if (sd[0] == id) {
        return true;
      }
    }
    return false;
  },
  
  setSelectEvent: function (btn, ii, type) {
    var t = this.headers[type];
    var p = this;
    btn.bind('click', function () {
    });
  },

  updateSelected: function (type, dontUpdate) {

    var t = this.headers[type];

    this.selecteddatas[type] = [];
    if (type == 'omraade') {
      this.selecteddatas['district'] = [];
    }

    var span = jQuery('#type_' + type + ' > span > span')[0];

    span.innerHTML = '';

    var inputs = jQuery("#wine_popup_content > #wine_popup_content_inner > div > input");
    var subInputs = jQuery("#wine_popup_content > #wine_popup_content_inner > div > div > div > input");

    var datas = this.datas[type];
    var subdatas = this.subdatas['district'];

    $("wine_search_holder_" + type).innerHTML = '';
    if (type == 'omraade') {
      $("wine_search_holder_district").innerHTML = '';
    }

    for (var j = 0; j < inputs.length; j++) {
      var chk = inputs[j];
      var data = datas[j];
      data = this.getDataById(type, chk.value);
      if (data == null) {
        continue;
      }
      var sel_id = data[0];
      var sel_name = data[1];
      if (chk.checked) {

        this.selecteddatas[type][this.selecteddatas[type].length] = data;


        span.innerHTML += sel_name;

        var hid = jQuery('<input type="hidden" name="wcat[]" value="'+sel_id+'" />');
        hid.appendTo(jQuery("#wine_search_holder_" + type));

        span.innerHTML += ', ';
      }
    }

    for (var j = 0; j < subInputs.length; j++) {
      var chk = subInputs[j];
      var data = subdatas[j];
      if (data == null) {
        continue;
      }
      var sel_id = data.getAttribute('id');
      var sel_name = data.firstChild.nodeValue;
      if (chk.checked) {

        this.selecteddatas['district'][this.selecteddatas['district'].length] = data;


        span.innerHTML += sel_name;
        var hid2 = jQuery('<input type="hidden" name="wcat[]" value="'+sel_id+'" />');
        hid2.appendTo(jQuery("#wine_search_holder_district"));

        span.innerHTML += ', ';
      }
    }
    span.innerHTML = span.innerHTML.substring(0, span.innerHTML.length - 2);

    if (this.selecteddatas[type].length === 0) {
      span.innerHTML = t;
    }
    //return;
    this.hidePopup();
    if (!dontUpdate) {
      $('wine_search_form').submit();
    }
  },

  resetSelection: function () {
    var inputs = jQuery("#wine_popup_content > #wine_popup_content_inner > div > input");
    var inputs2 = jQuery("#wine_popup_content > #wine_popup_content_inner > div > div > div > input");

    for (var j = 0; j < inputs.length; j++) {
      var chk = inputs[j];
      chk.checked = false;
    }
    for (var j = 0; j < inputs2.length; j++) {
      var chk = inputs2[j];
      chk.checked = false;
    }
    this.updateSelected(this.currentType);
    this.updateSelected('omraade');
    this.hidePopup();
  },

  markAll: function () {
    var inputs = jQuery("#wine_popup_content > #wine_popup_content_inner > div > input");

    for (var j = 0; j < inputs.length; j++) {
      var chk = inputs[j];
      chk.checked = true;
    }
    this.updateSelected(this.currentType);
    //$('wine_search_form').submit();
  },

  getDataById: function (type, id) {
    var datas = this.datas[type];
    for (var i = 0; i < datas.length; i++) {
      var data = datas[i];
      if (data[0] == id) {
        return data;
      }
    }
    return null;
  },
  
  resetWineSelection: function (secondtime) {
    
    this.updateSelected('vintype', true);
    this.updateSelected('prisniveau', true);
    this.updateSelected('land', true);
    this.updateSelected('omraade', true);
    this.updateSelected('producent', true);
    this.updateSelected('others', true);

    var types = ['vintype', 'prisniveau', 'land', 'omraade', 'producent', 'others'];
    for (var i = 0; i < types.length; i++) {
      var t = types[i];
      $("wine_search_holder_" + t).innerHTML = '';
      this.datas[t] = [];
      this.selecteddatas[t] = [];
      jQuery("#type_"+t+" > span > span")[0].innerHTML = this.headers[t];
    }

    var inputs = jQuery("#wine_popup_content > div > input");

    for (var j = 0; j < inputs.length; j++) {
      var chk = inputs[j];
      chk.checked = false;
    }
    $('wine_search_form').submit();
  },
  
  submitWineSelection: function () {

    var ins1 = jQuery("#wine_search_holder_vintype > input");
    var ins2 = jQuery("#wine_search_holder_prisniveau > input");
    var ins3 = jQuery("#wine_search_holder_land > input");
    var ins4 = jQuery("#wine_search_holder_omraade > input");
    var ins5 = jQuery("#wine_search_holder_producent > input");

    if (ins1.length === 1) {  // Make it a needed one
      var ins_item = ins1[0];
      var p = ins_item.parentNode;
      var v = ins_item.value;

      var inp = jQuery('<input type="hidden" name="nwcat[]" value="'+v+'" />');
      p.innerHTML = '';
      inp.appendTo(p);
    }

    if (ins2.length === 1) {  // Make it a needed one
      var ins_item = ins2[0];
      var p = ins_item.parentNode;
      var v = ins_item.value;

      var inp = jQuery('<input type="hidden" name="nwcat[]" value="'+v+'" />');
      p.innerHTML = '';
      inp.appendTo(p);
    }

    if (ins3.length === 1) {  // Make it a needed one
      var ins_item = ins3[0];
      var p = ins_item.parentNode;
      var v = ins_item.value;

      var inp = jQuery('<input type="hidden" name="nwcat[]" value="'+v+'" />');
      p.innerHTML = '';
      inp.appendTo(p);
    }

    if (ins4.length === 1) {  // Make it a needed one
      var ins_item = ins4[0];
      var p = ins_item.parentNode;
      var v = ins_item.value;

      var inp = jQuery('<input type="hidden" name="nwcat[]" value="'+v+'" />');
      p.innerHTML = '';
      inp.appendTo(p);
    }

    if (ins5.length === 1) {  // Make it a needed one
      var ins_item = ins5[0];
      var p = ins_item.parentNode;
      var v = ins_item.value;

      var inp = jQuery('<input type="hidden" name="nwcat[]" value="'+v+'" />');
      p.innerHTML = '';
      inp.appendTo(p);
    }

    $('wine_search_form').submit();
  },

  setAmountPerPage: function () {
    var perPage = $('amountOfProductsPerPage');

    var val = perPage[perPage.selectedIndex].value;
    window.location = this.getParsedUrlMinusPerPage() + '&wpp=' + val;
  },

  getParsedUrlMinusPerPage: function () {
    var baseUrl = window.location.href;

    var dashes = baseUrl.split('/');
    var last = dashes[dashes.length-1];
    var ands = last.split('&');

    var url = '';
    var ands2 = new Array();
    for (var i = 0; i < ands.length; i++) {
      var a = ands[i];
      var s = a.split('=');
      if (s[0] != 'wpp') {
        ands2[ands2.length] = a;
      }
    }

    if (ands2.length > 0) {
      url += ands2.join('&');
    }

    return url;
  },

  getUrlsPerPage: function () {
    var baseUrl = window.location.href;

    var dashes = baseUrl.split('/');
    var last = dashes[dashes.length-1];
    var ands = last.split('&');

    var url = '';
    for (var i = 0; i < ands.length; i++) {
      var a = ands[i];
      var s = a.split('=');
      if (s[0] == 'wpp') {
        var v = s[1];
        var opts = $('amountOfProductsPerPage').getElementsByTagName('option');
        for (var o = 0; o < opts.length; o++) {
          if (opts[o].value == v) {
            return o;
          }
        }
      }
    }

    return 0;
  }

});

