// JavaScript Document
var Pds = {
	pageIndex : 1,
	name: '',
	managers: new Array(),
	types: new Array(),
	assetTypes: new Array(),
	sortExpression: '',
	
	
	reqPageIndex: 1,
	reqName: '',
	reqEmail: '',
	reqMembersOnly : 0,
	reqPostalOnly : 0,
	reqSortExpression: '',
	
	saveUrl : '',
	saveFileUrl: '',
	deleteUrl : '',
	loadUrl : '',
	loadRequestUrl: '',
	requestToggleStatusUrl : '',
	getSingleUrl: '',
	fileDeleteUrl : '',
	fileLoadUrl : '',
	isPublic : 1,
	
	toggleRequestsSearch: function()
	{
		if($('#requests_search').css('display') == 'none')
		{
			$('#requests_search').slideDown('fast');
		}
		else
		{
			$('#requests_search').slideUp('fast');
		}
	},
	
	loadRequestScreen: function()
	{
		$('#record_entry').slideUp('fast', function()
		{
			$('#record_list').slideUp('fast', function()
			{
				$('#requests_list').slideDown('fast');
			});
		});
	},
	
	pageRequests: function(index)
	{
		$U.showProgress();
		Pds.reqPageIndex = index;
		Pds.loadRequestList(true);
	},
	
	deleteRequest: function(id)
	{
		$U.showProgress();
		
		$.post(Pds.requestDeleteUrl, {'id': id}, function(response)
		{
			if(response.succeed)
			{
				$('#entry_message').fadeOut('fast', function()
				{
					Pds.loadRequestList(true);
				});
			}
			else
			{
				message('request_message', response.message, 'error');
				$U.hideProgress();
			}
		}, 'json');
	},
	
	toggleTrackStatus: function(id)
	{
		$U.showProgress();
		
		$.post(Pds.requestToggleStatusUrl, {'id': id}, function(response)
		{
			if(response.succeed)
			{
				$('#entry_message').fadeOut('fast', function()
				{
					Pds.loadRequestList(true);
				});
			}
			else
			{
				message('request_message', response.message, 'error');
				$U.hideProgress();
			}
		}, 'json');
	},
	
	viewAllRequests: function()
	{
		$U.showProgress();
		
		Pds.reqPageIndex = 1;
		Pds.reqSortExpression = '';
		Pds.reqName = '';
		Pds.reqEmail = '';
		Pds.reqPostalOnly = 0;
		Pds.reqMembersOnly = 0;
		
		Pds.loadRequestList(true);
	},
	
	searchRequests: function()
	{
		$U.showProgress();
		
		Pds.reqPageIndex = 1;
		Pds.reqSortExpression = '';
		Pds.reqName = $U.text('txtReqName');
		Pds.reqEmail = $U.text('txtReqEmail');
		Pds.reqPostalOnly = 0;
		Pds.reqMembersOnly = 0;
		
		if($U.checked('chkOnlyMember'))
		{
			Pds.reqMembersOnly = 1;
		}
		
		if($U.checked('chkOnlyPost'))
		{
			Pds.reqPostalOnly = 1;
		}
		
		Pds.loadRequestList(true);
	},
	
	loadRequestList: function(hideProgress)
	{
		$.post(Pds.loadRequestUrl, 
			   {'pageIndex' : Pds.reqPageIndex, 
			   'sortExpression' : Pds.reqSortExpression,
			   'name' : Pds.reqName,
			   'email': Pds.reqEmail,
			   'membersOnly' : Pds.reqMembersOnly,
			   'nonCompletedOnly' : Pds.reqPostalOnly}, 
		function(response)
		{
			$('#requests_list').html(response);
			
			if(hideProgress)
			{
				$U.hideProgress();
			}
		});
	},
	
	readyForAdd: function()
	{
		$('#panel_files').hide();
		
		$('#lnkGeneral').addClass('current');
		$('#lnkFiles').removeClass('current').hide();
		$('#entry_message').hide();
		
		$('#txtName, #cboType, #cboAssetType, #cboManager, #hdnId').val('');
		
		Pds.currentId = 0;
		
		$('#requests_list').slideUp('fast', function()
		 {
			$('#record_list').slideUp('fast', function()
			  {
				  $('#record_entry').slideDown('fast');
			  });
		 });
	},
	
	readyForEdit: function(id)
	{
		$('#panel_files').hide();
		$('#lnkGeneral').addClass('current');
		$('#lnkFiles').removeClass('current').show();
		$('#entry_message').hide();
		
		busy('Working. Please wait...', 'progress');
		
		$.post(Pds.getSingleUrl, {'id' : id}, function(record)
		{
			$('#hdnId').val(record.id);
			$('#hdnPdsId').val(record.id);
			
			Pds.loadFileList();
			
			$('#txtName').val(record.name);
			$('#cboType').val(record.type.id);
			$('#cboAssetType').val(record.assetType.id);
			$('#cboManager').val(record.manager.id);
			$('#lnkFiles').html('Files (' + record.files.length+')');
			
			free();
			
			$('#record_list').slideUp('fast', function()
			{
				$('#record_entry').slideDown('fast');
			});
			
		},'json');
	},
	
	deletePds: function(id)
	{
		busy('Working. Please wait...', 'progress');
		
		$.post(Pds.deleteUrl, {'id' : id}, function(response)
		{
			if(response.succeed)
			{
				Pds.loadList(true);
			}
			else
			{
				message('list_message', response.message, 'error');
			}
		},'json');
	},
	
	deleteFile: function(id)
	{
		busy('Working. Please wait...', 'progress');
		
		$.post(Pds.fileDeleteUrl, {'id': id}, function(response)
		{
			if(response.succeed)
			{
				$('#entry_message').fadeOut('fast', function()
				{
					Pds.loadFileList(true);
				});
			}
			else
			{
				message('entry_message', response.message, 'error');
				free();
			}
		}, 'json');
	},
	
	save: function()
	{
		busy('Working. Please wait...', 'progress');
		$.post(Pds.saveUrl, $('#frmEntry').fastSerialize(), function(response)
		{
			if(response.succeed)
			{
				message('entry_message', response.message, 'message');
				
				Pds.loadList(true);
				
				if($('#hdnId').val() == '' || $('#hdnId').val() <= 0)
				{
					Pds.readyForEdit(response.data);
				}
			}
			else
			{
				message('entry_message', response.message, 'error');
				
				free();
			}
			
		},'json');
		
		return false;
	},
	
	viewList: function()
	{
		$('#requests_list').slideUp('fast', function()
		 {
			$('#record_entry').slideUp('fast', function()
			  {
				  $('#record_list').slideDown();
			  });
		 });
	},
	
	viewFiles: function()
	{
		$('#entry_message').fadeOut('fast', function()
		{
			$('#panel_details').slideUp('fast', function()
			{
				$('#panel_files').slideDown('fast', function()
				{
					$('#lnkGeneral').removeClass('current');
					$('#lnkFiles').addClass('current');
					$('#hdnPdsId').val($('#hdnId').val());
				});
			});			
		});
	},
	
	viewDetails: function()
	{
		$('#entry_message').fadeOut('fast', function()
		{
			$('#panel_files').slideUp('fast', function()
			{
				$('#panel_details').slideDown('fast', function()
				{
					$('#lnkFiles').removeClass('current');
					$('#lnkGeneral').addClass('current');
				});
			});
		});
	},
	
	loadList: function(hideProgress)
	{
		$.post(Pds.loadUrl, 
			   {'pageIndex': Pds.pageIndex, 
			   	'sortExpression': Pds.sortExpression, 
				'name' : Pds.name,
				'managers': Pds.managers.join(','),
				'types': Pds.types.join(','),
				'assetTypes': Pds.assetTypes.join(','),
				'isPublic': Pds.isPublic}, 
		function(data)
		{
			 $('#record_list').html(data);
			 
			 if(hideProgress)
			 {
				 free();
			 }
		 });
	},
	
	searchPds: function()
	{
		Pds.pageIndex = 1;
		Pds.name = $U.text('txtSearchName');
		Pds.managers = $U.listValues('cboSearchManager');
		Pds.assetTypes = $U.listValues('cboSearchAssetType');
		Pds.types = $U.listValues('cboSearchType');
		if(Pds.isPublic == 1)
		{
			busy('Working. Please wait...', 'progress');
			Pds.loadList(true);
		}
		else
		{
			$('#record_search').slideUp('fast', function()
			{
				busy('Working. Please wait...', 'progress');
				Pds.loadList(true);
			});		
		}
	},
	
	changeSelectState: function(ctl, state)
	{
		var ctl = $U.ctl(ctl);
		var total = ctl.options.length;
		for(var i = 0; i < total; i++)
		{
			ctl.options[i].selected = state;
		}
	},
	
	viewAll: function()
	{
		Pds.pageIndex = 1;
		Pds.name = '';
		Pds.managers = new Array();
		Pds.types = new Array();
		Pds.assetTypes = new Array();
		
		if(Pds.isPublic)
		{
			$U.listValues('cboSearchType', new Array());
			$U.listValues('cboSearchManager', new Array());
			$U.listValues('cboSearchAssetType', new Array());
			$U.text('txtSearchName', '');
		}
		
		busy('Working. Please wait...', 'progress');
		Pds.loadList(true);
	},
	
	toggleSearch: function()
	{
		if($('#record_search').css('display') == 'none')
		{
			$('#record_search').slideDown('fast');
		}
		else
		{
			$('#record_search').slideUp('fast');
		}
	},
	
	loadFileList: function(hideProgress)
	{
		$.post(Pds.fileLoadUrl, {'id': $('#hdnId').val()}, function(data)
		 {
			 $('#file_list').html(data);
			 
			 if(hideProgress)
			 {
				 free();
			 }
		 });
	},
	
	saveFile: function()
	{
		busy('Working. Please wait...', 'progress');
	},
	
	fileSaved: function(response)
	{
		var response = toJsonObj(response);
		
		if(response.succeed)
		{
			message('entry_message', response.message, 'message');
			
			var frm = $U.ctl('frmFile');
			
			frm.reset();
			
			$('#hdnPdsId').val($('#hdnId').val());
			
			Pds.loadFileList(true);
		}
		else
		{
			message('entry_message', response.message, 'error');
			
			free();
		}
	},
	
	page: function(index)
	{
		Pds.pageIndex = index;
		
		busy('Working. Please wait...', 'progress');
		Pds.loadList(true);
	},
	
	init: function()
	{
		$('#record_entry, #record_search, #requests_list').hide();
		$('#lnkFiles').bind('click', Pds.viewFiles);
		$('#lnkGeneral').bind('click', Pds.viewDetails);
		$('#frmEntry').bind('submit', Pds.save);
		$('#btnCancel').bind('click', Pds.viewList);
		$('#frmFile').bind('submit',Pds.saveFile);
		//$('#frmFile').attr('action',Pds.saveFileUrl);
	}
}