
var get_req;
var post_req;
var element;
var elements;

if (navigator.appName=="Netscape") {
	document.write("<style type='text/css'>body {overflow-y:scroll;}<\/style>");
}


function debugToggle(id) {
	if($j('div#'+id).css('display') == 'none') {
		if($j('div.debugContent').css('display') == 'none') {
			$j('div#'+id).toggle();
			$j('div.debugContent').slideDown();
		} else {
			$j('.debugContent > *').css('display', 'none');
			$j('div#'+id).toggle();
		}
	} else {
		$j('div.debugContent').slideUp();
		$j('div#'+id).toggle();
	}
}

function resize(id) {
	var textarea = document.getElementById(id);
	if (textarea.scrollHeight > textarea.clientHeight) {
		textarea.style.overflowY = 'hidden';
		textarea.style.height = textarea.scrollHeight + textarea.style.fontSize + 'px';
	}
}


function swapNav(id) {

	if($j("div.nav_button#but_"+id+" a:first").attr('id') != "selected") {
		$j("div.nav_button#but_"+id+" a:first").attr('id', 'selected');
		$j("div#nav_"+id).slideDown();
	} else {
		$j("div.nav_button#but_"+id+" a:first").attr('id', '');
		$j("div#nav_"+id).slideUp();
	}
	return false;
}



function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function doNothing() {

}

/*--- General --- swapItem function --------------------------------------*/
/*------------------------------------------------------------------------*/
/* This function toggles visibility on items. Simple enough.         */
/**************************************************************************/
function swapItem(ItemID) {
	if ($('item_'+ItemID).style.display=="") {
		$('item_'+ItemID).style.display="none";
		$('itemimage_'+ItemID).src=$('itemimage_'+ItemID).src.replace(/open/,"close");
	} else {
		$('item_'+ItemID).style.display="";
		$('itemimage_'+ItemID).src=$('itemimage_'+ItemID).src.replace(/close/,"open");
	}
}

/*--- General --- swapNews function --------------------------------------*/
/*------------------------------------------------------------------------*/
/* This function toggles visibility on news items. Simple enough.         */
/**************************************************************************/
function swapNews(NewsID) {
	if ($('news_'+NewsID).style.display=="") {
		$('news_'+NewsID).style.display="none";
		$('newsimage_'+NewsID).src=$('newsimage_'+NewsID).src.replace(/open/,"close");
	} else {
		$('news_'+NewsID).style.display="";
		$('newsimage_'+NewsID).src=$('newsimage_'+NewsID).src.replace(/close/,"open");
	}
}


function get_inc(url, params){
	try {
		get_req = new XMLHttpRequest();
	} catch(e) {
		get_req = new ActiveXObject("Microsoft.XMLHTTP")
	};

	get_req.onreadystatechange = GRH;
	get_req.open("GET", url + params, true);
	get_req.send(null);
}

function post_inc(url, params, formid) {
	var parameters = serialize(formid);
	try {
		post_req = new XMLHttpRequest();
		post_req.overrideMimeType('text/html');
	} catch(e) {
		post_req = new ActiveXObject("Microsoft.XMLHTTP")
	}

	post_req.onreadystatechange = PRH;
	post_req.open('POST', url + params, true);
	post_req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	post_req.setRequestHeader("Content-length", parameters.length);
	post_req.setRequestHeader("Connection", "close");
	post_req.send(parameters);
}

