﻿function Tag(id,name)
{
	this.id = id;
	this.name = name;
}

function setVisible(elm,bool)
{
	elm.style.display = (bool) ? 'block' : 'none';
}

function getVisible(elm)
{  
	return (elm.style.display == 'none') ? false : true;
}

// SearchDomainWithTags
var domainsPerPage = 5;
var domainCount = 0;
var pages = 0;
var diffNumbers = 5;
var selectedPage = 1;
var outofText = '';
var actualDomainCount = 0;

function createPager()
{
	pages = Math.ceil(domainCount / domainsPerPage);
	var elm = $('paging1');
	elm.empty();
	var start = Math.max(1, selectedPage - diffNumbers);
	var end = Math.min(pages, selectedPage + diffNumbers);
	
	for (var i = start; i <= end; i++)
	{
		if (i == start && i > 1)
		{
			createPagingLink(1).inject(elm);
			elm.appendText(' ... ');
		}
		else
			elm.appendText(' | ');
		if (i == selectedPage)
			new Element('strong', {'html': i}).inject(elm);
		else
			createPagingLink(i).inject(elm);
	}
	if (end < pages)
		elm.appendText(' ... ');
	else
		elm.appendText(' | ');
		
	createPagerCount();
}

function makeAddionalPager()
{
	$('paging2').empty();
	$('paging2_count').empty();
	
	var pagingClone = $('paging1').clone();
	var originalChildren = $('paging1').getChildren();
	var cloneChildren = pagingClone.getChildren();
	$each(cloneChildren, function(value, key)
	{
		value.cloneEvents(originalChildren[key], 'click');		  
	});
	pagingClone.inject($('paging2'));
	$('paging1_count').clone().inject($('paging2_count'));
}

function createPagerCount()
{
	var elm = $('paging1_count');
	elm.empty();
	
	var start = selectedPage+(selectedPage-1)*(domainsPerPage-1);
	elm.appendText(''+start);
	elm.appendText(' - '+Math.min((start+domainsPerPage-1),domainCount));
	elm.appendText(' '+outofText+' '+actualDomainCount);
}

function changePage(newPage)
{
	if (newPage <= pages && newPage >= 1)
	{
		if (selectedPage != newPage)
		{
			for (var i = selectedPage + (selectedPage - 1) * (domainsPerPage - 1); i <= selectedPage * domainsPerPage; i++)
			{
				if ($('domain' + i) != null)
					setVisible($('domain' + i),false)
			}
		}
		selectedPage = newPage;
		for (var i = selectedPage + (selectedPage - 1) * (domainsPerPage - 1); i <= (selectedPage) * domainsPerPage; i++)
		{
			if ($('domain' + i) != null)
			{
				setVisible($('domain'+i),true);
				if ($('domainImage' + i).firstChild.src == "")
					$('domainImage' + i).firstChild.src = 'DomainImage.aspx?DID=' + $('domainImage' + i).firstChild.id.substring(3);
			}
		}
		
		createPager();
	}
}

function createPagingLink(number)
{
	return new Element('a',
		{
			href: '#',
			html: '' + number,
			events: { 'click': function() { changePage(number); return false; } }
		});
}

function hideAllDomains()
{
	for (var i = 1; i <= domainCount; i++)
	{
		if ($('domain' + i) != null)
			setVisible($('domain' + i), false);
	}
}