$(document).ready(function(){

	function isInteger(n){
		return (Math.floor(n) == n);
	}
	
	//Set master weeks per year if stored as cookie
	var intMasterWeeks = $.cookie('wks');
	var intMasterMonths = parseFloat($.cookie('wks')/4.34);
	if (isInteger(intMasterWeeks)){
		$("#weeksperyear").html(intMasterWeeks);
	}else{
		$.cookie('wks','52', { expires: 365, path: '/international' });
		$("#weeksperyear").html("52");
	};
	
	$(".shorter-courses a").click(function () {
		$("#short-course-overlay").toggle(100);
		return false;
	});

	$("#close-overlay a").click(function () {
		$("#short-course-overlay").toggle(100);
		return false;
	});

	$("#masterweekssubmit").click(function () {
		var intMasterWeeks = $("#masterweeksinput").attr("value");
		if (isInteger(intMasterWeeks)){
			if (intMasterWeeks > 52){
				alert("Please enter a number between 1 and 52");
			}else if (intMasterWeeks < 1){
				alert("Please enter a number between 1 and 52");
			}else{
				
				$.cookie('wks',intMasterWeeks, { expires: 365, path: '/international' });
				$("#weeksperyear").html(intMasterWeeks);
				$("#short-course-overlay").toggle(100);
				$(this).delay(200,function(){
					window.location.reload();
				});
			}
		}else{
			alert("Please enter a number between 1 and 52");
		}
		return false;
	});

	
	$(".shorter a").click(function () {
		$("#short-course-overlay").toggle(100);
		return false;
	});
	
	
	

	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 chartPeriod = $.cookie('period')+'';	
//	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(roundNumberToXDecimalPlaces((balanceFigure/intMasterWeeks),0));
		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(roundNumberToXDecimalPlaces((balanceFigure/intMasterMonths),0));
		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(roundNumberToXDecimalPlaces(balanceFigure,0));
		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/intMasterWeeks));
		$.cookie('period','week');
//alert("balanceFigure (per year) = " + balanceFigure + "\nintMasterWeeks = " + intMasterWeeks);
	});
	$('#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/intMasterMonths));
		$.cookie('period','month');
//alert("balanceFigure (per year) = " + balanceFigure + "\nintMasterMonths = " + intMasterMonths);
	});
	$('#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');
//alert("balanceFigure (per year) = " + balanceFigure);
	});
});




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
	var intMasterWeeks = $.cookie('wks');
	var intMasterMonths = parseFloat($.cookie('wks')/4.34);
	//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
	var intLoans = parseFloat(getCookieValue('inc','1_1') * 1);

	//Scholarships
	var intScholarships = parseFloat(getCookieValue('inc','1_2') * 1);

	//Bursaries
	var intBursary = parseFloat(getCookieValue('inc','1_3') * 1);

	//Savings
	var intSavings = parseFloat(getCookieValue('inc','3_1') * 1);

	//Employment (term time)
	var intEmploymentTermCost = parseFloat(getCookieValue('inc','4_1') * 1);
	var intEmploymentTermTime = parseFloat(getCookieValue('inc','4_2') * 1);
//	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * 32);
//	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * 32);
	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * intMasterWeeks);
	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * intMasterWeeks);
	var intEmploymentTermTimePerWeek = parseFloat(intEmploymentTermTimePerYear / intMasterWeeks);

	//Employment (holiday time)
	var intEmploymentHolidayCost = parseFloat(getCookieValue('inc','4_3') * 1);
	var intEmploymentHolidayTimeHrsPerWeek = parseFloat(getCookieValue('inc','4_4') * 1);
	var intEmploymentHolidayTimeWeeksPerYear = parseFloat(getCookieValue('inc','4_5') * 1);
	var intEmploymentHolidayTimePerYear = parseFloat(intEmploymentHolidayTimeHrsPerWeek * intEmploymentHolidayTimeWeeksPerYear);
	var intEmploymentHolidayTimePerWeek = parseFloat(intEmploymentHolidayTimePerYear / intMasterWeeks);
	var intEmploymentHoliday = parseFloat(intEmploymentHolidayCost * intEmploymentHolidayTimePerYear);

	//Total employment
	var intTotalEmploymentTimePerWeek = parseFloat(intEmploymentTermTimePerWeek + intEmploymentHolidayTimePerWeek);

	//Family and friends
	var intFamily = parseFloat(getCookieValue('inc','2_1') * 1);
	var intOtherIncome = parseFloat(getCookieValue('inc','2_2') * 1);
	var intFamilyAndFriends = parseFloat(intFamily + intOtherIncome);

	//Total
	var intTotalIncome = parseFloat(intLoans + intScholarships + intBursary + intSavings + intEmploymentTerm + intEmploymentHoliday + intFamilyAndFriends);

	if(intTotalIncome){
		return(intTotalIncome);
	}else{
		return(0);
	}
}



