
//**** ajax stuff ****
function createXMLHttpRequest()
{
	var ua;
	if(window.XMLHttpRequest)
	{
		try {
			ua = new XMLHttpRequest();
		} catch(e) {
			ua = false;
		}
	} else if(window.ActiveXObject)
	{
		try {
			ua = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			ua = false;
		}
	}
	return ua;
}

var req = createXMLHttpRequest();

function sendRequest(user, category)
{
	if (!activeDisplayname)
	{
		var uploader = getElementsByClass('uploader',null,'a');
		for(var f = 0; f < uploader.length; f++)
		{
			var usrAttr = uploader[f].getAttribute('user');
			if(usrAttr == user)
			{
				activeDisplayname = uploader[f].innerHTML;
			}
		}
	}
	req.open('get', 'gallerydata.php?user=' + user + '&category=' + category);
	req.onreadystatechange = handleResponse;
	req.send(null);
}

function handleResponse()
{
	if(req.readyState == 4)
	{
		var response = req.responseText;
		var artist = "<p class='titelzelle'>" + activeDisplayname + "</p>";
		$('contentdiv').innerHTML = artist + response;
		$('contentdiv').style.display = "block";
		$('contentdiv_gallery').style.display = "none";
		$('contentdiv_leer').style.display = "none";
	}
}
//******************

// gallery init function
function init()
{
	refLink();
	var user = getElementsByClass("uploader");
	for(var i=0; i < user.length; i++)
	{
		user[i].style.display = "block";
		user[i].style.paddingLeft = '5px';
		user[i].style.paddingright = '5px';
		user[i].style.margin = '0';
		user[i].onclick = clickUser;
	}
	
	var category = getElementsByClass("kat");
	for(var i=0; i < category.length; i++)
	{
		category[i].style.display = "block";
		category[i].style.paddingLeft = '5px';
		category[i].style.paddingright = '5px';
		category[i].style.margin = '0';
	}
	

	if(document.getElementsByTagName)
	{
		var a = document.getElementsByTagName("a");
		//collect all anchors A
		for(var i = 0; i < a.length; i++)
		{
			// mouse onfocus, blur anchors
			a[i].onfocus = function(){this.blur();};
		}
	}

}

// global variable
var activeCat = "";
var activeUser = "";
var activeDisplayname = "";
var browseStart = "";
var checkCat = "x";
var currUser = "";

function clickCategory(cat)
{
	if (browseStart == "")
		browseStart = "cat";
	
	if (browseStart == "cat")
	{
		resetContent();
		if (cat == checkCat)
		{
			reset();
			return;
		}
		
		if (cat != checkCat)
		{
			resetContent();
			userFilter(cat);
			$(cat).style.backgroundColor = "#55bf00";
			$(cat).style.color = "#fff";
		}
	}
	
	// activeCat setzen
	if (cat == 'a')
	{
		activeCat = checkCat ='a';
	}
	
	if (cat == 'b')
	{
		activeCat = checkCat = 'b';
	}
	
	if (cat == 's')
	{
		activeCat = checkCat = 's';
	}
	
	if (cat == 't')
	{
		activeCat = checkCat ='t';
	}
	
	if (cat == 'i')
	{
		activeCat = checkCat ='i';
	}
	
	if (browseStart == "user")
	{
		//resetContent();
		emptyContent();
		var category = getElementsByClass("kat");
		for(var i=0; i < category.length; i++)
		{
			category[i].style.backgroundColor = "";
			category[i].style.color = '';
		}
		$(cat).style.backgroundColor = "#55bf00";
		$(cat).style.color = "#fff";
//		$(cat).style.backgroundColor = $(cat).style.color;
		getEntrys();
	}
}

