// Adds an event listener (taking into account browser inconsistencies)
function AddEvent(targetObject, eventType, functionPointer)
{
    if(targetObject.addEventListener)
    {
        targetObject.addEventListener(eventType, functionPointer, true);
        return true;
    }
    else if(targetObject.attachEvent)
    {
        var r = targetObject.attachEvent("on" + eventType, functionPointer);
        return r;
    }
    else
    {
        return false;
    }
}

// Gets an array of query string parameters indexed by parameter name
function GetQueryParameters()
{
    var parameters = {};
    var myUri = window.location.href;
    var q = myUri.indexOf("?");
  
    if (q == -1)
    {
        return parameters;
    }
  
    myUri = myUri.substring(q + 1);
    var pairs = myUri.split("&");
  
    for(var i = 0; i < pairs.length; i++)
    {
        var keyval = pairs[i].split("=");
        keyval[1] = keyval[1].replace(/\+/g, ' ');
        parameters[keyval[0]] = decodeURIComponent(keyval[1]);
    }
  
    return parameters;
}

// Gets an XMLHttpRequest object (taking into account browser inconsistencies)
function GetXMLHttpRequest()
{
    var xmlHttpRequest;
    
    if(window.XMLHttpRequest)
    {
        xmlHttpRequest = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        try
        {
            xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }

    return xmlHttpRequest;
}

function RegisterNamespace(namespacePath)
{
    var rootObject = window;
    var namespaceParts = namespacePath.split('.');
    
    for (var i = 0; i < namespaceParts.length; i++)
    {
        var currentPart = namespaceParts[i];
        
        if (!rootObject[currentPart])
        {
            rootObject[currentPart] = new Object();
        }
        
        rootObject = rootObject[currentPart];
    }
}

function isDefault(elm)
{
    if (elm.value==getDefault(elm)) 
	    {return true;}

    else
	    {return false;}
}
	
function getDefault(elm) {
	if (elm.name=='txtStartAddress') 
		{return 'Enter your starting address';}
	 
	if (elm.name=='txtEndAddress') 
		{return 'Enter your ending address';}	

	return '';	
	}	
	
function swap(startElm, endElm)
{
	var tmp = getDefault(endElm);
	if (!isDefault(startElm))
	{
		tmp = startElm.value;
	}
	
	startElm.value = getDefault(startElm);
	if (!isDefault(endElm))
	{
		startElm.value = endElm.value;
	}
	
	endElm.value = tmp;
}