//
// $Id: shopcart.js,v 1.9 2010/06/10 04:15:40 toshi-f Exp $
//
// Copyright (C) 2007,2010 Graphy, Inc. and Omnisci Software, Inc.
//

function CartClear() {

    var s = 'SimpleCart=dummy; path=/; expires=Thu, 1-Jan-1970 00:00:00;';
    SetCookie(s);
}

function CartAdd(itemName, numItems, price) {

    var current = CartGet();
    if (current == null) {
    	current = '';
    }
    var items = current.split(',');

    var found = 0;
    var updated = '';

    var len = items.length;
    var i = 0;
    while (len >= 3) {
	if (updated.length > 0) {
	    updated = updated + ',';
	}
	if (escape(itemName) == items[i]) {
	    var added = Number(items[i + 1]) + Number(numItems);
	    updated = updated + items[i] + ',' + added + ',' + price;
	    found = 1;
	}
	else {
	    updated = updated + items[i] + ',' + items[i + 1] + ',' + items[i + 2];
	}

	i = i + 3;
	len = len - 3;
    }
    if (found == 0) {
	if (updated.length > 0) {
	    updated = updated + ',';
	}
	updated = updated + escape(itemName) + ',' + numItems + ',' + price;
    }
    if (updated != current) {
	var s = 'SimpleCart=' + updated + '; path=/; expires=Fri, 31-Dec-2030 23:59:59;';
	SetCookie(s);
    }
}

function CartRemove(itemName) {

    var current = CartGet();
    if (current == null) {
	return;
    }
    var items = current.split(',');

    var updated = '';

    var len = items.length;
    var i = 0;
    while (len >= 3) {
	if (itemName != items[i]) {
	    if (updated.length > 0) {
		updated = updated + ',';
	    }
	    updated = updated + items[i] + ',' + items[i + 1] + ',' + items[i + 2];
	}

	i = i + 3;
	len = len - 3;
    }
    if (updated == '') {
    	CartClear();
    }
    else {
	var s = 'SimpleCart=' + updated + '; path=/; expires=Fri, 31-Dec-2030 23:59:59;';
	SetCookie(s);
    }
}

function CartShow() {

    var e = document.getElementById('shoppingCart');
    if (e == null) {
    	return;
    }

    var current = CartGet();
    if (current == null) {
    	current = '';
    }
    var items = current.split(',');

    var sum = 0;

    var HTML = '<table border="0">\n';
    HTML = HTML + '<tr>\n<th>商品名</th>\n<th>数量</th>\n<th>単価(税込)</th>\n<th>金額(税込)</th>\n<th></th>\n</tr>\n';

    var len = items.length;
    var i = 0;
    while (len >= 3) {
    	var itemName = items[i];
	var numItems = Number(items[i + 1]);
	var price = Number(items[i + 2]);
	var total = numItems * price;
	var sum = sum + total;

	HTML = HTML + '<tr>\n';
	HTML = HTML + '<td>' + unescape(itemName) + '</td>\n';
	HTML = HTML + '<td>×' + numItems + '</td>\n';
	HTML = HTML + '<td class="cartPrice">' + PriceString(price) + '円</td>\n';
	HTML = HTML + '<td class="cartPrice">' + PriceString(total) + '円</td>\n';
	HTML = HTML + '<td><button OnClick="CartRemove(\'' + itemName + '\'); CartShow();">削除</button></td>\n';
	HTML = HTML + '</tr>\n';

	i = i + 3;
	len = len - 3;
    }

    HTML = HTML + '<tr><td colspan="3">合計金額(税込)</td><td>' + PriceString(sum) + '円</td></tr>\n';
    HTML = HTML + '</table>\n';

    e.innerHTML = HTML;
}

function CartMail() {

    var e = document.mailForm.cartInfo;
    if (e == null) {
    	return;
    }

    var current = CartGet();
    if (current == null) {
    	current = '';
    }
    var items = current.split(',');

    var sum = 0;
    var value = '';

    var len = items.length;
    var i = 0;
    while (len >= 3) {
    	var itemName = items[i];
	var numItems = Number(items[i + 1]);
	var price = Number(items[i + 2]);
	var total = numItems * price;
	var sum = sum + total;

	value = value + unescape(itemName) + ',';
	value = value + numItems + ',';
	value = value + price + ',';
	value = value + total + ',';

	i = i + 3;
	len = len - 3;
    }

    value = value + sum;

    e.value = value;
}

function CartGet() {

    var cookies = GetCookie().split(';');
    for (var i = 0; i < cookies.length; i++) {
	var cookie = cookies[i];
	cookie = cookie.replace(/^\s*/, '');
	cookie = cookie.replace(/\s*$/, '');

    	var s = cookie.split('=');
	if (s.length == 2 && s[0] == 'SimpleCart') {
	    return (s[1]);
	}
    }

    return (null);
}

function PriceString(n) {

    var s = '';

    n = Number(n);
    var org = n;

    if (n >= 1000000) {
	var i = Math.floor(n / 1000000);
	n = n - i * 1000000;
    	s = s + i + ',';
    }
    if (n >= 1000) {
	var i = Math.floor(n / 1000);
	n = n - i * 1000;
    	s = s + i + ',';
    }

    if (org >= 1000) {
	var l = String(n).length + 3;
    	s = s + ('000' + String(n)).substr(l - 3);
    }
    else {
    	s = s + n;
    }

    return (s);
}

function GetCookie() {

    return (document.cookie);
}

function SetCookie(s) {

    document.cookie = s;
}

