$(document).ready(function(){



	$("#calculator").validate({
		rules: {
			age: {
				required: true,
				number: true
			},
			householdincome: {
				number: true
			},
			children: {
				required: true,
				number: true
			},
			intensity: {
				min: 50
			}
		}	
	});



	varTemp = $.cookie('period')+''
//alert(varTemp);
	if(varTemp == 'null'){
//alert('Changed');
		$.cookie('period','year');
	}

	//General function for rollover images
	$(".rollover").hover(
		function(){
			if($(this).attr("src").indexOf("_over") == -1) {
				var newSrc = $(this).attr("src").replace(".gif","_over.gif#hover");
				$(this).attr("src",newSrc);
			}
		},
		function(){
			if($(this).attr("src").indexOf("_over.gif#hover") != -1) {
				var oldSrc = $(this).attr("src").replace("_over.gif#hover",".gif");
				$(this).attr("src",oldSrc);
			}
		}
	);
	
	
	//Name parent window so that it may be called back from within jobs iframe
	//window.name = "root";
	
	//$.frameReady(function(){
	//	$('body').css('background','#f00');
	//},"top");


	//Make your budget bod and text rollover at same time
	//Make bod change on text rollover
	$('.your-budget > a').hover(
		function(){
			if($('.your').attr("src").indexOf("_over") == -1) {
				var newSrc = $('.your').attr("src").replace(".gif","_over.gif#hover");
				$('.your').attr("src",newSrc);
			}
		},
		function(){
			if($('.your').attr("src").indexOf("_over.gif#hover") != -1) {
				var oldSrc = $('.your').attr("src").replace("_over.gif#hover",".gif");
				$('.your').attr("src",oldSrc);
			}
		}
	);
	//Make text change on bod rollover
	$('.your').hover(
		function(){
			$('.your-budget').addClass('active');
		},
		function(){
			$('.your-budget').removeClass('active');
		}
	);
	
	
	
	//Make link-box links open in a new window
	$('.link-box > a').attr('target','_blank');
	$('.new').attr('target','_blank');
	
	
	//Set up confirmation message on entry pop-up page
	$("#confirm").click(function () {
        if ($("#confirm").is(":checked"))
        {
			$.post('session_set.asp', {confirm: "true"});
			$("#go").css("visibility","visible");
        }
        else
        {      
			$.post('session_set.asp', {confirm: "false"});
			$("#go").css("visibility","hidden");
        }
	});

	
	//Get confirmation link to go to parent window - i.e. burst out of iframe
	$("#go").attr('target','_parent');
	
		
	//Apply styles to chart period selected based on cookie
	var chartPeriodpath = $.cookie('period')+'';
	
	var chartPeriod = chartPeriodpath.substring(0, chartPeriodpath.length-1);

	
	//alert(chartPeriod);
//	alert('1#'+chartPeriod+'#');
	
//	if(chartPeriod='') {
//		alert('2#'+chartPeriod+'#');
//		chartPeriod = 'week';
//	}else{
/*
		$("#week").hover(
			function () {
				$(this).addClass('orange');
			}, 
			function () {
				$(this).removeClass('orange');
			}
		);
		$("#month").hover(
			function () {
				$(this).addClass('orange');
			}, 
			function () {
				$(this).removeClass('orange');
			}
		);
		$("#year").hover(
			function () {
				$(this).addClass('orange');
			}, 
			function () {
				$(this).removeClass('orange');
			}
		);
		$('#'+chartPeriod).hover(
			function () {
				$(this).addClass('orange');
			}, 
			function () {
				$(this).addClass('orange');
			}
		);
*/
		$('#'+chartPeriod).addClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_'+chartPeriod+'.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-'+chartPeriod+'.gif)'});
//	};

	
//	alert('3#'+chartPeriod+'#');
	
	switch(chartPeriod){
	case 'week':
		$('#week').addClass('orange');
		$('#month').removeClass('orange');
		$('#year').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_week.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-week.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(Math.round(balanceFigure/52));
		break;    
	case 'month':
		$('#month').addClass('orange');
		$('#week').removeClass('orange');
		$('#year').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_month.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-month.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(Math.round(balanceFigure/12));
		break;
	case 'year':
		$('#year').addClass('orange');
		$('#week').removeClass('orange');
		$('#month').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_year.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-year.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(balanceFigure);
		break;
	}
	
	
	//Change chart background image to reflect period selected
	$('#week').click(function(){
		$(this).addClass('orange');
		$('#month').removeClass('orange');
		$('#year').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_week.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-week.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(Math.round(balanceFigure/52));
		$.cookie('period','week');
	});
	$('#month').click(function(){
		$(this).addClass('orange');
		$('#year').removeClass('orange');
		$('#week').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_month.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-month.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(Math.round(balanceFigure/12));
		$.cookie('period','month');
	});
	$('#year').click(function(){
		$(this).addClass('orange');
		$('#month').removeClass('orange');
		$('#week').removeClass('orange');
		$('#chart').css({'background-image':'url(img/bg_chart_year.gif)'});
		$('.per-year').css({'background-image':'url(img/bg_per-year.gif)'});
		var balanceFigure = getBalance();
		$('.balance').val(balanceFigure);
		$.cookie('period','year');
	});
});




