/* -------------------------------------------- */
/* -- Browser information --------------------- */
/* -------------------------------------------- */
Browser = new Object();
Browser.agt     = navigator.userAgent.toLowerCase();
Browser.is_ie	= ((Browser.agt.indexOf("msie") != -1) && (Browser.agt.indexOf("opera") == -1));

/* -------------------------------------------- */
/* -- page loader ----------------------------- */
/* -------------------------------------------- */
document.addLoadEvent = function(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

/* -------------------------------------------- */
/* -- form values ----------------------------- */
/* -------------------------------------------- */
function getForm( formid )
{
	var formobj = document.getElementById(formid);
	var fields = new Array();
	var form_len = formobj.elements.length;
	
	for (var x = 0; x < form_len; x++) 
	{
		switch(formobj.elements[x].type) 
		{
		   	case 'select-one':		
				fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].options[formobj.elements[x].selectedIndex].value));
			break;
			
			case 'select-multiple':
				var obj = formobj.elements[x];
				
				for(var y=0; y < formobj.elements[x].options.length; y++) 
				{
				   if(formobj.elements[x].options[y].selected) 
				   {
							if(formobj.elements[x].options[y].value == '')
							{
								fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].options[y].text));
							} 
							else 
							{
								fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].options[y].value));
							}
				   }
				}
			break;
			
			case 'radio':
				if(formobj.elements[x].checked) 
				{
					fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].value));
				}
			break;
			
			case 'checkbox':
				if(formobj.elements[x].checked) 
				{
					fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].value));
				}
			break;
			
			default:
			// text, password, textarea, etc
				fields.push(encodeURIComponent(formobj.elements[x].name)+'='+encodeURIComponent(formobj.elements[x].value));
			break;
		}
	}
	
	var new_qstring = '&' + fields.join('&');
	return new_qstring;
}

/* -------------------------------------------- */
/* -- HTTP REQUEST ---------------------------- */
/* -------------------------------------------- */
var http_request = false;

function makeHttpRequest()
{
	http_request = false;
	
	if (window.XMLHttpRequest) // Mozilla, Safari,... 
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} 
	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('Cannot create XMLHTTP instance');
		return false;
	}
	
	return true;
}

function getHttpResult()
{
	if( http_request.readyState!=4 )
	{
		return false;
	}	
	else
	{
		if( http_request.status!=200 ) 
		{
			alert('There was a problem with the request.');
			return false;
		}
	}
	
	result = http_request.responseText;
	return result;
}