// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) { // all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
}

var google_conversion_id = 1042823819;
var google_conversion_language = "en_US";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "Z0oeCL-ybRCL9aDxAw";
var google_conversion_value = 1.0;

var proceedsent = false;

var calculator = {
	order   : [],
	disc    : null,
	pulsate : null,
	blink   : null,
	disable : [],
	isFinal : false,
	key     : null,

	init: function(params) {
		this.reset();

		if (params != null) {
			if ((params[0] == 'disc_cd')) {
				this.selectDiscType($(params[0]));
				this.selectPackage($(params[3]));

				$('quantity_field').value = params[2];
				this.selectQuantity($('quantity_field'));

				if (params[4] != null) {
					this.selectBookletCD($(params[4]));
				}
				if (params[5] != null) {
					this.selectBookletCD($(params[5]));
				}
				if (params[6] != null) {
					this.selectInlay($(params[6]));
				}
				if (params[7] != null) {
					this.selectShrinkWrapCd($(params[7]));
				}
			} else {
				this.selectDiscType($(params[0]));
				this.selectPackage($(params[3]));

				$('quantity_field').value = params[2];
				this.selectQuantity($('quantity_field'));

				if (params[1] != null) {
					this.selectCheckDisc($(params[1]));
				}
				if (params[4] != null) {
					this.selectBookletDVD($(params[4]));
				}
				if (params[5] != null) {
					this.selectBookletDVD($(params[5]));
				}
				if (params[6] != null) {
					this.selectWrap($(params[6]));
				}
				if (params[7] != null) {
					this.selectShrinkWrapDVD($(params[7]));
				}
			}
		}
	},

	reset: function() {
		$('acBoxInfo').show();
		$('acBoxCD').hide();
		$('acBoxDVD').hide();

		$('actions').show();
		$('message').hide();
		$('summary').hide();

		$('step1').show();
		$('step2').show();
		$('step3').show();
		$('step4').show();
		$('step5cd').hide();
		$('step5dvd').hide();
		$('step6cd').hide();
		$('step6dvd').hide();
		$('step7cd').hide();
		$('step7dvd').hide();
		$('step8').hide();

		this.resetAction();
	},

	resetAction: function() {
		this.order   = [null,null,null,null,null,null,null,null];
		this.disc    = null;
		this.isFinal = false;

		this.clearSelect('disc');
		this.clearSelect('check');
		this.clearSelect('quantity');
		this.clearSelect('package');
		this.clearSelect('bookletcd');
		this.clearSelect('bookletdvd');
		this.clearSelect('inlay');
		this.clearSelect('wrap');
		this.clearSelect('shrinkwrapcd');
		this.clearSelect('shrinkwrapdvd');

		this.clearHeader('disc');
		this.clearHeader('check');
		this.clearHeader('quantity');
		this.clearHeader('package');
		this.clearHeader('bookletcd');
		this.clearHeader('bookletdvd');
		this.clearHeader('inlay');
		this.clearHeader('wrap');
		this.clearHeader('shrinkwrapcd');
		this.clearHeader('shrinkwrapdvd');

		$('rerunspan').className = 'ok';
		$('rerun').style.display='none';

		this.groupEnable('disc');
		this.groupEnable('check');
		this.groupEnable('package');
		this.groupEnable('bookletcd');
		this.groupEnable('inlay');
		this.groupEnable('shrinkwrapcd');
		this.groupEnable('bookletdvd');
		this.groupEnable('wrap');
		this.groupEnable('shrinkwrapdvd');

		this.currentAction(1);
	},

	nextAction: function() {
		var isFinal = true;
		var i = 0;
		for (var i = 0; i < this.order.length; i++) {
			if (this.order[i] != null) {
				var step = i + 1;

				if (this.disc != null && (step >= 5 && step <= 7)) {
					step = step + this.disc;
				}

				$('step' + step).hide();
			}
		};

		for (var i = 0; i < this.order.length; i++) {
			if (this.order[i] == null) {
				var step = i + 1;

				if (this.disc == null && (step >= 5 && step <= 7)) {
					continue;
				}

				if (this.disc != null && (step >= 5 && step <= 7)) {
					step = step + this.disc;
				}

				isFinal = false;

				this.currentAction(step);
				break;
			}
		}
		this.isFinal = isFinal;

		if (isFinal) {
			this.finalAction();
		} else {
			$('actions').show();
			$('summary').hide();
		}
	},

	currentAction: function(step) {
		if (this.pulsate != null) {
			clearInterval(this.pulsate);
		}

		$('step1').style.visibility = 'visible';
		$('step2').style.visibility = 'visible';
		$('step3').style.visibility = 'visible';
		$('step4').style.visibility = 'visible';
		$('step5cd').style.visibility = 'visible';
		$('step5dvd').style.visibility = 'visible';
		$('step6cd').style.visibility = 'visible';
		$('step6dvd').style.visibility = 'visible';
		$('step7cd').style.visibility = 'visible';
		$('step7dvd').style.visibility = 'visible';
		$('step8').style.visibility = 'visible';

		this.pulsate = setInterval(
		'$("step' + step + '").style.visibility = ($("step' + step + '").style.visibility == "visible") ? "hidden" : "visible"', 300 );
		
		if (this.blink != null) {
			clearInterval(this.blink);
		}
		this.blink = setInterval( '$("blink").style.visibility = ($("blink").style.visibility == "visible") ? "hidden" : "visible"', 1000 );
	},

	finalAction: function() {
		this.isFinal = true;

		$('actions').hide();
		$('summary').show();
		
		if (this.blink != null) {
			clearInterval(this.blink);
		}
		this.blink = setInterval( '$("blink").style.visibility = ($("blink").style.visibility == "visible") ? "hidden" : "visible"', 1000 );
		this.calculate();
	},

	reDisplayPart1: function() {
		var disc = this.order[this.getGroupKey('disc')];
		var check = this.order[this.getGroupKey('check')];
		var pack = this.order[this.getGroupKey('package')];

		this.groupEnable('disc');
		this.groupEnable('check');
		this.groupEnable('package');
		
		if (disc==null && check=='none') check=null;

		if (disc=='disc_cd') {
			if (check=='none') { this.groupDisable('check'); }
			this.itemsDisable(['package_sbd','package_scd']);
		}
		if (disc=='disc_dvd5') {
			if (check=='none') { this.groupDisable('check'); }
			this.itemsDisable(['package_cjbt','package_cjct']);
		}
		if (disc=='disc_dvd9'&&check==null) {
			this.itemsDisable(['package_cjbt','package_cjct']);
		}
		if (check=='check_yes' || check=='check_no') {
			this.itemsDisable(['disc_cd','disc_dvd5','package_cjbt','package_cjct']);
		}
		if (pack=='package_cjbt' || pack=='package_cjct') {
			this.itemsDisable(['disc_dvd5','disc_dvd9']);
			this.groupDisable('check');
			check = 'none';
		}
		if (pack=='package_sbd' || pack=='package_scd') {
			this.itemsDisable(['disc_cd']);
		}

		if (disc==null) { this.clearHeader('disc'); } else { this.okHeader('disc'); }
		if (check==null) { this.clearHeader('check'); } else { this.okHeader('check'); }
		if (pack==null) { this.clearHeader('package'); } else { this.okHeader('package'); }
		
		this.order[this.getGroupKey('disc')] = disc;
		this.order[this.getGroupKey('check')] = check;
		this.order[this.getGroupKey('package')] = pack;
		
		if (disc==null) { $('step1').show(); } else { $('step1').hide(); }
		if (check==null) { $('step2').show(); } else { $('step2').hide(); }
		if (pack==null) { $('step4').show(); } else { $('step4').hide(); }
	},

	reDisplayPart2: function() {
		var disc = this.order[this.getGroupKey('disc')];
		var check = this.order[this.getGroupKey('check')];
		var pack = this.order[this.getGroupKey('package')];

		if (pack==null || disc==null) {
			return;
		}

		if (disc == 'disc_cd') {
			var acboxcdres = new Effect.Appear('acBoxCD',{ duration: 0.5 });
			$('acBoxDVD').hide();
			$('step5dvd').hide();
			$('step6dvd').hide();
			$('step7dvd').hide();
			$('step5cd').show();
			$('step6cd').show();
			$('step7cd').show();
			$('step8').show();
			$('acBoxInfo').hide();
		} else if (disc != null) {
			var acboxdvdres = new Effect.Appear('acBoxDVD',{ duration: 0.5 });
			$('acBoxCD').hide();
			$('step5cd').hide();
			$('step6cd').hide();
			$('step7cd').hide();
			$('step5dvd').show();
			$('step6dvd').show();
			$('step7dvd').show();
			$('step8').show();
			$('acBoxInfo').hide();
		}

		this.groupDisable('bookletcd');
		this.groupDisable('inlay');
		this.groupDisable('shrinkwrapcd');
		this.groupDisable('bookletdvd');
		this.groupDisable('wrap');
		this.groupDisable('shrinkwrapdvd');

		if (pack == 'package_cpw' || pack == 'package_sj' || pack == 'package_sbd' || pack == 'package_scd' || pack == 'package_cjbt' || pack == 'package_cjct') {
			switch (this.disc) {
				case 'cd':	this.groupEnable('bookletcd'); break;
				case 'dvd':	this.groupEnable('bookletdvd'); break;
			}
		}
		if (pack == 'package_sbd' || pack == 'package_scd' || pack == 'package_cjbt' || pack == 'package_cjct') {
			switch (this.disc) {
				case 'cd':	this.groupEnable('inlay'); break;
				case 'dvd':	this.groupEnable('wrap'); break;
			}
		}
		if (pack == 'package_cwpinc' || pack == 'package_sj' || pack == 'package_sbd' || pack == 'package_scd' || pack == 'package_cjbt' || pack == 'package_cjct') {
			switch (this.disc) {
				case 'cd':	this.groupEnable('shrinkwrapcd'); break;
				case 'dvd':	this.groupEnable('shrinkwrapdvd'); break;
			}
		}
		// additional tweaks
		if (pack == 'package_cjbt') {
			this.itemDisable('inlay_44c');
			this.itemDisable('bookletcd_none');
			this.itemDisable('inlay_none');
		}
		if (pack == 'package_cjct') {
			this.itemDisable('bookletcd_none');
			this.itemDisable('inlay_none');
		}
		if (pack == 'package_sj') {
			$('bookletdvd_title').innerHTML = 'CD Booklet';
			$('wrap_title').innerHTML = 'CD Wrap';
			$('step5dvd').innerHTML = 'Choose CD Booklet';
		} else {
			$('bookletdvd_title').innerHTML = 'DVD Booklet';
			$('wrap_title').innerHTML = 'DVD Wrap';
			$('step5dvd').innerHTML = 'Choose DVD Booklet';
		}
	},

	selectDiscType: function(element) {
		if (!this.isEnabledPart1(element)) { return; }

		var part = this.order[this.getGroupKey('disc')];
		this.select('disc', element.id);

		if (element.id == 'disc_cd') {
			this.disc = 'cd';
			this.order[this.getGroupKey('check')] = 'none';
		} else {
			this.disc = 'dvd';
			if (element.id=='disc_dvd9') {
				$('step2').show();
				if (this.order[this.getGroupKey('check')]=='none') this.order[this.getGroupKey('check')] = null;
			} else {
				$('step2').hide();
				this.order[this.getGroupKey('check')] = 'none';
			}
		}
		this.reDisplayPart1();
		this.reDisplayPart2();
		this.nextAction();
	},

	selectCheckDisc: function(element) {
		if (!this.isEnabledPart1(element)) { return; }
		this.select('check', element.id);
		this.reDisplayPart1();
		this.nextAction();
	},

	selectRerunDisc: function(element) {
		this.select('rerun', $('input_rerun'));
	},

	selectQuantity: function(element) {
		element.value = parseFloat("0"+element.value);

		if (element.value < 500) {
			$('step3').style.visibility = 'visible';
			$('step3').show();
			$('step3').update('Minimum number of units is 500!');
			$('didyouknow').innerHTML="<a href='/duplicationcentre.html'><img style='margin: 10px 0px 10px 0px;' src='/i/layout/didyouknow.gif' alt='www.duplicationcentre.co.uk' /></a>";
			$('rerun').style.display='none';
			this.order[this.getGroupKey('quantity')] = null;
			this.clearHeader('quantity');
			this.nextAction();
			return false;
		}
		if (element.value > 10000) {
			$('step3').style.visibility = 'visible';
			$('step3').show();
			$('step3').update('Maximum number of units is 10000!');
			$('didyouknow').innerHTML="<a href='mailto:sales@replicationcentre.co.uk'><img style='margin: 10px 0px 10px 0px;' src='/i/layout/didyouknow2.gif'/></a>";
			this.order[this.getGroupKey('quantity')] = null;
			this.clearHeader('quantity');
			this.nextAction();
			return false;
		}
		if (element.value < 1000) {
			$('rerun').style.display='block';
		} else {
			$('rerun').style.display='none';
		}
		$('didyouknow').innerHTML="";
		$('quantityNote').innerHTML="";

		this.select('quantity', element);
		this.nextAction();
		return false;
	},

	selectPackage: function(element) {
		if (!this.isEnabledPart1(element)) { return; }
		this.select('package', element.id);
		this.reDisplayPart1();
		this.reDisplayPart2();
		this.nextAction();
	},

	selectBookletCD: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('bookletcd', element.id);
	},

	selectBookletDVD: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('bookletdvd', element.id);
	},

	selectInlay: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('inlay', element.id);
	},

	selectWrap: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('wrap', element.id);
	},

	selectShrinkWrapCd: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('shrinkwrapcd', element.id);
	},

	selectShrinkWrapDVD: function(element) {
		if (!this.isEnabled(element)) { return; }
		this.select('shrinkwrapdvd', element.id);
	},

	select: function(group, current) {
		switch (group) {
			case 'quantity':
			var value = $(current).value;
			break;
			case 'bookletcd':
			var value = current;

			if (current == 'bookletcd_40' || current == 'bookletcd_44') {
				group = 'bookletparamcd';

				$('bookletcd_40').className = '';
				$('bookletcd_44').className = '';

				if (this.order[this.getGroupKey('bookletcd')] == 'none') {
					this.order[this.getGroupKey('bookletcd')] = null;
				}
			} else if (current == 'bookletcd_none') {
				$('bookletcd_40').className = '';
				//$('bookletcd_41').className = '';
				$('bookletcd_44').className = '';
				$('bookletcd_2pp').className = '';
				$('bookletcd_4pp').className = '';
				$('bookletcd_6pp').className = '';
				$('bookletcd_8pp').className = '';
				this.order[this.getGroupKey('bookletparamcd')] = 'none';
				value = 'none';
			} else {
				var param1 = $('bookletcd_40').className;
				var param2 = $('bookletcd_44').className;

				this.clearSelect(group);

				$('bookletcd_40').className = param1;
				$('bookletcd_44').className = param2;

				if (this.order[this.getGroupKey('bookletparamcd')] == 'none') {
					this.order[this.getGroupKey('bookletparamcd')] = null;
				}
			}

			$(current).className = 'accepted';

			break;
			case 'bookletdvd':
			var value = current;

			if (current == 'bookletdvd_40' || current == 'bookletdvd_41' || current ==  'bookletdvd_44') {
				group = 'bookletparamdvd';

				$('bookletdvd_40').className = '';
				$('bookletdvd_41').className = '';
				$('bookletdvd_44').className = '';
				$('bookletdvd_none').className = '';

				if (this.order[this.getGroupKey('bookletdvd')] == 'none') {
					this.order[this.getGroupKey('bookletdvd')] = null;
				}
			} else if(current == 'bookletdvd_2pp' || current == 'bookletdvd_4pp' || current == 'bookletdvd_6pp' || current == 'bookletdvd_8pp') {
				$('bookletdvd_2pp').className = '';
				$('bookletdvd_4pp').className = '';
				$('bookletdvd_6pp').className = '';
				$('bookletdvd_8pp').className = '';
				$('bookletdvd_none').className = '';

				if (current != 'bookletdvd_2pp') {
					this.itemDisable('bookletdvd_40');

					if (this.order[this.getGroupKey('bookletparamdvd')] == 'bookletdvd_40') {
						this.order[this.getGroupKey('bookletparamdvd')] = null;
						Element.show('step6dvd');
						this.currentAction('6dvd');
					}
				} else {
					if (this.isDisable('bookletdvd_40')) {
						this.itemEnable('bookletdvd_40');
					}
				}


				if(this.order[this.getGroupKey('bookletparamdvd')] == 'none')
				{
					this.order[this.getGroupKey('bookletparamdvd')] = null;
				}

			} else if (current == 'bookletdvd_none') {
				$('bookletdvd_40').className = '';
				$('bookletdvd_41').className = '';
				$('bookletdvd_44').className = '';
				$('bookletdvd_2pp').className = '';
				$('bookletdvd_4pp').className = '';
				$('bookletdvd_6pp').className = '';
				$('bookletdvd_8pp').className = '';
				this.order[this.getGroupKey('bookletparamdvd')] = 'none';
				value = 'none';
			}

			$(current).className = 'accepted';

			break;
			case 'wrap':
			var value = (current == 'wrap_none') ? 'none' : current;
			this.clearSelect(group);
			$(current).className = 'accepted';
			break;
			default:
			this.clearSelect(group);
			var value = current;
			$(current).className = 'accepted';
		}

		this.order[this.getGroupKey(group)] = value;

		if (group == 'bookletdvd' || group == 'bookletparamdvd') {
			var groups   = $('bookletdvd').childElements();
			var header   = groups[0];
			var elements = header.childElements();
			var span     = elements[0];

			if (this.order[this.getGroupKey('bookletparamdvd')] != null && this.order[this.getGroupKey('bookletdvd')] != null) {
				$(span).className = 'ok';
			} else {
				$(span).className = '';
			}

			if (this.order[this.getGroupKey('bookletdvd')] == null || this.order[this.getGroupKey('bookletparamdvd')] == null) {
				$('step5dvd').show();
				$('step6dvd').show();
			}
		} else if (group == 'bookletcd' || group == 'bookletparamcd') {
			var groups   = $('bookletcd').childElements();
			var header   = groups[0];
			var elements = header.childElements();
			var span     = elements[0];

			if (this.order[this.getGroupKey('bookletparamcd')] != null && this.order[this.getGroupKey('bookletcd')] != null) {
				$(span).className = 'ok';
			} else {
				$(span).className = '';
			}

			if (this.order[this.getGroupKey('bookletcd')] == null || this.order[this.getGroupKey('bookletparamcd')] == null) {
				$('step5cd').show();
				$('step6cd').show();
			}
		} else {
			var groups   = $(group).childElements();
			var header   = groups[0];
			var elements = header.childElements();
			var span     = elements[0];

			$(span).className = 'ok';
		}

		this.nextAction();

		if (this.isFinal) {
			this.finalAction();
		}
	},

	clearSelect: function(group) {
		if (group == 'quantity') {
			var groupElements = $(group).childElements();
			var divElement    = groupElements[1];
			var divElements   = divElement.childElements();
			var inputElement  = divElements[0];

			inputElement.value = '';

			return;
		}

		var elements = $(group).childElements();

		for (var i = 0; i < elements.length; i++) {
			var element = elements[i];

			if (element.nodeName != 'UL') {
				continue;
			}

			var list = element.childElements();

			for (var j = 0; j < list.length; j++) {
				var item = list[j].childElements();
				var href = item[0];

				$(href).className = '';
			}
		}
	},

	clearHeader: function(group) {
		var groups   = $(group).childElements();
		var header   = groups[0];
		var elements = header.childElements();
		var span     = elements[0];
		$(span).className = '';
	},

	okHeader: function(group) {
		var groups   = $(group).childElements();
		var header   = groups[0];
		var elements = header.childElements();
		var span     = elements[0];
		$(span).className = 'ok';
	},

	itemEnable: function(id) {
		try { $(id).style.MozOpacity = 100/100; } catch (e) {}
		try { $(id).style.filter = 'alpha(opacity=100)'; } catch (e) {}
		try { $(id).style.opacity = 100/100; } catch (e) {}

		for (var i = 0; i < this.disable.length; i++) {
			if (this.disable[i] == id) {
				this.disable[i] = null;
			}
		}
	},

	itemDisable: function(id) {
		try { $(id).style.MozOpacity = 40/100; } catch (e) {}
		try { $(id).style.filter = 'alpha(opacity=40)'; } catch (e) {}
		try { $(id).style.opacity = 40/100; } catch (e) {}

		if (this.getGroupKey(id)) this.order[this.getGroupKey(id)] = null;

		this.disable.push(id);
		$(id).className = '';
	},

	itemsEnable: function(items) {
		for (var i = 0; i < items.length; i++) {
			this.itemEnable(items[i]);
		}
	},

	itemsDisable: function(items) {
		for (var i = 0; i < items.length; i++) {
			this.itemDisable(items[i]);
		}
	},

	groupEnable: function(group) {
		var elements = $(group).childElements();

		for (var i = 0; i < elements.length; i++) {
			var element = elements[i];

			if (element.nodeName != 'UL') {
				continue;
			}

			var list = element.childElements();

			for (var j = 0; j < list.length; j++) {
				var item = list[j].childElements();
				var href = item[0];

				this.itemEnable(href.id);
			}
		}

		this.order[this.getGroupKey(group)] = null;

		var groups   = $(group).childElements();
		var header   = groups[0];
		var elements = header.childElements();
		var span     = elements[0];

		$(span).className = '';
	},

	groupDisable: function(group) {
		var elements = $(group).childElements();

		for (var i = 0; i < elements.length; i++) {
			var element = elements[i];

			if (element.nodeName != 'UL') {
				continue;
			}

			var list = element.childElements();

			for (var j = 0; j < list.length; j++) {
				var item = list[j].childElements();
				var href = item[0];

				this.itemDisable(href.id);
			}
		}

		this.clearHeader(group);
		this.order[this.getGroupKey(group)] = 'none';

		if (group == 'bookletcd') {
			this.order[this.getGroupKey('bookletparamcd')] = 'none';
		}
		if (group == 'bookletdvd') {
			this.order[this.getGroupKey('bookletparamdvd')] = 'none';
		}

		var groups   = $(group).childElements();
		var header   = groups[0];
		var elements = header.childElements();
		var span     = elements[0];

		$(span).className = 'ok';
	},

	isDisable: function(id) {
		for (var i = 0; i < this.disable.length; i++) {
			if (this.disable[i] == id) {
				return true;
			}
		}
		return false;
	},
	isEnabled: function(val) {
		if(val.style.filter == 'alpha(opacity=100)' || val.style.MozOpacity ==  100/100 ||  val.style.opacity ==  100/100) {
			return true;
		} else {
			return false;
		}
	},
	isEnabledPart1: function(val) {
		if(val.style.filter == 'alpha(opacity=100)' || val.style.MozOpacity ==  100/100 ||  val.style.opacity ==  100/100) {
			return true;
		} else {
			var question = confirm("You've just pressed an option that was greyed out because certain Packages and Services will only fit certain disc types. If you continue then we will de-select the incompantible piece.");
			if(question == true) {
				var disc = this.order[this.getGroupKey('disc')];
				var check = this.order[this.getGroupKey('check')];
				var pack = this.order[this.getGroupKey('package')];
				switch (val.id) {
					case 'disc_cd':
					check = null;
					if (pack=='package_sbd' || pack=='package_scd') pack = null;
					break;
					case 'disc_dvd5':
					check = null;
					if (pack=='package_cjbt' || pack=='package_cjct') pack = null;
					break;
					case 'disc_dvd9':
					pack = null;
					break;
					case 'check_yes':
					case 'check_no':
					if (disc=='disc_cd' || disc=='disc_dvd5') disc = null;
					if (pack=='package_cjbt' || pack=='package_cjct') pack = null;
					break;
					case 'package_cjbt':
					case 'package_cjct':
					if (disc=='disc_dvd5' || disc=='disc_dvd9') disc = null;
					check = null;
					break;
					case 'package_sbd':
					case 'package_scd':
					if (disc=='disc_cd') disc = null;
					break;
				}
				this.order[this.getGroupKey('disc')] = disc;
				this.order[this.getGroupKey('check')] = check;
				this.order[this.getGroupKey('package')] = pack;
				this.reDisplayPart1();
				this.reDisplayPart2();
				return true;

			}
			return false;
		}
	},

	getGroupKey: function(group) {
		switch (group) {
			case 'disc'            : var key = 0; break;
			case 'check'           : var key = 1; break;
			case 'quantity'        : var key = 2; break;
			case 'package'         : var key = 3; break;
			case 'bookletcd'       : var key = 4; break;
			case 'bookletdvd'      : var key = 4; break;
			case 'bookletparamcd'  : var key = 5; break;
			case 'bookletparamdvd' : var key = 5; break;
			case 'inlay'           : var key = 6; break;
			case 'wrap'            : var key = 6; break;
			case 'shrinkwrapcd'    : var key = 7; break;
			case 'shrinkwrapdvd'   : var key = 7; break;
		}

		return key;
	},

	calculate: function()
	{
		var summarypriceres = new Ajax.Updater('summary_price', '/order/calculate.html', {
			method: 'post',
			parameters: {data: this.prepareData()}
		});
	},

	addToCart: function() {
		var addtocartres = new Ajax.Request('/order/add-to-cart.html', {
			method: 'post',
			parameters: {data: this.prepareData()},
			onSuccess: function(transport) {
				location.href = '/order/cart.html';
			}
		});

		this.messenger('Project added to cart');
	},

	updateProject: function(key) {
		var updateprojectidres = new Ajax.Request('/order/update-project/id/' + key, {
			method: 'post',
			parameters: {data: this.prepareData()},
			onSuccess: function(transport) {
				location.href = '/order/cart.html';
			}
		});

		this.messenger('Project replaced in cart');
	},

	proceed: function() {
		if (this.key != null) {
			return this.updateProject(this.key);
		}
		if (!proceedsent) {
			var addtocartres = new Ajax.Request('/order/add-to-cart.html', {
				method: 'post',
				parameters: {data: this.prepareData()},
				onSuccess: function(transport) {
					location.href = SURL + '/order/buy.html';
				}
			});
			proceedsent = true;
		}
	},

	proceedToGoogle: function() {
		if (this.key != null) {
			return this.updateProject(this.key);
		}
		if (!proceedsent) {
			var addtocartres = new Ajax.Request('/order/add-to-cart.html', {
				method: 'post',
				parameters: {data: this.prepareData()},
				onSuccess: function(transport) {
					location.href = SURL + '/order/proceed.html?google=true';
				}
			});
			proceedsent = true;
		}
	},

	prepareData: function() {
		var data = new Array();

		for (var i = 0; i < this.order.length; i++) {
			data[i] = (this.order[i] == null) ? 'none' : this.order[i];
		}

		// glassmastering
		if ($('input_rerun').checked) {
			data[i+1] = 'rerun';
		} else {
			data[i+1] = 'none';
		}

		return data.toJSON();
	},

	printItemQuote: function() {
		var createtemporaryprojres = new Ajax.Request('/order/create-temporary-project.html', {
			method: 'post',
			parameters: {data: this.prepareData()},
			onSuccess: function(transport) {
				window.open('/order/print-item-quote.html', '_blank','width=250,height=450,resizable=0,scrollbars=yes,menubar=no');
			}
		});
	},

	emailItemQuote: function() {
		var createtemporaryprojres = new Ajax.Request('/order/create-temporary-project.html', {
			method: 'post',
			parameters: {data: this.prepareData()},
			onSuccess: function(transport) {
				window.open('/order/email-item-quote.html', '_blank','width=450,height=250,resizable=0,scrollbars=no,menubar=no');
			}
		});
	},

	closeMonit: function() {
		$("monit").innerHTML = "";
		$("overlay").setStyle({height: "0px",width: "0px"});
		$("monit").setStyle({display: "none"});
	},

	ajaxEmailItemQuote: function() {
		var createtemporaryprojres = new Ajax.Request('/order/create-temporary-project.html', {
			method: 'post',
			parameters: {data: this.prepareData()},
			onSuccess: function(transport) {
				var dim = getPageSize();
				$("overlay").setStyle({height: dim[1]+"px",width: dim[0]+"px"});
				$("emailQuoteInfoMonit").setStyle({display: "block"});
			}
		});
	},
	ajaxEmailItemQuoteSubmit: function() {
		params = $('ajaxQuoteForm').serialize(true);
		$("monit").innerHTML = "Please wait...";
		var ajaemailitemquoteres = new Ajax.Updater('monit','/order/ajax-email-item-quote.html', {
			method: 'post',
			parameters: params
		});
	},

	messenger: function(message) {
		$('message').show();
		$('message').update(message);
		setTimeout("$('message').hide()", 10000);
	},

	help: function(group, product) {
		var url = '/encyclopedia/display/group/' + group + '/product/' + product;
		window.open(url, '_blank','width=740,height=520,resizable=0,scrollbars=no,menubar=no');
	}

};

