// Cookies
var categoryCookie;
var categoryCookieName = 'forumCategoryCookie';
var collapseImg = 'img/collapse.gif';
var expandImg = 'img/expand.gif';
var statsCookieName = 'statsCookie';
var statsElement = 'statsTable';

function getElementsByName_iefix(tag, name) {
	var elem = document.getElementsByTagName(tag);
	var arr = new Array();
	for(i = 0, iarr = 0; i < elem.length; i++) {
		att = elem[i].getAttribute("name");
		if (att == name) {
			arr[iarr] = elem[i];
			iarr++;
		}
	}
	return arr;
}

function toggle(img, element, id, cookies, cookieId, cookiesName) {
	var v = getElementsByName_iefix(element, id);
	if (v.length != 0) {
		var cookieValue = -1;
		var imgSrc = expandImg;
		var style = "none";
		for (var i = 0; i < v.length; i++) {
			if (cookieValue == -1) {
				if (v[i].style.display == "none") {
					imgSrc = collapseImg;
					style = "";
					cookieValue = 1;
				} else {
					cookieValue = 0;
				}
			}
			v[i].style.display = "inline";
			v[i].style.display = style;
		}
		img.src = imgSrc;
		if (cookies != null) {
			cookies[cookieId] = cookieValue;
			setcookie(cookiesName, cookies.join(' '));
		}
	}
}

function simpleToggle(el, img) {
	var res = '1';
	if (el != null) {
		var imgSrc = expandImg;
		var style = 'none';
		if (el.style.display == 'none') {
			style = '';
			imgSrc = collapseImg;
			res = '0';
		}
		el.style.display = style;
		img.src = imgSrc;
	}
	return res;
}

function toggleSpoiler(el) {
	var div = el.parentNode;
	do {
		div = div.nextSibling
	} while (div.tagName.toLowerCase() != "div");
	simpleToggle(div, el);
}

function toggleStats(img) {
	var el = document.getElementById(statsElement);
	var res = simpleToggle(el, img);
	setcookie(statsCookieName, res);
}

function toggleCategory(img, id) {
	toggle(img, 'tr', 'category_' + id, categoryCookie, id, categoryCookieName);
}

function prepareCookies() {
	var tempString = getcookie(categoryCookieName);
	if (!tempString) {
		tempString = '';
		var id = 0;
		while (true) {
			var group = document.getElementById('group_' + id);
			if (!group) {
				break;
			}
			tempString += '1 ';
			id++;
		}
		setcookie(categoryCookieName, tempString);
	}
	categoryCookie = tempString.split(" ");
	// Apply cookie settings to categories.
	for (var i = 0; i < categoryCookie.length; i++) {
		var img = document.getElementById('category_img_' + i);
		if (img) {
			if (((img.src.indexOf(collapseImg) != -1) && (categoryCookie[i] == 0)) ||
				((img.src.indexOf(expandImg) != -1) && (categoryCookie[i] == 1))) {
				toggleCategory(img, i);
			}
		}
	}
	var st = getcookie(statsCookieName);
	if (st == '1') {
		var img = document.getElementById('statsImage');
		if (img && (img.src.indexOf(collapseImg) != -1)) {
			toggleStats(img);
		}
	}
}

function getexpirydate(nodays) {
	var UTCstring;
	Today = new Date();
	nomilli = Date.parse(Today);
	Today.setTime(nomilli + nodays * 24 * 60 * 60 * 1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

function getcookie(cookiename) {
	var cookiestring = "" + document.cookie;
	var index1 = cookiestring.indexOf(cookiename);
	if ((index1 == -1) || (cookiename == "")) {
		return "";
	}
	var index2 = cookiestring.indexOf(';', index1);
	if (index2 == -1) {
		index2 = cookiestring.length;
	}
	return unescape(cookiestring.substring(index1 + cookiename.length + 1,index2));
}

function setcookie(name, value){
	cookiestring = name + "=" + escape(value) + ";EXPIRES=" + getexpirydate(365) + ";PATH=/";
	document.cookie = cookiestring;
}