function clickUser()
{
	if (browseStart == "")
		browseStart = "user";
	
	currUser = this.getAttribute('user');
	
	if (browseStart == "user")
	{
		if (currUser == activeUser)
		{
			reset();
			return;
		}
		
		if (currUser != activeUser)
			resetContent();
			categotyFilter(this);
		
		var category = getElementsByClass("kat");
		for(var i=0; i < category.length; i++)
		{
			category[i].style.backgroundColor = '';
			category[i].style.color = '';
		}
		
	}
	
	activeUser = this.getAttribute('user');
	activeDisplayname = this.innerHTML;
	
	if (browseStart == "cat")
	{
		//resetContent();
		emptyContent();
		var user = getElementsByClass("uploader");
		for(var i=0; i < user.length; i++)
		{
			user[i].style.backgroundColor = '';
			user[i].style.color = '';
		}
		this.style.backgroundColor = '#788b57';
		this.style.color = 'white';
		getEntrys();
	}
	
}


// blendet user aus anhand der kategorie wahl
function userFilter(cat)
{
	// userfilter
	var user = getElementsByClass("uploader");
	for(var i=0; i < user.length; i++)
	{
		var catChars = user[i].getAttribute('kat');
		if (catChars.indexOf(cat) >= 0)
		{
			user[i].style.display = "block";
		}else
		{
			user[i].style.display = "none";
		}
	}
	
	// aus blenden der andern und highlighten kat
	var category = getElementsByClass("kat");
	for(var i=0; i < category.length; i++)
	{
		category[i].style.backgroundColor = '#fff';
		category[i].style.color = '';
	}
	$(cat).style.backgroundColor = "#55bf00";
	$(cat).style.color = "#fff";
}


// blendet kategorien aus anhand der user wahl
function categotyFilter(userObj)
{
	var userCat = userObj.getAttribute('kat');
	// filtern der kategorien pro user
	var category = getElementsByClass("kat");
	for(var i=0; i < category.length; i++)
	{	
		var kat = category[i].id;
		if (userCat.indexOf(kat) >= 0)
			category[i].style.display = "block";
		else
			category[i].style.display = "none";
	}
	
	
	// ausblenden der andern und highlighten users
	var user = getElementsByClass("uploader");
	for(var i=0; i < user.length; i++)
	{
		user[i].style.backgroundColor = '#fff';
		user[i].style.color = '';
	}
	userObj.style.backgroundColor = '#788b57';
	userObj.style.color = 'white';
	//userObj.style.backgroundColor = userObj.style.color;
}

function getEntrys()
{
	sendRequest(activeUser, activeCat);
	//alert("request: " + activeUser + " : " + activeDisplayname + " : " + activeCat);
}

function reset()
{
	activeCat = "";
	activeUser = "";
	activeDisplayname = "";
	browseStart = "";
	checkCat = "x";
	
	resetStyles();
	resetContent();
}

function resetStyles()
{
	var user = getElementsByClass("uploader");
	for(var i=0; i < user.length; i++)
	{
		user[i].style.display = "block";
		user[i].style.backgroundColor = '';
		user[i].style.color = '';
	}
	
	var category = getElementsByClass("kat");
	for(var i=0; i < category.length; i++)
	{
		category[i].style.display = "block";
		category[i].style.backgroundColor = '';
		category[i].style.color = '';
	}
}

function resetContent()
{
	$('contentdiv').style.display = "none";
	$('contentdiv_gallery').style.display = "block";
	$('contentdiv_leer').style.display = "none";
}

function emptyContent()
{
	$('contentdiv').style.display = "none";
	$('contentdiv_gallery').style.display = "none";
	$('contentdiv_leer').style.display = "block";
}

function refLink()
{
	var query = self.location.search;
	var extPos = new Array();
	var teile = new Array();
	
	if (query != '')
	{
		uery = query.substr(1, query.length - 1);
		query = query.replace(/%26/,'&');
		teile = query.split('&');
	
		for (i = 0; i < teile.length; i++)
		{
			teile[i] = teile[i].split('=');
			extPos[teile[i][0]] = teile[i][1];
		}
		
		var refUser = teile[0][1];
		var refCat = teile[1][1];
		
		sendRequest(refUser, refCat);
	}
}

