

//dimension object prototype
function dimension(name) {
	this.element = $('#'+name);
	this.elementId = name;
	this.value = ($('#'+name).val() == '') ? 0 : $('#'+name).val();
	this.scaleValue = 0;
	this.errorElement = $('#'+name).parent('.field').find('em.error');
	this.checked = false;
}

dimension.prototype.alertDimObject = function() {
	alert('ELEMENT: ' + this.element + ', ElementId: ' + this.elementId + ', Value: ' + this.value + ', scaleValue: ' + this.scaleValue + ', errorElement: ' + this.errorElement)
}

//default object prototype
function defaults() {
	this.scale = 5;
	this.quantity_minimum = 1;
	this.currentStyle = 'RSC';
	this.currentGrade = 'SC';
	this.currentThickness = 4;
	this.scaleThickness = Math.ceil(this.currentThickness/this.scale);
	this.glue = 30;
	this.scaleGlue = Math.ceil(this.glue/this.scale);
	this.boardLength = 2400;
	this.boardWidth = 2400;
	this.hsc_lid = 'n';
	this.totalLength = 0;
	this.totalWidth = 0;
}

//style object prototype
function style(styleName, Wmin, Lmin, Dmin) {
	this.styleName = styleName;
	this.styleFunction = styleName+'_diagram()';
	this.Width_min = Wmin;
	this.Length_min = Lmin;
	this.Depth_min = Dmin;
}
style.prototype.alertStyle = function() {
	alert('Style: ' + this.styleName + ', Width: ' + DIMS.Width.scaleValue + ', Length: ' + DIMS.Length.scaleValue + ', Depth: ' + DIMS.Depth.scaleValue)
}

//set up objects & defaults
var checked = new Array();
var DIMS = new Object();
var DEFAULTS = new defaults();
var RSC = new style('RSC', 100, 100, 86, 30);
var HSC = new style('HSC', 100, 100, 86, 30);
var BL = new style('BL', 100, 100, 86, 30);
var WRAP = new style('WRAP', 100, 100, 86, 30);
var FOLF = new style('FOLF', 100, 100, 86, 30);
var overallLength = false;
var overallWidth = false;
var discountCode = "";
var debug = false;

$(function () {
	
	$('#board em').show();
	
	$('.diagram').hide();
	DIMS.Width = new dimension('Width');
	DIMS.Length = new dimension('Length');
	DIMS.Depth = new dimension('Depth');
	DIMS.Quantity = new dimension('Quantity');	
	$('#board').css('width', Math.ceil(DEFAULTS.boardLength/DEFAULTS.scale)).css('height', Math.ceil(DEFAULTS.boardWidth/DEFAULTS.scale));
	
	// set current style
	changeStyle();
	$('#BoxStyle').bind('change', changeStyle);
	
	// set current grade
	changeGrade();
	$('#Board').bind('change', changeGrade);
	
	//set HSC's lid
	hsc_lid();
	$('input[name="HSC_lid"]').bind('change', hsc_lid);
	
	//restrict to numeric
	$('#Width, #Length, #Depth, #Quantity').bind('keypress', restrictNumeric)
	
	// Check & set dimension
	$('#Width, #Length, #Depth').each( setValue );
	
	$('#Width, #Length, #Depth').bind('keyup', setValue);
	
	//check & set quantity
	setQuantity()
	$('#Quantity').bind('keyup', setQuantity);

	//Bind ajax quote request
	$('form#QuoteForm').bind('submit', getQuote);
	
});


// restrict fields to numeric
function restrictNumeric(e) {
	return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) ? false : true ;
}


// set the values of W, L, D as typed
function setValue(e) {
	if (e.which==9 || e.which==10 || e.which==13) {
		return false;
	}
	
	// field being worked on
	var elem = this.id;
	//alert(elem);
	var value = $('#'+elem).val();
	
	// get current object dynamically.
	var getDimObj = new Function('return DIMS.'+elem);
 	var dimObj = getDimObj();
	//alert(dimObj.element);
	
	// check value is greater than object's minimum value
	if (checkMin(dimObj, elem, value) == false) { 
		dimObj.checked = false;
		return false;
	} else {
		dimObj.checked = true;
	}
	
	if (elem == 'Width' || elem == 'Length' || (DEFAULTS.currentStyle == 'WRAP' && elem == 'Depth')) {
		checkLength();
	}
	checkWidth();
	// set the object to the value
	dimObj.value = value;
	dimObj.scaleValue = Math.ceil(value/DEFAULTS.scale);
	
	draw();

}


