
		$(document).ready(function() {
			
			$("#step1").fadeIn("slow");
			
			$("select").change(function(){
				$(this).css({ backgroundColor:"#fff", color:"808080"});
			});
						
			//initialize
			var discipline;
			var location;
			var locationValue;
			var classification;
			var position;
			var organisationType;
			var organisationSize;
			var organisationTypeValue;
			var organisationSizeValue;			
			var organisationSizeType;
			var salaryMin;
			var salaryMax;
			var weighting;
			var benefitsSTI;
			var benefitsLTI;
			
			var message="All selections are mandatory";
			var messageDiscuss="Please provide a valid e-mail address";
			
			$("#message").html(message);
			$("#messageDiscuss").html(messageDiscuss);
			
			//add comas as per XLS file	- function taken from www.mredkj.com
			function addCommas(nStr)
			{
				nStr += '';
				x = nStr.split('.');
				x1 = x[0];
				x2 = x.length > 1 ? '.' + x[1] : '';
				var rgx = /(\d+)(\d{3})/;
				while (rgx.test(x1)) {
					x1 = x1.replace(rgx, '$1' + ',' + '$2');
				}
				return x1 + x2;
			}
			
			
			// populate discipline
			$.getJSON('calculator/disciplines.json', function(data) {
			
				$('select#discipline').empty();
				
				$.each(data, function(entryIndex, entry) {
					var options= '<option value="' + entry['discipline'] + '">';
					options += entry['value'];
					options +='</option>';
					$("select#discipline").append(options); 
				});
				
				//default value
				var defaultOption='<option value="default" class="prompt" >Select Discipline</option>';
				$("select#discipline").append(defaultOption);	
				
				
			});
			
			// populate location
			$.getJSON('calculator/location.json', function(data) {
				$('select#location').empty();		
					
				$.each(data, function(entryIndex, entry) {
					var options= '<option value="' + entry['index'] + '">';
					options += entry['state'];
					options +='</option>';
					$("select#location").append(options);                  
				});
				
				//default value
				var defaultOption='<option value="default" class="prompt" >Select Location</option>';
				$("select#location").append(defaultOption);	
				
			});
			

			// select discipline
			$("select#discipline").change(function(){
				
				// assign value to discipline
				discipline=this.value;
				
				/*RESET FIELDS*/
				
				$('select#position').attr('disabled','true');
				$('select#position').empty();
				var defaultOption='<option value="default" class="prompt">Select Position</option>';
				$("select#position").append(defaultOption);	

				$('select#organisationType').attr('disabled','true');
				$('select#organisationType').empty();
				var defaultOption='<option value="default" class="prompt">Select Organisation Type</option>';
				$("select#organisationType").append(defaultOption);	
				
				$('select#organisationSize').attr('disabled','true');
				$('select#organisationSize').empty();
				var defaultOption='<option value="default" class="prompt">Select Organisation Size</option>';
				$("select#organisationSize").append(defaultOption);
				
				//hide Organization Size field when not needed
				
				if(discipline == "Accounting/Finance"){
					$("#wrapOrganisationSize").fadeTo(100, 0, function () {
						$("#wrapOrganisationSize").css({ display:"block"});
						$("#wrapOrganisationSize").fadeTo(250, 1);
					});
					
					$("#wrapOrganisationType").fadeTo(100, 0, function () {
						$("#wrapOrganisationType").css({ display:"block"});
						$("#wrapOrganisationType").fadeTo(250, 1);
					});
					
					}else{
					$("#wrapOrganisationSize").fadeTo(100, 0);
					$("#wrapOrganisationType").fadeTo(100, 0);
				}
			
			
				// populate classification
				$.getJSON('calculator/classification.json', function(data) {
				
					$('select#classification').empty();
					$('select#classification').attr('disabled','');	

					//populate classification only for the selected discipline
					$.each(data, function(entryIndex, entry) {
						
						if (entry['discipline']== discipline){
							var options= '<option value="' + entry['classification'] + '">';
							options += entry['classification'];
							options +='</option>';
							$("select#classification").append(options); 
						}
					});
					
					
					//default value
					var defaultOption='<option value="default" class="prompt">Select Classification</option>';
					$("select#classification").append(defaultOption);	
							
				});

			});
			
			
			// select location
			$("select#location").change(function(){
							
				// assign value to location
				location=this.value;
				locationValue=$('option:selected', this).text();	

			});
			
			
			// select classification
			$("select#classification").change(function(){
			
				// assign value to classification
				classification=this.value;
				
				/*RESET FIELDS*/
				
				$('select#position').attr('disabled','true');
				$('select#position').empty();
				var defaultOption='<option value="default" class="prompt">Select Position</option>';
				$("select#position").append(defaultOption);	

				$('select#organisationType').attr('disabled','true');
				$('select#organisationType').empty();
				var defaultOption='<option value="default" class="prompt">Select Organisation Type</option>';
				$("select#organisationType").append(defaultOption);	
				
				$('select#organisationSize').attr('disabled','true');
				$('select#organisationSize').empty();
				var defaultOption='<option value="default" class="prompt">Select Organisation Size</option>';
				$("select#organisationSize").append(defaultOption);	
				
			
				// populate classification
				$.getJSON('calculator/position.json', function(data) {
				
					$('select#position').empty();

					//populate classification only for the selected discipline
					$.each(data, function(entryIndex, entry) {
						
						
						if (entry['classification']== classification){
							var options= '<option value="' + entry['position'] + '">';
							options += entry['position'];
							options +='</option>';
							$("select#position").append(options); 
						
						}
						
						
					});
					
					//default value
					var defaultOption='<option value="default" class="prompt">Select Position</option>';
					$("select#position").append(defaultOption);	
					
					$('select#position').attr('disabled','');	
					
			
				});

			});
			
			
			
			//select position
			$("select#position").change(function(){

				
				// assign value to position
				position=this.value;
							
				
				if(discipline == "Accounting/Finance"){
				

					$.getJSON('calculator/organisationType.json', function(data) {
					
						// populate Organisation Type
						$('select#organisationType').empty();
								
						$.each(data, function(entryIndex, entry) {
							var options= '<option value="' + entryIndex + '">';
							options += entry['organisationType'];
							options +='</option>';
							$("select#organisationType").append(options);                  
						});
						
						//default value
						var defaultOption='<option value="default" class="prompt">Select Organisation Type</option>';
						$("select#organisationType").append(defaultOption);	
						
						$('select#organisationType').attr('disabled','');
							
					});
										
					
					$.getJSON('calculator/position.json', function(data) {
					
						// populate Organisation Size
						$('select#organisationSize').empty();
						
						//populate Organisation Size for the selected position
						$.each(data, function(entryIndex, entry) {
						
						
							if (entry['position'] ==position){	
								if (entry['classification']== classification){

									if (entry['sizeSmall'] !=""){
										var options= '<option value="sizeSmall">';
										options += entry['sizeSmall'][0];
										options +='</option>';
										$("select#organisationSize").append(options); 							
									}
									//
									
									if (entry['sizeMedium'] !=""){
										var options= '<option value="sizeMedium">';
										options += entry['sizeMedium'][0];
										options +='</option>';
										$("select#organisationSize").append(options); 
									}
									
									//
									if (entry['sizeLarge'] !=""){
										var options= '<option value="sizeLarge">';
										options += entry['sizeLarge'][0];
										options +='</option>';
										$("select#organisationSize").append(options); 
									}
									//
								}
							}
						});
						var defaultOption='<option value="default" class="prompt">Select Organisation Size</option>';
						$("select#organisationSize").append(defaultOption);		
						
						$('select#organisationSize').attr('disabled','');
						
					});
					
					}else{
					
					$.getJSON('calculator/position.json', function(data) {
						$.each(data, function(entryIndex, entry) {
	
							
							if (entry['position'] ==position){	
								if (entry['classification']== classification){
									salaryMin =entry['min'];
									salaryMax =entry['max'];	
								}					
							}	
							
						});	
					});
					
				}

			});
			
			
			//select Organisation Type
			$("select#organisationType").change(function(){
							
				// assign value to organisation Type
				/*assign value to weighting and benefits*/
				organisationType=$(this).val();
				organisationTypeValue=$('option:selected', this).text();	
				
				$.getJSON('calculator/position.json', function(data) {
					$.each(data, function(entryIndex, entry) {
						if (entry['position'] ==position){	
								if (entry['classification']== classification){
									weighting =entry['weighting'][organisationType];
									benefitsSTI =entry['benefitsSTI'][organisationType];
									benefitsLTI =entry['benefitsLTI'][organisationType];	
							}					
						}	
						
					});	
				});

				//	
			});
			
			
			//select Organisation Size
			$("select#organisationSize").change(function(){
			
				// assign value to organisationSize
				organisationSize=$(this).val();
				organisationSizeValue=$('option:selected', this).text();	
				
				//alert(organisationSize);

				switch(organisationSize){
					case "sizeSmall":
						organisationSizeType="<$100m";
						break
					case "sizeMedium":
						organisationSizeType= "$100m - $500m";
						break
					case "sizeLarge":
						organisationSizeType="$500m +";
						break
				}
				
				// assign salaryMin and salaryMax
				$.getJSON('calculator/position.json', function(data) {
					$.each(data, function(entryIndex, entry) {
						if (entry['position'] ==position){	
								if (entry['classification']== classification){
									if (entry[organisationSize][0] == organisationSizeType){
										salaryMin=entry[organisationSize][1];
										salaryMax=entry[organisationSize][2];
									}
								
							}
						}			
					});					
				});
							
			});
			
			
			//Search, perform calculation
			$("#Submit").click(function(){

				
				if(discipline == "Accounting/Finance"){
				
					
					
					/*if all of the selections are made*/
					if ($("select#discipline").val()!="default" & $("select#location").val()!="default" & $("select#classification").val()!="default" & $("select#position").val()!="default" & $("select#organisationType").val()!="default" & $("select#organisationSize").val()!="default"){
						var salaryMINResult = "$" + (salaryMin*weighting)*location;
						
						/*is salaryMax integer?*/
						
						if ( isNaN(salaryMax)==false ){
							var salaryMAXResult = "$" + (salaryMax*weighting)*location;
							}else{
							var salaryMAXResult = salaryMax;
						}
												
						$("#message").fadeTo(100, 0);
						
						/*criteria*/
						var criteria = "<strong>Criteria</strong>&nbsp;&nbsp;" + discipline + ", " + locationValue + ", " +  classification + ", " + position + ", " + organisationTypeValue + ", " + organisationSizeValue;
						$("#criteria").html(criteria);
						
						var result="<strong>Package</strong><dl><dt>Cash + Super</dt><dd>" + addCommas(salaryMINResult) + " - " +  addCommas(salaryMAXResult) + "</dd><dt>Short Term Incentive</dt><dd>" + benefitsSTI + "</dd><dt>Long Term Incentive</dt><dd>" + benefitsLTI + "</dd></dl>";
												
						/*//available plus?
						if(benefits!= ""){
							var result="<strong>Package</strong><dl><dt>Cash + Super</dt><dd>" + addCommas(salaryMINResult) + " - " +  addCommas(salaryMAXResult) + "</dd><dt>Short Term Incentive</dt><dd>" + benefits + "</dd><dt>Long Term Incentive</dt><dd>n/a</dd></dl>";
						}
						*/
						
						$("#package").html(result);
						
						//to step 2
						$("#step1").fadeOut("slow", function () {				
							$("#step2").fadeIn("slow");
						});
						
						}else{
						
					
						//mark missing
						$("option.prompt").css({ backgroundColor:"#e9e9e9", color:"808080"});
						$("option:selected.prompt").css({ backgroundColor:"#ffa826", color:"000"});		
						$("select option:selected").each(function (i) {
							if($(this).val()=="default"){
								$(this).parent().css({ backgroundColor:"#ffa826", color:"000"});
							}
						});
					   
							
						$("#message").fadeTo(100, 0, function () {
							$("#message").css({ display:"block"});
							$("#message").fadeTo(250, 1);							
						});
					}
					
					
					}else{
					
					/*if all of the selections are made*/
					if ($("select#discipline").val()!="default" & $("select#location").val()!="default" & $("select#classification").val()!="default" & $("select#position").val()!="default" ){
						
						var salaryMINResult = "$" + salaryMin;
						var salaryMAXResult = "$" + salaryMax;
						
						//
						
						$("#message").fadeTo(100, 0);
						
						/*criteria*/
						var criteria = "<strong>Criteria</strong>&nbsp;&nbsp;" + discipline + ", " + locationValue + ", " +  classification + ", " + position;
						$("#criteria").html(criteria);
						
						var result="<strong>Package</strong><dl><dt>Cash + Super</dt><dd>" + addCommas(salaryMINResult) + " - " +  addCommas(salaryMAXResult) + "</dd><dt>Short Term Incentive</dt><dd>N/A</dd><dt>Long Term Incentive</dt><dd>N/A</dd></dl>";
						$("#package").html(result);

						
						//to step 2
						$("#step1").fadeOut("slow", function () {				
							$("#step2").fadeIn("slow");
						});
						

						
						}else{
						
						//mark missing
						$("option.prompt").css({ backgroundColor:"#e9e9e9", color:"808080"});
						$("option:selected.prompt").css({ backgroundColor:"#ffa826", color:"000"});		
						$("select option:selected").each(function (i) {
							if($(this).val()=="default"){
								$(this).parent().css({ backgroundColor:"#ffa826", color:"000"});
							}
						});

						$("#message").fadeTo(100, 0, function () {
							$("#message").css({ display:"block"});
							$("#message").fadeTo(250, 1);
						});
						
					}
					
				}
		
				
				return false;
				
			});



		// go to step 1
		$("#again").click(function(){			
			$("#step2").fadeOut("slow", function () {				
				$("#step1").fadeIn("slow");
				
				$("#messageDiscuss").css({ display:"none"});
				$("#messageDiscuss").fadeTo(250, 0);
			});
		});

		 
		//validate submit packageW
		$("#SubmitPackage").click(function(){			
			
			var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
			
			if($("#email").val().match(emailExp)){
				
				$("#messageDiscuss").fadeTo(100, 0, function () {
					$("#messageDiscuss").css({ display:"none"});
				});
				
                $("#form_salaryIndicator").submit();

			}else{
			
				$("#messageDiscuss").fadeTo(100, 0, function () {
					$("#messageDiscuss").css({ display:"block"});
					$("#messageDiscuss").fadeTo(250, 1);
				});
				
				$("#email").focus();
			}
		});
		

		$("#email").focus(function(){
			if($(this).val()=="Your Email"){
				$(this).val("");
			}
		});

		$("#email").blur(function(){
			if($(this).val()==""){
				$(this).val("Your Email");
			}
		});

		$("#comments").focus(function(){
			if($(this).val()=="Comments?"){
				$(this).val("");
			}
		});

		$("#comments").blur(function(){
			if($(this).val()==""){
				$(this).val("Comments?");
			}
		});
			
	});
