
var glass_controls = {'glasses_use':-1, 'lens_thickness':-1, 'lens_colour':-1, 'lens_coating_scratch_res':-1, 'lens_coating_anti_reflective':-1, 'my_glasses_for':0, 'right_eye_sphere_sph':0, 'right_eye_cylinder_cyl':0, 'right_eye_axis':0, 'right_eye_near_add':0, 'left_eye_sphere_sph':0, 'left_eye_cylinder_cyl':0, 'left_eye_axis':0, 'left_eye_near_add':0, 'select_pd':0, 'magnification':0};

var lens_thickness_onames = [];
var lens_colour_onames = [];
var lens_colour_tints_onames = [];
var lens_colour_photochromatic_onames = [];
var lens_colour_graduated_tints_onames = [];
var lens_thickness_surcharge = [];
var lens_colour_surcharge = [];
var thin_lenses_sph_r = [];
var thin_lenses_sph_l = [];

function def_radio_value(id) {
	var i = 0;
	var result = -1;
	while (document.getElementById(''+id+'_'+i) != null) {
		if (document.getElementById(''+id+'_'+i).checked) {
			result = i;
			break;
		}
		i++;
	}
	return result;
}

function glasses_init() {

	for (var n in glass_controls) {
		if (n == "indexOf") continue;
		if (n == "lens_coating_scratch_res") {
			glass_controls[n] = document.getElementById(n).checked;
		} else if (n == "lens_coating_anti_reflective") {
			glass_controls[n] = document.getElementById(n).checked;
		} else if (n == 'right_eye_sphere_sph' || n == 'right_eye_cylinder_cyl' || n == 'right_eye_axis' || n == 'right_eye_near_add' || n == 'left_eye_sphere_sph' || n == 'left_eye_cylinder_cyl' || n == 'left_eye_axis' || n == 'left_eye_near_add' || n == 'select_pd' || n == 'magnification') {
			glass_controls[n] = document.getElementById(n).value;	
		} else {
			glass_controls[n] = def_radio_value(n);
		}
	}

} 