//Check for minimum dimensions
function checkMin(dimObj, elem, value) { 
	var getMinimum = new Function('return '+DEFAULTS.currentStyle+'.'+elem+'_min');
	var minimum = getMinimum();
	if (value == '') {
		var msg = 'Please enter a '+elem;
		dimObj.errorElement.html(msg);
		return false;
	} else if (parseInt(value) < minimum) {
		var msg = '<a href="#" class="help" id="minHelp" title="What does this mean?">Help</a>'+elem+' must be greater than '+minimum+'mm';
		dimObj.errorElement.html(msg).find('a').click(function() {
			$('#minHelp').jqm({
				ajax: '/minmaxHelp.php?style='+DEFAULTS.currentStyle,
				target: '#mInner',
				overlay: 50,
				overlayClass: 'Overlay'
			  }).jqmShow();
		});
		return false;
	} else {
		dimObj.errorElement.empty();
		return true;
	}
}

// check the overall length is within limits
function checkLength(){ 
	var width = $('#Width').val();
	var length = $('#Length').val();
	var depth = $('#Depth').val();
	
	if ( width == '' || length == '') {
		overallLength = false;
	} else {
		var errorElement = 'Length';
		switch (DEFAULTS.currentStyle) {
			case 'RSC'	: 	DEFAULTS.totalLength = (parseInt(width)*2) + (parseInt(length)*2) + ((DEFAULTS.currentThickness+1)*3) + DEFAULTS.glue; break; 
			case 'HSC'	: 	DEFAULTS.totalLength = (parseInt(width)*2) + (parseInt(length)*2) + ((DEFAULTS.currentThickness+1)*3) + DEFAULTS.glue; break;
			case 'FOLF'	: 	DEFAULTS.totalLength = (parseInt(width)*2) + (parseInt(length)*2) + ((DEFAULTS.currentThickness+1)*3) + DEFAULTS.glue; break;
			case 'BL'	: 	DEFAULTS.totalLength = parseInt(length) + (parseInt(depth)*2) + (DEFAULTS.currentThickness*4); break;
			case 'WRAP'	: 	DEFAULTS.totalLength = parseInt(length) + (Math.min(parseInt(depth),parseInt(width))*2) + (DEFAULTS.currentThickness*2) ; 
							//alert(DEFAULTS.totalLength);
							break;
			default	: 	DEFAULTS.totalLength = (parseInt(width)*2) + (parseInt(length)*2) + ((DEFAULTS.currentThickness+1)*3) + DEFAULTS.glue; break;
		}
		//alert(DEFAULTS.totalLength);
		if (DEFAULTS.totalLength > 2400) {
			var msg = '<a href="#" class="help" id="minHelp" title="What does this mean?">Help</a>The flat box must be no longer than 2400mm';
			$('#'+errorElement).parent('.field').find('.error').html(msg).find('a').click( function() {
				$('#maxHelp').jqm({
					ajax: '/minmaxHelp.php?style='+DEFAULTS.currentStyle,
					target: '#mInner',
					overlay: 50,
					overlayClass: 'Overlay'
			  	}).jqmShow();
			});
			overallLength = false;
		} else { 
			$('#'+errorElement).parent('.field').find('.error').empty();
			overallLength = true;
		}
		//alert(overallLength);
	}
	
	return overallLength;
}


