function createCookie (name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime (today.getTime());
	
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24;
	}

	var expires_date = new Date (today.getTime() + (expires));
	document.cookie = name + "=" +escape( value ) + ((expires) ? ";expires=" + expires_date.toGMTString() : "" ) + ((path) ? ";path=" + path : "" ) + ((domain) ? ";domain=" + domain : "" ) + ((secure) ? ";secure" : "" );
}

function readCookie (check_name) {
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false;

	for ( i = 0; i < a_all_cookies.length; i++ ) {
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		if (cookie_name == check_name) {
			b_cookie_found = true;

			if ( a_temp_cookie.length > 1 ) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}

			return cookie_value;
			break;
		}

		a_temp_cookie = null;
		cookie_name = '';
	}

	if (!b_cookie_found) {
		return null;
	}
}

function eraseCookie (name, path, domain) {
	if (createCookie (name))
		document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    if (s.indexOf(dec) === -1 && prec > 1) {
        s += dec+new Array(prec).join(0)+'0';
    }

    return s;
}

function clearAddToMsg () {
	document.getElementById('add-to-quote-msg').innerHTML = '';
}

function emptyCart () {
	createCookie ('KWM-Floating-Cart', '', 1, '/', '', '');
}

function addToCart (item_code, item_name, item_price) {
	var new_cookie_vars;
	var item_exists = 'false';

	var price_change = 0;
	var name_add_on;
	var form_name = document.forms['item_form'];
	var select_tags = form_name.getElementsByTagName('select');
	for (i=0; i < select_tags.length; i++) {
		var tmp_val = select_tags[i].value;

		var price_add_start = tmp_val.indexOf ('(');
		var price_add_end = tmp_val.indexOf (')');
		if ((price_add_start != -1) && (price_add_end != -1)) {
			var temp_price_add_1 = tmp_val.substring (price_add_start + 1, price_add_end);
			var temp_price_add_2 = temp_price_add_1.replace ('\+', '');
			price_change = temp_price_add_2.replace ('$', '');
			price_change = parseFloat (price_change);

			item_price = parseFloat (item_price);
			item_price = number_format (item_price + price_change, 2);
		}

		var check_sku_start = tmp_val.indexOf ('#');
		var check_sku_end = tmp_val.indexOf ('#', check_sku_start + 1);

		if ((check_sku_start != -1) && (check_sku_end != -1)) {
			item_code = tmp_val.substring (check_sku_start + 1, check_sku_end);
			tmp_val = tmp_val.substring (check_sku_end + 1, tmp_val.length);
		}

		if (price_add_start != -1)
			name_add_on = tmp_val.substring (0, price_add_start);
		else
			name_add_on = tmp_val.substring (0, tmp_val.length);

		item_name = item_name + ' - ' + name_add_on;
	}	

	if (!price_change)
		item_price = number_format (item_price, 2);

	var cookie_raw_data = readCookie ('KWM-Floating-Cart');
	if ((cookie_raw_data) && (cookie_raw_data != 'undefined')) {
		var cookie_vars = cookie_raw_data.split('&&&');

		var item_vars;
		for (i=0; i < cookie_vars.length; i++) {
			item_vars = cookie_vars[i].split('~~~');
			if ((item_vars[0] == item_code) && (item_vars[2] == item_price))
				item_exists = 'true';
		}
	}

	if ((cookie_raw_data == null) || (cookie_raw_data == 'undefined'))
		cookie_raw_data = '';

	if (item_exists == 'false') {
		if (cookie_raw_data)
			new_cookie_vars = cookie_raw_data + '&&&' + item_code + '~~~' + item_name + '~~~' + item_price;
		else
			new_cookie_vars = item_code + '~~~' + item_name + '~~~' + item_price;

		createCookie ('KWM-Floating-Cart', new_cookie_vars, 1, '/', '', '');

		document.getElementById('add-to-quote-msg').innerHTML = 'Item has been added';
		setTimeout ('clearAddToMsg()', 1500);
	} else {
		document.getElementById('add-to-quote-msg').innerHTML = 'Item was already added';
		setTimeout ('clearAddToMsg()', 2000);
	}

	viewCart();
}

function removeFromCart (item_position) {
	var new_cookie_vars;

	var cookie_raw_data = readCookie ('KWM-Floating-Cart');
	if ((cookie_raw_data) && (cookie_raw_data != 'undefined')) {
		var cookie_vars = cookie_raw_data.split('&&&');

		for (i=0; i < cookie_vars.length; i++) {
			if (i != item_position) {
				if (!new_cookie_vars)
					new_cookie_vars = cookie_vars[i];
				else
					new_cookie_vars = new_cookie_vars + '&&&' + cookie_vars[i];
			}
		}

		if ((cookie_vars == null) || (cookie_vars == 'undefined'))
			new_cookie_vars = '';

		createCookie ('KWM-Floating-Cart', new_cookie_vars, 1, '/', '', '');
	}

	viewCart();
}

function viewCart () {
	var cookie_raw_data = readCookie ('KWM-Floating-Cart');
	if (cookie_raw_data) {
		var cookie_vars = cookie_raw_data.split ('&&&');
		var formatted_cart_content = '';

		for (i=0; i < cookie_vars.length; i++) {
			item_vars = cookie_vars[i].split ('~~~');

			if (item_vars[i] != 'undefined') {
				formatted_cart_content = formatted_cart_content + '<div class="item-name">' + item_vars[1] + '</div>';
				formatted_cart_content = formatted_cart_content + '<div class="item-price">$' + item_vars[2] + '</div>';
				formatted_cart_content = formatted_cart_content + '<div class="clear-both"></div>';
				formatted_cart_content = formatted_cart_content + '<div class="item-remove" onclick="removeFromCart('+ i +');">[remove]</div>';
			}
		}

		if (formatted_cart_content) {
			var formatted_cart_header = '';
			formatted_cart_header = formatted_cart_header + '<div id="header">Your Added Items</div>';
			formatted_cart_header = formatted_cart_header + '<div id="floating-cart-body">';

			var formatted_cart_footer = '';
			formatted_cart_footer = formatted_cart_footer + '</div>';
			formatted_cart_footer = formatted_cart_footer + '<div id="footer" onclick="window.location=\'requ.html\';">Click here to submit your quote</div>';

			var formatted_cart = formatted_cart_header + formatted_cart_content + formatted_cart_footer;

			document.getElementById('floating-cart').innerHTML = formatted_cart;
			document.getElementById('floating-cart').style.display = 'block';
		} else
			document.getElementById('floating-cart').style.display = 'none';
	} else
		document.getElementById('floating-cart').style.display = 'none';
}

function populateItems () {
	var cookie_raw_data = readCookie ('KWM-Floating-Cart');
	if (cookie_raw_data) {
		var cookie_vars = cookie_raw_data.split ('&&&');
		var formatted_cart_content = '';

		var item_counter = 1;
		for (i=0; i < cookie_vars.length; i++) {
			item_vars = cookie_vars[i].split ('~~~');

			if (item_vars[i] != 'undefined') {
				document.forms['byoinfo'].elements['item'+ item_counter].value = item_vars[0];
				document.forms['byoinfo'].elements['desc'+ item_counter].value = item_vars[1];

				item_counter = item_counter + 1;
			}
		}

		emptyCart();
	}
}

