/* Header Login 
------------------------------------------------------------------------------------- */

dojo.addOnLoad(
	function() {
		if (dojo.byId("header-login-ms-anv") != undefined) {
			dojo.connect(dojo.byId("header-login-ms-anv"), "onclick", msUsernameLogin);
			dojo.connect(dojo.byId("header-login-ms-pers"), "onclick", msInvoiceLogin);
			dojo.connect(dojo.byId("header-login-forum-anv"), "onclick", forumUsernameLogin);
			dojo.connect(dojo.byId("header-login-forum-pers"), "onclick", forumInvoiceLogin);
			dojo.connect(dojo.byId("header-login-ms-password"), "onfocus", clearInputValue);
			dojo.connect(dojo.byId("header-login-ms-username"), "onfocus", clearInputValue);
			dojo.connect(dojo.byId("header-login-forum-username"), "onfocus", clearInputValue);
			dojo.connect(dojo.byId("header-login-forum-password"), "onfocus", clearInputValue);
		} else if ("mspa-login-usr" != undefined) {
			dojo.connect(dojo.byId("mspa-login-usr"), "onfocus", clearInputValue);
			dojo.connect(dojo.byId("mspa-login-pwd"), "onfocus", clearInputValue);
		}
		dojo.query("ul#header-login-tabs li").forEach(function(node, index, arr) {
				dojo.connect(node, "onclick", animateShowPane);
		});
	}
);

function animateShowPane() {
	if(dojo.isIE <= 8){
		showPane(this);
	}
	else {
		var animationProps = {
			node: "header-login-panes",
			properties: {
			  opacity: {
				start: 0.5,
				end: 1,
				unit: ""
			  }
			},
			duration: 250,
			easing: "quartIn",
			onBegin: showPane(this)
	  };
	  headerAnimate(animationProps);
	}
}

function showPane(context) {
	var currentTab = context;
	dojo.query("ul#header-login-tabs li").forEach(function(node, index, arr){
		if (currentTab.innerHTML == node.innerHTML) {
			dojo.addClass(node, "selected");
		} else {
			dojo.removeClass(node, "selected");
		}
	});
	dojo.query("#header-login-panes > div").forEach(function(node, index, arr){
		if (currentTab.id == node.id) {
			dojo.style(node, 'display', 'block');
		} else {
			dojo.style(node, 'display', 'none');
		}
	});
};

function clearInputValue() {
	this.value = "";
};

function msUsernameLogin() {
	dojo.query("label.text.header-login-ms-username span")[0].innerHTML = "Användarnamn:";
	dojo.byId("header-login-ms-username").value = "Användarnamn";
	dojo.query("label.text.header-login-ms-password span")[0].innerHTML = "Lösenord:";
	dojo.byId("header-login-ms-password").value = "*****";
	dojo.style(dojo.query(".forgot #header-ms-password")[0], "display", "block");
};

function msInvoiceLogin() {
	dojo.query("label.text.header-login-ms-username span")[0].innerHTML = "Personnummer:";
	dojo.byId("header-login-ms-username").value = "ååååmmddxxxx";
	dojo.query("label.text.header-login-ms-password span")[0].innerHTML = "Fakturanummer:";
	dojo.byId("header-login-ms-password").value = "OCR-nummer";
	dojo.style(dojo.query(".forgot #header-ms-password")[0], "display", "none");
};

function forumUsernameLogin() {
	dojo.query("label.text.header-login-forum-username span")[0].innerHTML = "Användarnamn:";
	dojo.byId("header-login-forum-username").value = "Användarnamn";
	dojo.query("label.text.header-login-forum-password span")[0].innerHTML = "Lösenord:";
	dojo.byId("header-login-forum-password").value = "*****";
	dojo.style(dojo.query(".forgot #header-forum-password")[0], "display", "block");
};

