var bankLookup = new Array();
var stateLookup = new Array();

stateLookup[2] = 'Capital Territory, New South Wales';
stateLookup[3] = 'Victoria';
stateLookup[4] = 'Queensland';
stateLookup[5] = 'South Australia, Northern Territory';
stateLookup[6] = 'Western Australia';
stateLookup[7] = 'Tasmania';

bankLookup[1] = 'ANZ Banking Group';
bankLookup[3] = 'Westpac Banking Corporation';
bankLookup[6] = 'Commonwealth Bank';
bankLookup[8] = 'National Australia Bank';
bankLookup[9] = 'Reserve Bank of Australia';
bankLookup[10] = 'Bank of South Australia';
bankLookup[11] = 'St. George Bank';
bankLookup[12] = 'Bank of Queensland';
bankLookup[14] = 'Primary Industry Bank (see RaboBank)';
bankLookup[15] = 'Town & Country Bank (see ANZ)';
bankLookup[18] = 'Macquarie Bank';
bankLookup[19] = 'Advance Bank (Now St George)';
bankLookup[21] = 'Chase Manhattan Bank';
bankLookup[23] = 'Bank of America';
bankLookup[24] = 'Citibank';
bankLookup[26] = 'Bankers Trust Australia';
bankLookup[29] = 'Bank of Tokyo - Mitsubishi (Australia)';
bankLookup[30] = 'BankWest';
bankLookup[33] = 'St. George Bank';
bankLookup[34] = 'HSBC Bank Australia';
bankLookup[35] = 'Bank of China';
bankLookup[36] = 'IBJ Australia Bank';
bankLookup[40] = 'Colonial State Bank';
bankLookup[41] = 'Deutsche Bank AG';
bankLookup[42] = 'Trust Bank';
bankLookup[45] = 'Oversea-Chinese Banking Corporation';
bankLookup[46] = 'Advance Bank (Now St George)';
bankLookup[48] = 'Suncorp-Metway';
bankLookup[52] = 'Trust Bank';
bankLookup[55] = 'Bank Of Melbourne';
bankLookup[57] = 'Australian Settlements Limited';
bankLookup[63] = 'Bass & Equitable Building Society';
bankLookup[63] = 'Bendigo Bank';
bankLookup[63] = 'Greater Building Society Ltd';
bankLookup[63] = 'Heritage Building Society';
bankLookup[64] = 'Australian Unity Building Soc Ltd';
bankLookup[64] = 'Illawarra Mutual Building Soc Ltd';
bankLookup[64] = 'IOOF Building Society Ltd';
bankLookup[64] = 'Greater Building Society Ltd';
bankLookup[64] = 'Maitland Mutual Building Soc Ltd';
bankLookup[64] = 'Mackay Permanent Building Soc Ltd';
bankLookup[65] = 'Wide Bay Capricorn Building Society';
bankLookup[65] = 'Pioneer Permanent Building Soc Ltd';
bankLookup[65] = 'The Rock Building Society Limited';
bankLookup[66] = 'Suncorp';
bankLookup[70] = 'CreditLink';
bankLookup[73] = 'Westpac Banking Corporation';
bankLookup[76] = 'Commonwealth Bank';
bankLookup[80] = 'Credit Union Services Corporation (Cuscal)';
bankLookup[90] = 'Australia Post';
bankLookup[91] = 'Arab Bank Australia';
bankLookup[91] = 'Bank One';
bankLookup[91] = 'Mizuho Corporate Bank';
bankLookup[91] = 'State Street Bank and Trust Company';
bankLookup[92] = 'ING Bank (Australia) Limited';
bankLookup[92] = 'HSBC Bank plc';
bankLookup[92] = 'United Overseas Bank';
bankLookup[93] = 'AMP Bank';
bankLookup[93] = 'International Commercial Bank of China';
bankLookup[94] = 'Bank of Cyprus';
bankLookup[94] = 'Laiki Bank';
bankLookup[94] = 'Members Equity Bank';
bankLookup[94] = 'Taiwan Business Bank';


function calculate_premium(dob,gender,smoker)
{	
	if(dob == '' || gender == '' || smoker == ''){
		return false;	
	}else{
		return true;
	}
}


function calculate_month_fee(age,gender,smoker,plan_choose)
{
	if(age < 50 )
	{
		return false;
	}
	if(age > 65)
	{
		return false;
	}

	month_p_array = get_premium_value(age,gender,smoker);
	
	return_value = false;
	if(plan_choose == '3000'){
		return_value =  month_p_array[0];	
	}	
	if(plan_choose == '5000'){
		return_value =  month_p_array[1];	
	}
	if(plan_choose == '7500'){
		return_value =  month_p_array[2];	
	}	
	if(plan_choose == '10000'){
		return_value =  month_p_array[3];	
	}	
	if(plan_choose == '15000'){
		return_value =  month_p_array[4];	
	}

	return return_value;
	
}