function roundNumber() {
	var numberField = document.roundform.numberfield; // Field where the number appears
	var rnum = numberField.value;
	var rlength = 2; // The number of decimal places to round to
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	numberField.value = newnumber;
}



//Set values for jobs pop-up
function sampleJobValues(jobClicked){
	alert(jobClicked);
	//document.getElementById(jobClicked).style.backgroundColor='red';
	//self.parent.getElementById('banner').style.display='none';
}
	



function getIncome(){
	//Get values from cookies
	//Multiply each value by 1 incase value is null (i.e. converts everything to numbers)
	//Convert every value to floating number so it can be manipulated with decimal places
	//Income
	//-----------------------------------------------------

	//Loans, grants and bursaries
	var intLoans = parseFloat(getCookieValue('inc','0_1') * 1);
	var intBursary = parseFloat(getCookieValue('inc','0_2') * 1);
	var intLoansGrantsAndBursaries = parseFloat(intLoans+intBursary);

	//Financial support
	var intScholarship = parseFloat(getCookieValue('inc','2_1') * 1);
	var intSponsorship = parseFloat(getCookieValue('inc','2_2') * 1);
	var intNHSBursary = parseFloat(getCookieValue('inc','2_3') * 1);
	var intAdultDependantsGrant = parseFloat(getCookieValue('inc','2_4') * 1);
	var intChildCareGrant = parseFloat(getCookieValue('inc','2_5') * 1);
	var intParentLearningAllowance = parseFloat(getCookieValue('inc','2_6') * 1);
	var intDisabledStudentsAllowance = parseFloat(getCookieValue('inc','2_7') * 1);
	var intCareerDevelopmentLoan = parseFloat(getCookieValue('inc','2_8') * 1);
	var intSpecialSupportGrant = parseFloat(getCookieValue('inc','2_9') * 1);
	var intOther = parseFloat(getCookieValue('inc','2_10') * 1);
	var intFinancialSupport = parseFloat(intScholarship+intSponsorship+intNHSBursary+intAdultDependantsGrant+intChildCareGrant+intParentLearningAllowance+intDisabledStudentsAllowance+intCareerDevelopmentLoan+intSpecialSupportGrant+intOther);

	//Family, friends and other
	var intFamilyAndFriends = parseFloat(getCookieValue('inc','3_1') * 1);
	var intOther = parseFloat(getCookieValue('inc','3_2') * 1);
	var intFamilyFriendsAndOther = parseFloat(intFamilyAndFriends+intOther);

	//Savings
	var intSavings = parseFloat(getCookieValue('inc','4_1') * 1);

	//Employment (term time)
	var intEmploymentTermCost = parseFloat(getCookieValue('inc','5_1') * 1);
	var intEmploymentTermTime = parseFloat(getCookieValue('inc','5_2') * 1);
	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * 32);
	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * 32);
	var intEmploymentTermTimePerWeek = parseFloat(intEmploymentTermTimePerYear / 52);

	//Employment (holiday time)
	var intEmploymentHolidayCost = parseFloat(getCookieValue('inc','5_3') * 1);
	var intEmploymentHolidayTimeHrsPerWeek = parseFloat(getCookieValue('inc','5_4') * 1);
	var intEmploymentHolidayTimeWeeksPerYear = parseFloat(getCookieValue('inc','5_5') * 1);
	var intEmploymentHolidayTimePerYear = parseFloat(intEmploymentHolidayTimeHrsPerWeek * intEmploymentHolidayTimeWeeksPerYear);
	var intEmploymentHolidayTimePerWeek = parseFloat(intEmploymentHolidayTimePerYear / 52);
	var intEmploymentHoliday = parseFloat(intEmploymentHolidayCost * intEmploymentHolidayTimePerYear);

	//Total employment
	var intTotalEmploymentTimePerWeek = parseFloat(intEmploymentTermTimePerWeek + intEmploymentHolidayTimePerWeek);

	//Total
	var intTotalIncome = parseFloat(intLoansGrantsAndBursaries + intFinancialSupport + intFamilyFriendsAndOther + intSavings + intEmploymentTerm + intEmploymentHoliday);

	if(intTotalIncome){
		return(intTotalIncome);
	}else{
		return(0);
	}
}