function getExpenditure(){
	//Get values from cookies
	var intMasterWeeks = $.cookie('wks');
	var intMasterMonths = parseFloat($.cookie('wks')/4.34);
	//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);

	//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) * intMasterMonths);
	var intElectricity = parseFloat((getCookieValue('exp','4_2') * 1) * intMasterMonths);
	var intLandline = parseFloat((getCookieValue('exp','4_3') * 1) * intMasterMonths);
	var intMobile = parseFloat((getCookieValue('exp','4_4') * 1) * intMasterMonths);
	var intInternet = parseFloat((getCookieValue('exp','4_5') * 1) * intMasterMonths);
	var intWater = parseFloat((getCookieValue('exp','4_6') * 1) * intMasterMonths);
	var intTVShare = parseFloat(getCookieValue('exp', '4_8') * 1);
	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 / intMasterWeeks);
	var intTravelTimePerWeek = parseFloat(getCookieValue('exp','5_3') * 1);
	var intPublicPerWeek = parseFloat(getCookieValue('exp','5_4') * 1);
	var intPublic = parseFloat(intPublicPerWeek * intMasterWeeks)
	var intOtherPerMonth = parseFloat(getCookieValue('exp','5_5') * 1);
	var intOther = parseFloat(intOtherPerMonth * intMasterMonths);
	var intTransport = parseFloat(intTrips + intPublic + intOther)

	var intTotalTravelTime = intTripsTimePerWeek + intTravelTimePerWeek;

	//Eating
	var intEatingIn = parseFloat((getCookieValue('exp','8_1') * 1) * intMasterWeeks);
	var intEatingOut = parseFloat((getCookieValue('exp','8_3') * 1) * intMasterWeeks);
	var intEatingInTime = parseFloat((getCookieValue('exp','8_2') * 1));
	var intEatingOutTime = parseFloat((getCookieValue('exp','8_4') * 1));
	var intEating = parseFloat(intEatingIn + intEatingOut)
	var intEatingTime = parseFloat(intEatingInTime + intEatingOutTime)

	//Shopping
	var intBasics = parseFloat((getCookieValue('exp','6_1') * 1) * intMasterWeeks);
	var intClothes = parseFloat((getCookieValue('exp','6_2') * 1) * intMasterWeeks);
	var intSmoking = parseFloat((getCookieValue('exp','6_3') * 1) * intMasterWeeks);
	var intLaundry = parseFloat((getCookieValue('exp','6_4') * 1) * intMasterWeeks);
	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) * intMasterMonths);
	var intPrinting = parseFloat((getCookieValue('exp','9_5') * 1) * intMasterWeeks);
	var intPlacementHrsPerWeek = parseFloat(getCookieValue('exp','9_6') * 1);
	var intPlacementWksPerYear = parseFloat(getCookieValue('exp','9_7') * 1);
	var intPlacementHrsPerYear = parseFloat(intPlacementHrsPerWeek * intPlacementWksPerYear);
	var intPlacementHrsPerWeek = parseFloat(intPlacementHrsPerYear / intMasterWeeks);
	var intOtherStudy = parseFloat(getCookieValue('exp','9_8') * 1);
	var intStudy = parseFloat(intBooks + intStationery + intPrinting + intOtherStudy);
	var intStudyTime = parseFloat(intLecturesTime + intPrivateTime + intPlacementHrsPerWeek);

	//Social
	var intFriendsTimePerMonth = parseFloat(getCookieValue('exp','7_1') * 1);
	var intFriendsTime = parseFloat(intFriendsTimePerMonth / 4);
	var intStudentUnion = parseFloat((getCookieValue('exp','7_2') * 1) * intMasterMonths);
	var intStudentUnionTimePerMonth = parseFloat(getCookieValue('exp','7_3') * 1);
	var intStudentUnionTime = parseFloat(intStudentUnionTimePerMonth / 4);
	var intClubbing = parseFloat((getCookieValue('exp','7_4') * 1) * intMasterMonths);
	var intClubbingTimePerMonth = parseFloat(getCookieValue('exp','7_5') * 1);
	var intClubbingTime = parseFloat(intClubbingTimePerMonth / 4);
	var intCinema = parseFloat((getCookieValue('exp','7_6') * 1) * intMasterMonths);
	var intCinemaTimePerMonth = parseFloat(getCookieValue('exp','7_7') * 1);
	var intCinemaTime = parseFloat(intCinemaTimePerMonth / 4);
	var intSport = parseFloat((getCookieValue('exp','7_8') * 1) * intMasterMonths);
	var intSportTimePerMonth = parseFloat(getCookieValue('exp','7_9') * 1);
	var intSportTime = parseFloat(intSportTimePerMonth / 4);
	var intMusic = parseFloat((getCookieValue('exp','7_10') * 1) * intMasterMonths);
	var intMusicTimePerMonth = parseFloat(getCookieValue('exp','7_11') * 1);
	var intMusicTime = parseFloat(intMusicTimePerMonth / 4);
	var intTVandGames = parseFloat((getCookieValue('exp','7_12') * 1) * intMasterMonths);
	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);
	var intHealth = parseFloat(getCookieValue('exp','2_2') * 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','4_1') * 1);
	var intEmploymentTermTime = parseFloat(getCookieValue('inc','4_2') * 1);
//	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * 32);
//	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * 32);
	var intEmploymentTerm = parseFloat(intEmploymentTermCost * intEmploymentTermTime * intMasterWeeks);
	var intEmploymentTermTimePerYear = parseFloat(intEmploymentTermTime * intMasterWeeks);
	var intEmploymentTermTimePerWeek = parseFloat(intEmploymentTermTimePerYear / intMasterWeeks);

	//Employment (holiday time)
	var intEmploymentHolidayCost = parseFloat(getCookieValue('inc','4_3') * 1);
	var intEmploymentHolidayTimeHrsPerWeek = parseFloat(getCookieValue('inc','4_4') * 1);
	var intEmploymentHolidayTimeWeeksPerYear = parseFloat(getCookieValue('inc','4_5') * 1);
	var intEmploymentHolidayTimePerYear = parseFloat(intEmploymentHolidayTimeHrsPerWeek * intEmploymentHolidayTimeWeeksPerYear);
	var intEmploymentHolidayTimePerWeek = parseFloat(intEmploymentHolidayTimePerYear / intMasterWeeks);
	var intEmploymentHoliday = parseFloat(intEmploymentHolidayCost * intEmploymentHolidayTimePerYear);

	//Total employment
	var intTotalEmploymentTimePerWeek = parseFloat(intEmploymentTermTimePerWeek + intEmploymentHolidayTimePerWeek);

	//Total
	var intTotalExpenditure = parseFloat(intFees + intAccommodation + intUtility + intTransport + intEating + intShopping + intStudy + intSocial + intInsurance + intHealth);

	//Total time
	var intTotalTime = parseFloat(intStudyTime + intTotalEmploymentTimePerWeek + intTotalTravelTime + intTotalSocialTime + intEatingTime);

	//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 roundNumberToXDecimalPlaces(num, dec) {
	var result = Math.round( Math.round( num * Math.pow( 10, dec + 1 ) ) / Math.pow( 10, 1 ) ) / Math.pow(10,dec);
	return result;
}



