﻿			function ZP_NewPuzzle_ButtonClicked(difficulty)
			{
				if (!difficulty)
				{
					$('new_st_puzzle_difficulty_level_div').toggle();
				}
				else
				{
					if (!Ajax.activeRequestCount)
					{
						var cmd = new NewPuzzle_Command(difficulty-1);
						CommandProcessor.execute( cmd );
					}
					$('new_st_puzzle_difficulty_level_div').hide();
				}
			}
			function ZP_CheckPuzzle_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new CheckForCorrectGrid_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_FillValidCandidates_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new FillValidCandidates_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_FillAllCandidates_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new FillAllCandidates_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_RemoveWrongValues_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new RemoveWrongValues_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_ReplaceWrongValues_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new ReplaceWrongValues_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_ClearAllCandidates_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new ClearAllCandidates_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_SolvePuzzle_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new SolveGrid_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_RestartPuzzle_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new RestartPuzzle_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_GetHint_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new GetHint_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_Undo_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new Undo_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_SaveToFile_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new SaveToFile_Command();
					CommandProcessor.execute( cmd );
				}
			}
			function ZP_OpenFile_ButtonClicked()
			{
				if (!$('uploadpuzzle').visible())
				{
					$('uploadpuzzle').show();
				}
				return false;
			}
			function ZP_Help_ButtonClicked()
			{
				document.location = "http://sudoku.bg/index.php?option=com_content&view=frontpage&Itemid=3";
			}
			function ZP_About_ButtonClicked()
			{
				document.location = "http://www.sudoku.bg";
			}

			function SwitchCandidateTitularsBtn_click()
			{
				togglePencilMarkTypeMode();
			}
			function ZP_InfoPuzzle_ButtonClicked()
			{
				if (!Ajax.activeRequestCount)
				{
					var cmd = new InfoPuzzle_Command();
					CommandProcessor.execute( cmd );
				}
			}
			
			function upload_puzzle()
			{
				Element.hide($('uploadpuzzle'));
				var submit_options = new Object();
				submit_options.onComplete = function(trans){
					if (bb.currentHintData)
					{
						bb.ClearHint(bb.currentHintData);
					}
					bb.NewGame(trans.responseText);
					var cmd = new FillValidCandidates_Command();
					CommandProcessor.execute( cmd );
					GameBoard_ButtonClicked();
					Element.hide($('uploadpuzzle'));
				};
				submit_options.container = null;
			
				new Form.IframeSubmit(document.uploadpuzzle, submit_options);
			}	