function getExpenditure(){
	//Get values from cookies
	//Multiply each value by 1 incase value is null (i.e. converts everything to numbers)
	//Convert every value to floating number so it can be manipulated with decimal places
	//Expenditure
	//-----------------------------------------------------
	//Fees
	var intFees = parseFloat(getCookieValue('exp','1_1') * 1);
	var intFeesPayNow = parseFloat(getCookieValue('exp','1_2') * 1);
	var intFeesNet = parseFloat(intFees*intFeesPayNow);

	//Accommodation
	var intAccommodationPerWeek = parseFloat(getCookieValue('exp','3_1') * 1);
	var intAccommodationWeeksPerYear = parseFloat(getCookieValue('exp','3_2') * 1)
	var intAccommodation = parseFloat(intAccommodationPerWeek * intAccommodationWeeksPerYear);

	//Utilities
	var intGas = parseFloat((getCookieValue('exp','4_1') * 1) * 12);
	var intElectricity = parseFloat((getCookieValue('exp','4_2') * 1) * 12);
	var intLandline = parseFloat((getCookieValue('exp','4_3') * 1) * 12);
	var intMobile = parseFloat((getCookieValue('exp','4_4') * 1) * 12);
	var intInternet = parseFloat((getCookieValue('exp','4_5') * 1) * 12);
	var intWater = parseFloat((getCookieValue('exp','4_6') * 1) * 12);
	var intTV = parseFloat(getCookieValue('exp','4_7') * 1);
	var intUtility = parseFloat(intGas + intElectricity + intLandline + intMobile + intInternet + intWater + intTV);

	//Transport
	var intTrips = parseFloat(getCookieValue('exp','5_1') * 1);
	var intTripsTime = parseFloat(getCookieValue('exp','5_2') * 1);
	var intTripsTimePerTerm = parseFloat(intTripsTime * 24);
	var intTripsTimePerWeek = parseFloat(intTripsTimePerTerm / 52);
	var intTravelTimePerWeek = parseFloat(getCookieValue('exp','5_3') * 1);
	var intPublicPerWeek = parseFloat(getCookieValue('exp','5_4') * 1);
	var intPublic = parseFloat(intPublicPerWeek * 52)
	var intTaxisPerWeek = parseFloat(getCookieValue('exp','5_7') * 1);
	var intTaxis = parseFloat(intTaxisPerWeek * 52)
	//var intOtherPerMonth = parseFloat(getCookieValue('exp','5_5') * 1);
	//var intOther = parseFloat(intOtherPerMonth * 12);
	var intOther = parseFloat(getCookieValue('exp','5_5') * 1);
	var intTransport = parseFloat(intTrips + intPublic + intOther + intTaxis)

	var intTotalTravelTime = intTripsTimePerWeek + intTravelTimePerWeek;

	//Eating
	var intEatingIn = parseFloat((getCookieValue('exp','8_1') * 1) * 52);
	var intEatingOut = parseFloat((getCookieValue('exp','8_3') * 1) * 52);
	var intEating = parseFloat(intEatingIn + intEatingOut)

	//Shopping
	var intBasics = parseFloat((getCookieValue('exp','6_1') * 1) * 52);
	var intClothes = parseFloat((getCookieValue('exp','6_2') * 1) * 52);
	var intSmoking = parseFloat((getCookieValue('exp','6_3') * 1) * 52);
	var intLaundry = parseFloat((getCookieValue('exp','6_4') * 1) * 52);
	var intShopping = parseFloat(intBasics + intClothes + intSmoking + intLaundry);

	//Study
	var intLecturesTime = parseFloat(getCookieValue('exp','9_1') * 1);
	var intPrivateTime = parseFloat(getCookieValue('exp','9_2') * 1);
	var intBooks = parseFloat(getCookieValue('exp','9_3') * 1);
	var intStationery = parseFloat((getCookieValue('exp','9_4') * 1) * 12);
	var intPrinting = parseFloat((getCookieValue('exp','9_5') * 1) * 52);
	var intStudy = parseFloat(intBooks + intStationery + intPrinting);
	var intStudyTime = parseFloat(intLecturesTime + intPrivateTime);

	//Social
	var intFriendsTimePerMonth = parseFloat(getCookieValue('exp','7_1') * 1);
	var intFriendsTime = parseFloat(intFriendsTimePerMonth / 4);
	var intStudentUnion = parseFloat((getCookieValue('exp','7_2') * 1) * 12);
	var intStudentUnionTimePerMonth = parseFloat(getCookieValue('exp','7_3') * 1);
	var intStudentUnionTime = parseFloat(intStudentUnionTimePerMonth / 4);
	var intClubbing = parseFloat((getCookieValue('exp','7_4') * 1) * 12);
	var intClubbingTimePerMonth = parseFloat(getCookieValue('exp','7_5') * 1);
	var intClubbingTime = parseFloat(intClubbingTimePerMonth / 4);
	var intCinema = parseFloat((getCookieValue('exp','7_6') * 1) * 12);
	var intCinemaTimePerMonth = parseFloat(getCookieValue('exp','7_7') * 1);
	var intCinemaTime = parseFloat(intCinemaTimePerMonth / 4);
	var intSport = parseFloat((getCookieValue('exp','7_8') * 1) * 12);
	var intSportTimePerMonth = parseFloat(getCookieValue('exp','7_9') * 1);
	var intSportTime = parseFloat(intSportTimePerMonth / 4);
	var intMusic = parseFloat((getCookieValue('exp','7_10') * 1) * 12);
	var intMusicTimePerMonth = parseFloat(getCookieValue('exp','7_11') * 1);
	var intMusicTime = parseFloat(intMusicTimePerMonth / 4);
	var intTVandGames = parseFloat((getCookieValue('exp','7_12') * 1) * 12);
	var intTVandGamesTimePerMonth = parseFloat(getCookieValue('exp','7_13') * 1);
	var intTVandGamesTime = parseFloat(intTVandGamesTimePerMonth / 4);
	var intSocial = parseFloat(intStudentUnion + intClubbing + intCinema + intSport + intMusic + intTVandGames);
	var intTotalSocialTime = parseFloat(intFriendsTime + intStudentUnionTime + intClubbingTime + intCinemaTime + intSportTime + intMusicTime + intTVandGamesTime);

	//Insurance
	var intInsurance = parseFloat(getCookieValue('exp','2_1') * 1);

	//Include employment in expenditure function because time is being expended - even though money is being increased
	//Employment (term time)
	var intEmploymentTermCost = parseFloat(getCookieValue('inc','5_1') * 1);
	var intEmploymentTermTime = parseFloat(getCookieValue('inc','5_2') * 1);
	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * 32);
	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * 32);
	var intEmploymentTermTimePerWeek = parseFloat(intEmploymentTermTimePerYear / 52);

	//Employment (holiday time)
	var intEmploymentHolidayCost = parseFloat(getCookieValue('inc','5_3') * 1);
	var intEmploymentHolidayTimeHrsPerWeek = parseFloat(getCookieValue('inc','5_4') * 1);
	var intEmploymentHolidayTimeWeeksPerYear = parseFloat(getCookieValue('inc','5_5') * 1);
	var intEmploymentHolidayTimePerYear = parseFloat(intEmploymentHolidayTimeHrsPerWeek * intEmploymentHolidayTimeWeeksPerYear);
	var intEmploymentHolidayTimePerWeek = parseFloat(intEmploymentHolidayTimePerYear / 52);
	var intEmploymentHoliday = parseFloat(intEmploymentHolidayCost * intEmploymentHolidayTimePerYear);

	//Total employment
	var intTotalEmploymentTimePerWeek = parseFloat(intEmploymentTermTimePerWeek + intEmploymentHolidayTimePerWeek);

	//Total
	var intTotalExpenditure = parseFloat(intFeesNet + intAccommodation + intUtility + intTransport + intEating + intShopping + intStudy + intSocial + intInsurance);

	//Total time
	var intTotalTime = parseFloat(intStudyTime + intTotalEmploymentTimePerWeek + intTotalTravelTime + intTotalSocialTime);

	//If no value, make IE7 return zero instead of NaN
	/*
	if(intTotalExpenditure = 'NaN'){
		intTotalExpenditure = 0;
	}
	if(intTotalTime = 'NaN'){
		intTotalTime = 0
	}
	*/

	var strMoneyAndTimeExpenditure = intTotalExpenditure+'_'+intTotalTime

	//Return both money and time expenditure
	return(strMoneyAndTimeExpenditure);
}