function getBalance(){
	var incomeTotal = parseFloat(getIncome());
	//Split expenditure to get money part
	var expenditureTotalMoney = parseFloat(getExpenditure().split('_')[0]);
	var intBalance = roundNumberToXDecimalPlaces(parseFloat(incomeTotal - expenditureTotalMoney),0);	
	return(intBalance);
}









function getBalancePerTime(){
	var incomeTotal = parseFloat(getIncome());
	var intMasterWeeks = $.cookie('wks');
	var intMasterMonths = parseFloat($.cookie('wks')/4.34);
	//Split expenditure to get money part
	var expenditureTotalMoney = parseFloat(getExpenditure().split('_')[0]);
	var intBalance = parseFloat(incomeTotal - expenditureTotalMoney);	
	var chartPeriod = $.cookie('period')+'';	

	switch(chartPeriod){
	case 'week':
		intBalance = roundNumberToXDecimalPlaces(Math.round(intBalance/intMasterWeeks),0)
		break;    
	case 'month':
		intBalance = roundNumberToXDecimalPlaces(Math.round(intBalance/intMasterMonths),0)
		break;
	default:
		intBalance = roundNumberToXDecimalPlaces((intBalance/1),0)
		break;
	}
	
	return(intBalance);
}	
	







function getBalanceTime(){
	//Split expenditure to get time part
	var expenditureTotalTime = parseFloat(getExpenditure().split('_')[1]);
	return(expenditureTotalTime);
}