function hideEmailMonit() {
	$("emailQuoteInfoMonit").setStyle({display: "none"});
	$("emailQuoteErrors").innerHTML = "";
	$("overlay").setStyle({height: "0px",width: "0px"});
	return false;
}

function showMonit(text) {
	var dim = getPageSize();
	$("overlay").setStyle({height: dim[1]+"px",width: dim[0]+"px"});
	$("monitMessage").innerHTML = text;
	$("monit").setStyle({display: "block"});
}

function hideMonit() {
	$("monit").setStyle({display: "none"});
	$("monitMessage").innerHTML = "";
	$("overlay").setStyle({height: "0px",width: "0px"});
	return false;
}

function emailCart() {
	var quote  = "/order/ajax-email-item-quote.html";

	var li = document.createElement('li');
	li.innerHTML = 'Please wait...';
	$('emailQuoteErrors').appendChild(li);

	var emailitemquoteres = new Ajax.Request(quote, {
		method:'post',
		parameters: {
			email:        $F('eqEmail'),
			reEmail:      $F('eqReEmail'),
			firstName:    $F('eqFirstName'),
			promo:        $F('eqPromo')
		},
		onSuccess: function(transport, json) {
			if (json[0].emailSend == 'OK') {

				// google conversion
				file = 'http://www.googleadservices.com/pagead/conversion.js';
				js = document.createElement('script');
				js.setAttribute('type', 'text/javascript');
				js.setAttribute('src', file);
				//$('footer').appendChild(js);

				hideEmailMonit();
				showMonit("The quote has been emailed to you.");
			} else {
				$('emailQuoteErrors').innerHTML = '';

				for (var i = 0; i < json.length; i++) {
					var li = document.createElement('li');
					li.innerHTML = json[i].error;
					$('emailQuoteErrors').appendChild(li);
				}
			}
		},
		onFailure: function() {
			alert('We are sorry. We are unable to connect to server in order to retrieve your quotation. Please try again in a couple of minutes.');
		}
	});

	return false;
}
