/* load all torrents */
function torrentHandle()
{
	httpGet('torrentHandle.php','noid');
	setTimeout('torrentHandle();',30000);
}
torrentHandle();

/* load all downloads */
function downloads(argTimeout)
{
	setTimeout('downloads('+argTimeout+');',argTimeout*1000);
	
	/* if we are not in the download section */
	if (!document.getElementById('torrents'))
	{
		return;
	}
	flags = new Array
	(
		"flag-black.png",
		"flag-red.png",
		"flag-yellow.png",
		"flag-blue.png",
		"flag-green.png"
	);
	
	xml = httpGet('ajax/downloads.php');
	obj = parseXML(xml);
	d 	 = obj.getElementsByTagName('torrents')[0].childNodes;

	/* if we are not in the download section */
	if (!document.getElementById('torrents'))
	{
		return;
	}
	
	for (x=0;x<d.length;x++)
	{
		flag = d[x].childNodes[0].childNodes[0].nodeValue;
		/* as ID */
		document.getElementById('img'+x).src = 'pix/'+flags[flag];
		
		one = new Array(2,3,5,6,7,8,9,10);
		two = new Array(1,2,3,4,5,6,7,8);
		for (y=0;y<8;y++)
		{
			if (d[x].childNodes[two[y]].childNodes[0])
			{
				document.getElementById('trt'+x).childNodes[one[y]].innerHTML = d[x].childNodes[two[y]].childNodes[0].nodeValue;
			}
			else
			{
				document.getElementById('trt'+x).childNodes[one[y]].innerHTML = '';
			}		
		}
	}
}



/* href submit form and add action */
function downloadAction(argAction)
{
	listsSubmit('?page=downloads&action='+argAction,Array('rsses','torrents'));
}


/* href submit form and add action */
function filesAction(argAction,argPath,argGet,argPost)
{
	var url = '?page=files&path='+argPath+'&action='+argAction+argGet;
	listsSubmit(url,Array('dirs','files'),argPost);
}


function listsSubmit(argGet,argArrayIds,argPost)
{
	var x, y, list, content = argPost, menu, main;
	for (x=0;x<argArrayIds.length;x++)
	{
		list = document.getElementById(argArrayIds[x]);
		for (y=0;y<list.options.length;y++)
		{
			if (!list.options[y].selected)
			{
				continue;
			}
			content += '&'+argArrayIds[x]+'[]='+list.options[y].value;
		}
	}
	
	main = httpPost('ajax/page.php'+argGet,content);
	document.getElementById('main').innerHTML = main;
}



function setupTorrent(argObj,argFile)
{
	var name, list, content = '';
	for (name in argObj)
	{
		if (!argObj[name] || argObj[name].tagName != 'INPUT' || name == 'files[]' || name == 'preallocate' || name == 'skipHash')
		{
			continue;
		}
		content += name+'='+argObj[name].value+'&';
	}
	
	/* do we have more than one file in the torrent? */
	if (document.getElementById('files'))
	{
		list = document.getElementById('files');
		for (x=0;x<list.options.length;x++)
		{
			if (!list.options[x].selected)
			{
				continue;
			}
			content += 'files[]='+list.options[x].value+'&';
		}
	}
	
	main = httpPost('ajax/page.php?page=downloads&action=setupTorrent&file='+argFile,content+'preallocate='+(argObj.preallocate.checked?1:0)+'&skipHash='+(argObj.skipHash.checked?1:0))
	document.getElementById('main').innerHTML = main;
}


function setupRss(argObj,argFile)
{
	var name, content = '';
	for (name in argObj)
	{
		if (!argObj[name] || argObj[name].tagName != 'INPUT' || name == 'preallocate' || name == 'skipHash')
		{
			continue;
		}
		content += name+'='+argObj[name].value+'&';
	}

	
	main = httpPost('ajax/page.php?page=downloads&action=setupRss&file='+argFile,content+'preallocate='+(argObj.preallocate.checked?1:0)+'&skipHash='+(argObj.skipHash.checked?1:0))
	document.getElementById('main').innerHTML = main;
}

