/*
 Filename: kofc.js
 Created by Shah Khatri on 11/3/08
*/

var KOFC_COOKIE = "CFCLIENT_KOFC";
var KOFC_COOKIE_PATH = "/";
var KOFC_COOKIE_DURATION_IN_DAYS = 365.25 * 2;
var LANGUAGE_KEY = "languagecode";

function KofC_getCookie(cookieName,key) {
    var docCookie = document.cookie;
    
    if (! docCookie.length) {
       return;
    }
    
    var offset = docCookie.indexOf(cookieName + "=");
    if (offset < 0) {
      return;
    }    
    offset += cookieName.length + 1;
    var end = docCookie.indexOf(";", offset);
    if (end < 0) {
      end = docCookie.length;
    }    

    var myCookieValue = unescape(docCookie.substring(offset, end));
    
    offset = myCookieValue.indexOf(key + "=");
    if (offset < 0) {
      return;
    }
    offset += key.length + 1;
    end = myCookieValue.indexOf("#", offset);
    if (end < 0) {
      end = myCookieValue.length;
    }
    
    return myCookieValue.substring(offset, end);
} // End of function KofC_getCookie(cookie_name,key) {

function KofC_forwardUser(fURI, initialFolder) {
	var result = KofC_getCookie(KOFC_COOKIE,LANGUAGE_KEY);
	
	if (result) {
		KofC_redirect(initialFolder + "/" + result + fURI);
	} else {
		KofC_redirect(initialFolder + "/en" + fURI);
	}	
} // End of function KofC_forwardUser(fURI, initialFolder) {

function KofC_redirect(fURI) {
  window.location = fURI;
} // End of function KofC_redirect() {

function KofC_cookieExpiration(numDays) {
    var now = new Date();
    var expires = new Date();
    expires.setTime(now.getTime() + numDays * 1000 * 60 * 60 * 24);
    return expires.toGMTString();
} // End of function KofC_cookieExpiration(numDays) {

function KofC_setCookie(name, value, expire) {
    var url = location.href;
    var domainSpec = "";
    var re = /https?:\/\/([^\.\/]+\.)*([^\.\/]+\.[^\.\/]+)\//i;
    var myArray = url.match(re);
    if (myArray) {
      domainSpec = "; domain=" + myArray[2];
    }

    document.cookie = name + "=" + escape(value) +
      ((expire == null) ? "" : ("; expires=" + expire)) +
        "; path=" + KOFC_COOKIE_PATH +
        domainSpec;
} // End of function KofC_setCookie(name, value, expire) {

function KofC_setLanguageCookieIfNecessaryAndPossible(URLLanguageCode) {
  if (URLLanguageCode) {
    var cookieLanguageCode = KofC_getCookie(KOFC_COOKIE,LANGUAGE_KEY);

    if (! cookieLanguageCode || (cookieLanguageCode != URLLanguageCode)) {
      KofC_setCookie(KOFC_COOKIE, LANGUAGE_KEY + '=' + URLLanguageCode + '#',
        KofC_cookieExpiration(KOFC_COOKIE_DURATION_IN_DAYS));
    }
  }
} // End of function KofC_setLanguageCookieIfNecessaryAndPossible(URLLanguageCode) {

function KofC_getLanguageLink(currentWebSite, currentLanguageCode, newLanguageCode,
                              setCookie, goToCurrentSiteHomePage, coordinates, altText) {

  var newLanguageName = "English";
  if (newLanguageCode == "es") {
    newLanguageName = "Espa&ntilde;ol";
  }
  else if (newLanguageCode == "fr") {
    newLanguageName = "Fran&ccedil;ais";
  }
  else if (newLanguageCode == "pl") {
    newLanguageName = "Polski";
  }

// Example current page: /eb/pl/leadership_institute/surge_with_service/youth/index.html
  var regExp;
  var newHRef;
  if (goToCurrentSiteHomePage) {
// Example new page: /eb/en/leadership_institute/index.html
    regExp = new RegExp("/" + currentLanguageCode + "/([^/]+)/.*");
    newHRef = location.href.replace(regExp,"/" + newLanguageCode + "/$1/index.html");
  }
  else {
// Example new page: /eb/en/leadership_institute/surge_with_service/youth/index.html
    regExp = new RegExp("/" + currentLanguageCode + "/","g");
    newHRef = location.href.replace(regExp,"/" + newLanguageCode + "/");
  }
  
  var commonString = '" href="' + newHRef + '"';
  if (setCookie) {
    commonString += ' onClick="KofC_setCookie(\'' +
      KOFC_COOKIE + '\',\'' + LANGUAGE_KEY + '=' + newLanguageCode + '#\',\'' +
      KofC_cookieExpiration(KOFC_COOKIE_DURATION_IN_DAYS) + '\');"';
  }
  commonString += '>';

  if (currentWebSite == 'legacy') {
    document.write('<A class="UtilityLink"' + commonString + newLanguageName + '</A>');
  } else if (currentWebSite == 'Museum') {
    document.write('<area shape="rect" coords="' + coordinates + '" alt="' + altText +
                   commonString);
  }
  else {
    document.write('<A ' + commonString + newLanguageName + '</A>');
  }

} // End of function KofC_getLanguageLink(currentWebSite, currentLanguageCode, newLanguageCode, ...) {