function check_glasses() {

	if (def_radio_value('glasses_use') != glass_controls['glasses_use']) {
		if (document.getElementById('glasses_use_0').checked || document.getElementById('glasses_use_1').checked || document.getElementById('glasses_use_2').checked || document.getElementById('glasses_use_3').checked || document.getElementById('glasses_use_4').checked) {
			document.getElementById('prescription_options').style.display = '';
			document.getElementById('magnification_options').style.display = 'none';
		} else {
	    	document.getElementById('prescription_options').style.display = 'none';
    		document.getElementById('magnification_options').style.display = '';
		}
	}

	 
	if (def_radio_value('lens_thickness') != glass_controls['lens_thickness']) {
		if ((thin_lenses_sph_r[document.getElementById('right_eye_sphere_sph').value] == 'N' || thin_lenses_sph_l[document.getElementById('left_eye_sphere_sph').value] == 'N') && (def_radio_value('lens_thickness') == 0 || def_radio_value('lens_thickness') == 1)) {
			alert(txt_thin_lenses_sphere_limit);
			if (glass_controls['lens_thickness'] != -1)  
				document.getElementById('lens_thickness_'+glass_controls['lens_thickness']).checked = true;
		}	
	}

	if (document.getElementById('right_eye_sphere_sph').value != glass_controls['right_eye_sphere_sph']) {
		if (thin_lenses_sph_r[document.getElementById('right_eye_sphere_sph').value] == 'N' && (def_radio_value('lens_thickness') == 0 || def_radio_value('lens_thickness') == 1)) {
            alert(txt_thin_lenses_sphere_limit);
            document.getElementById('right_eye_sphere_sph').value = glass_controls['right_eye_sphere_sph'];
        }	
	}

    if (document.getElementById('left_eye_sphere_sph').value != glass_controls['left_eye_sphere_sph']) {
        if (thin_lenses_sph_l[document.getElementById('left_eye_sphere_sph').value] == 'N' && (def_radio_value('lens_thickness') == 0 || def_radio_value('lens_thickness') == 1)) {
            alert(txt_thin_lenses_sphere_limit);
            document.getElementById('left_eye_sphere_sph').value = glass_controls['left_eye_sphere_sph'];
        }   
    }

	if (thin_lenses_sph_r[document.getElementById('right_eye_sphere_sph').value] == 'N' || thin_lenses_sph_l[document.getElementById('left_eye_sphere_sph').value] == 'N') {
		document.getElementById('txt_thin_lenses_sphere_limit').style.display = '';	
	} else {
		document.getElementById('txt_thin_lenses_sphere_limit').style.display = 'none';		
	}

	if (def_radio_value('lens_thickness') != glass_controls['lens_thickness']) {
		if (document.getElementById('lens_thickness_0').checked) {
			change_coating_options(false,false);
		} else if (document.getElementById('lens_thickness_1').checked) {
			change_coating_options(true,false);
		} else if (document.getElementById('lens_thickness_2').checked) {
			change_coating_options(true,false);
		} else if (document.getElementById('lens_thickness_3').checked) {
			change_coating_options(true,true);
		} else if (document.getElementById('lens_thickness_4').checked) {
			change_coating_options(true,true);
        }

		if (def_radio_value('lens_thickness') == 0) {
            document.getElementById('td_lens_colour_1').style.display = '';
            document.getElementById('td_lens_colour_2').style.display = '';
            document.getElementById('td_lens_colour_3').style.display = '';
            document.getElementById('td_lens_colour_4').style.display = '';
            document.getElementById('td_lens_colour_5').style.display = '';
		} else if (def_radio_value('lens_thickness') == 4) {
			document.getElementById('lens_colour_0').checked = true;	
			document.getElementById('td_lens_colour_1').style.display = 'none';
			document.getElementById('td_lens_colour_2').style.display = 'none';
			document.getElementById('td_lens_colour_3').style.display = 'none';
			document.getElementById('td_lens_colour_4').style.display = 'none';
			document.getElementById('td_lens_colour_5').style.display = 'none';
		} else {
			if (def_radio_value('lens_colour') == 4 || def_radio_value('lens_colour') == 5) 
				document.getElementById('lens_colour_0').checked = true;

            document.getElementById('td_lens_colour_1').style.display = '';
            document.getElementById('td_lens_colour_2').style.display = '';
            document.getElementById('td_lens_colour_3').style.display = '';
            document.getElementById('td_lens_colour_4').style.display = 'none';
			document.getElementById('td_lens_colour_5').style.display = 'none';
		}
	}

	var clr_id = def_radio_value('lens_colour');
	if (clr_id != glass_controls['lens_colour']) {
		if (clr_id == 1) {
			document.getElementById('lens_colour_tints').style.display = '';
		} else {
			document.getElementById('lens_colour_tints').style.display = 'none';
		}
	
        if (clr_id == 2) {
            document.getElementById('lens_colour_photochromatic').style.display = '';
        } else {
            document.getElementById('lens_colour_photochromatic').style.display = 'none';
        }
	
        if (clr_id == 3) {
            document.getElementById('lens_colour_graduated_tints').style.display = '';
        } else {
            document.getElementById('lens_colour_graduated_tints').style.display = 'none';
        }
	}

	

	glasses_init();
	update_you_added_area();
	update_total_cost_area();
}

function change_coating_options(free_scratch, free_anti_ref) {

	if (free_scratch) {
        document.getElementById('scratch_res_price').style.textDecoration = 'line-through';
        document.getElementById('scratch_res_free').style.display = '';
    	if (!scratch_res_selected) {
			document.getElementById('lens_coating_scratch_res').checked = true;
		}
	} else { 
		document.getElementById('scratch_res_price').style.textDecoration = 'none';
    	document.getElementById('scratch_res_free').style.display = 'none';
	}
	scratch_res_selected = false;

	if (free_anti_ref) {
	    document.getElementById('anti_reflective_price').style.textDecoration = 'line-through';
   		document.getElementById('anti_reflective_free').style.display = '';

	    if (!anti_reflective_selected) {
			document.getElementById('lens_coating_anti_reflective').checked = true;
		}
	} else {
		document.getElementById('anti_reflective_price').style.textDecoration = 'none';
        document.getElementById('anti_reflective_free').style.display = 'none';
	}
	anti_reflective_selected = false;
}

