var renderCiting=new Boolean(true);

/**
* This Javascript function allows for some simple Ajax functionality.
*
* The function to be called is rewritePageElement(url, elementID), or rewritePageElement(url, query, elementID)
*
* What it provides is a basic way to load content into the page Asynchronously
* This means that upon calling of this script a portion of the page specified by the elementID
* will be rewritten with the contents of the file specified by the given URL.
*
* This does not cause the whole page to be reloaded, simply the portion specified.
*/
 
 
 
var xmlHttp;
var divid = 'nameList';
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;
//netscape, safari, mozilla behave the same???
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;
var loading = '';  
 
/**
* rewrites the HTML element on the page with the give ID with code loaded from the given URL.
* @param url the location of the resource used to generate the HTML code to insert into the page.
* @param elementID the ID of the HTML page element... most likely a DIV tag...
*                                                  whose content is to be replaced by the HTML code generated by the given URL.
*/
function rewritePageElement(url, elementID)
{
            rewritePageElement(url, '', elementID);
}
 
/**
* rewrites the HTML element on the page with the give ID with code loaded from the given URL.
* @param url the location of the resource used to generate the HTML code to insert into the page.
* @param query if this method is being called directly, then the query string to append to the URL is specified here.
*                                     an example of using this would be to pass this.value from a form element.
* @param elementID the ID of the HTML page element... most likely a DIV tag...
*                                                  whose content is to be replaced by the HTML code generated by the given URL.
*/


function rewritePageElement(url, query, elementID, loadingin)
{
	//set the id for the HTML element to overwrite
	divid = elementID;
	loading = loadingin;
	
	//alert("renderCiting: " + renderCiting + " | " + query.indexOf("checkifclicked"));
 
	if ((query.indexOf("checkifclicked") >= 0 && renderCiting == true) || query.indexOf("checkifclicked") == -1)
	{

		if (loading!=null && loading!='')
		{
		document.getElementById(loading).style.display = "inline";
		}

		url = url + query;

		if (url.length > 0)
		{
			//Create the xmlHttp object to use in the request
			//stateChangeHandler will fire when the state has changed, i.e. data is received back
			// This is non-blocking (asynchronous)
			xmlHttp = GetXmlHttpObject(stateChangeHandler);

			//Send the xmlHttp get to the specified url
			xmlHttp_Get(xmlHttp, url);
			
			if (query.indexOf("checkifclicked") >= 0)
			{
				renderCiting=false;
			}
			
		}
	}
}
 
//stateChangeHandler will fire when the state has changed, i.e. data is received back
// This is non-blocking (asynchronous)
function stateChangeHandler()
{
            //readyState of 4 or 'complete' represents that data has been returned
            if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete')
            {
                        //Gather the results from the callback
                        var str = xmlHttp.responseText;
 
                        //Populate the innerHTML of the div with the results
                        document.getElementById(divid).innerHTML = str;
                        if (loading!=null && loading!='')
	 		{	
                        	document.getElementById(loading).style.display = "none";
                        }
            } 
}
 
// XMLHttp send GET request
function xmlHttp_Get(xmlhttp, url)
{
            //Getting a permissions error here?  Check the url string to
            // ensure it is accurate (defined above)
            xmlhttp.open('GET', url, true);
            xmlhttp.send(null);
}
 
function GetXmlHttpObject(handler)
{
            var objXmlHttp = null;    //Holds the local xmlHTTP object instance
 
            //Depending on the browser, try to create the xmlHttp object
            if (is_ie)
            {
                        //The object to create depends on version of IE
                        //If it isn't ie5, then default to the Msxml2.XMLHTTP object
                        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
 
                        //Attempt to create the object
                        try
                        {
                                    objXmlHttp = new ActiveXObject(strObjName);
                                    objXmlHttp.onreadystatechange = handler;
                        }
                        catch(e)
                        {
                        //Object creation errored
                                    alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
                                    return;
                        }
            }
            else if (is_opera)
            {
                        //Opera has some issues with xmlHttp object functionality
                        alert('Opera detected. The page may not behave as expected.');
                        return;
            }
            else
            {
                        // Mozilla | Netscape | Safari
                        objXmlHttp = new XMLHttpRequest();
                        objXmlHttp.onload = handler;
                        objXmlHttp.onerror = handler;
            }
 
            //Return the instantiated object
            return objXmlHttp;
}
 
/**
* Cleans all characters that would be a problem for HTTP from the given String.
*/
function cleanForHTTP(source)
{
                        if(source == null)
                        {
                                    return "";
                        }
 
                        source = source.replace("%", "%25");
                        source = source.replace("\r\n", "%0D");
                        source = source.replace("\n", "%0D");
                        return source.replace("\r", "%0D");
}