function serialize(formid) {
	var query = '';
	var tail = '';

	for (i = 0; i < $(formid).elements.length; i++) {
		element = $(formid).elements[i];

		switch (element.type) {

			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
				query += element.name + '=' + encodeURIComponent(element.value) + '&'
			break;

			case 'select-multiple':
				var isSet = false;
				for(var j = 0; j < element.options.length; j++) {
					var current = element.options[j];
					if(current.selected) {
						query += element.name + '=' + encodeURIComponent(current.value) + '&';
					}
				}
			break;

			case 'radio':
				if (element.checked) {
					query += element.name + '=' + encodeURIComponent(element.value) + '&'
				}
			break;

			case 'checkbox':
				if (element.checked) {
					query += element.name + '=' + encodeURIComponent(element.value);
					query += '&';
					tail = element.name;
				}
			break;

		}
	}
	query = query.substr(0, query.length - 1);
	return query;
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp(".*" + className + ".*");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function Scale(image) {
	if (image.width > 500) {
		image.height = Math.round(((500)/image.width)*image.height);
		image.width = 500;
		image.title = "Preview";
		image.setAttribute("onclick", "Preview(this);");
	}
}

function Preview(image) {
	$('lightbox').innerHTML = "<a onclick=\"Return();\"><img src=\"" + image.src + "\" /></a>";
	$('curtain').style.display = "block";
	$('lightbox').style.display = "block";
}

function Return() {
	$('lightbox').style.display = "none";
	$('curtain').style.display = "none";
	$('lightbox').innerHTML = "";
}

function Bookmark() {
	var url = document.location.href;
	var end = (url.indexOf("?") == -1) ? url.length : url.indexOf("?");
	switch (url.substring(url.lastIndexOf("/")+1, end)) {
		case 'torrents.php': var sort = '0'; break;
		case 'requests.php': var sort = '1'; break;
		case 'forums.php': var sort = '2'; break;
		default: var sort = '3';
	}
	$('lightbox').innerHTML = '<div id="bookmarkbox"><h2>New Bookmark</h2><p>' + document.title + '</p><form id="bookmark" method="post"><input type="hidden" name="title" value="' + document.title + '" /><input type="hidden" name="sort" value="' + sort + '" /><input type="hidden" name="uri" value="' + url + '" /><p>' + url + '</p><div class="center"><input type="button" value="Add Bookmark" onclick="Save_Bookmark()" class="formbutton" onmouseover="this.className=\'formbutton formbuttonhov\'" onmouseout="this.className=\'formbutton\'"/><input type="button" value="Cancel" onclick="Return()" class="formbutton" onmouseover="this.className=\'formbutton formbuttonhov\'" onmouseout="this.className=\'formbutton\'"/></div></form></div>';
	$('curtain').style.display = "block";
	$('lightbox').style.display = "block";
}




function Save_Bookmark() {
	var parameters = serialize('bookmark');
    try {
        bookmarkreq = new XMLHttpRequest();
        bookmarkreq.overrideMimeType('text/html');
    } catch(e) {
        bookmarkreq = new ActiveXObject("Microsoft.XMLHTTP")
    }

	bookmarkreq.onreadystatechange = function() {
	    if (bookmarkreq.readyState == 4 && bookmarkreq.status == 200) {
			$('lightbox').style.display = "none";
			$('curtain').style.display = "none";
			$('lightbox').innerHTML = "";
		}
	};

    bookmarkreq.open('POST', 'bookmarks.php?action=add', true);
    bookmarkreq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    bookmarkreq.setRequestHeader("Content-length", parameters.length);
    bookmarkreq.setRequestHeader("Connection", "close");
    bookmarkreq.send(parameters);
}




/*-- Starting a global display swapper with uber options to handle all the different types NOT FINISHED --*/

function toggleDisplay(elem,opts) {
	if ($(opts['prefixParent'])) {
		if (!opts['prefixElemType']) { opts['prefixElemType']="*"; }
		elems=getElementsByClassName(elem,opts['prefixElemType'],$(opts['prefixParent']));
		elem=elems[0];

	} else { elems=""; }

	if ($(elem).className && $(elem).className.match(/(^| )hide$/)) {
		$(elem).className=$(elem).className.substr(0,$(elem).className.length-5);
		if (opts['hideText'] && $(opts['masterElem'])) { $(opts['masterElem']).innerHTML=opts['hideText']; }
	} else {
		$(elem).className=$(elem).className+' hide';
		if (opts['showText'] && $(opts['masterElem'])) { $(opts['masterElem']).innerHTML=opts['showText']; }
	}
	newClass=$(elem).className;

	for(s=0; s<elems.length; s++) { elems[s].className=newClass; }

	return false;
}


function checkAll(numcheck) {
var i=1;
  for (i = 1; i <= numcheck; i++) {
    if(!($("notify_users"+i).checked)){
       $("notify_users"+i).checked = true;
       }
    else {
       $("notify_users"+i).checked = false;
    }
  }
}
