



  
var reRemoveWWW = /^www\./
var strHostname = location.hostname.replace(reRemoveWWW, "");

  
var never = new Date();
never.setTime(never.getTime() + (365*24*60*60*1000));


var isSSLRequest = ('https:' == document.location.protocol);








function GetCookie (name, decoded) {  
  var arg = name + "=";  
  var alen = arg.length;  
  var clen = document.cookie.length;  
  var i = 0;
  if (typeof decoded == undefined) {
    var decoded = true;
  }

  while (i < clen) {    
    var j = i + alen;    
    if (document.cookie.substring(i, j) == arg) return getCookieVal (j, decoded);
    i = document.cookie.indexOf(" ", i) + 1;    
    if (i == 0) break;   
  }  
  return null;
}


function getCookieVal (offset,decoded) {
  var cookieValue = document.cookie;
  var endstr = cookieValue.indexOf (";", offset);
  if (endstr == -1) {
    endstr = cookieValue.length;
  }
  
  if (cookieValue.length > 0 && cookieValue.charAt(offset) == '"' && cookieValue.charAt(endstr-1) == '"') {
    offset++;
    endstr--;
  }
  
  if (decoded) return unescape(cookieValue.substring(offset, endstr));
  else  return cookieValue.substring(offset, endstr);
}


function SetCookie (name, value) {  
  var argv = SetCookie.arguments;  
  var argc = SetCookie.arguments.length;  
  var expires = (argc > 2) ? argv[2] : null;  
  var path = (argc > 3) ? argv[3] : null;  
  var domain = (argc > 4) ? argv[4] : null;  
  var secure = (argc > 5) ? argv[5] : false;  

  document.cookie = name + "=" + value +          
    ((expires == null) ? ""         : ("; expires=" + expires.toGMTString())) + 
    ((path == null)    ? "; path=/" : ("; path=" + path)) +  
    ((domain == null)  ? ""         : ("; domain=" + domain)) +    
    ((secure == true)  ? "; secure" : "");
}


function DeleteCookie (name) {  
  var exp = new Date();  
  exp.setTime (exp.getTime() - 1);  
  var cval = GetCookie (name);  
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}



function GetChip (cookiename, name) {  
  var cookie=GetCookie(cookiename);
  
  if (cookie != null) {
    var arg=name+"=";  
    var alen=arg.length;  
    var i = cookie.indexOf(arg); 
    if (i>=0) {
      var j = cookie.indexOf("&", i);
      if (j>=0) {
        return cookie.substring(i+alen,j);
      } else {
        return cookie.slice(i+alen);
      }
    } else {
      return null;
    }
  } else {
    return null;
  }      
}


function SetChip(cookiename, name, value){
   var argv = SetChip.arguments;  
   var argc = SetChip.arguments.length;  
   var expires = (argc > 2) ? argv[3] : never; 
   var cookie=GetCookie(cookiename);
   var arg=name+"=";
   if (cookie==null) cookie = "";
   var i = cookie.indexOf(arg);
   var trail =""; 
   if (i>=0) {               
     var j = cookie.indexOf("&", i); 
     if (j>=0) trail=cookie.slice(j);  
     SetCookie(cookiename, cookie.substring(0,i)+arg+value+trail, expires, '/', strHostname);    
   } else {                             
     SetCookie(cookiename, cookie+'&'+arg+value, expires, '/', strHostname);    
   } 
}


function DeleteChip(cookiename, name){
  var cookie=GetCookie(cookiename);
  if (cookie != null) {
    var arg=name+"=";
    var i = cookie.indexOf(arg);
    var trail ="";
    if (i>=0) {              
      var j = cookie.indexOf("&", i);  
      if (j>=0) {
        trail=cookie.slice(j+1);     
        SetCookie(cookiename, cookie.substring(0,i)+trail, never);
        return 1;
      } else {
        SetCookie(cookiename, cookie.substring(0,i-1), never);
        return 1;
      }
    } else {
      return null;
    }        
  } else {
    return null;
  }
}


function SaveUserSetting(property, value) {
  SetCookie(property,value); 
}


function LoadUserSetting(property) {
  return GetCookie(property);
}











function IsLoggedIn() {
  return GetCookie('ptvuid') && GetCookie('ptvzon') &&
         GetCookie('ptvliet') && GetCookie('ptvliv');
}


function LogOut() {
  var domainForLogOut = (document.domain)?document.domain:"";
  
  
  var nonSecureDomain = GetCookie("NonSecureSchemeAndHost");
  if (nonSecureDomain == undefined) {
    var domain = domainForLogOut.substring(domainForLogOut.indexOf('.'));
  }

  
  var expiry = new Date();
  expiry.setTime(expiry.getTime() - 1);
  SetCookie('ptvzon', "", expiry, null,  domain);
  SetCookie('ptvliet', "", expiry, null, domain);
  SetCookie('ptvliv', "", expiry, null, domain);
  SetCookie('ptvuid', "", expiry, null, domain);
    
  SetCookie('ptvzon', "", expiry, null, '');
  SetCookie('ptvliet', "", expiry, null, '');
  SetCookie('ptvliv', "", expiry, null, '');
  SetCookie('ptvuid', "", expiry, null, '');
  return;
}