function getCookieValue(cookieName,variableIn){
	var wholeString = $.cookie(cookieName);
	if(wholeString){
		var rx= RegExp('\\b'+variableIn+' *\=([^\\|]+)');
		var val= rx.exec(wholeString);
		return val? val[1]: 0;
	}else{
		return 0;
	}
}




function getBalance(){
	var incomeTotal = parseFloat(getIncome());
	//Split expenditure to get money part
	var expenditureTotalMoney = parseFloat(getExpenditure().split('_')[0]);
	var intBalance = parseFloat(incomeTotal - expenditureTotalMoney);
	
	if (intBalance.toFixed(2) - intBalance.toFixed(0) != 0){
		intBalance = intBalance.toFixed(2);
	}
	
	return(intBalance);
}









function getBalancePerTime(){
	var incomeTotal = parseFloat(getIncome());
	//Split expenditure to get money part
	var expenditureTotalMoney = parseFloat(getExpenditure().split('_')[0]);
	var intBalance = parseFloat(incomeTotal - expenditureTotalMoney);	
	var chartPeriodpath = $.cookie('period')+'';
	
	var chartPeriod = chartPeriodpath.substring(0, chartPeriodpath.length-1);


	switch(chartPeriod){
	case 'week':
		intBalance = Math.round(intBalance/52)
		break;    
	case 'month':
		intBalance = Math.round(intBalance/12)
		break;
	default:
		//intBalance = (intBalance/1)
		if (intBalance.toFixed(2) - intBalance.toFixed(0) != 0){
			intBalance = intBalance.toFixed(2);
		}else{
			intBalance = intBalance.toFixed(0);
		}
		break;
	}
	
	return(intBalance);
}	
	







function getBalanceTime(){
	//Split expenditure to get time part
	var expenditureTotalTime = parseFloat(getExpenditure().split('_')[1]);
	return(expenditureTotalTime);
}
