
		function gotoTop()
		{
			if (top.window == window)
			{
				return true;
			}

			top.window.location = window.location;

			return false;
		}


		function getScriptName()
		{
			var path = document.location.pathname;
			var nExtLen = 3;
			if( path.substring( path.indexOf('.') + 1, path.indexOf('.') + 3) != "so")
			{
				nExtLen = 4;
			}
			path = path.substring(0, path.indexOf('.') + nExtLen);
			return path;
		}
		
		function send()
		{
			//eraseCookie("ulrProc");
		  // document.cookie = (getScriptName().substring( 1, getScriptName().length) + "/NPUSERNAME").toLowerCase() + "=" + document.Auth_Form.UserID.value + "; path=/";
			 document.cookie = (getScriptName().substring( 1, getScriptName().length) + "/NPUSERNAME").toLowerCase() + "=" + document.Auth_Form.UserID.value + "~" + document.Auth_Form.UID.value + "; path=/";
			 //alert("uid="+document.Auth_Form.UserID.value + "~" + document.Auth_Form.UID.value );
			if( document.Auth_Form.PassWord.value != "")
			{
				document.cookie = (getScriptName().substring( 1, getScriptName().length) + "/NPPASSWORD").toLowerCase() + "=" + document.Auth_Form.PassWord.value + "; path=/";
			}
			
			// IE workaround: If a request to the same URL first returns HTML, then XML, IE
			// gets confused and won't render it as XML. So we'll tack on a parameter to help it out.
         
			window.location = window.location + "$iefix=" + Math.round(Math.random() * 10000);
		}
		

		function ParseLoginCredentials(credentials, sender)
		{
			var start = 0;
			var end = 0;
                                          
        	if(sender == "Denied")  //do this only if the calling page is denied.htm
        	{
        		if(readCookie("ulrProc") != "yes") //do this only one time and then prompt user
        		{
        		   proceessURLCredentails(credentials);
        			createCookie("ulrProc","yes",0);
        		}
         }


   			// Set username
			start = credentials.indexOf("<Username>");
			if (start == -1)
			{
				document.Auth_Form.UserID.value = "";
			}
			else
			{
				start = start + 10;
				end = credentials.indexOf("</Username>");
				document.Auth_Form.UserID.value = credentials.substring(start, end);                
			}
			
			
			// Set password
			start = credentials.indexOf("<Password>");
			if (start == -1)
			{
				document.Auth_Form.PassWord.value = "";
			}
			else
			{
				start = start + 10;
				end = credentials.indexOf("</Password>");
				document.Auth_Form.PassWord.value = credentials.substring(start, end);
			}
			// Set uid
			start = credentials.indexOf("<UID>");
			if (start == -1)
			{
				document.Auth_Form.UID.value = "";
			}
			else
			{
				start = start + 5;
				end = credentials.indexOf("</UID>");
				document.Auth_Form.UID.value = credentials.substring(start, end);
			}                     
			// Check to see if we should submit the form
			if(document.Auth_Form.UserID.value != "" && document.Auth_Form.PassWord.value != "") {
				send();
			}
         else{
            var formdisplay = document.getElementById("LOADING");
            formdisplay.style.display="none";
         
            formdisplay = document.getElementById("LOGINFORM");            
            formdisplay.style.display="inline";
            document.Auth_Form.UserID.focus();
         }
            
		}
        

		function RetrieveLoginCredentials(sender)
		{         
         var vid = getQueryStringParameter(String (window.location),"VID")
			var myUrl = "/Login/AutoLogin.aspx";
			if(window.XMLHttpRequest) {
				xmlhttp = new XMLHttpRequest();
			} else if(window.ActiveXObject) {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} else {
				return false;
			}
			xmlhttp.open("POST", myUrl, true);
			xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // sending it as encoded formdata
			xmlhttp.setRequestHeader("Content-length",vid.length); // we need to specify the length of the contents
			xmlhttp.setRequestHeader("Connection","close"); // Connection is to be closed after transfer
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState == 4) { // Wait until everything is fetched!                   
					ParseLoginCredentials(xmlhttp.responseText,sender);
				}
			}
			xmlhttp.send(vid); // This time, we need to send the text.
		}


		// Establish an event handler so that we can submit on enter even
		// in NN4.
		if (document.layers)
		{
			document.captureEvents(Event.KEYDOWN);
		}
		document.onkeydown =
			function (evt) {
				var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
				if (keyCode == 13) 
				{
					document.Auth_Form.submit();
					send();
					return false;
				}
				else
				{
					return true;
				}
			};


    function getQueryStringParameter(queryString, paramName)
    {
       var paramValue = "Not.Found";
       if(queryString.indexOf("$") >0)
         queryString = queryString.substring(0,queryString.indexOf("$"));
           
       var parms = queryString.split("&");       
       for (var i=0; i<parms.length; i++) 
       {
          var pos = parms[i].indexOf('=');
          if (pos > 0) {
             var key = parms[i].substring(0,pos);
             var val = parms[i].substring(pos+1);

             if(key.toUpperCase() == paramName.toUpperCase())
                paramValue = val;                
          }
       }

       return paramValue;
    }
    
    //check to see if we did not get a uid and pwd
    //if not, check the URL for embeded credentials
    //and pass those back instead.  Note: we now have a GUID
    function proceessURLCredentails(credentials)
    {         
       var iDbCredentials = credentials.indexOf("Username /><Password />");
       
       if( iDbCredentials > 0 )
       {
          var query = String (window.location);          
          var urlUid = getQueryStringParameter(query,"NPUSERNAME");
          var urlPwd = getQueryStringParameter(query,"NPPASSWORD");
          if(urlUid != "Not.Found" || urlPwd != "Not.Found")
          {
             credentials = "<Username>" + urlUid 
                         + "</Username><Password>"
                         + urlPwd + "</Password>" 
                         + credentials.substring(credentials.indexOf("<UID>"),
                                                 credentials.indexOf("</UID>") +7);

             //formulate a new query string this time with a GUID
             var newQuery = query.substring(0,query.indexOf("NPUSERNAME") + 11) 
                        + urlUid + "~" 
                        + credentials.substring(credentials.indexOf("<UID>") + 5,
                                                credentials.indexOf("</UID>"))
                        + query.substring(query.indexOf("NPPASSWORD")-1 ) ;

             //End of the road for the embeded
             window.location = newQuery + "$iefix=" + Math.round(Math.random() * 10000);
          }
       }
       else
       {
          //alert("credentials=" + credentials);     
          return credentials;
       }
    }

    function createCookie(name,value,days)
    {
       if (days)
       {
          var date = new Date();
          date.setTime(date.getTime()+(days*24*60*60*1000));
          var expires = "; expires="+date.toGMTString();
       }
       else var expires = "";
       document.cookie = name+"="+value+expires+"; path=/";
    }

    function readCookie(name)
    {
       var nameEQ = name + "=";
       var ca = document.cookie.split(';');
       for(var i=0;i < ca.length;i++)
       {
          var c = ca[i];
          while (c.charAt(0)==' ') c = c.substring(1,c.length);
          if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
       }
       return null;
    }

    function eraseCookie(name)
    {
       createCookie(name,"",-1);
    }
