var shower_screen_dev = false;

//------------------------------------------
function ShowerScreenOnLoading() {
	if (document.design_wizard_form != undefined)
		ShowModalLayerLoading();
}

function GetDesignWizardFormElement() {
	return (document.design_wizard_form != undefined) ? document.design_wizard_form : document.sink_form;
}
//------------------------------------------
function ShowerScreenInputOnKeyDown(e,elem) {
	var key = (e.keyCode == undefined || e.keyCode == null) ? e.which : e.keyCode;
	if (key == 13)	// return
		elem.blur();
}
//------------------------------------------
function ShowerScreenModelOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'model_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ShowerScreenOrientationOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'orientation_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ShowerScreenGlassTypeOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'glass_type_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function HingedPresetOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'hinged_preset_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function DoorPresetOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'door_preset_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function FixedPresetOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'fixed_preset_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ReturnPresetOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'return_preset_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ShowerScreenReturnStyleOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'return_style_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ShowerScreenHingedStyleOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'hinged_style_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ShowerScreenFixedStyleOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'fixed_style_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}
//------------------------------------------
function HandleOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'handle_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function HingedPanelShelfOnchange(elem, min_width) {
	var form_element = GetDesignWizardFormElement();
	
	if (elem.checked) {
		if (form_element.hp_width != null) {
			var width_elem = (form_element.hp_width.length > 1) ? form_element.hp_width[1] : form_element.hp_width;
			var width = parseInt(width_elem.value);
			if (width < min_width) {
				if (confirm('The hinged panel has a width of ' + width + 'mm, which is too small to fit a shelf. Minimum width to fit a shelf is ' + min_width + 'mm.\nWould you like to change the hinged panel\'s width to ' + min_width + 'mm.')) {
					form_element.hp_shelf.value = (elem.checked) ? 1 : 0;
					width_elem.value = min_width;
					form_element.action.value = 'hinged_panel_width_changed';
					
					ShowerScreenOnLoading();
					form_element.submit();
					return;
				}
				elem.checked = false;
				return;
			}
		}
	} else {
		if (!shower_screen_dev) {
			if (!confirm('A shelf will add stability and strength to the hinged panel when opening and closing the door.\nDo you want to continue to remove the shelf?')) {
				elem.checked = true;
				return;
			}
		}
	}
	
	form_element.hp_shelf.value = (elem.checked) ? 1 : 0;
	form_element.action.value = 'shelf_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function ReturnPanelShelfOnchange(elem, min_width) {
	var form_element = GetDesignWizardFormElement();
	
	if (elem.checked) {
		if (form_element.rp_width != null) {
			var width_elem = (form_element.rp_width.length > 1) ? form_element.rp_width[1] : form_element.rp_width;
			var width = parseInt(width_elem.value);
			if (width < min_width) {
				if (confirm('The return panel has a width of ' + width + 'mm, which is too small to fit a shelf. Minimum width to fit a shelf is ' + min_width + 'mm.\nWould you like to change the return panel\'s width to ' + min_width + 'mm.')) {
					form_element.rp_shelf.value = (elem.checked) ? 1 : 0;
					width_elem.value = min_width;
					form_element.action.value = 'return_panel_width_changed';
					
					ShowerScreenOnLoading();
					form_element.submit();
					return;
				}
				elem.checked = false;
				return;
			}
		}
	}
	
	form_element.rp_shelf.value = (elem.checked) ? 1 : 0;
	form_element.action.value = 'shelf_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function FixedPanelShelfOnchange(elem, min_width) {
	var form_element = GetDesignWizardFormElement();
	
	if (elem.checked) {
		if (form_element.fp_width != null) {
			var width_elem = (form_element.fp_width.length > 1) ? form_element.fp_width[1] : form_element.fp_width;
			var width = parseInt(width_elem.value);
			if (width < min_width) {
				if (confirm('The fixed panel has a width of ' + width + 'mm, which is too small to fit a shelf. Minimum width to fit a shelf is ' + min_width + 'mm.\nWould you like to change the fixed panel\'s width to ' + min_width + 'mm.')) {
					form_element.fp_shelf.value = (elem.checked) ? 1 : 0;
					width_elem.value = min_width;
					form_element.action.value = 'fixed_panel_width_changed';
					
					ShowerScreenOnLoading();
					form_element.submit();
					return;
				}
				elem.checked = false;
				return;
			}
		}
	}
	
	form_element.fp_shelf.value = (elem.checked) ? 1 : 0;
	form_element.action.value = 'shelf_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function ReturnPanelFloorBracketOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.rp_fbracket.value = (elem.checked) ? 1 : 0;
	form_element.action.value = 'floor_bracket_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function FixedPanelFloorBracketOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.fp_fbracket.value = (elem.checked) ? 1 : 0;
	form_element.action.value = 'floor_bracket_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function DoorClearanceOnchange(elem, orientation, dir_nesting) {
	var form_element = GetDesignWizardFormElement();
	
	if (!shower_screen_dev) {
		var index = elem.selectedIndex;
		var original = parseInt(elem.attributes.getNamedItem('original').value);
		if (index != 0 && original == 0 && !confirm('Using a PVC and Water Bar may reduce the cost of your custom shower screen.\nDo you want to continue with the door clearance change?')) {
			elem.selectedIndex = original;
			return;
		}
	}
	
	form_element.action.value = 'door_clearance_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function DoorPanelWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (!shower_screen_dev) {
			var value = parseInt(elem.value);
			var original = parseInt(elem.attributes.getNamedItem('original').value);
			if (value != 600 && original == 600 && !confirm('Keeping the door panel width at 600mm may reduce the cost of your custom shower screen.\nDo you want to continue with the width change?')) {
				elem.value = original;
				return;
			}
		}
		
		form_element.action.value = 'door_panel_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}