/* submit all input's in a form */
function submitForm(argObj,argExeptions)
{
	var name, content = '';
	for (name in argObj)
	{
		if (!argObj[name] || argObj[name].tagName != 'INPUT')
		{
			continue;
		}
		if (argObj[name].type == "checkbox")
		{
			if (argObj[name].checked)
			{
				content += name+'=1&';
			}
		}
		else
		{
			content += name+'='+argObj[name].value+'&';
		}		
	}
	content = content.substring(0,content.length-1);

	if (argObj.method == "get")
	{
		main = httpGet('ajax/page.php'+content);
		document.getElementById('main').innerHTML = main;
	}
	else if (argObj.method == "post")
	{
		action = argObj.action.split("/");
		action = action[action.length-1];

		main = httpPost('ajax/page.php'+action,content);
		document.getElementById('main').innerHTML = main;
	}
}


/* function to load our pages */
function page(argGet)
{
	menu(argGet);
	var main = httpGet('ajax/page.php'+argGet);
	document.getElementById('main').innerHTML = main;
}


/* load menu */
function menu(argGet)
{
	var menu = httpGet('ajax/menu.php'+argGet);
	document.getElementById('menu').innerHTML = menu;
}


function loading(argId,argStart)
{
	el = document.getElementById(argId);
	if (argStart || el.innerHTML == 'Loading...')
	{
		el.innerHTML = 'Loading';
		setTimeout("loading('"+argId+"');",200);
	}
	else if (el.innerHTML == 'Loading..' || el.innerHTML == 'Loading.' || el.innerHTML == 'Loading')
	{
		el.innerHTML += '.';
		setTimeout("loading('"+argId+"');",300);
	}
}

function stripTags(argString)
{
	return argString.replace(/<\/?[^>]+(>|$)/g,'');
}

function sort(argObj)
{
	var table, column, tbody, x, y, index, minTdValue, tdValue, test;
	table = argObj.parentNode.parentNode.parentNode.parentNode;
	tbody = table.getElementsByTagName('tbody')[0];
	
	/* get current column */
	for (x=0;x<table.getElementsByTagName('th').length;x++)
	{
		if (argObj.parentNode == table.getElementsByTagName('th')[x])
		{
			column = x;
			break;
		}
	}

	/* reverse order? */
	table.reverse = (table.reverse == 0?1:0);
	
	/* -1 for skipping total bar */
	for (x=0;x<tbody.rows.length-1;x++)
	{
		index			= x;
		minTdValue 	= stripTags(tbody.rows[x].cells[column].innerHTML);
		
		/* search throguh table for higher value */
		for (y=x+1;y<tbody.rows.length-1;y++)
		{
			tdValue = stripTags(tbody.rows[y].cells[column].innerHTML);
			
			/* get the biggest value */
			test = testValue(minTdValue,tdValue);
			
			/* reverse ? */
			if (table.reverse == 1)
			{
				test = (test == true?false:true);
			}			
			
			if (test)
			{
				index			= y;
				minTdValue 	= tdValue;
			}
		}
		
		/* if this row is below any above */ 
		if (index > x)
		{
			/* insert the row above current one */
			tbody.insertBefore(tbody.removeChild(tbody.rows[index]),tbody.rows[x]);
		}
	}
	
	
	/* go through the table and set dark/light rows */
	for (x=y=0;x<tbody.getElementsByTagName('tr').length;x++)
	{
		if (y == 1)
		{
			y = 0;
			tbody.getElementsByTagName('tr')[x].className = 'dark';
			continue;
		}
		y = 1;
		tbody.getElementsByTagName('tr')[x].className = '';		
	}
}

function testValue(argMinValue,argNewValue)
{
	var x = new Array(argMinValue,argNewValue);
	var y = x.sort();
	
	/* if the new value is first */
	if (y[0] == argNewValue && argMinValue != argNewValue)
	{
		return true;
	}
}

function var_dump(obj)
{
	var r = '';
	for (x in obj)
	{
		var r = r+x+'\n';
	}
	return r;
}