// check the overall width is within limits
function checkWidth(){ 
	var width = $('#Width').val();
	var length = $('#Length').val();
	var depth = $('#Depth').val();
	if ( width == '' || length == '' || depth == '') {
		overallWidth = false;
	} else {
		var errorElement = 'Depth';
		var flap = (Math.min(parseInt(width), parseInt(length))/2);
		switch (DEFAULTS.currentStyle) {
			case 'RSC'	: 	DEFAULTS.totalWidth = flap + parseInt(depth) + flap + (DEFAULTS.currentThickness*4); break; //ok
			case 'HSC'	: 	DEFAULTS.totalWidth = parseInt(depth) + flap + (DEFAULTS.currentThickness*4); break;
			case 'FOLF'	: 	DEFAULTS.totalWidth = (flap*4) + parseInt(depth) + (DEFAULTS.currentThickness*4); break;
			case 'BL'	: 	DEFAULTS.totalWidth = parseInt(width) + (parseInt(depth)*2) + (DEFAULTS.currentThickness*4); break;
			case 'WRAP'	: 	if (width <= depth) {
								DEFAULTS.totalWidth = (parseInt(width)*3) + (parseInt(depth)*2) + (DEFAULTS.currentThickness*4) ;
							} else {
								DEFAULTS.totalWidth = (parseInt(depth)*3) + (parseInt(width)*2) + (DEFAULTS.currentThickness*4) ;	
							}
							//alert(DEFAULTS.totalWidth);
							break;
			default	: 	DEFAULTS.totalWidth = flap + parseInt(depth) + flap + (DEFAULTS.currentThickness*4); break;
		
		} 
		
		//alert(DEFAULTS.totalWidth);
		
		if (DEFAULTS.totalWidth > 2400) {
			var msg = '<a href="#" class="help" id="minHelp" title="What does this mean?">Help</a>The flat box must be no wider than 2400mm';
			$('#'+errorElement).parent('.field').find('.error').html(msg).find('a').click( function() {
				$('#maxHelp').jqm({
					ajax: '/minmaxHelp.php?style='+DEFAULTS.currentStyle,
					target: '#mInner',
					overlay: 50,
					overlayClass: 'Overlay'
			  	}).jqmShow();
			});
			overallWidth = false;
		} else { 
			$('#'+errorElement).parent('.field').find('.error').empty();
			overallWidth = true;
		}
	}
	
	return overallWidth;
}


//check and set the quantity
function setQuantity() {
	if ($('#Quantity').val() == '') {
		var msg = 'Please enter a Quantity';
		DIMS.Quantity.errorElement.html(msg);
		DIMS.Quantity.checked = false;
	} else if (parseInt($('#Quantity').val()) < DEFAULTS.quantity_minimum) {
		var msg = 'The Quantity must be greater than '+DEFAULTS.quantity_minimum;
		DIMS.Quantity.errorElement.html(msg);
		DIMS.Quantity.checked = false;
	} else {
		DIMS.Quantity.errorElement.empty();
		DIMS.Quantity.value = parseInt($('#Quantity').val());
		DIMS.Quantity.checked = true;
	}
}



// Sets the box style
function changeStyle() {
	DEFAULTS.currentStyle = $('#BoxStyle').val();
	if (DEFAULTS.currentStyle == 'HSC') $('#HSC_lid_outer').show(); 
	else $('#HSC_lid_outer').hide();
	$('#Width, #Length, #Depth').each(setValue);
	draw('style'); 
}

// Sets the Board grade & thickness
function changeGrade() {
	DEFAULTS.currentGrade = $('#Board').val();
	DEFAULTS.currentThickness = (DEFAULTS.currentGrade == 'SC') ? 4 : 8;
	DEFAULTS.scaleThickness = Math.ceil(DEFAULTS.currentThickness/DEFAULTS.scale)
	$('#Width, #Length, #Depth').each(setValue);
	draw('grade');
}

// Sets if a lid should be inclued for HSC's
function hsc_lid() {
	DEFAULTS.hsc_lid = $('input[name="HSC_lid"]:checked').val();
	//alert(DEFAULTS.hsc_lid);
}

// Sets the current Box Style from the dropdown
function draw() {
	
	$('.diagram, #quoteOuter').hide();
	if(debug == false) $('#debug').hide();
	else $('#debug').show();
	
	//alert( 'element:'+elem+', Width ok:'+DIMS.Width.checked+', Length ok:'+DIMS.Length.checked+', Depth ok:'+DIMS.Depth.checked+', Overall length ok:'+overallLength+', Overall width ok:'+overallWidth  )
	if ( DIMS.Width.checked == false || DIMS.Length.checked == false || DIMS.Depth.checked == false || overallLength == false || overallWidth == false ) {
		$('#board em').show();
		return false
	} 
	$('#board em').hide();
	var getFunction = new Function('return '+DEFAULTS.currentStyle+'.styleFunction');
	var drawFunction = getFunction();

	var doFunction = new Function(drawFunction);
	doFunction();
}

function trim (v) {
	return v.replace(/^s+/g,'').replace(/s+$/g,'')
}