function forumInvoiceLogin() {
	dojo.query("label.text.header-login-forum-username span")[0].innerHTML = "Personnummer:";
	dojo.byId("header-login-forum-username").value = "åååmmddxxxx";
	dojo.query("label.text.header-login-forum-password span")[0].innerHTML = "Fakturanummer:";
	dojo.byId("header-login-ms-password").value = "OCR-nummer";
	dojo.style(dojo.query(".forgot #header-forum-password")[0], "display", "none");
};

// Login window
//-----------------------------------------------------------------------
dojo.require("dojo.fx.easing");
dojo.require("dojo.fx");

myAccountMouseOutEvent = null;
myAccountClickEvent = null;
myAccountCloseEvent = null;
  
dojo.addOnLoad(function(){
  if (dojo.byId("tsMyAccount") != null) {
      dojo.attr(dojo.byId("myAccountLink"), "href", "javascript:void(0)");
      myAccountClickEvent = dojo.connect(dojo.byId("tsMyAccount"), "onclick", null, "showLogin");
      dojo.connect(dojo.byId("tsMyAccount"), "onmouseover", null, "myAccountHover");
      myAccountMouseOutEvent = dojo.connect(dojo.byId("tsMyAccount"), "onmouseout", null, "myAccountHoverOut");
  }
});

function outsideClick(e) {
  var exclusionElement = false;
  var currentElement = e.target;
  while(currentElement != undefined && currentElement != document.body)
  {
	if (currentElement.id == 'tsLoginDialog' || currentElement.id == 'myAccountLink') {
	  exclusionElement = true;
	  break;
	}
	currentElement = currentElement.parentNode || currentElement.parentElement;
  }
  if (exclusionElement != true) {
	hideLogin();
  }
};

function hideLogin() {
  var animationProps = {
	node: "tsLoginDialog",
	properties: {
	  top: {
		end: -dojo.byId("tsLoginDialog").clientHeight,
		unit: "px"
	  }
	},
	duration: 150,
	easing: "expoOut"
  };
  headerAnimate(animationProps);
  myAccountHoverOut();
  if (myAccountMouseOutEvent[0] == undefined) {
	myAccountMouseOutEvent = dojo.connect(dojo.byId("tsMyAccount"), "onmouseout", null, "myAccountHoverOut");
  }
  dojo.disconnect(myAccountCloseEvent);
  dojo.disconnect(myAccountClickEvent);
  myAccountClickEvent = dojo.connect(dojo.byId("tsMyAccount"), "onclick", null, "showLogin");
};

function showLogin() {
  var animationProps = {
	node: "tsLoginDialog",
	properties: {
	  top: {
		start: -dojo.byId("tsLoginDialog").clientHeight+40,
		end: 40,
		unit: "px"
	  }
	},
	duration: 150,
	easing: "expoIn"
  };
  
  headerAnimate(animationProps);
  dojo.disconnect(myAccountMouseOutEvent);
  dojo.disconnect(myAccountClickEvent);
  myAccountClickEvent = dojo.connect(dojo.byId("tsMyAccount"), "onclick", null, "hideLogin");
  myAccountHover()
  myAccountCloseEvent = dojo.connect(document, "onclick", "outsideClick");
};

function myAccountHover() {
  dojo.addClass("tsMyAccount", "myAccountSelected");
};

function myAccountHoverOut() {
  dojo.removeClass("tsMyAccount", "myAccountSelected");
}


function headerAnimate(animationProps) {	
  var moveArgs = {
	node: animationProps.node,
	properties: animationProps.properties,
	easing: dojo.fx.easing[animationProps.easing],
	duration: animationProps.duration,
	delay: animationProps.delay,
	onEnd: animationProps.onEnd,
	onBegin: animationProps.onBegin
  };
  dojo.animateProperty(moveArgs).play();
}






// Webmail login scripts
//-----------------------------------------------------------------------

// store domain in a cookie.
document.cookie = "thedomain=pne.telia.com; path=/";
var counter = 0;
function login(){
if(document.forms[0].name.value=="suspended"){
goTo('index2.html');
} else {
goTo('metaFrame.html');
}
}

