/**
 * Common javascript funtionality
 */
 

/* -------------------------------------------- */
/* -- Browser information --------------------- */
/* -------------------------------------------- */
Browser = new Object();
Browser.agt     = navigator.userAgent.toLowerCase();
Browser.is_ie	= ((Browser.agt.indexOf("msie") != -1) && (Browser.agt.indexOf("opera") == -1));


var winPopup=null;
function openPopup( url, width, height )
{
	if( url=="" ) return false;
	
	if(winPopup)
	{
		if(!winPopup.closed) winPopup.close();
	}
	
	var winConfig = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=yes, width=670, height=" + screen.height + ", left=" + ((screen.width-width)/2) + ", top=0, screenX=0, screenY=0";
	winPopup = open(url, "winPopup", winConfig);
	winPopup.focus();
}

/* -------------------------------------------- */
/* -- 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();
		}
	}
}

/* -------------------------------------------- */
/* -- field ordering -------------------------- */
/* -------------------------------------------- */
function tableOrdering( order, dir, task ) 
{
	var form = document.siteForm;

	form.filter_order.value 	= order;
	form.filter_order_Dir.value	= dir;
	submitForm( task );
}

/* -------------------------------------------- */
/* -- submit form ----------------------------- */
/* -------------------------------------------- */
function submitForm(pressbutton)
{
	if (pressbutton) 
	{
		document.siteForm.task.value=pressbutton;
	}
	try 
	{
		document.siteForm.onsubmit();
	}
	
	catch(e){}
	document.siteForm.submit();
}

/* -------------------------------------------- */
/* -- 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;
}

/* -------------------------------------------- */
/* -- get form -------------------------------- */
/* -------------------------------------------- */
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;
}

/* -------------------------------------------- */
/* -- Element Handler ------------------------- */
/* -------------------------------------------- */
function contentElement( objId, content )
{
	var obj = document.getElementById( objId );
	
	if( !obj ){ return false; }
	
	obj.innerHTML = content;
	return true;
}
function disableInput( objId, disable )
{
	var obj = document.getElementById( objId );
	
	if( !obj ){ return false; }
	
	obj.disabled = disable;
	return true;
}
function displayElement( objId, display )
{
	var obj = document.getElementById( objId );
	
	if( !obj ){ return false; }
	
	obj.style.display = (display==true ? "block" : "none");
	return true;
}
function printPage() { print(document); }