var binded = false;
$(function(){
	$(document).bind('keydown', 'Ctrl+d', function(){ loadFacebox(); return false;});	
});

function loadFacebox()
{	
	$.facebox(function() { 
      $.get('Ajax/developerGetTemplate',{'template':'developerFacebox'}, function(data) 
	  																	 { 	
																			$.facebox(data); 
																			$("#module_error").html("");
																			$("#item_error").html("");
																			$('#module').focus();
																			
																			if(binded == false)
																			{
																				bindKeys();
																			}
																			
																		 }
	  );
    });
}

function addModule()
{
	if($("#module").attr("value") == "")
	{
		$("#module_error").text("Enter a module name!");
	}	
	else
	{	
		$.get('Ajax/developerExecuteAction',{'type' : 'module',
											  'name' : $("#module").attr("value")},
											  function(data)
											  {												  					
													if(data.length == 0)
													{
														unbindKeys();														
														$(document).trigger('close.facebox');
													}
													else
													{
														$("#module_error").html(data);	
													}
											  }
		);	
	}
	
}
function addItem()
{
	if($("#item").attr("value") == "")
	{
		$("#item_error").text("Enter a filename!");
	}
	else
	{	
		$.get('Ajax/developerExecuteAction',{'type' : 'item',
											  'name' : $("#item").attr("value")},
											   function(data)
											   {
													if(data.length == 0)
													{
														unbindKeys();
														$(document).trigger('close.facebox');
													}
													else
													{
														$("#item_error").html(data);
													}
											   }
		);	
	}
}

function executeSql(_id)
{
	$("#sql_result_" + _id).css("color", "black");
	$("#sql_result_" + _id).html("Executing...");
	$.get('Ajax/developerExecuteAction',{'type' : 'sql',
										  'filename' : $("#sql_"+_id).text()},
										   function(data)
										   {
										   		if(data == "OK!")
												{
													$("#sql_result_" + _id).css("color", "green");
												}
												else
												{
													$("#sql_result_" + _id).css("color", "red");
												}
												$("#sql_result_" + _id).html(data);
										   }
		);	
}

function updateVersion()
{
	if($("#version_module").attr("value") == "")
	{
		if($("#version_version").attr("value") != "")
		{
			$("#version_version_error").text("");
		}
		$("#version_module_error").text("Enter a modulename!");
	}
	if($("#version_version").attr("value") == "")
	{
		if($("#version_module").attr("value") != "")
		{
			$("#version_module_error").text("");
		}
		$("#version_version_error").text("Enter a version!");
	}
	if($("#version_module").attr("value") != "" && $("#version_version").attr("value") != "")
	{
		$.get('Ajax/developerExecuteAction',{'type' : 'version',
											  'name' : $("#version_module").attr("value"),
											  'version' : $("#version_version").attr("value")},
											   function(data)
											   {
													if(data.length == 0)
													{
														unbindKeys();
														$(document).trigger('close.facebox');
													}
													else
													{
														$("#version_version_error").html(data);
													}
											   }
			);	
	}
}

function unbindKeys()
{
	$('#module').unbind('keydown', 'return', function(){});
	$('#item').unbind('keydown', 'return', function(){});
	$('#version_module').unbind('keydown', 'return', function(){});
	$('#version_version').unbind('keydown', 'return', function(){});
	$('#module').unbind('keydown', 'tab', function(){});
	$('#item').unbind('keydown', 'tab', function(){});
	$('#version_module').unbind('keydown', 'tab', function(){});
	$('#version_version').unbind('keydown', 'tab', function(){});
	$('#facebox_add').unbind('keydown', 'esc', function(){});
	binded = false;
}

function bindKeys()
{	
		$('#module').bind('keydown', 'return', function()
		{
			addModule(); 
			return false;
		}																			
		);
		$('#item').bind('keydown', 'return', function()
		{
			addItem(); 
			return false;
		}																			
		);	
		$('#version_module').bind('keydown', 'return', function()
		{
			updateVersion(); 
			return false;
		}																			
		);
		$('#version_version').bind('keydown', 'return', function()
		{
			updateVersion(); 
			return false;
		}																			
		);		
		$('#module').bind('keydown', 'tab', function()
		{
			$('#item').focus(); 
			return false;
		}																			
		);
		$('#item').bind('keydown', 'tab', function()
		{
			$('#version_module').focus(); 
			return false;
		}																			
		);
		$('#version_module').bind('keydown', 'tab', function()
		{
			$('#version_version').focus(); 
			return false;
		}																			
		);
		$('#version_version').bind('keydown', 'tab', function()
		{
			$('#module').focus(); 
			return false;
		}																			
		);
		$('#facebox_add').bind('keydown', 'esc', function()
		{
			unbindKeys();
			$(document).trigger('close.facebox'); 
			return false;
		}																			
	);
	binded = true;
}