// If the checkbox widget exists to request an ssl connection and
// if it is checked, then true is returned.
function isSSLConnectionRequested() {
if( window.document.loginInfo.ssl ) {
return window.document.loginInfo.ssl[0].checked;
} else {
return false;
}
}

// If the hidded field exists to indicate that an ssl connection is
// required for this domain, then true is returned.
function isSSLConnectionsRequired() {
if( window.document.loginInfo.sslrequired ) {
return true;
} else {
return false;
}
}

function removeUsernameFromUrl(url) {
var username = /(.*)u=[^&]*([&]|$)(.*)/;
var result = url.match(username);
if( result != null ) {
url = result[1] + result[3];
}
return url;
}

function removeTokenFromUrl(url) {
var username = /(.*)t=[^&]*([&]|$)(.*)/;
var result = url.match(username);
if( result != null ) {
url = result[1] + result[3];
}
return url;
}

function removeDomainFromUrl(url) {
var username = /(.*)d=[^&]*([&]|$)(.*)/;
var result = url.match(username);
if( result != null ) {
url = result[1] + result[3];
}
return url;
}

// If javascript is enabled, the form action url will be be overwritten
// to take the user to authentication. Otherwise the default action
// will send them back to this very same form.
//
// The url will make a secure connection if one is requested by the
// user, or the domain requires it.
//
// This function is called by the body tag and the ssl checkbox.
function setAction() {


var protocol = window.location.protocol;
var hostname = window.location.hostname;
var port = window.location.port;
var httpport = "80";
// If the httpport is not set, well use the current port.
if( httpport == "0" ) {
httpport = port;
}
var sslport = "443";
if( isSSLConnectionRequested() || isSSLConnectionsRequired() ) {
// If a secure connection is required or requested, we'll use one.
protocol = "https://"
port = sslport;
} else {
protocol = "http://"
port = httpport;
}



var authenticateUrl = "/cp/ps/Main/login/TISAuthenticate?fp=fail&d=pne.telia.com";




// Remove unecessary query parameters from the url. The username is
// supplied by the login form. The token will be created upon
// a successful login.
authenticateUrl = removeUsernameFromUrl(authenticateUrl);
authenticateUrl = removeTokenFromUrl(authenticateUrl);
authenticateUrl = removeDomainFromUrl(authenticateUrl);
// Enable session validation. This prevents users re-authenticating
// an expired or logged out session using a browser refresh.
authenticateUrl = authenticateUrl + "&v=1259843362367";
// Construct the complete login url.
//var baseUrl = protocol + hostname + ":" + port + authenticateUrl;

// solution for login via Mina Sidor
var baseUrl = "https://webmail.telia.com/cp/ps/Main/login/TISAuthenticate?d=pne.telia.com"


// This block of code commented out cos it's not being used. It
// only makes sense to dynamically modify the locale if we allow
// the user to choose a locale right on the login page. Since
// we've removed that feature, this code is no longer needed.
// It'll stay here until we confirm that we no longer want
// the locale dropdown on the login page.
/*******************************************************************
var args = getArgs();
var localeArgsString = getLocaleArgsString(args);
if( localeArgsString.length > 0 ) {
if (baseUrl.indexOf("?") > 0) {
localeArgsString = "&" + localeArgsString;
} else {
localeArgsString = "?" + localeArgsString;
}
}
var url = baseUrl + localeArgsString;
*********************************************************************/
var url = baseUrl;
window.document.loginInfo.action = url;
// Put the focus on the username field only when the user first logs in.
if( counter==0 )
{
counter=1;
//document.loginInfo.u.focus();
//document.loginInfo.u.select();
}
}
// This function calls a popup window containing the signup wizard.
// Most importantly it attaches localization information to the url.
function getWizard() {
var url = "SignUpWizard";
var args = getArgs();
var localeArgsString = getLocaleArgsString(args);
if( localeArgsString.length > 0 ) {
localeArgsString = "?" + localeArgsString;
}
url += localeArgsString;
popWin(url,'','500','400');
}
// This functions splits the url argument list apart and places it
// into an array.
function getArgs() {
var args = new Object();
args.name = new Array();
args.value = new Array();
var query = window.location.search.substring(1);
var pairs = query.split("&");
for( var i = 0; i < pairs.length; i++ ) {
var pos = pairs[i].indexOf("=");
if (pos == -1) continue;
var argname = pairs[i].substring(0,pos);
args.name[i] = argname;
var value = pairs[i].substring(pos + 1);
args.value[i] = value;
args[argname] = value;
}
return args;
}
function getLocaleArgsString(args) {
var localeArgsString = "";
for( var i = 0; i < args.name.length; i++ ) {
if( args.name[i] == "l" ) {
localeArgsString += args.name[i] + "=" + args.value[i] + "&";
}
}
// Strip off trailing &
localeArgsString = localeArgsString.substring(0,localeArgsString.length - 1);
return localeArgsString;
}
// This function is called when a user chooses display the login page
// in a different langauge. This function modifies the locale query
// parameters of the form action url and submits the form to redraw
// the login form page.
function changeLocale() {
// Obtain value from language selection box.
var localeArray = window.document.loginInfo.localeString.options;
var localeIndex = window.document.loginInfo.localeString.selectedIndex;
// Locale in the format "language_COUNTRY". e.g. en_US, en_GB
var l = localeArray[localeIndex].value;
// construct url up to paramters
// var hostname = window.location.hostname;
// var port = window.location.port;
var url = "Login?";
// split up url parameters
var args = getArgs();
// blank out existing l parameter.
for( var i = 0; i < args.name.length; i++ ) {
if( args.name[i] == "l" ) {
args.value[i] = "";
args.name[i] = "";
}
//alert(args.name[i] + " = " + args.value[i]);
}
// url length before
var ulb = url.length;
// add parameters to url. Don't add blank parameters.
for( var i = 0; i < args.name.length; i++ ) {
if( args.name[i] != "" && args.name[i] != null) {
url += args.name[i] + "=" + args.value[i] + "&";
}
}
// Strip off trailing & if one was added.
if( url.length > ulb ) {
url = url.substring(0,url.length - 1);
}
// add l, c and v parameters
if( l ) {
url += "&l=" + l;
}
// place the url into the from action attribute.
window.document.loginInfo.action = url;
// perform the submit
window.document.loginInfo.submit();
}
function replace(str, oldstr, newstr)
{
if(!str)
return '';
var strLength = str.length;
if (strLength == 0) return '';
while(1)
{
var i = str.indexOf(oldstr);
if ((!i) && (oldstr != str.substring(0,oldstr.length)))
break;
if (i == -1)
break;
str = str.substring(0,i) + newstr + str.substring(i+oldstr.length,strLength);
}
return str;
}
var psSafeStr= '__RMS_AT_REP__';
//This function will replace any '@' with '+'
function makeLoginIdPSSafe()
{
var u= window.document.loginInfo.uVisible.value;
window.document.loginInfo.u.value= replace(u, '@', psSafeStr);
}
//This function will replace any '+' with '@'
function restorePSSafeLoginId()
{
var u= window.document.loginInfo.uVisible.value;
u= replace(u, psSafeStr, '@')
u= replace(u, psSafeStr.toLowerCase(), '@');
window.document.loginInfo.uVisible.value= u;
}

function doLoad()
{
var rdos = document.getElementsByName("rdoLoginType");
for(var i = 0; i < rdos.length; i++)
{
if(rdos[i].checked)
{
checkRdo(rdos[i]);
}
}
}

function checkRdo(obj)
{
var selectedValue = obj.value;
var usrLabel = document.getElementById("usrLabel");
var usrField = document.getElementById("usrField");
var txtUserName = 'Användarnamn eller e-postadress:';
var txtMobile = 'Mobilnummer:<br><span class="helpTxt">Exempel: 4035551234</span>';
if(selectedValue == 'mobileNum')
{
usrLabel.innerHTML=txtMobile;
usrField.name="mobileNumber";
usrField.value="";
}
else
{
usrLabel.innerHTML=txtUserName;
usrField.name="u";
usrField.value="";
}
setAction();
}