function OppositeLogOut(iframeId, secureDomain) {
  
  var nonSecureDomain = GetCookie("NonSecureSchemeAndHost");

  if (nonSecureDomain == undefined) {
    
    var logoutPageUrl = secureDomain + "/secureLogout.html";
    var frameHtml = "\<iframe src='" + logoutPageUrl + "'/>;";
    $("#" + iframeId).append(frameHtml);
  } else {
    
    var logoutPageUrl = nonSecureDomain + "/secureLogoutRedirect.html";
    window.location = logoutPageUrl;
  }
}








function siteLogout(iFrameId) {

	var currentSchemeAndHost;
	var oppositeSchemeAndHost;
	var currentCookieDomain;

  if(isSSLRequest) {
    currentSchemeAndHost = getSecureSchemeAndHost();
    oppositeSchemeAndHost = getNonSecureSchemeAndHost();
    currentCookieDomain = getSecureCookieDomain();
  } else {
    currentSchemeAndHost = getNonSecureSchemeAndHost();
    oppositeSchemeAndHost = getSecureSchemeAndHost();
    currentCookieDomain = getNonSecureCookieDomain();
  }
  
  doSiteLogout(currentCookieDomain, currentSchemeAndHost, oppositeSchemeAndHost, iFrameId);  
  
  
  if (typeof(GLOBAL_SITE_GROUP_SECURE_DOMAINS) != 'undefined') {  
    for (i=0; i < GLOBAL_SITE_GROUP_SECURE_DOMAINS.length; i++) {
      var domain = GLOBAL_SITE_GROUP_SECURE_DOMAINS[i];
      if (domain != currentSchemeAndHost && domain != oppositeSchemeAndHost) {
  			logoutFromOtherSite(domain, currentSchemeAndHost, iFrameId);
  		}
  	} 
	}
}


function doSiteLogout(currentCookieDomain, currentSchemeAndHost, oppositeSchemeAndHost, iFrameId) {
  removeLoginCookiesForDomain(currentCookieDomain);
  removeLoginCookiesForDomain('');
  
  if((oppositeSchemeAndHost != undefined) && (oppositeSchemeAndHost != '')) {
    logoutFromOtherSite(oppositeSchemeAndHost, currentSchemeAndHost, iFrameId);
  }
}


function logoutFromOtherSite(otherSchemeAndHost, currentSchemeAndHost, iFrameId) {
    var logoutPageUrl = otherSchemeAndHost + '/internalLogin/siteLogout?returnSchemeAndHost=' + currentSchemeAndHost;
    var frameHtml = '<iframe src="' + logoutPageUrl + '"></iframe>';
    $('#' + iFrameId).append(frameHtml);
}


function getSecureCookieDomain() {
  var secureCookieDomain;
  
  if(window.GLOBAL_SECURE_COOKIE_DOMAIN) {
    secureCookieDomain = window.GLOBAL_SECURE_COOKIE_DOMAIN;
  } else if(isSSLRequest && document.domain) {
    secureCookieDomain = document.domain;
  } else {
    
    secureCookieDomain = '';
  }
  
  return secureCookieDomain;
}


function getNonSecureSchemeAndHost() {
  var nonSecureSchemeAndHost;
  
  if(window.GLOBAL_NON_SECURE_SCHEME_AND_HOST) {
    nonSecureSchemeAndHost = window.GLOBAL_NON_SECURE_SCHEME_AND_HOST;
  } else if(!isSSLRequest && document.domain) {
    nonSecureSchemeAndHost = 'http://' + document.domain;
  } else {
    
    nonSecureSchemeAndHost = '';
  }
  
  return nonSecureSchemeAndHost;
}


function getNonSecureCookieDomain() {
  var nonSecureCookieDomain;
  
  if(window.GLOBAL_NON_SECURE_COOKIE_DOMAIN) {
    nonSecureCookieDomain = window.GLOBAL_NON_SECURE_COOKIE_DOMAIN;
  } else if(!isSSLRequest && document.domain) {
    nonSecureCookieDomain = document.domain.substring(domainForLogOut.indexOf('.'));
  } else {
    nonSecureCookieDomain = '';
  }
  
  return nonSecureCookieDomain;
}


function getSecureSchemeAndHost() {
  var secureSchemeAndHost;
  
  if(window.GLOBAL_SECURE_SCHEME_AND_HOST) {
    secureSchemeAndHost = window.GLOBAL_SECURE_SCHEME_AND_HOST;
  } else if(isSSLRequest && document.domain) {
    secureSchemeAndHost = 'https://' + document.domain;
  } else {
    
    secureSchemeAndHost = '';
  }
  
  return secureSchemeAndHost;
}


function removeLoginCookiesForDomain(domain) {
  var expiry = new Date();
  expiry.setTime(expiry.getTime() - 1);
  
  SetCookie('ptvzon',  '', expiry, null, domain);
  SetCookie('ptvliet', '', expiry, null, domain);
  SetCookie('ptvliv',  '', expiry, null, domain);
  SetCookie('ptvuid',  '', expiry, null, domain);
}


var siteLogoutsCount = 0;

function individualCookieLogoutCallBack(logoutOk) {
  if (logoutOk) {
    siteLogoutsCount = siteLogoutsCount + 1;
    if (typeof(GLOBAL_SITE_GROUP_SECURE_DOMAINS) == 'undefined' || siteLogoutsCount >= GLOBAL_SITE_GROUP_SECURE_DOMAINS.length) {
      cookieLogoutCallback(true);
    }
  }
  else {
    cookieLogoutCallback(false);
  }
}