//.....
function HingedPanelWidthOnchange(elem, min_width) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		if (!shower_screen_dev) {
			var width = parseInt(elem.value);
			var original = parseInt(elem.attributes.getNamedItem('original').value);
			var shelf_elem = document.getElementById('hp_shelf_checkbox');
			if (width < min_width && shelf_elem.checked &&  !confirm('The hinged panel has a width of ' + width + 'mm, which is too small to fit a shelf and will automatically be removed.\nA shelf will add stability and strength to the hinged panel when opening and closing the door. The minimum hinged panel width to fit a shelf is ' + min_width + 'mm.\nDo you want to continue with the width change?')) {
				elem.value = original;
				return;
			}
		}
		
		form_element.action.value = 'hinged_panel_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function HingedPanelHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (!shower_screen_dev) {
			var value = parseInt(elem.value);
			var original = parseInt(elem.attributes.getNamedItem('original').value);
			if (value != 2000 && original == 2000 && !confirm('Keeping the hinged panel height at 2000mm may reduce the cost of your custom shower screen.\nDo you want to continue with the height change?')) {
				elem.value = original;
				return;
			}
		}
		form_element.action.value = 'hinged_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function HingedPanelDoglegWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'hinged_panel_dogleg_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function HingedPanelDoglegMainHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)'))
				form_element.action.value = 'hinged_panel_height_changed';
			else
				form_element.action.value = 'no_linked_heights_hinged_panel_height_changed';
		} else
			form_element.action.value = 'hinged_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function HingedPanelDoglegHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)'))
				form_element.action.value = 'hinged_panel_dogleg_height_changed';
			else
				form_element.action.value = 'no_linked_heights_hinged_panel_dogleg_height_changed';
		} else
			form_element.action.value = 'hinged_panel_dogleg_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

