function popupWindow(winURL,winName,winWidth,winHeight) 
{
	if(!winName)
		winName + "";
	if(!winWidth)
		winWidth = 640;
	if(!winHeight)
		winHeight = 480;

	iLeft = (window.screen.availWidth/2)-(winWidth/2);
	iTop = (window.screen.availHeight/2)-(winHeight/2);
	window.open(winURL,winName,
	"left=" + iLeft + ",top=" + iTop + ",width=" + winWidth + ",height=" + winHeight + ",toolbar=no,scrollbars=yes,directories=no,status=no,menubar=no,resizable=yes,location=no");
	return false;
}

function checkOnGrid(objectID, hiddenID, checked)
{
	var hidObj = document.getElementById(hiddenID);
	if(checked)
	{
	    var valc = hidObj.value;
	    
	    if(valc.length > 0 && valc.lastIndexOf(";") != valc.length - 1)
	    {
	        valc += ";";
	    }

	    //if(hidObj.value.
		hidObj.value = valc + objectID + ";";
	}
	else
	{
		var values = hidObj.value.split(";");
		for(var i = 0 ; i < values.length ; i++)
		{
			if(values[i] == objectID)
			{
				values.splice(i, 1);
			}
		}
		
		hidObj.value = values.join(";");
	}
	
	//alert(hidObj.value);
}

function radioOnGrid(objectID, hiddenID, checked)
{
    var hidObj = document.getElementById(hiddenID);
	if(checked)
	{
		hidObj.value = objectID;
	}
}

// AJAX Methods //

function XSLTransform(xml, xslUrl, disableOutputEscaping)
{
	var html = "";
	if (xml == "") return "";
	if (xslUrl == "") return "";
	
	if (window.ActiveXObject) //ie
	{
		// Load XML 
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.loadXML(xml);
		
		// Load XSL
		var xsl = new ActiveXObject("Microsoft.XMLDOM")
		xsl.async = false;
		xsl.load(xslUrl);// Transform
		
		html = xmlDoc.transformNode(xsl);
		return html;
	}
	else
	{
		var xslStylesheet;
		var xsltProcessor = new XSLTProcessor();
		var myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET",xslUrl, false);
		myXMLHTTPRequest.send(null);

		xslStylesheet = myXMLHTTPRequest.responseXML;
		xsltProcessor.importStylesheet(xslStylesheet);
		var fragment = xsltProcessor.transformToDocument(xml);
		var ss = (new XMLSerializer()).serializeToString(fragment);
		
		if (disableOutputEscaping)
		{
			var regRightArr = /&amp;gt;/g;
			var regLeftArr = /&amp;lt;/g;
			var regRightTag = /&gt;/g;
			var regLeftTag = /&lt;/g;
			
			ss = ss.replace(regRightArr, ">");
			ss = ss.replace(regLeftArr, "<");
			ss = ss.replace(regRightTag, ">");
			ss = ss.replace(regLeftTag, "<");
			return ss;
		}
	}	 
}

function GetHttpRequest()
{
	var http_request = false;

	if (window.XMLHttpRequest) // Mozilla, Safari, ...
	{ 
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	} 
	else if (window.ActiveXObject) // IE
	{ 
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {/*do nothing */}
		}
	}
	
	return http_request;
}

function MakeRequest(url, id) 
{
	var http_request = GetHttpRequest();
	
	//alert("url=" + url + ", id=" + id + ", http_request=" + http_request);

	if (!http_request) 
	{
		alert('Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() { GetContent(http_request, id); };
	
	http_request.open('GET', url, true); //method, url, async
	http_request.send(null);
}

function GetContent(http_request, id) 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			//alert(http_request.responseText);
			var result = "";
			var div = document.getElementById(id);
			if (window.ActiveXObject) //ie
			{
				result = http_request.responseText;
			}
			else //firefox
			{
				result = http_request.responseText;
				//result = http_request.responseXML;
			}
			
			if (result != "")
				div.innerHTML = result;
			else
				div.innerHTML = "Not found.";
		} 
		else 
		{
			alert('There was a problem with the request.');
		}
	}
}

function AlertContents(http_request, xsl , id) 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			//alert(http_request.responseText);
			var result = "";
			var div = document.getElementById(id);
			if (window.ActiveXObject) //ie
			{
				result = XSLTransform(http_request.responseText, xsl, false);
			}
			else //firefox
			{
				result = XSLTransform(http_request.responseXML, xsl, true);
			}
			
			if (result != "")
				div.innerHTML = result;
			else
				div.innerHTML = "Not found.";
		} 
		else 
		{
			alert('There was a problem with the request.');
		}
	}
}

function ToggleVisibility(elementID, tipID)
{
    var element = document.getElementById(elementID);
    var tip = document.getElementById(tipID);
    if(element.style['display'] == 'none')
    {
        element.style['display'] = 'block';
        tip.style['display'] = 'none';
    }
    else
    {
        element.style['display'] = 'none';
        tip.style['display'] = 'block';
    }
}