if(!cgj){
	var cgj = {};
	cgj.jq = jQuery.noConflict(false);
}

cgj.jq(document).ready(function(){

	// Init Stage One
	
	var paperSizes = {
	
		"a-series" : {
		
			"2A" : [1189, 1682],
			"A0" : [841, 1189],
			"A1" : [594, 841],
			"A2" : [420, 584],
			"A3" : [297, 420],
			"A4" : [210, 297],
			"A5" : [148, 210],
			"A6" : [105, 148],
			"A7" : [74, 105],
			"A8" : [52, 74],
			"A9" : [37, 52]
		
		},
		
		"b-series" : {
		
			"B0" : [1000, 1414],
			"B1" : [720, 1020],
			"B2" : [520, 720],
			"B3" : [353, 500],
			"B4" : [250, 353],
			"B5" : [176, 250]
		
		},
		
		"c-series" : {
			"C4" : [229, 324],
			"C5" : [162, 229],
			"C6" : [114, 162],
			"DL" : [110, 220]
		
		},
		
		"sheet-sizes" : {
			
			"SRA0" : [900, 1280],
			"SRA1" : [640, 900],
			"SRA2" : [450, 640]
		
		}
	
	};
	
	var magazine = {
		series: '',
		size : '',
		width: 0,
		height: 0,
		weight: 70, // default
		leaves: 1, // default
		calculate : function(){
			var area = (this.width / 1000) * (this.height / 1000);
			var leafWeight = area * (this.weight || 70);
			return Math.round((leafWeight * (this.leaves || 1)) * 100) / 100 ;
		}
	
	};
	
	var navButtonHandler = function(e){
	
		e.preventDefault();
		
		var rel = cgj.jq(this).attr('rel');
		
		if(rel==="pc-1"){
		
			cgj.jq('#pc-2').hide();
			cgj.jq('#pc-1').show();
		
		}else if(rel==="pc-2"){
		
			cgj.jq('#pc-3').hide();
			cgj.jq('#pc-2').show();
		
		}
		
		
	}
	
	var bigButtonHandler = function(e){
	
		e.preventDefault();
		
		var series = cgj.jq(this).attr('rel');
		
		magazine.series = series;
		
		if(paperSizes[series]){
			// Hide page one...
			cgj.jq('#pc-1').hide();
			
			// Clear the binding on the back button to prevent multiple event triggers
			cgj.jq('a[rel=pc-1]',cgj.jq('#pc-2')).unbind('click',smallButtonHandler);
			
			// Declare some vars...
			var ul = cgj.jq('#pc-2-ul'), x, y, size;
			
			// Clear the UL
			ul.html('');
			
			// Add a UL for each page size..
			for(size in paperSizes[series]){
			
				if(paperSizes[series].hasOwnProperty(size)){
					x = paperSizes[series][size][0];
					y = paperSizes[series][size][1];
					ul.append('<li><p><a href="" class="small-button" rel="' + size + '">' + size + '</a> ' + x + ' x ' + y + '</p></li>');
				}
			
			}
			// Bind the buttons...
			cgj.jq('.small-button',ul).click(smallButtonHandler);
			
			// Reveal our Great Work
			cgj.jq('#pc-2').show();
		}
	
	};
	
	var smallButtonHandler = function(e){
			
				e.preventDefault();
			
				var rel = cgj.jq(this).attr('rel');
				
				var sizeData;
			
				if(sizeData = paperSizes[magazine.series][rel]){
					magazine.size = rel;
					magazine.width = sizeData[0];
					magazine.height = sizeData[1];
					
					cgj.jq('#pc-3-paper-detail').html('Your paper size: ' + magazine.size + ' (' + magazine.width + 'mm x ' + magazine.height +'mm)');
					
					var weight = cgj.jq('input[name=weight]', cgj.jq('#pc-3'));
					var leaves = cgj.jq('input[name=leaves]', cgj.jq('#pc-3'));
					
					if(weight.val()===''){
						weight.val(magazine.weight);
					}
					if(leaves.val()===''){
						leaves.val(magazine.leaves);
					}
					
					weight.keyup(updateResult);
					leaves.keyup(updateResult);
					
					cgj.jq('#pc-3-result').html('Total weight: ' + magazine.calculate() + "g");
					
					cgj.jq("#pc-2").hide();
					cgj.jq("#pc-3").show();
					
				
				}else{
				
					// Something very odd has happened here...
				
				}

			
			}
			
	var updateResult = function(e){
	
		// don't prevent the default action.
		var weight = cgj.jq('input[name=weight]', cgj.jq('#pc-3'));
		var leaves = cgj.jq('input[name=leaves]', cgj.jq('#pc-3'));
		
		if(weight.val()==='' && leaves.val()!==''){
		
			cgj.jq('#pc-3-result').html('Please enter a weight');
		
		}else if(leaves.val()==='' && weight.val()!==''){
		
			cgj.jq('#pc-3-result').html('Please enter a number of leaves');
		
		}else if(leaves.val()==='' && weight.val()===''){
		
			cgj.jq('#pc-3-result').html('Please enter the number of leaves and weight');
		
		}else{
		
			magazine.weight = weight.val();
			magazine.leaves = leaves.val();
			
			cgj.jq('#pc-3-result').html('Total weight: ' + magazine.calculate() + "g");
		
		}
		
	
	}
	
	cgj.jq('.navigation', cgj.jq('#paper-calc-pages-background')).click(navButtonHandler);
	
	
	cgj.jq('.big-button',cgj.jq('#pc-1')).click(bigButtonHandler);

})