// Retrieves the quote
function getQuote() {
	
	//alert('boxStyle:'+DEFAULTS.currentStyle+', board:'+DEFAULTS.currentGrade+', width:'+DIMS.Width.value+', length:'+DIMS.Length.value+', depth:'+DIMS.Dpth.value+', qty:'+DIMS.Quantity.value+', HSC_lid:'+DEFAULTS.hsc_lid)
	
	if ( DIMS.Quantity.checked == false || DIMS.Width.checked == false || DIMS.Length.checked == false || DIMS.Depth.checked == false || overallLength == false || overallWidth == false) { 
		return false;
	}
	$('#quoteOuter').hide();
	
	var discountCode = $('#discountCode').val();
	if( trim(discountCode) == "") { discountCode = "0"; }
	
	var debugstr = (debug == true) ? 'y' : 'n';
	
	
	$.post("/scripts/getQuote.php", {boxStyle:DEFAULTS.currentStyle, board:DEFAULTS.currentGrade, width:DIMS.Width.value, length:DIMS.Length.value, 
		depth:DIMS.Depth.value, qty:DIMS.Quantity.value, HSC_lid:DEFAULTS.hsc_lid, discountCode:discountCode, debugstr:debugstr},  function(json) {
		
		if (json.message != '')
		{
			$('span#price').html('');
			$('span#discountPrice').html('');
			$('span#discountPriceOuter').hide();
			
			$('#quoteOuter').hide();
			$('#messageOuter').hide();
			$('#messageOuter').html(json.message);
			$('#messageOuter').show();
			
			$('#debug').hide();
		} 
		else
		{
			if (json.debug != '') {
				$('#debug').show().html("DEBUG: <br />"+json.debug);
			} else {
				$('#debug').hide();
			}
		
			$('#messageOuter').hide();
			$('#quoteOuter').hide();
			
			$('span#price').html(json.price);
			
			if(json.discountedPrice == '') {
				$('span#discountPrice').html('');
				$('span#discountPriceOuter').hide();
			} else {
				$('span#discountPrice').html(json.discountedPrice);
				$('span#discountPriceOuter').show();
			}
			
			$('#quoteOuter').show('slow');
			
		}
	}, "json"); 
	return false;
}

function RSC_diagram() {
	
	//glue flap
	$('#RSC_diagram .glue').css('width', DEFAULTS.scaleGlue+'px')
	//width panels
	$('#RSC_diagram .width').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-1+'px').find('.h-dimension span').text(DIMS.Width.value);
	//width panel flaps
	$('#RSC_diagram .widthflap').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-3+'px');
	//length panels
	$('#RSC_diagram .length').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-1+'px').find('.h-dimension span').text(DIMS.Length.value);
	//length panl flaps
	$('#RSC_diagram .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-3+'px');
	
	//ajust top first flap margin for glue strip
	//$('#RSC_diagram .top .widthflap:first, #RSC_diagram .bottom .widthflap:first').css('margin-left', DEFAULTS.scaleGlue+2+'px');	
	$('#RSC_diagram .top, #RSC_diagram .bottom').css('padding-left', DEFAULTS.scaleGlue+2+'px')
	
	//center heights
	$('#RSC_diagram .length, #RSC_diagram .width, #RSC_diagram .glue').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+'px') //.text(DIMS.Depth.scaleValue*10);;
	$('#RSC_diagram .center').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+2+'px')
	
	var dimW = $('#RSC_diagram .v-dimension span').width();
 	$('#RSC_diagram .v-dimension span').css('margin-top', (DIMS.Depth.scaleValue/2)-5+'px').css('margin-left', (dimW/2)+'px').text(DIMS.Depth.value);
	$('#RSC_diagram').css('width', '600px');
	var biggest = Math.min(DIMS.Width.value, DIMS.Length.value);
	var scaleBiggest = Math.min(DIMS.Width.scaleValue, DIMS.Length.scaleValue);
	
	var H = Math.round(scaleBiggest/2);
	$('#RSC_diagram .lengthflap, #RSC_diagram .widthflap').css('height', H +'px');

	if (DEFAULTS.totalLength>DEFAULTS.boardLength || DEFAULTS.totalWidth>DEFAULTS.boardWidth) {
		$('#board').css('border', '2px dashed #CC0000'); 
	} else {
		$('#board').css('border', 'none'); 
	}
	
	//alert();
	
	$('#RSC_diagram').show();
}




