var cssmw = {
  intializeMenu: function(id) {
    if($.browser.msie && $.browser.version <= 7) {
      var ul = document.getElementById(id);
      var topOffset = ul.offsetHeight;  
      var lis = ul.childNodes;
      for(var i = 0; i < lis.length; i++) {
        if(lis[i].tagName && lis[i].tagName.toLowerCase() == 'li') {
          var uls = lis[i].childNodes;
          for(var j = 0; j < uls.length; j++) {
            if(uls[j].tagName && uls[j].tagName.toLowerCase() == 'ul') {
              uls[j].style.top = topOffset + 'px';
            }
          }
        }
      }  
    }
		if($.browser.msie && $.browser.version < 7) {
		  var lis = document.getElementById(id).getElementsByTagName('li');
	      for(var i=0; i<lis.length; i++) {
		    var li = lis[i];
		    li.className = 'link';
			 var uls = li.getElementsByTagName('ul');
			 for(var u=0; u<uls.length; u++){
	         uls[u].style.display = 'none';
			 }
		    var span = li.getElementsByTagName('span')[0];
		    if(span) span.className = 'link';
		    var a = (span) ? span.getElementsByTagName('a')[0] : false;
		    if(a) a.className = 'link';
		    li.onmouseover = function(e) {
		      this.className = 'hover';
				var ul = this.getElementsByTagName('ul')[0];
				if(ul) ul.style.display = 'block';
		      var span = this.getElementsByTagName('span')[0];
		      if(span) span.className = 'hover';
		      var a = (span) ? span.getElementsByTagName('a')[0] : false;
	  	      if(a) a.className = 'hover';
		    }
		    li.onmouseout = function(e) {
		      this.className = 'link';
				var ul = this.getElementsByTagName('ul')[0];
				if(ul) ul.style.display = 'none';
		      var span = this.getElementsByTagName('span')[0];
		      if(span) span.className = 'link';
		      var a = (span) ? span.getElementsByTagName('a')[0] : false;
	  	      if(a) a.className = 'link';			
		    }
	 	  }
		}
  }
}

function addToCart(button) {
  var form = $(button).parent()[0];
  var product_id = $("input[name='product_id']",form)[0].value;
  var quantity = $("input[name='quantity']",form)[0].value;
	$.ajaxSetup({ async:false });
  $.getJSON("/cart/add/",{ product_id:product_id,quantity:quantity},function(result) {
    if (result && result.status=='ok') {
      var total = result.total;
      var items = result.items;
      $("#cart_total").text(total);
      $("#cart_items").text(items);
      $("#cart .noitems").hide();
      $("#cart .stats").show();
      $(form).append( $("<div/>").addClass("msg").html(added.replace("%x",quantity)) );
    } else {
      var error_msg = (result && result.msg ? result.msg : "Error while adding to cart.");
      alert(error_msg);
    }
  });
  return false;
}

function checkOrderForm() {
  return true;
}

function updateCartTotal() {
  var items = 0,total = 0;
  $("#cart_table .quantity").each(function() {
      var quantity = parseInt(this.value ? this.value : 0);
      var row = $(this).parent().parent()[0];
      var price = parseInt($(".price",row).text());
      var item_total = price*quantity;
      items += quantity;
      total += item_total;
  });
  $("#total .items_total").text(items);
  $("#total .price_total").text(total+"$");
  $("#cart_total").text(total);
  $("#cart_items").text(items);

}

function initCartRecalc() {
  $("#cart_table input.quantity").bind("change",function() {
    var quantity = parseInt(this.value ? this.value : 0);
    var row = $(this).parent().parent()[0];
    
    if (quantity>0) {
      var product_id = $(row).attr("product_id");
    	$.ajaxSetup({ async:false });
      $.getJSON("/cart/change/",{ product_id:product_id,quantity:quantity},function(result) {
        if (result && result.status=='ok') {
          var price = parseInt($(".price",row).text());
          var total = price*quantity;
          $(".total",row).text(total+"$");
          updateCartTotal();
        } else {
          var error_msg = (result && result.msg ? result.msg : "Error while changing cart.");
          alert(error_msg);
        }
      });
    }
  });
  $("#cart_table .delete_cart").click(function() {
    var row = $(this).parent().parent()[0];
      var product_id = $(row).attr("product_id");
  	$.ajaxSetup({ async:false });
    $.getJSON("/cart/delete/",{ product_id:product_id },function(result) {
        if (result && result.status=='ok') {
          $(row).remove();
          updateCartTotal()
        } else {
          var error_msg = (result && result.msg ? result.msg : "Error while deleting from cart.");
          alert(error_msg);
        }
      });
    return false;
  });
}

function initOrderRecalc() {
  $("input[name='shipping']").click(function() {
    var old_price = parseInt($("#shipping_price").text());
    var price = parseInt($(this).attr("price"));
    var old_total =  parseInt($("#all_total").text());
    var total = old_total-old_price+price;
    $("#shipping_price").text(price);
    $("#all_total").text(total);
  });
  $("input[name='payment']").click(function() {
    var old_price = parseInt($("#payment_price").text());
    var discount =parseInt($(this).attr("discount")) 
    var price = Math.round(parseInt($("#order_total").text())*discount/100);
    var old_total =  parseInt($("#all_total").text());
    var total = old_total+old_price-price;
    $("#payment_price_prc").text(discount);
    $("#payment_price").text(price);
    $("#all_total").text(total);
  });
}

function checkCoupon() {
  $("#check_coupon").click(function() {
    var p = $(this).parent()[0];
    var code = $("input[name='coupon_code']",p)[0].value;
    $.getJSON("/coupons/",{ code:code },function(result) {
      if (result && result.status=='ok') {
        var discount = parseInt(result.discount);
        $(".msg",p).text("You get "+discount+"% discount").show();
        var ds = Math.round(discount*parseInt($("#order_total").text())/100);
        $("#coupon_discount .summ").text(ds);
        $("#coupon_discount .prc").text(discount);
        $("#all_total").text(parseInt($("#all_total").text())-ds);
        $("#coupon_discount").show();
      } else {
        var error_msg = (result && result.msg ? result.msg : "Error while checking coupon code.");
        $(".msg",p).text(error_msg).show();
        var old_summ = parseInt($("#coupon_discount .summ").text());
        $("#coupon_discount .summ").text("");
        $("#coupon_discount").hide();
        $("#all_total").text(parseInt($("#all_total").text())+old_summ);
      }
    });
    return false;
  });
}

 
$(document).ready(function() {
  cssmw.intializeMenu('cssmw');
  initCartRecalc();
  initOrderRecalc();
  checkCoupon();
  $("#orders_table .toggler").click(function() {
    $(this).parent().parent().next().toggle();
    return false;
  });
});
			
