﻿$(window).addEvent('domready', function() {

  ReMooz.assign('.imgContain a', {
    'origin': 'img',
    'shadow': 'onOpenEnd', // fx is faster because shadow appears after resize animation
    'resizeFactor': 0.8, // resize to maximum 80% of screen size
    'cutOut': false, // don't hide the original
    'opacityResize': 1.0, // opaque resize
    'dragging': false, // disable dragging
    'centered': true, // resize to center of the screen, not relative to the source element
    'closeOnClick': true
  });


  $$('.facetValue a').addEvent('click', function() {
    var facet = this.getNext().value.replace(/#/g, '"');
    var params = new Array();
    params.push(facet);
    params.push("pg:1");
    Search(params);
    return false;
  });



  $('btnSearch').addEvent('click', function() {
  if ($('ctl00_cpl_contentText_pnlPriceFilter')) {
    var priceFacet = "Price:[" + $('ctl00_cpl_contentText_txtPriceStart').value + " TO " + $('ctl00_cpl_contentText_txtPriceEnd').value + "]";
      var params = new Array();
      params.push(priceFacet);
      params.push("pg:1");
      Search(params);
    } else {
      var params = new Array();
      params.push("pg:1");
      Search(params);
    }
  });

  $('ctl00_cpl_contentText_txtSearchQuery').addEvent('keydown', function(e) {
    if ((!Browser.Engine.trident && e.event.which == 13) || e.event.keyCode == 13) {
      var params = new Array();
      params.push("pg:1");
      Search(params);
      return false;
    }
  });

  if($('ctl00_cpl_contentText_ddlSort'))
    $('ctl00_cpl_contentText_ddlSort').addEvent('change', function(e) {
      Search();
    });

  var showMoreFacetLink = $('showAllStoreFacets');
  if (showMoreFacetLink) {
    showMoreFacetLink.addEvent('click', function(e) {
      $$('.hide').removeClass('hide');
      this.getParent('li').destroy();
    });
  }


  var filters = $$('.filter');
  if (filters) {
    filters.addEvent('mouseover', function(e) {
      e.stop();
      try {
        this.setStyle('background-color', '#FFFABB');
      } catch (e) {

      }
    });
    filters.addEvent('mouseout', function(e) {
      e.stop();
      try {
        this.setStyle('background-color', 'transparent');
      } catch (e) {

      }
    });

    $$('.closex').addEvent('click', function(e) {
      var filterType = this.getNext('.filterType').value;
      var oldqs = window.location.search.replace('?', '').split('&');
      var qsHash = new Hash();
      qsHash.set("pg", "1");
      qsHash.set("q", $('ctl00_cpl_contentText_txtSearchQuery').value);
      
      if($('ctl00_cpl_contentText_ddlSort'))
        qsHash.set("sort", $('ctl00_cpl_contentText_ddlSort').options[$('ctl00_cpl_contentText_ddlSort').selectedIndex].value);
        
      for (var i = 0; i < oldqs.length; i++) {
        if (oldqs[i].split('=')[0] == filterType) continue;
        qsHash.set(oldqs[i].split('=')[0], URLDecode(oldqs[i].split('=')[1]));
      }
      window.location.search = qsHash.toQueryString();

    });
  }

  if ($('removeStoreFilter')) {
    $('removeStoreFilter').addEvent('click', function(e) {
      var oldqs = window.location.search.replace('?', '').split('&');
      var qsHash = new Hash();
      qsHash.set("pg", "1");
      qsHash.set("q", $('ctl00_cpl_contentText_txtSearchQuery').value);
      qsHash.set("sort", $('ctl00_cpl_contentText_ddlSort').options[$('ctl00_cpl_contentText_ddlSort').selectedIndex].value);
      for (var i = 0; i < oldqs.length; i++) {
        if (oldqs[i].split('=')[0] == "StoreName") continue;
        qsHash.set(oldqs[i].split('=')[0], URLDecode(oldqs[i].split('=')[1]));
      }
      window.location.search = qsHash.toQueryString();
    });
    $('removeStoreFilter').addEvent('mouseover', function(e) {
      this.getParent().setStyle('background-color', '#FFFAaa');
    });
    $('removeStoreFilter').addEvent('mouseout', function(e) {
      this.getParent().setStyle('background-color', 'inherit');
    });
  }

  $$('.setPagerSize').addEvent('click', function(e) {
    e.stop();
    var params = new Array();
    params.push("ps:" + this.get('html').toInt());
    params.push("pg:1");
    Search(params);
  });

  $$('.pager a').addEvent('click', function(e) {
    e.stop();
    var num = this.getElement('input').value.toInt();
    var params = new Array();
    params.push("pg:" + num);
    Search(params);
  });

});

function Search(params) {

  var oldqs = window.location.search.replace('?', '').split('&');
  var qsHash = new Hash();
  if (params) {
    //console.log(params);
    if ($type(params) == 'array') {
      for (var i = 0; i < params.length; i++) {
        qsHash.set(params[i].split(':')[0], URLDecode(params[i].split(':')[1]));
      }
    } else {
      qsHash.set(params.split(':')[0], URLDecode(params.split(':')[1]));
    }
  }

  qsHash.set("q", $('ctl00_cpl_contentText_txtSearchQuery').value);
  
  if($('ctl00_cpl_contentText_ddlSort'))
    qsHash.set("sort", $('ctl00_cpl_contentText_ddlSort').options[$('ctl00_cpl_contentText_ddlSort').selectedIndex].value);

  for (var i = 0; i < oldqs.length; i++) {

    if (qsHash.has(oldqs[i].split('=')[0])) continue;
    qsHash.set(oldqs[i].split('=')[0], URLDecode(oldqs[i].split('=')[1]));
  }

  // console.log(qsHash.toQueryString());
  window.location.search = qsHash.toQueryString();

}

function URLDecode(encodedString) {
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1), 16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }

  return output;
}