function get_premium_value(age,gender,smoker)
{
	var premium_array = new Array();
	
	if(age < 50 )
	{
		age = 50;
	}
	if(age > 65)
	{
		age = 65;
	}
	
	premium_array['50_male_no'] = ['11.28', '18.80', '28.20', '37.60', '56.40'];
	premium_array['51_male_no'] = ['11.55', '19.25', '28.88', '38.50', '57.75'];
	premium_array['52_male_no'] = ['12.24', '20.40', '30.60', '40.80', '61.20'];
	premium_array['53_male_no'] = ['12.99', '21.65', '32.48', '43.30', '64.95'];
	premium_array['54_male_no'] = ['13.77', '22.95', '34.43', '45.90', '68.85'];
	premium_array['55_male_no'] = ['14.64', '24.40', '36.60', '48.80', '73.20'];
	premium_array['56_male_no'] = ['15.54', '25.90', '38.85', '51.80', '77.70'];
	premium_array['57_male_no'] = ['16.26', '27.10', '40.65', '54.20', '81.30'];
	premium_array['58_male_no'] = ['16.98', '28.30', '42.45', '56.60', '84.90'];
	premium_array['59_male_no'] = ['18.09', '30.15', '45.23', '60.30', '90.45'];
	premium_array['60_male_no'] = ['19.26', '32.10', '48.15', '64.20', '96.30'];
	premium_array['61_male_no'] = ['20.52', '34.20', '51.30', '68.40', '102.60'];
	premium_array['62_male_no'] = ['22.29', '37.15', '55.73', '74.30', '111.45'];
	premium_array['63_male_no'] = ['24.24', '40.40', '60.60', '80.80', '121.20'];
	premium_array['64_male_no'] = ['26.34', '43.90', '65.85', '87.80', '131.70'];
	premium_array['65_male_no'] = ['28.65', '47.75', '71.63', '95.50', '143.25'];
	
	premium_array['50_female_no'] = ['9.03', '15.05', '22.58', '30.10', '45.15'];
	premium_array['51_female_no'] = ['9.12', '15.20', '22.80', '30.40', '45.60'];
	premium_array['52_female_no'] = ['9.63', '16.05', '24.08', '32.10', '48.15'];
	premium_array['53_female_no'] = ['10.14', '16.90', '25.35', '33.80', '50.70'];
	premium_array['54_female_no'] = ['10.68', '17.80', '26.70', '35.60', '53.40'];
	premium_array['55_female_no'] = ['11.28', '18.80', '28.20', '37.60', '56.40'];
	premium_array['56_female_no'] = ['11.94', '19.90', '29.85', '39.80', '59.70'];
	premium_array['57_female_no'] = ['12.39', '20.65', '30.98', '41.30', '61.95'];
	premium_array['58_female_no'] = ['12.87', '21.45', '32.18', '42.90', '64.35'];
	premium_array['59_female_no'] = ['13.65', '22.75', '34.13', '45.50', '68.25'];
	premium_array['60_female_no'] = ['14.49', '24.15', '36.23', '48.30', '72.45'];
	premium_array['61_female_no'] = ['15.36', '25.60', '38,40', '51.20', '76.80'];
	premium_array['62_female_no'] = ['16.62', '27.70', '41.55', '55.40', '83.10'];
	premium_array['63_female_no'] = ['17.40', '29.00', '43.50', '58.00', '87.00'];
	premium_array['64_female_no'] = ['19.47', '32.45', '48.68', '64.90', '97.35'];
	premium_array['65_female_no'] = ['21.12', '35.20', '52.80', '70.40', '105.60'];
	
	
	premium_array['50_male_yes'] = ['20.04', '33.40', '50.10', '66.80', '100.20'];
	premium_array['51_male_yes'] = ['20.37', '33.95', '50.93', '67.90', '101.85'];
	premium_array['52_male_yes'] = ['21.30', '35.50', '53.25', '71.00', '106.50'];
	premium_array['53_male_yes'] = ['22.26', '37.10', '55.65', '74.20', '111.30'];
	premium_array['54_male_yes'] = ['23.25', '38.75', '58.13', '77.50', '116.25'];
	premium_array['55_male_yes'] = ['24.27', '40.45', '60.68', '80.90', '121.35'];
	premium_array['56_male_yes'] = ['25.35', '42.25', '63.38', '84.50', '126.75'];
	premium_array['57_male_yes'] = ['26.25', '43.75', '65.63', '87.50', '131.25'];
	premium_array['58_male_yes'] = ['27.33', '45.55', '68.33', '91.10', '136.65'];
	premium_array['59_male_yes'] = ['28.89', '48.15', '72.23', '96.30', '144.45'];
	premium_array['60_male_yes'] = ['30.60', '51.00', '76.50', '102.00', '153.00'];
	premium_array['61_male_yes'] = ['32.04', '53.40', '80.10', '106.80', '160.20'];
	premium_array['62_male_yes'] = ['34.11', '56.85', '85.28', '113.70', '170.55'];
	premium_array['63_male_yes'] = ['36.33', '60.55', '90.83', '121.10', '181.65'];
	premium_array['64_male_yes'] = ['38.73', '64.55', '96.83', '129.10', '193.65'];
	premium_array['65_male_yes'] = ['41.34', '68.90', '103.35', '137.80', '206.70'];
	

	
	premium_array['50_female_yes'] = ['13.68', '22.80', '34.20', '45.60', '68.40'];
	premium_array['51_female_yes'] = ['13.83', '23.05', '34.58', '46.10', '69.15'];
	premium_array['52_female_yes'] = ['14.34', '23.90', '35.85', '47.80', '71.70'];
	premium_array['53_female_yes'] = ['14.91', '24.85', '37.28', '49.70', '74.55'];
	premium_array['54_female_yes'] = ['15.48', '25.80', '38.70', '51.60', '77.40'];
	premium_array['55_female_yes'] = ['16.08', '26.80', '40.20', '53.60', '80.40'];
	premium_array['56_female_yes'] = ['16.71', '27.85', '41.78', '55.70', '83.55'];
	premium_array['57_female_yes'] = ['17.22', '28.70', '43.05', '57.40', '86.10'];
	premium_array['58_female_yes'] = ['17.85', '29.75', '44.63', '59.50', '89.25'];
	premium_array['59_female_yes'] = ['18.81', '31.35', '47.03', '62.70', '94.05'];
	premium_array['60_female_yes'] = ['19.86', '33.10', '49.65', '66.20', '99.30'];
	premium_array['61_female_yes'] = ['19.98', '33.30', '49.95', '66.60', '99.90'];
	premium_array['62_female_yes'] = ['21.99', '36.65', '54.98', '73.30', '109.95'];
	premium_array['63_female_yes'] = ['23.34', '38.90', '58.35', '77.80', '116.70'];
	premium_array['64_female_yes'] = ['24.81', '41.35', '62.03', '82.70', '124.05'];
	premium_array['65_female_yes'] = ['26.43', '44.05', '66.08', '88.10', '132.15'];	
	

	if(premium_array[age+'_'+gender+'_'+smoker] == undefined)
	{
		return false;
	}
	
	return premium_array[age+'_'+gender+'_'+smoker];
}


