function uncache(url) {
  var d = new Date();
  var time = d.getTime();
  var separator = new String;
  if (url.indexOf('?') > -1) {
    separator = '&';
  } else {
    separator = '?';
  }
  return url + separator + 'time='+time;
}

function addToBasket(basket_section_id, basket_page_url) {
  try {
    var url_parts = basket_page_url.split('?')
    var empty_bask_url = url_parts[0]+"?Store_Code=PZ&Screen=BASK";
    var empty_bskd_url = url_parts[0]+"?Store_Code=PZ&Screen=BSKD";
    var url_params = url_parts[1].split('&');
    var params_to_post = new Array();
    for (i=0;i<url_params.length;i++) {
      if (url_params[i].indexOf('Store_Code') == -1 && url_params[i].indexOf('Screen') == -1) {
        if (url_params[i].indexOf('Product_Code') > -1) {
          var product_code = url_params[i].split('=')[1];
        }
        params_to_post.push(url_params[i]);
      }
    }
    var add_to_miva = new Ajax.Request(uncache(empty_bskd_url+'&'+params_to_post.join('&')), {
      method: 'get',
      onSuccess: function(transport) {
        if (transport.responseText.match(/BSKDSUCCESS/)) {
          var get_new_basket = refreshBasket(basket_section_id, product_code);
        } else {
          document.location = basket_page_url;
        }
      },
      onFailure: function(transport) {
        document.location = basket_page_url;
      },
      onException: function(transport, exception) {
        document.location = basket_page_url;
      }
    });
  } catch(err) {
    document.location = basket_page_url;
  }
}

function refreshBasket(basket_section_id, product_code) {
  var basket_contents_url = 'inline_basket_contents.php';
  if (typeof product_code == "string") {
    var product_added = true;
    basket_contents_url += '?last_product_added='+product_code;
  }
  var get_new_basket = new Ajax.Request(uncache(basket_contents_url), {
    method: 'get',
    onSuccess: function(transport) {
      document.getElementById(basket_section_id).innerHTML=transport.responseText;
      if (product_added) {
        Effect.Appear(add_to_cart_note_id, { duration: 0.3 });
        Effect.ScrollTo(add_to_cart_note_id, { offset: -160 });
      }
    }
  });
  return get_new_basket;
}

function loadBasket() {
  refreshBasket('inline_basket');
}

function addAddToBasketEventToForms() {
  all_forms = document.getElementsByTagName('form');
  basket_forms = new Array();
  for (i=0;i<all_forms.length;i++) {
    for (j=0;j<all_forms[i].elements.length;j++) {
      if (all_forms[i].elements[j].name == 'Action' && all_forms[i].elements[j].value == 'ADPR') {
        basket_forms.push(all_forms[i]);
      }
    }
  }
  YAHOO.util.Event.addListener(basket_forms,'submit',addToBasketFormCallback);
  function addToBasketFormCallback(e) {
    YAHOO.util.Event.stopEvent(e);
    var get_href = this.action;
    var get_href_params = new Array();
    for (i=0;i<this.elements.length;i++) {
      if (this.elements[i].name.indexOf('addquant') == -1) {
        get_href_params.push(this.elements[i].name+"="+this.elements[i].value);
      }
    }
    get_href += '?'+get_href_params.join('&');
    addToBasket('inline_basket',get_href);
  }
}

function addAddToBasketEventToLinks() {
  all_links = document.getElementsByTagName('a');
  basket_links = new Array();
  for (i=0;i<all_links.length;i++) {
    if (all_links[i].href.indexOf('Action=ADPR') > -1) {
      basket_links.push(all_links[i]);
    }
  }
  YAHOO.util.Event.addListener(basket_links,'click',addToBasketLinkCallback);
  function addToBasketLinkCallback(e) {
    YAHOO.util.Event.stopEvent(e);
    addToBasket('inline_basket',this.href);
  }
}

function addAddToBasketEvent() {
  addAddToBasketEventToLinks();
  addAddToBasketEventToForms();
}

function addBpopEvents() {
  bpop_elements = $$('a.bpop_trigger');
  bpop_elements.push($('bpop'));
  YAHOO.util.Event.addListener($$('a.bpop_trigger'),'mouseover',ShowBpopTriggerCallback);
  function ShowBpopTriggerCallback(e) {
    $('bpop').show();
    Element.clonePosition($('bpop'), this, {setLeft:false,setWidth:false,setHeight:false,offsetTop:-70})
  }
  YAHOO.util.Event.addListener($('bpop'),'mouseover',ShowBpopCallback);
  function ShowBpopCallback(e) {
    $('bpop').show();
  }
  YAHOO.util.Event.addListener(bpop_elements,'mouseout',HideBpopCallback);
  function HideBpopCallback(e) {
    $('bpop').hide();
  }
}

function syncProductSearchInputs() {
  $('sf_by_product_input_original').value = $('sf_by_product_input_variant').value;
}

function syncValueSearchInputs() {
  $('sf_by_value_input_original').selectedIndex = $('sf_by_value_input_variant').selectedIndex;
}

function addSyncSearchInputsEvents() {
  YAHOO.util.Event.addListener('sf_by_product_input_variant','keyup',syncProductSearchInputs);
  YAHOO.util.Event.addListener('sf_by_product_input_variant','focus',syncProductSearchInputs);
  YAHOO.util.Event.addListener('sf_by_product_go_button_variant','mouseover',syncProductSearchInputs);
  YAHOO.util.Event.addListener('sf_by_value_input_variant','change',syncValueSearchInputs);
}
