var binded = false;
$(function(){
	$(document).bind('keydown', 'Ctrl+d', function(){ 
		if(binded == true)
		{
			unbindKeys();
			popup.close();
		}
		else
		{
			popup.show('developerShowDeveloper', {});
		}
		return false;
	});	
});

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();														
														popup.close();
													}
													else
													{
														$("#module_error").html(data);	
													}
											  }
		);	
	}
	
}

function addModel()
{
	var model = $("#model_class").val();
	var table = $("#model_table").val();
	
	if(table == "")
	{
		$("#model_table_error").text("Enter a table name!");
	}
	else if(model == "")
	{
		$("#model_class_error").text("Enter a class name!");
	}
	else
	{
		$.get(pathPrefix + "/Ajax/developerExecuteAction", {
			type : "model",
			table : table,
			model : model
		}, function(data) {
			if(data.length == 0)
			{
				unbindKeys();
				popup.close();
			}
			else
			{
				$("#model_table_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();
														popup.close();
													}
													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();
														popup.close();
													}
													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();
			popup.close();
			return false;
		}																			
	);
	binded = true;
}