//.....
function FixedPanelWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'fixed_panel_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelDoglegWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'fixed_panel_dogleg_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (!shower_screen_dev) {
			var value = parseInt(elem.value);
			var original = parseInt(elem.attributes.getNamedItem('original').value);
			if (value != 2000 && original == 2000 && !confirm('Keeping the fixed panel height at 2000mm may reduce the cost of your custom shower screen.\nDo you want to continue with the height change?')) {
				elem.value = original;
				return;
			}
		}
		form_element.action.value = 'fixed_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelHalfsizeMainHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		form_element.action.value = 'fixed_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelHalfsizeHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		form_element.action.value = 'fixed_panel_half_size_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelDoglegMainHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)'))
				form_element.action.value = 'fixed_panel_height_changed';
			else
				form_element.action.value = 'no_linked_heights_fixed_panel_height_changed';
		} else
			form_element.action.value = 'fixed_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function FixedPanelDoglegHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)')) {
				form_element.action.value = 'fixed_panel_dogleg_height_changed';
			} else 
				form_element.action.value = 'no_linked_heights_fixed_panel_dogleg_height_changed';
		} else
			form_element.action.value = 'fixed_panel_dogleg_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

//.....
function ReturnPanelWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'return_panel_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelDoglegWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'return_panel_dogleg_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (!shower_screen_dev) {
			var value = parseInt(elem.value);
			var original = parseInt(elem.attributes.getNamedItem('original').value);
			if (value != 2000 && original == 2000 && !confirm('Keeping the return panel height at 2000mm may reduce the cost of your custom shower screen.\nDo you want to continue with the height change?')) {
				elem.value = original;
				return;
			}
		}
		form_element.action.value = 'return_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelHalfsizeMainHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		form_element.action.value = 'return_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelHalfsizeHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		form_element.action.value = 'return_panel_half_size_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelDoglegMainHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)'))
				form_element.action.value = 'return_panel_height_changed';
			else
				form_element.action.value = 'no_linked_heights_return_panel_height_changed';
		} else
			form_element.action.value = 'return_panel_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function ReturnPanelDoglegHeightOnchange(elem, allow_height_diff) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		if (shower_screen_dev && allow_height_diff != 0) {
			if (confirm('Do you want to make the shower screen height equal to the total height of the dog leg panel?\nYES(Ok) or NO(Cancel)')) {
				form_element.action.value = 'return_panel_dogleg_height_changed';
			} else 
				form_element.action.value = 'no_linked_heights_return_panel_dogleg_height_changed';
		} else
			form_element.action.value = 'return_panel_dogleg_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}
//.....
function RefHeightOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
		
		form_element.action.value = 'ref_height_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}
//------------------------------------------
function BaseWidthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'base_width_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

function BaseDepthOnchange(elem) {
	if (CustomIntegerInputOnchange(elem)) {
		var form_element = GetDesignWizardFormElement();
	
		form_element.action.value = 'base_depth_changed';
		
		ShowerScreenOnLoading();
		form_element.submit();
	}
}

//------------------------------------------
function FloorDesignOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'floor_design_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function FloorConditionOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'floor_condition_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

function WallConditionOnchange(elem) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'wall_condition_changed';
	
	ShowerScreenOnLoading();
	form_element.submit();
}

//------------------------------------------
function CustomIntegerInputOnchange(elem) {
	elem.value = strip_whitespace(elem.value);
	if (elem.value == '' || elem.value.match(/^[0-9\-\+]+$/)) {
		var value = remove_str_pad_left(elem.value, '0');		// remove leading zeros
		value = (elem.value == '' || value == '') ? 0 : parseInt(value);	// parse to integer value
		if (!isNaN(value)) {
			elem.value = value.toString();
			return true;
		}
	}
	var original = (elem.attributes != undefined) ? elem.attributes.getNamedItem('original') : null;
	elem.value = (original != null) ? original.value : '';
	alert('Invalid integer');
	return false;
}

//------------------------------------------
function CustomShowerScreenSubmit() {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'submit';
	
	form_element.submit();
}

//------------------------------------------
function DesignWizardQuestion(question_number) {
	var form_element = GetDesignWizardFormElement();
	
	form_element.action.value = 'question_number';
	form_element.question_number.value = question_number;
	
	form_element.submit();
}