// - Pager
function goPage(_page)
{
	if (location.search)
	{
		var oQs = new QueryString();
			oQs.parse(location.search);
			oQs.add('page', _page);

		qs = oQs.build();
	}
	else qs = '?page=' + _page;

	if (document.archiveForm)//should be generalized
	{
		document.archiveForm.action = document.archiveForm.action.substring(0, document.archiveForm.action.indexOf('?')) + qs;
		document.archiveForm.submit();
	}
	else
	{
		document.location = document.location.pathname + qs;
	}
}


// - Toggle Language
function toggleLanguage()
{
	var myTimeStamp = new Date().getTime();
	var myGUILang = '';//readCookie('GUILang');
	var qs = '';

	myGUILang = readCookie('GUILang');

	// - switch lang
	switch (myGUILang)
	{
		case 'nl'	: myGUILang = 'fr'; break;
		default		: myGUILang = 'nl'; break;
	}


	if (location.search)
	{
		// - rebuild qs
		var oQs = new QueryString();

		oQs.parse(location.search);
		oQs.add('ts', myTimeStamp);
		oQs.add('lang', myGUILang);

		// - lang
//		if (oQs.contains('lang'))
//		{
//			oQs.remove('lang');
//		}

		qs = oQs.build();
	}
	else
	{
		qs = '?ts=' + myTimeStamp + '&lang=' + myGUILang;
	}


//	// - save cookie
//	saveCookie('GUILang', myGUILang, 7);

	// - reload
	document.location = document.location.pathname + qs;
}


// - Class QueryString
function QueryString()
{
	this.items = new Object();
	this.parse = function(_qs)
	{
		var myQs = _qs;

		if ( myQs.indexOf('?') == 0 )
			myQs = myQs.substr(1);

		if (myQs.length > 0)
		{
			myQs = myQs.split('&');
			var myNameValue;
			for ( i=0; i < myQs.length; i++ )
			{
				myNameValue = myQs[i].split('=');
				this.add(myNameValue[0], myNameValue[1]);
			}
		}
	}
	this.add = function(_name, _value)
	{
		this.items[_name] = _value;
	}
	this.build = function()
	{
		var myQs = new Array();

		for (i in this.items)
			myQs.push(i + '=' + this.items[i]);

		return '?' + myQs.join('&');

	}
	this.contains = function($_name)
	{
		return ($_name in this.items);
	}
	this.get = function($_name)
	{
		return this.items[$_name];
	}
	this.remove= function($_name)
	{
		delete(this.items[$_name]);
	}
}

// - Cookie functions (ripped from SourceForge Dynapi)
function saveCookie(name, value, days)
{
	if (days)
	{
		var date = new Date();
			date.setTime( date.getTime() + (days*24*60*60*1000) );

		var expires = "; expires=" + date.toGMTString();
	}
	else
		expires = "";

	document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca=document.cookie.split(';');

	for(var i=0; i < ca.length; i++)
	{
		var c=ca[i];
		while (c.charAt(0)==' ')
			c = c.substring(1, c.length);

		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}
function deleteCookie(name)
{
	saveCookie(name, "", -1);
}

//
function isValidEmail(mStr)
{
//	if ((mStr.indexOf('@@') == -1) && (mStr.indexOf('..') == -1) && (mStr.indexOf('.@') == -1) && (mStr.indexOf('@.') == -1))
//	{
//		var at = mStr.indexOf('@',1);
//		if (at != -1)
//		{
//			var dot = mStr.indexOf('.', at+3);
//			if (dot != -1)
//			{
//				dot = mStr.lastIndexOf('.');
//				if (dot+2 < mStr.length) {if (mStr == cleanEmail(mStr)) {return true;}}
//			}
//		}
//	}
//	return false;

	var x = mStr;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (filter.test(x))
		return true;
	else
		return false;
}

function trySubs(_f)
{
	if ( arguments.length == 1 || confirm(arguments[1]) )
	{
		if (!isValidEmail(_f.email.value))
		{
			myorigval = _f.email.value;
			_f.email.value = 'INVALID';
			startFade(_f.email, myorigval);
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}


var SomeFadeObj;
var SomeColors = ['#ffffff','#ffeeee','#ffdddd','#ffcccc','#ffbbbb','#ffaaaa','#ff9999','#ff8888','#ff7777','#ff6666','#ff5555','#ff4444','#ff3333','#ff2222','#ff1111','#ff0000'];
var TID = false;

function startFade(_fadeObj, _origval)//BUG or feature: clicking on one while the orhetr .. .need queue action ...
{
	if (TID)
	{
		clearTimeout(TID);
	}

	SomeFadeObj = _fadeObj;
	fadeIn(0, false, _origval);
}

function fadeIn(_colorIndex, _stop, _origval)
{
	if (!_stop)
	{
		if (_colorIndex < SomeColors.length)
		{
			SomeFadeObj.style.backgroundColor = SomeColors[_colorIndex];
			TID = setTimeout("fadeIn(" + (_colorIndex + 1) + ", false, '" + _origval.replace(/'/,"\\'") + "')", 50);
		}
		else
		{
			fadeOut(_colorIndex - 1, _origval);
		}
	}
	else
	{
		//SomeFadeObj.style.fontWeight = 'normal';
		SomeFadeObj.value = _origval;
	}
}
function fadeOut(_colorIndex, _origval)
{
	if (_colorIndex > -1)
	{
		SomeFadeObj.style.backgroundColor = SomeColors[_colorIndex];
		TID = setTimeout("fadeOut(" + (_colorIndex - 1) + ", '" + _origval.replace(/'/,"\\'") + "')", 50);
	}
	else
	{
		fadeIn(0, true, _origval);
	}
}