function checkdob(dob_value)
{
	var d = ''+dob_value;	
	d = d.split("/");
	
	var byr = d[2]; 
	if (byr == undefined ) {
		return '';
	}
	var bmth = d[1];// radix 10!
	if (bmth == undefined) {// check valid month 0-11
		return '';
	}
	var bdy = d[0];
	if (bdy == undefined){
		return '';
	}
	
	return 'pass';
}

function getage(dob){ 
	
	var today = new Date(); 
	var d = ''+dob;	
	d = d.split("/");
	
	var byr = parseInt(d[2]); 
	//var nowyear = today.getFullYear();
	var nowyear = $("#current_year").val();
	
	if (byr >= nowyear || byr < 1900) {// check valid year
		return false;
	}
	var bmth = parseInt(d[1],10);// radix 10!
	if (bmth <1 || bmth >12) {// check valid month 0-12
		return false;
	}
	var bdy = parseInt(d[0],10);// radix 10!
	var dim = daysInMonth(bmth,byr);
	if (bdy <1 || bdy > dim) {// check valid date according to month
		return false;
	}
	
	var age = nowyear - byr;
	//var nowmonth = today.getMonth();
	var nowmonth = $("#current_month").val();
	//var nowday = today.getDate();
	var nowday = $("#current_day").val();
	if (bmth > nowmonth) {
		// next birthday not yet reached
		age = age - 1
	} else {
		if (bmth == nowmonth && bdy > nowday) {age = age - 1}
	}
	
	//alert('You are ' + age + ' years old'); 
	
	
	return age;
	
	
	
	
}

function adjustdob(dob){ 
	
	//if dob is between 22/07 ~ 18/10  set dob to 19/10
	var today = new Date(); 
	var d = ''+dob;	
	d = d.split("/");
	
	var byr = parseInt(d[2]); 
	//var nowyear = today.getFullYear();
	var nowyear = $("#current_year").val();
	
	var bmth = parseInt(d[1],10);// radix 10!
	var bdy = parseInt(d[0],10);// radix 10!
	
	if (bmth == 8 || bmth == 9) {//  month is 08 or 09 
		return '19/10/' + d[2];
	}
	
	if(bmth == 7 && bdy > 21){
		return '19/10/' + d[2];
	}

	if(bmth == 10 && bdy < 19){
		return '19/10/' + d[2];
	}	
	
	return dob;
	
}


