
	
	//Load Filters
	function LoadFilters()
	{
		$('#thobber').text('Loading').fadeIn("fast");
		
		$.ajaxSetup({
 	 		error:function(XMLHttpRequest, textStatus, errorThrown){
		  		$('#FilterErrorAjaxMessage').text("Failed to filter list.");
		  		$('#FilterErrorAjaxMessage').fadeIn("slow").fadeTo(4000, 1.00).fadeOut("slow");
		  		$('#thobber').fadeOut("fast");
		  		updatingpage = false;
		  		continueToUpdateOnCheckScroll = false;
			}
		});
		
		var data = { 
					TicketType: $('#TicketType').val(), 
					RelatedTo: $('#RelatedTo').val(), 
					TicketState: $('#TicketState').val()
				};
		
		updatingpage = true;
		$.getJSON(base_url+'AjaxTicketFilter' , data , function(json)
			{
				FillDropDown($('#TicketType'), json.TicketType, json.TicketType_value);
				FillDropDown($('#RelatedTo'), json.RelatedTo, json.RelatedTo_value);
				FillDropDown($('#TicketState'), json.TicketState, json.TicketState_value);
				
				LoadTickets();
		  		//$('#FilterErrorAjaxMessage').text(json.search);
		  		//$('#FilterErrorAjaxMessage').fadeIn("slow").fadeTo(4000, 1.00).fadeOut("slow");
			});
	}
	
	//Change Sort Order
	function SortListBy(field)
	{
		if(SortField == field)
		{
			SortDirection = (SortDirection == "Desc" ? "Asc" : "Desc");
		}
		else
		{
			SortDirection = "Asc";
			SortField = field;
		}
		LoadTickets();
	}
	
	//Load Tickets
	function LoadTickets(Command)
	{
		if(Command==null){
			Command = 'Replace';
		}
		
		$('#thobber').text('Loading').fadeIn("fast");
		
		$.ajaxSetup({
 	 		error:function(XMLHttpRequest, textStatus, errorThrown){
		  		$('#FilterErrorAjaxMessage').text("Failed to load tickets.");
		  		$('#FilterErrorAjaxMessage').fadeIn("slow").fadeTo(4000, 1.00).fadeOut("slow");
		  		$('#thobber').fadeOut("fast");
		  		updatingpage = false;
		  		continueToUpdateOnCheckScroll = false;
			}
		});
		
		
		var data = { 
					TicketType: $('#TicketType').val(), 
					RelatedTo: $('#RelatedTo').val(), 
					TicketState: $('#TicketState').val(),
					Search: $('#Search').val(),
					SortField: SortField,
					SortDirection: SortDirection,
					Command: Command,
					TicketCount: $('#ticketItems ol').length,
					UpdateNumber: UpdateNumber
				};
		
		updatingpage = true;
		$.getJSON(base_url+'AjaxLoadTickets' , data , function(json)
			{
				var html = '';
				var css = 'gridRow';
				if($('#ticketItems ol:last').get(0) && Command == 'Append')
					css = ($('#ticketItems ol:last').get(0).className == 'gridRow' ? 'gridAlternate' : 'gridRow');
										
				for (var index in json) 
				{
					html += TicketHtml(json[index],css );
					css = (css == 'gridRow' ? 'gridAlternate' : 'gridRow');
				}
				
				if(html != "" || data['TicketCount'] > 0)
				{
					if( Command == 'Append' && $('#ticketItems #NoTicketFound').length == 0)
						html = $('#ticketItems').html()+html
						
					$('#ticketItems').html(html);
				}
				else
				{
					$('#ticketItems').html("<div id='NoTicketFound' style='clear:both;text-align:center;padding:10px;' class='BigInputLabel'>No Tickets Found.</div>");
				}
				
	  			$('#thobber').fadeOut("fast");
	  			
	  			updatingpage = false;
	  			
	  			if(json.length != UpdateNumber && Command == 'Append')
	  				continueToUpdateOnCheckScroll = false;
	  			if(Command == 'Replace')
	  				continueToUpdateOnCheckScroll = true;
			});
	}
	
	//Get Html for ticket
	function TicketHtml(ticket, css)
	{
		var url = base_url;
		
		var watch_list_img = "";
		if(parseInt(ticket['IsCC'])==1)
		{
			watch_list_img = "&nbsp;<img src=\""+media_url+"find.png\" border=0>";
		}
		
		var html = "<ol style=\"list-style-type: none; clear: left;\" class=\""+css+"\" id=\"ticket_"+ticket['id']+"\"> \
                    	<li style=\"width: 50px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\"> \
                                	"+ticket['id']+" \
                                </a> \
                            </div> \
                        </li> \
								\
                        <li style=\"text-align: left; width: 425px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\" title=\""+ticket['TypeName']+"\"> \
                                	"+ticket['title']+watch_list_img+" \
                                </a> \
                            </div> \
                        </li> \
                        <li style=\"width: 85px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\"> \
                                	<span style=\"color:"+ticket['StateColor']+";\">"+ticket['State']+"</span> \
                                </a> \
                            </div> \
                        </li> \
                        <li style=\"width: 152px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\"> \
                                	"+ticket['Assignee']+" \
                                </a> \
                            </div>  \
                        </li> \
						<li style=\"width: 120px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\">	\
                                	"+ticket['Submitter']+" \
                                </a> \
                            </div> \
                        </li> \
                        <li style=\"border-right: 0px solid rgb(191, 191, 191); width: 80px;\" class=\"ticket_element\"> \
                        	<div class=\"ticketitem\"> \
                            	<a href=\""+url+ticket['id']+"\" class=\"blocklink regularText\">	\
                                	<span title=\""+ticket['Date']+"\">"+ticket['Age']+"</span> \
                                 </a> \
                             </div> \
                        </li> \
                   </ol>";
		
		return html;
		
	}
	
	//When the scrollbar is close to the bottom, An AJAX call will get more data
	function checkScroll() 
	{
        var ScrollBarLength = $(window).height()*$(window).height()/$('body').get(0).scrollHeight;
        var nearBottomOfPage = ($(window).scrollTop() + ScrollBarLength)/$('body').get(0).scrollHeight  > .70;
	    
	    if (nearBottomOfPage && !updatingpage && continueToUpdateOnCheckScroll) 
	    {
	        LoadTickets('Append');
	    }
	}
	
	//Check for new tickets
	function LookForNewTickets() 
	{
	    if (!updatingpage) 
	    {
	        LoadTickets();
	    }
	}