function HSC_diagram() {
	//glue flap
	$('#HSC_diagram .glue').css('width', DEFAULTS.scaleGlue+'px')
	//width panels
	$('#HSC_diagram .width').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Width.value);
	//width panel flaps
	$('#HSC_diagram .widthflap').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-2+'px');
	//length panels
	$('#HSC_diagram .length').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Length.value);
	//length panl flaps
	$('#HSC_diagram .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
	//ajust top first flap margin for glue strip
	//$('#HSC_diagram .bottom .widthflap:first').css('margin-left', DEFAULTS.scaleGlue+2+'px');	
	$('#HSC_diagram .top, #HSC_diagram .bottom').css('padding-left', DEFAULTS.scaleGlue+2+'px')
	
	//center heights
	$('#HSC_diagram .length, #HSC_diagram .width, #HSC_diagram .glue').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+'px')
	$('#HSC_diagram .center').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+2+'px')

	var dimW = $('#HSC_diagram .v-dimension span').width();
 	$('#HSC_diagram .v-dimension span').css('margin-top', (DIMS.Depth.scaleValue/2)-5+'px').css('margin-left', (dimW/2)+'px').text(DIMS.Depth.value);

	//flap heights
	lengthflapH = Math.round(DIMS.Length.scaleValue/2);
	widthflapH = Math.round(DIMS.Width.scaleValue/2);
	var H = Math.min(lengthflapH,widthflapH);
	$('#HSC_diagram .lengthflap, #HSC_diagram .widthflap').css('height', H +'px');

	if (DEFAULTS.totalLength>DEFAULTS.boardLength || DEFAULTS.totalWidth>DEFAULTS.boardWidth) {
		$('#board').css('border', '2px dashed #CC0000'); 
	} else {
		$('#board').css('border', 'none'); 
	}
	
	$('#HSC_diagram').show();
}






function FOLF_diagram() {
	//glue flap
	$('#FOLF_diagram .glue').css('width', DEFAULTS.scaleGlue+'px')
	//width panels
	$('#FOLF_diagram .width').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Width.value);
	//width panel flaps
	$('#FOLF_diagram .widthflap').css('width', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-2+'px');
	//length panels
	$('#FOLF_diagram .length').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Length.value);
	//length panl flaps
	$('#FOLF_diagram .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
	//ajust top first flap margin for glue strip
	$('#FOLF_diagram .top, #FOLF_diagram .bottom').css('padding-left', DEFAULTS.scaleGlue+2+'px')
		
	//center heights
	$('#FOLF_diagram .length, #FOLF_diagram .width, #FOLF_diagram .glue').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+'px')
	$('#FOLF_diagram .center').css('height', DIMS.Depth.scaleValue+(DEFAULTS.scaleThickness*4)+2+'px')
	
	
	var dimW = $('#FOLF_diagram .v-dimension span').width();
 	$('#FOLF_diagram .v-dimension span').css('margin-top', (DIMS.Depth.scaleValue/2)-5+'px').css('margin-left', (dimW/2)+'px').text(DIMS.Depth.value);


	//Bottom flap heights
	var BH = Math.min(Math.ceil(DIMS.Length.scaleValue),Math.ceil(DIMS.Width.scaleValue));
	$('#FOLF_diagram .lengthflap, #FOLF_diagram .widthflap').css('height', BH +'px');
	
	/*
	var M = BH;
	if (M%2) BH--;
	// Top flap heights
	if (DIMS.Length.scaleValue>DIMS.Width.scaleValue) {
		$('#FOLF_diagram .top .widthflap').css('height', BH +'px').css('margin-top', M);
		$('#FOLF_diagram .top .lengthflap').css('height', DIMS.Width.scaleValue +'px').css('margin-top', 0);
	} else if (DIMS.Width.scaleValue>DIMS.Length.scaleValue) { 
		$('#FOLF_diagram .top .lengthflap').css('height', BH +'px').css('margin-top', M);
		$('#FOLF_diagram .top .widthflap').css('height', DIMS.Length.scaleValue +'px').css('margin-top', 0);
	} else {
		$('#FOLF_diagram .top .widthflap').css('height', BH +'px').css('margin-top', M);
		$('#FOLF_diagram .top .lengthflap').css('height', DIMS.Width.scaleValue +'px').css('margin-top', 0);
	}
	
	*/

	if (DEFAULTS.totalLength>DEFAULTS.boardLength || DEFAULTS.totalWidth>DEFAULTS.boardWidth) {
		$('#board').css('border', '2px dashed #CC0000'); 
	} else {
		$('#board').css('border', 'none'); 
	}
	
	$('#FOLF_diagram').show();
}



