MAX_RADIO_BUTTONS = 5;
 MAX_SURVEY_QUESTIONS = 15;
 MAX_SURVEY_ANSWERS = 12;
 GMSURVEY_NA_SPACING = 60;
 GMSURVEY_NA_SHORT_SPACING = 40;
 GMSURVEY_RATING_SPACING = 76;
 GMSURVEY_RATING_SHORT_SPACING = 25;
 
 UIPanelWindows["GMSurveyFrame"] = { area = "center", pushable = 0, whileDead = 1 };
 
 function GMSurveyFrame_Update()
 	GMSurveyFrame.numQuestions = 0;
 	local surveyQuestion;
 	local questionFrame, questionFrameText;
 	for i=1, MAX_SURVEY_QUESTIONS do
 		surveyQuestion = GMSurveyQuestion(i);
 		questionFrame = _G["GMSurveyQuestion"..i];
 		if ( surveyQuestion ) then
 			GMSurveyFrame.numQuestions = GMSurveyFrame.numQuestions + 1;
 			questionFrame.selectedRadioButton = nil;
 			questionFrameText = _G["GMSurveyQuestion"..i.."Text"];
 			questionFrameText:SetText(surveyQuestion);
 			for j=1, MAX_SURVEY_ANSWERS do
 				local surveyAnswer = GMSurveyAnswer(i,j);
 				local answerFrame = _G["GMSurveyQuestion"..i.."RadioButton"..(j-1)];
 				if ( surveyAnswer ) then
 					_G["GMSurveyQuestion"..i.."RadioButton"..(j-1).."Score"]:SetText(surveyAnswer);
 					answerFrame:Show();
-					answerFrame:SetChecked(0);
+					answerFrame:SetChecked(false);
 				else
 					answerFrame:Hide();
 				end
 			end
 			GMSurveyQuestion_SpaceAnswers(questionFrame, i);
 			questionFrame:SetHeight(questionFrameText:GetHeight() + 60);
 			questionFrame:Show();
 		else
 			questionFrame:Hide();
 		end
 	end
 	GMSurveySubmitButton:Disable();
 
 	if ( GMSurveyFrame.numQuestions == 0 ) then
 		-- Had no questions
 		return;
 	end
 	GMSurveyAdditionalCommentsText:SetPoint("TOPLEFT", "GMSurveyQuestion"..GMSurveyFrame.numQuestions, "BOTTOMLEFT", 10, -10);
 end
 
 function GMSurveyScrollFrame_OnLoad(self)
 	ScrollFrame_OnLoad(self);
 	self.scrollBarHideable = 1;
 
 	self:RegisterEvent("ADDON_LOADED");
 	self:SetScript("OnEvent", GMSurveyScrollFrame_OnEvent);
 end
 
 function GMSurveyScrollFrame_OnEvent(self, event, ...)
 	if ( event == "ADDON_LOADED" ) then
 		local addonName = ...;
 		if ( not addonName or (addonName and addonName ~= "Blizzard_GMSurveyUI") ) then
 			return;
 		end
 
 		-- expand and contract scroll frame contents depending on scroll bar visibility
 		local scrollBar = _G[self:GetName().."ScrollBar"];
 		scrollBar.Show = 
 			function (self)
 				local scrollFrame = self:GetParent();
 				local scrollFrameParent = scrollFrame:GetParent();
 				local scrollBarOffset = scrollFrame.scrollBarWidth;
 				-- adjust scroll frame width
 				scrollFrame:SetPoint("BOTTOMRIGHT", scrollFrameParent, "BOTTOMRIGHT", -55 - scrollBarOffset, 48);
 				scrollFrame:GetScrollChild():SetWidth(scrollFrame:GetWidth());
 
 				getmetatable(self).__index.Show(self);
 			end
 		scrollBar.Hide = 
 			function (self)
 				local scrollFrame = self:GetParent();
 				local scrollFrameParent = scrollFrame:GetParent();
 				-- adjust scroll frame width
 				scrollFrame:SetPoint("BOTTOMRIGHT", scrollFrameParent, "BOTTOMRIGHT", -55, 48);
 				scrollFrame:GetScrollChild():SetWidth(scrollFrame:GetWidth());
 
 				getmetatable(self).__index.Hide(self);
 			end
 
 		self.scrollBarWidth = 25;	-- looks better than actual scroll bar width
 
 		-- force an update
 		ScrollFrame_OnScrollRangeChanged(self);
 
 		-- we don't need this event any more
 		self:UnregisterEvent(event)		
 	end
 end
 
 function GMSurveyQuestion_OnLoad(self)
 	self:SetBackdropBorderColor(0.5,0.5,0.5);
 	self:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b);
 
 	local name = self:GetName();
 	self.radioButtons = {
 		[0] = _G[name.."RadioButton0"],
 		_G[name.."RadioButton1"],
 		_G[name.."RadioButton2"],
 		_G[name.."RadioButton3"],
 		_G[name.."RadioButton4"],
 		_G[name.."RadioButton5"],
 		_G[name.."RadioButton6"],
 		_G[name.."RadioButton7"],
 		_G[name.."RadioButton8"],
 		_G[name.."RadioButton9"],
 		_G[name.."RadioButton10"],
 		_G[name.."RadioButton11"],
 	};
 end
 
 function GMSurveyQuestion_SpaceAnswers(self, questionNumber)
 	local radioButtons = self.radioButtons;
 	
 	radioButtons[0]:SetPoint("BOTTOMLEFT", self, "BOTTOMLEFT", 30, 10);
 	for j=1, MAX_SURVEY_ANSWERS -1 do
 		radioButtons[j]:SetPoint("LEFT", radioButtons[j-1], "RIGHT", GMSURVEY_RATING_SPACING, 0);
 	end
 end
 
 function GMSurveyRadioButton_OnClick(self)
 	local owner = self:GetParent();
 	local id = self:GetID();
 	if ( id == owner.selectedRadioButton ) then
 		return;
 	else
 		owner.selectedRadioButton = id;
 	end
 	local radioButtons = owner.radioButtons;
 	local radioButton;
 	for i=0, #radioButtons do
 		radioButton = radioButtons[i];
 		if ( i == owner.selectedRadioButton ) then
