﻿	var lastSortColumn = -1;
	var lastSortOrder = -1;
	var lastFilter = "";
	
	function highlightRows()
	{		
		var table = document.getElementById("main_table");
		var colored = false;
				
		for(i=1; i<table.rows.length; i++)
		{
			if (table.rows[i].style.display!="none")
			{								
				if (colored)
					table.rows[i].className="color";
				else
					table.rows[i].className="";
				colored = !colored;				
			}
			
		}				

	}
	
	function getTagsArray(tr)
	{
	
		var tags = document.getElementById(tr.id+"tags").innerHTML;
		if (tags)
			return tags;
		else
			return "";
	}
	
	
	//onTROv	
	function onTROv(id)
	{
		document.getElementById("d_"+id).innerHTML=' [x]';
		eval("clearTimeout(close_"+id+");");		
	}
	
	//onTROt
	function onTROt(id)
	{
	  eval("close_"+id+" = setTimeout(function(){document.getElementById('d_'+id).innerHTML='';}, 100);");
	}
	
	//onDeleteRollOver
	function onDROv(id)
	{		
		eval("clearTimeout(close_"+id+");");		
	}
	
	//onDeleteRollOut
	function onDROt(id)
	{
	  eval("close_"+id+" = setTimeout(function(){document.getElementById('d_'+id).innerHTML='';}, 100);");
	}
	
	function tagSelect(tag)
	{	
		
		var table = document.getElementById("main_table");
		
		if ((lastFilter==tag)||(tag=="Все"))
		{
			for(i=1; i<table.rows.length; i++)
			{
				table.rows[i].style.display="";
			}
			
			lastFilter="";
			
			var tags_links = document.getElementById("tags_links").getElementsByTagName("a");
			for (var i=0; i<tags_links.length; i++)
			{
				var ih = tags_links[i].innerHTML;
				ih = ih.replace("<b>", "");
				ih = ih.replace("</b>", "");
				ih = ih.replace("<B>", "");
				ih = ih.replace("</B>", "");
				tags_links[i].innerHTML = ih;
			}
		}	
		else
		{
			for(i=1; i<table.rows.length; i++)
			{	
				var tags = getTagsArray(table.rows[i]);
				if (tags.indexOf(tag)>=0)
				{
					table.rows[i].style.display="";
				}
				else
				{
					table.rows[i].style.display="none";
				}
			}	
			
			lastFilter=tag;
			
			var tags_links = document.getElementById("tags_links").getElementsByTagName("a");
			for (var i=0; i<tags_links.length; i++)
			{
				var ih = tags_links[i].innerHTML;
				if (ih==tag)
					tags_links[i].innerHTML = "<b>"+tag+"</b>";
				else
				{
					ih = ih.replace("<b>", "");
					ih = ih.replace("</b>", "");
					ih = ih.replace("<B>", "");
					ih = ih.replace("</B>", "");
					tags_links[i].innerHTML = ih;
				}
			}
			
		}	
		
		highlightRows();
	}
	
	function addTags()
	{		
		var new_tag = document.getElementById("new_tag").value;
				
		if (new_tag=="")
		{
			alert("Нужно какой-нибудь тег ввести, с пустым никак нельзя");
			return 0;
		}
		
		var user_ids = "";
		
		var table = document.getElementById("main_table");
		
		for(var i=1; i<table.rows.length; i++)
		{
			var checked = table.rows[i].getElementsByTagName("input")[0].checked;
			
			if (checked)
			{
				if (user_ids!="")
					user_ids+=",";
				user_ids +=	table.rows[i].getElementsByTagName("input")[0].value;				
			}
			
		}
		
		//alert('/ajax.php?action=addtag&humster='+user_ids+'&tag='+new_tag);
					
		var req = getXmlHttp();  
		req.open('GET', '/ajax.php?action=addtag&humster='+user_ids+'&tag='+new_tag, true);  
			 
		req.onreadystatechange = function() 
		{  
			if (req.readyState == 4) 
			{ 				
				if(req.status == 200) 
				{ 
					var xml = req.responseXML;
					var result = xml.getElementsByTagName("code")[0].firstChild.textContent;
					if (!result)
						result = xml.getElementsByTagName("code")[0].firstChild.text;
					if (result=="ok")
					{
					
						for(var i=1; i<table.rows.length; i++)
						{
							if (table.rows[i].getElementsByTagName("input")[0].checked)
							{
								var tr = table.rows[i];	
								var ind = tr.id.replace("tr", "");
								
								var tags_div = tr.getElementsByTagName("td")[1].getElementsByTagName("div")[1];
								var len = tags_div.getElementsByTagName("a").length;
								var s = tags_div.getElementsByTagName("a")[len-1].id;
								s = s.replace("d_", "");
								s = s.replace(ind+"_", "");								
								addTagToHumster(ind, Number(s)+1 , new_tag);
								addMainTag(new_tag);
							}
						}
					
						document.getElementById("new_tag").value = "";
					}
					else
					{
						alert("Возникла ошибка при добавлении тега: "+xml.getElementsByTagName("message")[0].firstChild.textContent);
					}
								
				}
			}
		}
		req.send(null);  	
			
	}
		
	function removeHumsters()
	{
		
		
		
		var user_ids = "";
		
		var table = document.getElementById("main_table");
		
		for(var i=1; i<table.rows.length; i++)
		{
			var checked = table.rows[i].getElementsByTagName("input")[0].checked;
			
			if (checked)
			{
				if (user_ids!="")
					user_ids+=",";
				user_ids +=	table.rows[i].getElementsByTagName("input")[0].value;				
			}
			
		}
				
		if (user_ids=="")
			return 0;
			
		var ok = confirm("Вы уверены, что хотите удалить эти профили из слежки?");
		
		if (!ok)
			return 0;
			
		//alert('/ajax.php?action=removehumster&id='+user_ids);
					
		var req = getXmlHttp();  
		req.open('GET', '/ajax.php?action=removehumster&id='+user_ids, true);  
			 
		req.onreadystatechange = function() 
		{  
			if (req.readyState == 4) 
			{ 			
				if(req.status == 200) 
				{ 
					var xml = req.responseXML;
					var result = xml.getElementsByTagName("code")[0].firstChild.textContent;
					if (!result)
						result = xml.getElementsByTagName("code")[0].firstChild.text;
						
					if (result=="ok")
					{
						for(var i=1; i<table.rows.length; i++)
						{
							if (table.rows[i].getElementsByTagName("input")[0].checked)
							{								
								table.deleteRow(i);
								i--;
							}
						}				
						highlightRows();
					}
					else
					{
						alert("Возникла ошибка при удалении профилей: "+xml.getElementsByTagName("message")[0].firstChild.textContent);
					}
								
				}
			}
		}
		req.send(null); 	
			
		
	}
	

		
	
	function getXmlHttp()
	{
		var xmlhttp;
		try 
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) 
		{
			try 
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) 
			{
				xmlhttp = false;
			}
		}
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
		{
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}
	
	
	
	function tagDelete(humsterid, tag)
	{		
			
		var req = getXmlHttp();  
		req.open('GET', '/ajax.php?action=removetag&humster='+humsterid+'&tag='+tag, true);  
			 
		req.onreadystatechange = function() 
		{  
			if (req.readyState == 4) 
			{ 
				if(req.status == 200) 
				{ 
					var xml = req.responseXML;
					var result = xml.getElementsByTagName("code")[0].firstChild.textContent;
					if (!result)
						result = xml.getElementsByTagName("code")[0].firstChild.text;
					
					if (result=="ok")
					{					
						var table = document.getElementById("main_table");
				
						for(var i=1; i<table.rows.length; i++)
						{
							if (Number(table.rows[i].getElementsByTagName("input")[0].value) == humsterid)
							{								
								var ind = table.rows[i].id.replace("tr", "");	
								removeTagFromHumster(ind, tag);
							}
						}
		
						var str = lastFilter;
						lastFilter = "";
						tagSelect(str);							
					
					}
					else
					{
						alert("Возникла ошибка при добавлении тега: "+xml.getElementsByTagName("message")[0].firstChild.textContent);
					}
					
					//alert("Ответ сервера: "+req.responseText);
				}
			}
		}
		req.send(null);  
	}
		
		
	
	function getColumnValue(row, column)
	{
		var cell = row.cells[column];
		var a = cell.getElementsByTagName("A")[0];
		return a.innerHTML;  	
	}
	
	function getCanonicalTime(time)
	{
		var s = time.split(" ");
		var hours = 0;
		var minutes = 0;
		var seconds = 0;
	  
		if (s.length==2)
		{
			seconds = s[0];
		}
	  
		if (s.length==4)
		{
			minutes = s[0];
			seconds = s[2];
		}
	  
		if (s.length==6)
		{
			hours = s[0];
			minutes = s[2];
			seconds = s[4];
		}
	  
		var res = new Object();
		res.h = new Number(hours);
		res.m = new Number(minutes);
		res.s = new Number(seconds);
		
		return res;
	
	}
	
	function compare(value1, value2)
	{
		if (value1.h>value2.h)
			return true;
		else
		{
			if (value2.h>value1.h)
				return false;
			else
			{			
				if (value1.m>value2.m)
					return true;
				else
				{
					if (value2.m>value1.m)
						return false;
					else
					{			
						if (value1.s>value2.s)
							return true;
						else
						{
							if (value2.s>value1.s)
								return false;
							else
							{
								return false;
							}
						}
					}
				}				
			}		
		}
	
	}
		
	function sortColumn(column)
	{
       
		var table = document.getElementById("main_table");
		var order = "none";
		
		if (lastSortColumn==column)
		{
			order = lastSortOrder;		
		}
		
		if (order=="none")
			order = "up";
		else
			if (order=="up")
				order = "down";
			else
				order = "up";
			
			
		for(var i=table.rows.length-2; i>=1; i--)
		for(var j=i; j<table.rows.length-1; j++)
		{    
			var value1 = getColumnValue(table.rows[j], column);
			var value2 = getColumnValue(table.rows[j+1], column);
			
			var comp1 = -1;
			
			if (column>=3)
			{
				value1 = getCanonicalTime(value1);
				value2 = getCanonicalTime(value2);
				comp1 = compare(value1, value2);
			}
			else
			{
				comp1 = (value1>value2);
			}
			
				
			if (((comp1)&&(order=="up"))||((!comp1)&&(order=="down")))
			{				
				table.tBodies[0].replaceChild(table.tBodies[0].replaceChild(table.tBodies[0].rows[j].cloneNode(true),table.tBodies[0].rows[j+1]).cloneNode(true),table.tBodies[0].rows[j]);
			}			
		}   

					
		for(var i=0; i<table.rows[0].cells.length; i++)
		{
			var header1 = table.rows[0].cells[i].innerHTML;			
			header1 = header1.replace(" ▲", "");
			header1 = header1.replace(" ▼", "");			
			table.rows[0].cells[i].innerHTML = header1;
		}
		
		var header = table.rows[0].cells[column].innerHTML;		
		if (order=="up")
			header += " &#9650;";
		else
			header += " &#9660;";		
		table.rows[0].cells[column].innerHTML = header;  
				
		lastSortColumn=column;
		lastSortOrder=order;

		highlightRows();	
	}
	
	function addTagToTr(tr_index, tag_index, tag)
	{
		var tag_id = tr_index+"_"+tag_index;
		eval("close_"+tag_id+"=0;");
		var tr = document.getElementById("tr"+tr_index);	
		var tags_div = tr.getElementsByTagName("td")[1].getElementsByTagName("div")[1];
		var humster_id = tr.getElementsByTagName("input")[0].value;
		
		var str = '<a id="t_'+tag_id;
		str+= '" href="javascript:tagSelect('+"'";
		str+= tag+"'" + ')" onmouseover="onTROv('+"'"+tag_id+"'"+');" onmouseout="onTROt('+"'"+tag_id+"'"+')">'+tag;
		str+= '</a><a id="d_'+tag_id+'" href="javascript:tagDelete('+humster_id+', '+"'"+tag+"'"+')" onmouseover="onDROv('+"'"+tag_id;
		str+= "'"+');" onmouseout="onDROt('+"'"+tag_id+"'"+');" class="sup"></a>';
 			
		if (tag_index>1)
			tags_div.innerHTML += ", ";
		tags_div.innerHTML+=str;  		
	}
		
	function addTagToHumster(tr_index, tag_index, tag)
	{
		var tags = document.getElementById("tr"+tr_index+"tags").innerHTML.split(',');
		var bayan = false;
		for(var j=0; j<tags.length; j++)
			if (tags[j]==tag)
				bayan = true;
		
		if (!bayan)
		{
			addTagToTr(tr_index, tag_index, tag)
			var tags_div = document.getElementById("tr"+tr_index+"tags");
			if (tags_div.innerHTML.length>0)
				tags_div.innerHTML+=",";
			tags_div.innerHTML+=tag;
		}
	}
		
	function removeTagFromHumster(tr_index, tag)
	{
		
		var tr = document.getElementById("tr"+tr_index);	
		var tags_div = tr.getElementsByTagName("td")[1].getElementsByTagName("div")[1];
		var arr = tr.getElementsByTagName("a");
		
		var ind = -1;
		for(var i=0; i<arr.length; i+=2)
		{
			if (arr[i].innerHTML==tag)
			{
				ind = i;
			}
		}
		
		if (ind>=0)
		{
			tags_div.removeChild(arr[ind]);
			tags_div.removeChild(arr[ind]);
		}
				
		var str = tags_div.innerHTML;
		str = str.replace(", ,",",");
		if (str[str.length-2]==",")
		{
			str=str.substring (0,str.length-2); 
		}
		
		
		if (str.indexOf("<") > str.indexOf(","))
		{
			str=str.substring(str.indexOf(",")+2, str.length);
		}

		tags_div.innerHTML = str;
			
		
		
		var tags = document.getElementById("tr"+tr_index+"tags").innerHTML.split(",");
				
		var str = "";
		for(var j=0; j<tags.length; j++)
		if (tags[j]!=tag)
		{
			if (str!="")
				str+=", ";
			str+=tags[j];
		}	
				
		document.getElementById("tr"+tr_index+"tags").innerHTML = str;
	}
		
	function onLoadComplete()
	{
		var table = document.getElementById("main_table");
		
		for(var i=1; i<table.rows.length; i++)
		{
			var tags = document.getElementById("tr"+i+"tags").innerHTML.split(',');
			
			for(var j=0; j<tags.length; j++)
			if (tags[j].length>0)
			{
				addTagToTr(i, j+1, tags[j])
			}		
		}	
		
		parseMainTags();
	}
	
	function parseMainTags()
	{
		var tags = "Все,"+document.getElementById("tags_links").innerHTML;
		tags = tags.split(',');
				
		var str = "";
		for(var j=0; j<tags.length; j++)
		if (tags[j].length>0)
		{
			if (str!="")
				str+=", ";
			str+='<a href="javascript:tagSelect('+"'"+tags[j]+"'"+')" class="normal dotted">'+tags[j]+'</a>';
		}
				
		document.getElementById("tags_links").innerHTML = str;
	}
	
	function addMainTag(tag)
	{
		var tags = document.getElementById("tags_links").getElementsByTagName("a");
		
		var bayan = false;
		for(var j=0; j<tags.length; j++)
			if (tags[j].innerHTML==tag)
				bayan = true;
		
		
		if (!bayan)
		{
			var str = document.getElementById("tags_links").innerHTML;
			if (str!="") str+=", ";
			str+='<a href="javascript:tagSelect('+"'"+tag+"'"+')" class="normal dotted">'+tag+'</a>'
			document.getElementById("tags_links").innerHTML = str;
		}

	
	}