function BL_diagram() {
	//depth panel
	$('#BL_diagram .width').css('width', DIMS.Depth.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Depth.value);
	//depth panel flaps
	$('#BL_diagram .widthflap').css('width', DIMS.Depth.scaleValue+DEFAULTS.scaleThickness-1+'px');
	//length panels
	$('#BL_diagram .length').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness+'px').find('.h-dimension span').text(DIMS.Length.value); // width flap height must equal this
	//length panl flaps
	$('#BL_diagram .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
	//ajust top first flap margin for glue strip
	//$('#BL_diagram .top .widthflap:first, #BL_diagram .bottom .widthflap:first').css('margin-left', 0+'px');	
	
	//center heights
	$('#BL_diagram .length, #BL_diagram .width').css('height', DIMS.Width.scaleValue+(DEFAULTS.scaleThickness*4)+'px')
	$('#BL_diagram .center').css('height', DIMS.Width.scaleValue+(DEFAULTS.scaleThickness*4)+2+'px')
	$('#BL_diagram .top, #BL_diagram .bottom').css('padding-left', '0px')
	
	
	
	// height of length flap = depth
	$('#BL_diagram .lengthflap').css('height', DIMS.Depth.scaleValue +'px');
	
	//height flap is the smallest of (half the length, depth
	if (DIMS.Length.scaleValue/2 <= DIMS.Depth.scaleValue) {
		var H = DIMS.Length.scaleValue/2;
		var Margin = DIMS.Depth.scaleValue+DEFAULTS.scaleThickness-(DEFAULTS.scaleThickness)-H;
	} else {
		var H = DIMS.Depth.scaleValue; //-2;
		var Margin = DIMS.Depth.scaleValue-H;
	}
	$('#BL_diagram .widthflap').css('height', H +'px');
	$('#BL_diagram .top .widthflap').css('margin-top', Margin +'px');
		
	
	var dimW = $('#BL_diagram .v-dimension span').width();
 	$('#BL_diagram .v-dimension span').css('margin-top', (DIMS.Width.scaleValue/2)-5+'px').css('margin-left', (dimW/2)+'px').text(DIMS.Width.value);
	
	$('#BL_diagram').show();
}


function WRAP_diagram() {
	
	$('#WRAP_diagram').show();
	
	var W = Math.min(DIMS.Width.scaleValue, DIMS.Depth.scaleValue);
	
	
	// odd is always the smallest!!!
	
	if ( DIMS.Width.scaleValue <= DIMS.Depth.scaleValue) {
		// width greater than or equal to depth
		W = DIMS.Depth.scaleValue;
		
		$('#WRAP_diagram .fold:odd .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Depth.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:odd .flap').css('width', DIMS.Width.scaleValue-2+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Depth.scaleValue-2+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:even .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:even .flap').css('width', DIMS.Width.scaleValue-2+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Width.scaleValue-2+DEFAULTS.scaleThickness-2+'px');
		
		
		$('#WRAP_diagram .v-dimension span').eq(0).css('margin-top', (DIMS.Width.scaleValue/2)-5+'px').css('margin-left', '2px').text(DIMS.Width.value);
		$('#WRAP_diagram .v-dimension span').eq(1).css('margin-top', (DIMS.Depth.scaleValue/2)-5+'px').css('margin-left', '2px').text(DIMS.Depth.value);
		
		
	} else {
		// depth greater than width
		W = DIMS.Width.scaleValue;
		
		$('#WRAP_diagram .fold:odd .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Width.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:odd .flap').css('width', DIMS.Depth.scaleValue-2+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Width.scaleValue-2+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:even .lengthflap').css('width', DIMS.Length.scaleValue+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Depth.scaleValue+DEFAULTS.scaleThickness-2+'px');
	
		$('#WRAP_diagram .fold:even .flap').css('width', DIMS.Depth.scaleValue-2+DEFAULTS.scaleThickness-2+'px').css('height', DIMS.Depth.scaleValue-2+DEFAULTS.scaleThickness-2+'px');
		
		$('#WRAP_diagram .v-dimension span').eq(0).css('margin-top', (DIMS.Depth.scaleValue/2)-5+'px').css('margin-left', '2px').text(DIMS.Depth.value);
		$('#WRAP_diagram .v-dimension span').eq(1).css('margin-top', (DIMS.Width.scaleValue/2)-5+'px').css('margin-left', '2px').text(DIMS.Width.value);
		
	}
	
	$('#WRAP_diagram .h-dimension span').text(DIMS.Length.value);

}	
	
	