-			radioButton:SetChecked(1);
+			radioButton:SetChecked(true);
 			radioButton:Disable();
 		else
-			radioButton:SetChecked(0);
+			radioButton:SetChecked(false);
 			radioButton:Enable();
 			PlaySound("igMainMenuOptionCheckBoxOn");
 		end
 	end
 	-- check if all questions have an answer selected to enable the Submit button
 	for i=1, MAX_SURVEY_QUESTIONS do
 		local questionFrame = _G["GMSurveyQuestion"..i];
 		if ( questionFrame:IsShown() and not questionFrame.selectedRadioButton ) then
 			return;
 		end
 	end
 	GMSurveySubmitButton:Enable();
 end
 
 function GMSurveyCommentScrollFrame_OnLoad(self)
 	self.scrollBarHideable = 1;
 
 	self:RegisterEvent("ADDON_LOADED");
 	self:SetScript("OnEvent", GMSurveyCommentScrollFrame_OnEvent);
 end
 
 function GMSurveyCommentScrollFrame_OnEvent(self, event, ...)
 	if ( event == "ADDON_LOADED" ) then
 		local addonName = ...;
 		if ( not addonName or (addonName and addonName ~= "Blizzard_GMSurveyUI") ) then
 			return;
 		end
 
 		-- expand and contract scroll frame contents depending on scroll bar visibility
 		local scrollBar = _G[self:GetName().."ScrollBar"];
 		scrollBar.Show = 
 			function (self)
 				local scrollFrame = self:GetParent();
 				-- adjust scroll frame width
 				scrollFrame:SetPoint("BOTTOMRIGHT", scrollFrame:GetParent(), "BOTTOMRIGHT", -10 - self:GetWidth(), 5);
 				local scrollFrameWidth = scrollFrame:GetWidth();
 				scrollFrame:GetScrollChild():SetWidth(scrollFrameWidth);
 				-- adjust content width
 				GMSurveyFrameComment:SetWidth(scrollFrameWidth);
 				getmetatable(self).__index.Show(self);
 			end
 		scrollBar.Hide = 
 			function (self)
 				local scrollFrame = self:GetParent();
 				-- adjust scroll frame width
 				scrollFrame:SetPoint("BOTTOMRIGHT", scrollFrame:GetParent(), "BOTTOMRIGHT", -10, 5);
 				local scrollFrameWidth = scrollFrame:GetWidth();
 				scrollFrame:GetScrollChild():SetWidth(scrollFrameWidth);
 				-- adjust content width
 				GMSurveyFrameComment:SetWidth(scrollFrameWidth);
 				getmetatable(self).__index.Hide(self);
 			end
 
 		-- force an update
 		ScrollFrame_OnScrollRangeChanged(self);
 
 		-- we don't need this event any more
 		self:UnregisterEvent(event)		
 	end
 end
 
 function GMSurveySubmitButton_OnClick()
 	for i=1, GMSurveyFrame.numQuestions do
 		GMSurveyAnswerSubmit(i, _G["GMSurveyQuestion"..i].selectedRadioButton, "");
 	end
 	GMSurveyCommentSubmit(GMSurveyFrameComment:GetText());
 	GMSurveySubmit();
 	TicketStatusFrame.hasGMSurvey = false;
 	HideUIPanel(GMSurveyFrame);
 	UIErrorsFrame:AddMessage(GMSURVEY_SUBMITTED, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1.0);
 end