text: /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  var loginPageSuffix = "/knoxauth/login.html";
  var webssoURL = "/api/v1/websso?originalUrl=";
  var userAgent = navigator.userAgent.toLowerCase();
  
  function get(name) {
  	//KNOX-820 changing the regex so that multiple query params get included with the 'originalUrl'
  	if ((name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^]*)')).exec(location.search))) {
  		return decodeURIComponent(name[1]);
  	}
  }
  
  function testSameOrigin(url) {
  	var loc = window.location,
  		a = document.createElement('a');
  	a.href = url;
  	return a.hostname == loc.hostname &&
  		a.port == loc.port &&
  		a.protocol == loc.protocol;
  }
  
  function redirect(redirectUrl) {
  	try {
  		window.location.replace(redirectUrl);
  	} catch (e) {
  		window.location = redirectUrl;
  	}
  }
  
  var keypressed = function(event) {
  	if (event.keyCode == 13) {
  		login();
  	}
  };
  
  var login = function() {
  	var pathname = window.location.pathname;
  	var topologyContext = pathname.replace(loginPageSuffix, "");
  	var loginURL = topologyContext + webssoURL;
  	var form = document.forms[0];
  	var username = form.username.value;
  	var password = form.password.value;
  	var _login = function() {
  		var originalUrl = get("originalUrl");
  		var idpUrl = loginURL + originalUrl;
  		var redirectUrl = originalUrl;
  		//Instantiate HTTP Request
  		var request = ((window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
  		request.open("POST", idpUrl, true);
  		request.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
  		request.send(null);
  
  		//Process Response
  		request.onreadystatechange = function() {
  			if (request.readyState == 4) {
  				if (request.status == 0 || request.status == 200 || request.status == 204 || request.status == 307 || request.status == 303) {
  					if (testSameOrigin(originalUrl) == false) {
  						redirectUrl = "redirecting.html?originalUrl=" + originalUrl;
  					}
  					redirect(redirectUrl);
  				} else {
  					$('#errorBox').show();
  					$('#signInLoading').hide();
  					$('#signIn').removeAttr('disabled');
  					if (request.status == 401) {
  						$('#errorBox .errorMsg').text("The username or password you entered is incorrect.");
  					} else {
  						$('#errorBox .errorMsg').text("Response from " + request.responseURL + " - " + request.status + ": " + request.statusText);
  					}
  				}
  			}
  		};
  	};
  
  	_login();
  };
  