﻿
var currentCurrency = '';

util.addEvent(window, 'load', function() {
	if(typeof(totalValue) == 'undefined') { return; }
	
	var q = document.getElementsByTagName('input');
	var tind = 1;
	for(var i=0; i<q.length; i++) {
		if(q[i].id.indexOf('quantity_') > -1) {
			q[i].tabIndex = tind++;
			q[i].original = q[i].value;
			q[i].vid = q[i].id.replace(/quantity_/gi,'');
			if(document.getElementById('del_' + q[i].vid) != null) document.getElementById('del_' + q[i].vid).onclick = deleteCheckoutItem;
			q[i].onblur = function() {
				quantityChange(null, this);
				if(isNaN(this.value * 1) || this.value == '') {
					this.value = this.value == '' ? '0' : this.original;
					quantityChange(null, this);
				}
			}
			q[i].onkeyup = q[i].onchange = quantityChange;
		}
	}
	var t = totalValue.innerHTML + '';
	currentCurrency = t.replace(/[,0-9.\-]/gi,'');

	var r = new RegExp('[' + currentCurrency.replace(/\&/gi,'\\&').replace(/\$/gi,'\\$') + ',]', "gi");

	subtotalValue.original = subtotalValue.innerHTML.replace(r,'') * 1;
	deliveryValue.original = deliveryValue.innerHTML.replace(r,'') * 1;
	totalValue.original = totalValue.innerHTML.replace(r,'') * 1;

	document.getElementById('updateButton').className = 'disabled';
	document.getElementById('updateButton').disabled = true;
	document.getElementById('cancelButton').onclick = cancelChanges;
	
	if(util.getCookie('offerCode') != null) offerCodeBox.value = util.getCookie('offerCode');

	offerCodeBox.onchange = offerCodeBox.onkeyup = offerCodeBox.onblur = function() {
		if(offerCodeBox.value != '') {
			document.getElementById('updateButton').className = '';
			document.getElementById('updateButton').disabled = false;
			document.getElementById('offerCodeUpdate').style.display = 'inline';
			document.getElementById('proceedLink').style.display = 'none';
		} else {
			calcTotals();
			document.getElementById('offerCodeUpdate').style.display = 'none';
		}
	}
});

function cancelChanges() {
	var tr = document.getElementsByTagName('tr');
	for(var i=0; i<tr.length; i++) tr[i].className = tr[i].className.replace(/deleted/gi,'');
	var q = document.getElementsByTagName('input');
	for(var i=0; i<q.length; i++) {
		if(q[i].id.indexOf('quantity_') > -1) {
			q[i].value = q[i].original;
			q[i].disabled = false;
			q[i].readOnly = false;
			quantityChange(null, q[i]);
		}
	}
	return false;
}

function deleteCheckoutItem() {
	this.parentNode.parentNode.className = this.parentNode.parentNode.className + ' deleted';
	var v = this.id.replace(/del_/gi,'');
	var q = document.getElementById('quantity_' + v);
	q.value = '0';
	quantityChange(null,q);
	q.readOnly = true;
}

function quantityChange(e, el) {
	if(!el) el = this;
	var q = el.original;
	var max = 100000;
	if(!isNaN(el.value * 1)) {
		q = el.value * 1;
		if ( q > max) { q = max; el.value = q; }
	}
	var unit = document.getElementById('uprice_' + el.vid);
	var total = document.getElementById('total_' + el.vid);
	total.innerHTML = toHTMLCurrency(currentCurrency) + util.toPrice(unit.value * q);
	total.className = q != el.original ? 'price newvalue' : 'price';
	el.className = q != el.original ? 'newvalue' : '';
	calcTotals();
}

function toHTMLCurrency(v) {
	if(v == '£') return '&pound;';
	if(v == '€') return '&euro;';
	return v;
}

function calcTotals() {
	var tr = document.getElementsByTagName('tr');
	var st = 0;
	for(var i=0; i<tr.length; i++) {
		var vals = tr[i].getElementsByTagName('input');
		if(vals.length > 1) {
			q = vals[0].value * 1;
			u = vals[1].value * 1;
			st = st + (q * u);
		}
	}
	var delCost = deliveryValue.original;
	subtotalValue.innerHTML = toHTMLCurrency(currentCurrency) + util.toPrice(st);
	totalValue.innerHTML = toHTMLCurrency(currentCurrency) + util.toPrice(st + delCost);

	subtotalValue.className = '';
	totalValue.className = '';
	if(util.toPrice(totalValue.original) != util.toPrice((st+delCost))) {
		subtotalValue.className = 'newvalue';
		totalValue.className = 'newtotalvalue';
	}
	
	if(inSync()) {
		document.getElementById('updateButton').className = 'disabled';
		document.getElementById('updateButton').disabled = true;
		document.getElementById('cancelButton').style.display = 'none';
		document.getElementById('proceedLink').style.display = 'block';
	} else {
		document.getElementById('updateButton').className = '';
		document.getElementById('updateButton').disabled = false;
		document.getElementById('cancelButton').style.display = 'block';
		document.getElementById('proceedLink').style.display = 'none';
	}
}

function inSync() {
	var result = true;
	var q = document.getElementsByTagName('input');
	for(var i=0; i<q.length; i++) {
		if(q[i].id.indexOf('quantity_') > -1) {
			if(q[i].value.trim() != q[i].original.trim()) result = false;
		}
	}
	return result;
}

function updateDelivery() {
	var dr = document.getElementById('deliveryRegion').value;
	var d = document.getElementById('delivery').value;
	document.location.replace('checkout.aspx?p=243&confirm=true&dreg=' + dr + '&did=' + d + '&r=' + Math.random());
}