var removeItemId, itemIndex, itemView;
var shopAction = {
  submit : function (id) {
    $('#'+id).submit();
  },
  submitAjax : function(formId, targetId, thickBoxHeader, updateHeader) {
    var options = null;
    if (updateHeader) {
        options = {
            target:        '#'+targetId,
            success:       this.updateHeader,
            cache:     false
        };
    } else {
      options = {
          target:        '#'+targetId,
          cache:     false
      };
    }
    $('#'+formId).ajaxSubmit(options);
    if (targetId.indexOf('thickbox') > -1) {
      Common.Thickbox.openThickbox(targetId.substring(17),thickBoxHeader);
    }
    return false;
  },

  submitAjaxProductReview : function(formId, targetId,reviewLinkId,assetPath) {
    var options = {
          cache:         false,
          target:        '#'+targetId,
          success: function(data) {
            $('#'+formId).show();
            $('#loader_image').hide();
            AtHome.ProductDetail.Voting.init();
            var points = $('#votevalue').val();
            var star = $('#voting_'+points+' .voting');
            $(star).click();
            AtHome.InputDefaultTextFactory.go();
          },
          error: function(data) {
            $('#loader_image').hide();
            $('#'+formId).html("<div>Hier ist ein Fehler aufgetreten!!</div>");
            $('#'+formId).show();
          }
      };
    $('#'+formId).ajaxSubmit(options);
    $('#'+formId).hide();
    $('#loader_image').show();
  },

  backAjaxMaterial : function(formId,targetId,formId2){
    var options = {
        cache:         false,
        target:        '#'+targetId,
        success: function(data) {
          $('#'+formId2).show();
          $('#loader_image_material').hide();
        }
      };
    $('#'+formId).ajaxSubmit(options);
    $('#'+formId2).hide();
    $('#loader_image_material').show();
  },

  submitAjaxMaterial : function(formId,targetId){
      var options = {
          cache:         false,
          target:        '#'+targetId,
          success: function(data) {
            $('#'+formId).show();
            $('#loader_image_material').hide();
          }
      };
    $('#'+formId).ajaxSubmit(options);
    $('#'+formId).hide();
    $('#loader_image_material').show();
  },

  deleteMaterialChoice : function(materialTyp,materialColor,materialImage,designCount,indexToDelete) {
    var options = {
      url: shop.absoluteBaseUrl+"deleteMaterialChoice",
      data:({materialTyp: materialTyp, materialColor: materialColor,materialImage:materialImage}),
      cache: false,
      success: function(transport){
        hiddenInput=$('#back_Material_form input')[indexToDelete];
        $(hiddenInput).remove();
        if(designCount!=1){
          $("#material_choice_div").html(transport);
        }else{
          $("#material_order").html(transport);
        }
      }
      };
    $('#submit_material_order').ajaxSubmit(options);
  },

  submitRecommendForm : function(formId,iframeId,targetId, tbId, buttonId){
    var options = {
        cache:         false,
        success: function(data) {
          var target = $('#'+iframeId).contents().find('#'+targetId);
          $(target).html(data);
          var normalStyles = {'color':'#575147'};
          var defaultStyles = {'color':'#926d65'};
          if( $('#'+iframeId).contents().find('#sender_name_e').size() == 1 ) {
            var senderName = new Common.InputDefaultText( $('#'+iframeId).contents().find('#sender_name_e') , 'Ihr Name' ,  defaultStyles , normalStyles );
            senderName.init();
          }
          if( $('#'+iframeId).contents().find('#sender_email_e').size() == 1 ) {
            var senderEmail = new Common.InputDefaultText( $('#'+iframeId).contents().find('#sender_email_e') , 'Ihre E-Mail-Adresse' ,  defaultStyles , normalStyles );
            senderEmail.init();
          }
          if( $('#'+iframeId).contents().find('#recipient_email').size() == 1 ) {
            var headline = new Common.InputDefaultText( $('#'+iframeId).contents().find('#recipient_email') , 'E-Mail-Adresse des Empfängers' ,  defaultStyles , normalStyles );
            headline.init();
          }else{
            var button = $('#'+buttonId);
            if($(button) != undefined ){
              $(button).html("<button class='btn_function close_thickbox' id='"+buttonId+"' onclick='closeThickbox(\""+tbId+"\" , \""+iframeId+"\" , \""+formId+"\" , \""+targetId+"\" , \""+buttonId+"\");'><span>WEITER EINKAUFEN</span></button>");
            }
            var frameContent = $('#'+iframeId).contents();
            var hasFrameContent = false;
            if (frameContent.find('#recommend_headline').size() > 0) {
              $('#'+iframeId).contents().find('#recommend_headline').hide();
              hasFrameContent = true;
            }
            if (frameContent.find('#recommend_content').size() > 0) {
              $('#'+iframeId).contents().find('#recommend_content').hide();
              hasFrameContent = true;
            }
            if (hasFrameContent) {
              $('#'+iframeId).height(90);
              $('#'+iframeId).css({'overflow-y':'hidden'});
            }
          }
          $('#'+iframeId).scrollTo(0);
        }
    };
    if( $('#'+iframeId).contents().find('#intern_smatchStyle_id').size()>0){
      options.data=({smatchId: $('#'+iframeId).contents().find('#intern_smatchStyle_id').val()});
    }
    var form = $('#'+iframeId).contents().find('#'+formId);
    $(form).ajaxSubmit(options);
  },

  updateHeader : function(responseText, statusText) {
    if (statusText == 'success') {
      $.ajax({
        url: shop.absoluteBaseUrl+"updateHeader",
        cache: false,
        success: function(transport){
          $("#shopping_cart").html(transport);
        }
        });
    }
  },


  checkNewsletter : function() {
    if (!EMail($('#newsletter_field').val()))
    {
      $('#newsletter_error').html('<em>E-Mail-Adresse ist ung\u00fcltig</em>');
      $('#newsletter_error').attr('style','padding: 0px; margin-top: 65px;');
      $('#newsletter').attr('style','margin-top: 0px;');
      $('#newsletter_error').show();
      return false;
    }
    if (!$('#agreement-check').attr('checked')) {
      $('#newsletter_error').html('<em>Bitte Erkl\u00e4rung akzeptieren</em>');
      $('#newsletter_error').attr('style','padding: 0px; margin-top: 65px;');
      $('#newsletter').attr('style','margin-top: 0px;');
      $('#newsletter_error').show();
      $('#agreement-check').addClass('error');
      return false;
    };
    $('#newsletter').attr('style','');
    $('#newsletter_error').hide();
    $('#agreement-check').removeClass('error');
    return true;
  },

  updatePreisFilter : function () {
    var paramSeparator = '&';
    var formAction = ($('#price_filter_url').val().indexOf("?") > -1) ? $('#price_filter_url').val() + paramSeparator : $('#price_filter_url').val() + '?';
    var range = $('#min_price').val()+' EUR-'+$('#max_price').val()+' EUR';
    var href = formAction + 'filter.preis=' + range + paramSeparator + 'browser_width=' + $('#browser_width').val();
    document.location.href = href;
  return false;
  },

  updatePriceSelectionCount : function () {
    var min_price = $('#min_price').val();
    var max_price = $('#max_price').val();
    var resultCount = 0;
    for (var i in priceArray) {
      if ((priceArray[i][0] >= min_price) && (priceArray[i][0] <= max_price))
        resultCount += parseFloat(priceArray[i][1]);
    }
    $('#price_to_pricing').html('('+resultCount+')');
    $('#price_selectable_item').html('('+resultCount+')');
  },

  removeItem : function(itemId, index, view) {
    itemView = view;
    itemIndex = index;
    removeItemId = itemId;
    Common.Thickbox.openThickbox('basket_clear','Artikel entfernen');
    return false;
  },

  removeItemConfirm : function() {
    document.location.href=shop.baseUrl+'removeFromCart?itemId='+removeItemId+"&index="+itemIndex+"&view="+itemView;
    return false;
  },

  getItemForChange : function(itemId, index, view) {
    $.ajax({
      url: shop.baseUrl+'getItemFromCartForChange',
      data: ({itemId: itemId, index: index, view: view}),
        dataType:'html',
        success: function (data) {
        $('#article_variations_content').html(data);
        $('.TB_bottom_medium_donation').show();
        Common.Thickbox.openThickbox('article_variations','Artikel &auml;ndern');
        }
    });
    return false;
  },

  addVoucher : function() {
    var code = $('#payment_method_coupon').val();
    if (code != null) {
      $.post(shop.absoluteBaseUrl+"addVoucher", { code: code },
          function(data){
            $("#voucherCode").html(data);
          });

    }
    $('#payment_method_coupon').val("");
  },

  removeVoucher : function(code) {
    if (code != null) {
      $.post(shop.absoluteBaseUrl+"removeVoucher", { code: code },
          function(data){
            $("#voucherCode").html(data);
          });
    }
  },

  processCheckoutPaymentBoxes : function() {
    $('input[name=payment_break]').attr('checked', false);
  },

  processRadioPaymentBoxes : function(checkbox, radiobox) {
    $('input[name=payment_break]').not(checkbox).attr('checked', false);
    $('input[name=payment_method]').attr('checked', false);
    $('#'+radiobox).attr('checked', true);
  },

  openPopUp : function(url) {
      var MyWindow;
       MyWindow = open(
         url,
         "Bestellbest\xe4tigung",
         "width=800, height=700, resizable=yes, scrollbars=yes, directories=no, menubar=no, location=no");
       MyWindow.focus();
 },
  submitFormOnEnter: function(id, event) {
    if (event.keyCode == 13) {
      shopAction.submit(id);
      return false;
    } else {
      return true;
    }
  },
  
  submitPriceFilterOnEnter: function(event) {
    if (event.keyCode == 13) {
      shopAction.updatePreisFilter();
      return false;
    } else {
      return true;
    }
  },

  openStyleDetail : function(styleId) {
    $('#content_thickbox_style_detail').load(shop.absoluteBaseUrl + "style/detail", {id : styleId}, function(responseText, textStatus, XMLHttpRequest) {
      if ("success" == textStatus) {
        $('#style_recommendation_link').click(function() {
          shopAction.openRecommendStyle(styleId);
        });
        $('#style_print_single_link').click(function() {
          shopAction.openPrintSingleStyle(styleId);
        });
        Common.Thickbox.openThickbox('style_detail');
      }
    });
  },

  openRecommendStyle: function(styleId) {
    $('#content_thickbox_recommend_style').attr('src',shop.absoluteBaseUrl + "account/styleeditor/recommend?id="+styleId);
    Common.Thickbox.openThickbox('recommend_style','Style empfehlen');
  },

  openPrintSingleStyle: function(styleId) {
    $('#content_thickbox_print_single').attr('src',shop.absoluteBaseUrl + "account/styleeditor/printsingle?id="+styleId);
    Common.Thickbox.openThickbox('print_single','Druckversion dieses Styles');
  },

  deleteStyle: function(styleId) {
    $.ajax({
      url: shop.absoluteBaseUrl+"account/styleeditor/deleteStyle",
      cache: false,
      data:({id: styleId}),
      success: function(transport){
        $("#styles_to_change").html(transport);
      }
    });

  },

  deleteAllStyles: function() {
   $.ajax({
      url: shop.absoluteBaseUrl+"account/styleeditor/deleteAllStyles",
      cache: false,
      success: function(transport){
         $("#styles_to_change").html(transport);
       }
    });

  },

  openPrintAll: function() {
    shopAction.refreshIFrameByJQueryObject($('#content_thickbox_recommend_style_print'));
    Common.Thickbox.openThickbox('recommend_style_print','Druckversion');
  },

  checkReminderEMail: function(formId, targetId) {
    if (!EMail($('#password_lost_email').val())) {
      $('#pl_error_message').html('<em>E-Mail-Adresse ist ung\u00fcltig</em>');
      $('#password_lost_email').addClass('error');
      $('#pl_error_view').show();
      return false;
    }
    $('#password_lost_email').removeClass('error');
    $('#spinner').show();
    $('#pl_error_view').hide();
    return shopAction.submitAjax(formId, targetId, null, null);
  },

  checkCheckoutData: function() {
   if (($('#payment_method_complete').attr("checked")) && ($('#payment_break_complete').attr('checked')))
     Common.Thickbox.openThickbox('hire_purchase_pause','Zahlpause best&auml;tigen');
   else if (($('#payment_method_installments').attr("checked")) && ($('#payment_break_installments').attr('checked')))
     Common.Thickbox.openThickbox('hire_purchase_rate','Monatsrate und Zahlpause best&auml;tigen');
   else if ($('#payment_method_installments').attr("checked"))
      Common.Thickbox.openThickbox('hire_purchase','Monatsrate best&auml;tigen');
   else shopAction.submit('ShippingForm');
   return false;
  },

  refreshIFrameById : function(iframeId) {
    jQuery.each($("#"+iframeId, window.parent.document), function() {
      $(this).attr({
        src: $(this).attr("src")
      });
    });
    return false;
  },

  refreshIFrameByJQueryObject : function(iFrame) {
      iFrame.attr({
        src: iFrame.attr("src")
      });
    return false;
  },

  refreshIFrame : function (iframeId, srcId) {
    var src = $("#"+srcId).html();
    $("#"+iframeId).attr("src", src);
    return false;
  },
  
  setTBBackTarget : function (target) {
    if (target == null) {
      $('#tb_back').unbind("click");
      $('#tb_back').hide();
    } else {
      $('#tb_back').click(function() {
        Common.Thickbox.openThickbox(target.split('|')[0],target.split('|')[1]);
      });
      $('#tb_back').show();
    }
  }
};

