function getElementsByClassName(classname)
{
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = document.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

function CheckAllCheckboxes(className)
{
	var boxes = getElementsByClassName(className);
	for (var i=0, boxes_len=boxes.length; i<boxes_len; i++)
	{
		boxes[i].checked = true;
	}
}

function UnCheckAllCheckboxes(className)
{
	var boxes = getElementsByClassName(className);
	
	for (var i=0, boxes_len=boxes.length; i<boxes_len; i++)
	{
		boxes[i].checked = false;
	}
}

function CheckLanguages(iUserId, iLanguageCombo1, iLanguageCombo2)
{
	var iLanguageCookie1 = getCookie('lng_Language1Id');
	var iLanguageCookie2 = getCookie('lng_Language2Id');
	
	if((iLanguageCombo1 != iLanguageCookie1) || (iLanguageCombo2 != iLanguageCookie2))
	{
		setCookie('lng_Language1Id', iLanguageCombo1, 60*60*24*100);
		setCookie('lng_Language2Id', iLanguageCombo2, 60*60*24*100);
		
		if (iUserId != 0)
		{
			makeRequest(UnCache('ajaxSetLanguages.php?UserId=' + iUserId + '&Language1Id=' + iLanguageCombo1 + '&Language2Id=' + iLanguageCombo2 + ''), 2);
		}
	}
}


//*********************************************************************************
//                           AJAX FUNCTIONS
//*********************************************************************************

function UnCache(url)
{
	var d = new Date();
	var time = d.getTime();

	return url + '&time=' + time;
}

function makeRequest(url, iType)
{
	var http_request = false;

	if (window.XMLHttpRequest) // Mozilla, Safari, ...
	{
		http_request = new XMLHttpRequest();
		
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml; charset=iso-8859-9');
			// See note below about this line
		}
	}
	else if (window.ActiveXObject) // IE
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{}
		}
	}

	if (!http_request)
	{
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = function() { alertContents(http_request, iType); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function alertContents(http_request, iType)
{
	if (http_request.readyState == 4)
	{
		if (http_request.status == 200)
		{
			switch(iType)
			{
				case 1:
					// DO NOTHING
					break;
				case 2:
					// ALERT AJAX RESPONSE (Debug purposes)
					alert(http_request.responseText);
					break;
			}
		}
		else
		{
			alert('There was a problem with the request.');
		}
	}
}

//*********************************************************************************
//                           COOKIE FUNCTIONS
//*********************************************************************************

function setCookie(c_name,value,expiredays)
{
	var exdate = new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
}

function getCookie(c_name)
{
	if (document.cookie.length>0)
	{
		c_start=document.cookie.indexOf(c_name + "=");
		
		if (c_start!=-1)
		{ 
			c_start=c_start + c_name.length+1; 
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1)
				c_end=document.cookie.length;
				
			return unescape(document.cookie.substring(c_start,c_end));
		} 
	}
	
	return "";
}