function update_you_added_area() {
	var res_str = '';
	plus_str = ' <span class=\"GlassPlusSign\">+</span> ';
	res_str = lens_thickness_onames[def_radio_value('lens_thickness')];
	if (def_radio_value('lens_colour') > 0) {
		res_str += plus_str;
		res_str += lens_colour_onames[def_radio_value('lens_colour')];
		if (def_radio_value('lens_colour') == 1) {
			res_str += ' ' + lens_colour_tints_onames[document.getElementById('lens_colour_tints').value];	
        } else if (def_radio_value('lens_colour') == 2) {
            res_str += ' ' + lens_colour_photochromatic_onames[document.getElementById('lens_colour_photochromatic').value];
		} else if (def_radio_value('lens_colour') == 3) {
			res_str += ' ' + lens_colour_graduated_tints_onames[document.getElementById('lens_colour_graduated_tints').value];	
		}
	}		
	if (document.getElementById('lens_coating_scratch_res').checked) {
		res_str += plus_str;
		res_str += scratch_res_oname;
	}	
	if (document.getElementById('lens_coating_anti_reflective').checked) {
        res_str += plus_str;
        res_str += anti_reflective_oname;
    }
	document.getElementById('you_added_1').innerHTML = res_str;
	document.getElementById('you_added_2').innerHTML = res_str;	
}

function update_total_cost_area() {
	var res_price = default_price;

	var lens_thickness_id = def_radio_value('lens_thickness');

	res_price += lens_thickness_surcharge[lens_thickness_id];

	res_price += lens_colour_surcharge[def_radio_value('lens_colour')];

	if (document.getElementById('lens_coating_scratch_res').checked && lens_thickness_id == 0) {
		res_price += scratch_res_surcharge; 
    }
    if (document.getElementById('lens_coating_anti_reflective').checked && lens_thickness_id != 3 && lens_thickness_id != 4) {
        res_price += anti_reflective_surcharge; 
    }
	
	document.getElementById('total_cost_1').innerHTML = currency_symbol + price_format(res_price);
	document.getElementById('total_cost_2').innerHTML = currency_symbol + price_format(res_price);
		
}

function widget_text_countme(text_field,helper_field,max_length) {
	if(text_field && text_field != null && helper_field && helper_field != null) {
		var field_id  = document.getElementById(text_field);
		var helper_id = document.getElementById(helper_field);
		if(field_id != null && helper_id != null) {
			var field_len = field_id.value.length;
			if(max_length == null) {
				max_length = 255;
			}
			if(field_len > max_length) {
				field_text = field_id.value;
				field_text = field_text.substring(0,max_length);
				field_id.value = field_text;
				field_len = field_id.value.length;
			}
			var remaining = (max_length - field_len);
			if(remaining < 0) {
				remaining = 0;
			}
			var remain_text = ((remaining == 1)?"1 character remains of the "+max_length+" character limit":remaining + " characters remain of the "+max_length+" character limit");
			if(remaining == 0) {
				helper_id.innerHTML = "&nbsp;No characters remain of the " + max_length + " character limit";
			} else {
				helper_id.innerHTML = "&nbsp;" + remain_text;
			}
		}
	}
	return true;
}

function ToggleArea(name) {
    if (document.getElementById(name) != null) { 
        if (document.getElementById(name).className == "display_0") {
            document.getElementById(name).className = "display_1";    
        } else {
            document.getElementById(name).className = "display_0";
        }
    }
}

function check_t_and_c_glasses () {

	return (document.getElementById('conditions_correct_prescription').checked && document.getElementById('conditions_age_sight').checked); 

}