function daysInMonth(month,year) {// months are 1-12
	var dd = new Date(year, month, 0);
	return dd.getDate();
}

function bsbValidate(bsbno)
{
	bsbno = bsbno + '';
	if(bsbno.length == 6)
	{
		bankstr = '';
		// First two digits indicates the bank
		if(typeof(bankLookup[bsbno.substring(0,2)*1]) == 'undefined')
		{
			bankstr = 'Unknown Bank';
		}
		else
		{
			bankstr = bankLookup[bsbno.substring(0,2)*1];
		}
		
		bankstr += ', ';
		//Third digit is the state
		if(typeof(stateLookup[bsbno.substring(2,3)]) == 'undefined')
		{
			bankstr += 'Unknown State';
		}
		else
		{
			bankstr += stateLookup[bsbno.substring(2,3)];
		}
		return bankstr;
	}
	else
	{
		return false;
	}
}





function check_creditcard(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "mastercard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}




function form_validation()
{
	var invalid_field_array = new Array();
	var validation_flag = true;
	if($("#given_name_1").val() == ""){
		invalid_field_array.push('given_name_1');
		$("#dob_1").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#dob_1").css('background-color','#FFFFFF');
	}
	
	if($("#surname_1").val() == ""){
		invalid_field_array.push('surname_1');
		$("#surname_1").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#surname_1").css('background-color','#FFFFFF');
	}

	if($("#address_1").val() == ""){
		invalid_field_array.push('address_1');
		$("#address_1").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#address_1").css('background-color','#FFFFFF');
	}

	if($("#dob_1").val() == ""){
		invalid_field_array.push('dob_1');
		$("#dob_1").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#dob_1").css('background-color','#FFFFFF');
	}

	if($("#membership_1").val() == ""){
		invalid_field_array.push('membership_1');
		$("#membership_1").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#membership_1").css('background-color','#FFFFFF');
	}

	if($('input:radio[name=gender_1]:checked').val() == undefined){
		invalid_field_array.push('gender_1');
		$(".gender_1_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".gender_1_cell").css('background-color','#FFF0CE');
	}
	
	if($('input:radio[name=smoker_1]:checked').val() == undefined){
		invalid_field_array.push('smoker_1');
		$(".smoker_1_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".smoker_1_cell").css('background-color','#FFF0CE');
	}

	if($('input:radio[name=person_1_plan_choose]:checked').val() == undefined){
		invalid_field_array.push('person_1_plan_choose');
		$(".person_1_plan_choose_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".person_1_plan_choose_cell").css('background-color','#FFF0CE');
	}
	
	// SECOND PERSON
	
	if($("#given_name_2").val() == ""){
		invalid_field_array.push('given_name_2');
		$("#dob_2").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#dob_2").css('background-color','#FFFFFF');
	}
	
	if($("#surname_2").val() == ""){
		invalid_field_array.push('surname_2');
		$("#surname_2").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#surname_2").css('background-color','#FFFFFF');
	}

	if($("#address_2").val() == ""){
		invalid_field_array.push('address_2');
		$("#address_2").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#address_2").css('background-color','#FFFFFF');
	}

	if($("#dob_2").val() == ""){
		invalid_field_array.push('dob_2');
		$("#dob_2").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#dob_2").css('background-color','#FFFFFF');
	}

	if($("#membership_2").val() == ""){
		invalid_field_array.push('membership_2');
		$("#membership_2").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$("#membership_2").css('background-color','#FFFFFF');
	}

	if($('input:radio[name=gender_2]:checked').val() == undefined){
		invalid_field_array.push('gender_2');
		$(".gender_2_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".gender_2_cell").css('background-color','#FFF0CE');
	}
	
	if($('input:radio[name=smoker_2]:checked').val() == undefined){
		invalid_field_array.push('smoker_2');
		$(".smoker_2_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".smoker_2_cell").css('background-color','#FFF0CE');
	}

	if($('input:radio[name=person_2_plan_choose]:checked').val() == undefined){
		invalid_field_array.push('person_2_plan_choose');
		$(".person_2_plan_choose_cell").css('background-color','#EF755C');
		validation_flag = false;
	}else{
		$(".person_2_plan_choose_cell").css('background-color','#FFF0CE');
	}
	
	if(!bsbValidate($('#bsb_number').val())){
		////invalid_field_array.push('person_2_plan_choose');
		$("#bsb_number").css('background-color','#EF755C');
		$("#bsb_status").html('Should be 6 digits');
		validation_flag = false;
	}else{
		$("#bsb_number").css('background-color','#FFF0CE');
		$("#bsb_status").html(bsbValidate($('#bsb_number').val()));
	}
	
	
}



