
// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
    var version;
    var axo;
    var e;
    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("jQueryversion");
    } catch (e) {
    }
    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("jQueryversion") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";
            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
            axo.AllowScriptAccess = "always";
            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("jQueryversion");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("jQueryversion");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
    
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;            
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            if ( descArray[3] != "" ) {
                tempArrayMinor = descArray[3].split("r");
            } else {
                tempArrayMinor = descArray[4].split("r");
            }
            var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }    
    return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" ");     // ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];            // "2,0,0,11"
            versionArray      = tempString.split(",");    // ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];
            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
          str += '<object ';
          for (var i in objAttrs)
              str += i + '="' + objAttrs[i] + '" ';
          for (var i in params)
              str += '><param name="' + i + '" value="' + params[i] + '" /> ';
          str += '></object>';
    } else {
          str += '<embed ';
          for (var i in embedAttrs)
              str += i + '="' + embedAttrs[i] + '" ';
          str += '> </embed>';
    }
    document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){    
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":    
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

//-------------------------------------
// One object tracks the current modal dialog opened from this window.
var dialogWin = new Object();
// this function uses a js variable "project" defined in CMS templates.
var project = "#RDE-VAR:rdeProjectID/#"; 
function openWin(winURL) {
    var host = window.location.host;
    var h = (window.screen.availHeight - 60);
    var w = (window.screen.availWidth - 20);
    var url = "/cps/rde/xchg/" + project + "/site/direct.xml?molURL=" + winURL.replace(/\&/,"%26");            
    window.open( url , 'Statement', 'width=' + w + ',height=' + h + ',screenX=5,screenY=5,left=5,top=5,resizable=yes,menubar=no,scrollbars=yes,titlebar=no,toolbar=no,status=no,location=no');
}
function openDialog(url, width, height, returnFunc, args) {
    
    if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) {
        if (width < 250) width = 250;
        // Initialize properties of the modal dialog object.
        dialogWin.returnFunc = returnFunc
        dialogWin.returnedValue = ""
        dialogWin.args = args
        dialogWin.url = 
           "/cps/rde/xchg/" + project + "/site/mol-general.html?molURL=" + url           
        if ( url.indexOf("tfn_entry.jsp") > 0 ){
                dialogWin.url = 
                   "/cps/rde/xchg/" + project + "/site/mol-tfn.html"        
            }
        dialogWin.width = width
        dialogWin.height = height
        // Keep name unique so Navigator doesn't overwrite an existing dialog.
        dialogWin.name = (new Date()).getSeconds().toString()
        // Assemble window attributes and try to center the dialog.
        // The best we can do is center in screen.
        dialogWin.left = (screen.width - dialogWin.width) / 2
        dialogWin.top = (screen.height - dialogWin.height) / 2
        var attr = "left=" + dialogWin.left + ",screenX=" + dialogWin.left + ",top=" + 
           dialogWin.top + ",screenY=" + dialogWin.top + ",resizable=no,width=" + dialogWin.width + 
           ",height=" + dialogWin.height + ",scrollbars=yes" ;
        
        // Generate the dialog and make sure it has focus.
        
        dialogWin.win=window.open(dialogWin.url, dialogWin.name, attr)
        //dialogWin.win=window.open(dialogWin.url, dialogWin.name, "")        
        dialogWin.win.focus()
    } else {
        dialogWin.win.focus()
    }
}
// START LOADING FUNCTIONS
var formSubmitted = false;
function setPageLoading(){
    formSubmitted = true;
}
function isPageLoading(){
    return formSubmitted;
}
// the same as submit loading url except get the url from a function.
function submitLoadingURLWithFunct(func) {
    if (!isPageLoading()) {
        //alert("about to load funct");
        if (func()) {
            setPageLoading();
        }
    }
}
function submitLoadingURL(theForm, url) {
    if (!isPageLoading()) {
        if (url != ''){
            theForm.action=url;
        }
        setPageLoading();
        theForm.submit();
    }
}

function submitLoading( theForm ) {
    submitLoadingURL(theForm, '' );
}
/* focus */
// Set focus on the first element that the user is reqd to fill in
function setFirstFocus(){
    var theForm;
    var formFound = false;
    var excluded = "account_selector helpid";
    for(var i=0; i < document.forms.length; i++) {
        var tmpName = document.forms[i].id;
        if(excluded.indexOf(tmpName) == -1) {
            var tmpForm = document.forms[tmpName];
            if(isDefined(tmpForm)) {
                theForm = tmpForm;
                formFound = true;
                break;
            }        
        }
    }
    if(formFound) {
        var smallestIndex = -1;
        var smallestElement;
        for(var i=0, elementCount = theForm.elements.length; i < elementCount; i++) {
            var element = theForm.elements[i];
            if (isFocusable(element)) {
                if(smallestIndex == -1) {
                    smallestIndex = element.tabIndex;
                    smallestElement = element;
                } else if(element.tabIndex < smallestIndex){
                    smallestIndex = element.tabIndex;
                    smallestElement = element;    
                }
            }        
        }
        if(smallestIndex != -1) {
            smallestElement.focus()
        }
    }    
}
function isFocusable(element) {
    return element.tabIndex > 0 && 
        (element.type.indexOf('text') != -1 || element.type == 'password') &&
        !( (element.type.indexOf('text') != -1) && element.readOnly) && 
        !element.disabled;
}

function removeCommas(inString) {
    if (inString == null) {
        return null;
    }
    var resultingString = "";
    for(var i=0; i < inString.length; i++) {
        if (inString.charAt(i) != ',') {
            resultingString += inString.charAt(i);
        }
    }
    return resultingString;
}
function cleanRound(in_string, dp) {
    in_string = round(in_string, dp);
    
    // a unusual result created from the round function
    if (in_string == "00" ){
        in_string = "0.";
        for (var i=0; i < dp; ++i){
            in_string += "0";    
        }            
    } else {
        if (in_string.length > 1 && in_string.charAt(0) == 0 && in_string.charAt(1) != "." ){
            in_string = in_string.substr(1,in_string.length-1);
        }
    }
    
    // decimal places are zero but not catered for
    if (in_string.charAt(in_string.length-1) == '.') {
        in_string = in_string.substr(0,in_string.length-1)
    }
    
    // only decimal but no zero
    if (in_string.charAt(0) == '.'){
        in_string = "0" + in_string;    
    }
    return in_string;
}
function round(in_string, dp) {
    in_string = "" + in_string;
    if(is_number(in_string)) {
        num = parseFloat(in_string);
        temp = "";
        if(num == 0) {
            temp = "0";
            for(i=0;i<dp;++i) {
                temp += "0";
            }
        } else {
            if(num < 1 && num > 0) {
                temp = "0";
            }
            temp += Math.round(num * Math.pow(10, dp));
        }
        retval = temp.substring(0, temp.length - dp);
        if (dp != 0){
            retval = retval + "." + temp.substring(temp.length - dp, temp.length);
            if (retval.charAt(0) == "." ){
                retval = "0" + retval;    
            }
        }
        
        return retval;
    } else {
        return in_string;
    }
}

function currencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
} 

function commaFormatted(amount)
{
	var delimiter = ",";
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
} 

function focusAndSelect(obj) {
    if(obj && obj.type != 'hidden' && obj.type != 'span') {
        if(obj.select) {
            obj.select();
        }
        if(obj.focus) {
            obj.focus();
        }
    }
}
function isNumber(fld) {
    return is_number(fld.value);
}
function is_number(in_string) {
    allow = '0123456789.';
    if (in_string == '') {
        return false;
    }
    var i;
    for (i = 0; i < in_string.length; i++){
        if (allow.indexOf(in_string.charAt(i)) == -1){
            if (!(i == 0 && in_string.length > 1 && in_string.charAt(i) == '-')) {
                return false;
            }
        }
    }
    return true;
}


function onlinePopupWin(app,height,width,target) {
    h = (window.screen.availHeight - 100);
    w = (window.screen.availWidth - 30);
    if (width != undefined && height != undefined)
    {
        h = height;
        w = width;
    }
    t = 'GESB'
    if (target != undefined) {t = target;}
    t = t.replace(/-/g,'');
    t = t.replace(/\s/g,'');
    var winRef=window.open(app, t, 'width=' + w + ',height=' + h + ',screenX=5,screenY=5,left=5,top=5,resizable=yes,menubar=no,scrollbars=yes,titlebar=no,menubar=no,toolbar=no,status=yes');
    winRef.focus();
}

function isDefined(a) {
    return typeof a != 'undefined';
}
  
function formatLastLoggedIn(date, label){
      var offset = new Date().getTimezoneOffset();
      offset *= -1;
      var GMT = new String();
      if((offset % 60) != 0){
          GMT = ((offset - 30) / 60) + ":30 GMT";
      } 
      else{
          GMT = offset / 60 + " GMT";
      }
      var text = label + " " + formatDay(date) + " " + formatMonth(date) + " " + 
      date.getDate() + " " + date.getFullYear() + ", " + formatDecimal(date.getHours()) + ":" +
      formatDecimal(date.getMinutes()) + " (Time Zone " + GMT +")";
      return text;
  }
  
  /* 
  Gets the hour or minute and formats it to the correct decimal place
  */
  function formatDecimal(t){
      var time = new String();
      if(t < 10){
          time = "0" + t;    
      }    
      else{
          time = t;
      }
      return time;
  }
  /* 
  Gets the month name as a string from a date object
  */
  function formatMonth(D) {
      var MA = new String('JanFebMarAprMayJunJulAugSepOctNovDec')
      var M3 = 3*D.getMonth();
      var month = MA.substring(M3, M3+3);
      return month;
  }
  
  /* 
  Gets the day name as a string from a date object
  */
  function formatDay(D) {
      var DA = new String('SunMonTueWedThuFriSat')
      var D3 = 3*D.getDay();
      var day = DA.substring(D3, D3+3);
      return day;
  }
   /*
  Find the position of the parent element
  */
  function findPos(obj) 
  {
    var curleft = curtop = 0;
      if (obj.offsetParent)
      {
        do
        {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft,curtop];
  }
  
  /*
  Re-position the element...needed since IE6 is behaving differently
  */
  function rePosition(objAddThis)
  {
    var myArray = [2];
    var objReturn = addthis_open(objAddThis, '', '[URL]', '[TITLE]');
    
    if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) == 6))
    {
        objPopup = document.getElementById("at15s");
        objParent = document.getElementById("addthis-img");
        myArray = findPos(objParent);
        myArray[0] = myArray[0] - (objPopup.clientWidth - objParent.width);
        myArray[1] = myArray[1] + objParent.height + 1;
        objPopup.style.left = myArray[0] + 'px';
        objPopup.style.top = myArray[1] + 'px';
    }
    return (objReturn);
  }



//These functions are for pages that have drop-down box based navigation eg FAQ's -->
function articleSelected()
{
    var selector = document.getElementById("articleselect")
    var articleValue = selector.options[selector.selectedIndex].value;
    location.href = articleValue;
}
function categorySelected()
{
    var selector = document.getElementById("categoryselect")
    var articleValue = selector.options[selector.selectedIndex].value;
    location.href = articleValue;
}

// Function to fix Investments Issue here
/* changes and help */

function checkUnsavedChange( field, form_name, event) {	
	if ( document.forms[form_name].unsaved_changes.value == "true") {
		return;
	} else {
		if (field.type == 'checkbox') {
			if (event == 'onchange') {
				registerUnsavedChange(form_name);
			}
		}	
		else if (field.type == 'select-one') {
			if (event == 'onchange') {
				registerUnsavedChange(form_name);
			}
		} else if (field.value != field.defaultValue) {
			registerUnsavedChange(form_name);
		}
	}
}

function registerUnsavedChange( form_name ) {
	var unsavedField = document.forms[form_name].unsaved_changes;
	if (!unsavedField) {
		return;	
	}
	var firstSave = "false" == unsavedField.value;
	if (firstSave) {
		unsavedField.value = "true";
		
		var unsavedMessageDiv = document.getElementById('l-unsaved-changes');
		unsavedMessageDiv.className = 'active-unsaved-changes';	
	}
}

function checkUnsavedRefresh( form_name ) {
	var unsavedField = document.forms[form_name].unsaved_changes;
	if ("true" == unsavedField.value) {
		unsavedField.value = "false";
		registerUnsavedChange( form_name );	
	}
}


function setHelpText( helpText ) {
	var helpDiv = document.getElementById("l-help");
	helpDiv.innerHTML = '<p>' + helpText + '</p>';
}

function resetHelpText( helpText ) {
	var helpDiv = document.getElementById("l-help");
	helpDiv.innerHTML = '';
}

function help() {
	//determine which page is showing and open the help for it
	url = document.forms['helpid'].help.value;
	var pageName = getRootDirectory() + 'member/help.jsp?page=' + url;
	window.open(pageName,'helpwin');
}




//Proj 19277 on 12/6/2007 by lxb : Uses new formatLastLoggedDate method containing extra parameters
function formatLastLoggedIn(date, label, dateFormat){
	return label + " " + formatLastLoggedInDate(date, dateFormat);
}

// --------------------------------------------------------------------------------
// Proj 19277 on 12/6/2007 by lxb : Using this function to format the date and time
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// Note: To escape a character that is also a token (e.g. problem found when adding separator 'at')
// prefix the character with '\\'. Example format: E MMM d yyyy \\at hh:mm a
// --------------------------------------------------------------------------------
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x) {return(x<0||x>9?"":"0")+x}

/*
 * The format string consists of the following abbreviations:
 * 
 * Field        | Full Form          | Short Form
 * -------------|--------------------|-----------------------
 * Year         | yyyy (4 digits)    | yy (2 digits), y (2 or 4 digits)
 * Month        | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
 *              | NNN (abbr.)        |
 * Day of Month | dd (2 digits)      | d (1 or 2 digits)
 * Day of Week  | EE (name)          | E (abbr)
 * Hour (1-12)  | hh (2 digits)      | h (1 or 2 digits)
 * Hour (0-23)  | HH (2 digits)      | H (1 or 2 digits)
 * Hour (0-11)  | KK (2 digits)      | K (1 or 2 digits)
 * Hour (1-24)  | kk (2 digits)      | k (1 or 2 digits)
 * Minute       | mm (2 digits)      | m (1 or 2 digits)
 * Second       | ss (2 digits)      | s (1 or 2 digits)
 * AM/PM        | a                  |
 * Timezone(GMT)| z
 *
 * Any characters not in the above list, will not be formatted
 * To exclude characters from being formatted, use the escape character \\.
 * 
 * Example: E NNN d yyyy \\at HH:mm (Ti\\m\\e Zon\\e z G\\MT)
 * Output: Tue Jun 12 2007 at 15:17 (Time Zone 9:30 GMT) 
 */
function formatDateText(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var z = date.getTimezoneOffset();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	//Calculate GMT time
	z *= -1;
	var tz = new String();
	if((z % 60) != 0){
		tz = ((z - 30) / 60) + ":30";
	} else{
		tz = z / 60 + "";
	}
	value["z"]=tz;
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null && (i_format < 2 || format.charAt(i_format-2) != '\\')) { result=result + value[token]; }
		else { 
		    token = token.replace('\\', '');
		    result=result + token; }
		}
	return result;
	}
	


function filter_number(in_string){
	var lookup='0123456789.'
	var temp=''
	in_string=in_string+""

	for (i=0; i< in_string.length; i++){
		if (lookup.indexOf(in_string.charAt(i))!=-1){
			temp+=in_string.charAt(i)
		}
	}
	return temp
}

function split_numeric(in_string) {
	var new_array=new Array()
	var lookup='0123456789'
	var j=0
	var temp=""
	var i

	in_string=in_string+""
	for (i=0; i< in_string.length; i++){
		if (lookup.indexOf(in_string.charAt(i))==-1){
			if (temp !=''){
				new_array[j]=temp
				temp=""
				j++
			}
		}else{
			temp+=in_string.charAt(i)
		}
	}
	if(temp!="")
		new_array[j]=temp
	return new_array
}

function check_date(day,month,year){
  day=parseInt(day+"", 10)
  month=parseInt(month+"", 10)
  year=parseInt(year+"", 10)
  if (month == 1||month == 3||month == 5||month == 7||month == 8||month == 10||month == 12)
      if (31 >= day && day >=1)
          return true
  if (month == 2){
      days=28
      if (year%4==0)
          days=29
      if (year%100==0)
          days=28
      if (year%400==0)
          days=29
      if (days >=day && day >=1)
          return true
  }
  if (month == 4||month == 6||month == 9||month == 11)
      if (30 >= day && day >=1)
          return true
  return false
}



function format(element) {
	element.value = round(element.value, 2);
}

function checkDate(field){
	var nw=new Date()
	var val = field.value
	val = val+''

	strings = split_numeric(val)
	if (strings.length == 3) {
		day = parseInt(strings[0], 10);
		month = parseInt(strings[1], 10);
		year = parseInt(strings[2], 10);
	} else {
		return false;
	}
	if (day > 31 && 32>year){
		temp=day
		day=year
		year=temp
	}
	if (year < 100){
		//proj 23046 by uxk on 24/10/2008 : fixed incorrect date conversion error. 
		cy= nw.getFullYear()
		cy=cy+""
		cn = cy.substring(0, cy.length-2)+"00"
		cn=parseInt(cn)
		
		if (Math.abs(cy - (cn+year))>Math.abs(cy - (cn+year -100))){
            year=cn+year -100
		}else if(Math.abs(cy - (cn+year))>Math.abs(cy - (cn+year +100))){
            year=cn+year +100
		}else{
            year=cn+year
		}
	}
	if (!check_date(day,month,year)){
		return false
	}
	field.value=((10>day)?"0":"")+day+"/"+((10>month)?"0":"")+month+"/"+year
	return true
}

//These are the nice functions that should be called
//from other pages.

function isBlank(fld) {
    return (fld.value == '');
}


function isDate(fld) {
    return checkDate(fld);
}

function trim(str) {
	while((str.lastIndexOf(" ") == str.length-1) && (str.length > 0)) {
		str = str.substring(0, str.length-1);
	}
	return str;
}

function trim2(before) {
	arrayOfStrings = before.split(" ");
	var after = "";
	for (var i=0; i<arrayOfStrings.length; i++) {
		after = after.concat(arrayOfStrings[i]);
	}
	return after;
}

function selected(sel) {
	return sel.options[sel.selectedIndex].value;
}

function selectedOption(sel) {
	return sel.options[sel.selectedIndex];
}

function filterNumber(fld) {
	fld.value = filter_number(fld.value);
	return fld;
}

function validateExpiry(strMonth, strYear) {
    /*
     * kb. (25/07/01). SIR 1030. Contrib expiry date not recognising month numbers starting with zero.
     * eg. '09'. Fixed parseInt invocations to specify the base.
     */
	expiry_month = parseInt(strMonth, 10);
	expiry_year = parseInt(strYear, 10);

	current = new Date();
	current_year = current.getYear();
	current_month = current.getMonth() + 1;

	if (expiry_month > 12 || expiry_month < 1) {
		return -1;
	} else if (expiry_year < current_year) {
		return -2;
	} else if ((expiry_year == current_year) && (expiry_month < current_month)) {
		return -3;
	} else {
		return 0;
	}
}

function formatDate(date) {
	return date.getDate() + "/" + (date.getMonth()+1) + "/" + (date.getYear() <= 1900 ? date.getYear() + 1900 : date.getYear());
}


/* This function comparse to date1 to date2
 * If date1 is less than date2 then -1 is returned
 * If date1 is greater than date2 1 is returned
 * If date1 is equal to date2 then 0 is returned
 */

function dateComparison(date1, date2) {
	var date1Year = date1.getYear() <= 1900 ? date1.getYear() + 1900 : date1.getYear();
	var date2Year = date2.getYear() <= 1900 ? date2.getYear() + 1900 : date2.getYear();
	if (date1Year < date2Year) {
		return -1;
	} else if (date1Year > date2Year) {
		return 1;
	} else {
		if (date1.getMonth() < date2.getMonth()) {
			return -1;
		} else if (date1.getMonth() > date2.getMonth()) {
			return 1;
		} else {
			if (date1.getDate() < date2.getDate()) {
				return -1;
			} else if (date1.getDate() > date2.getDate()) {
				return 1;
			} else {
				return 0;
			}
		}
	}
}


/* Compares the two dates which are strings in the form dd/MM/yyyy.
 * Returns 0 if date1 = date2
 * -1 if date1 is less than date2
 * 1 if date1 is greater than date2
 * -2 if an error occurred
 * NOTE that some kind of validation should first be performed on the given
 * dates. eg. checkDate() - see above
 */

function dateComparisonStr(date1, date2)
{
	var nw = new Date()

	firstDate = split_numeric(date1);
	secondDate = split_numeric(date2);

	if (firstDate.length == 3)
	{
		firstDay = parseInt(firstDate[0], 10);
		firstMonth = parseInt(firstDate[1], 10);
		firstYear = parseInt(firstDate[2], 10);
	}
	else
	{
		return -2;
	}

	if (secondDate.length == 3)
	{
		secondDay = parseInt(secondDate[0], 10);
		secondMonth = parseInt(secondDate[1], 10);
		secondYear = parseInt(secondDate[2], 10);
	}
	else
	{
		return -2;
	}

	if (firstYear == secondYear)
	{
		if (firstMonth == secondMonth)
		{
			if (firstDay == secondDay)
			{
				return 0;
			}
			else
			{
				return ((firstDay > secondDay) ? 1 : -1);
			}
		}
		else
		{
			return ((firstMonth > secondMonth) ? 1 : -1);
		}
	}
	else
	{
		return ((firstYear > secondYear) ? 1 : -1);
	}
}



function displayParentDiv(obj) {
	
	if (!obj.parentNode && obj.parentElement) {
		obj.parentNode = obj.parentElement;
	}
	if (!obj.parentNode) {
		return;
	}
	p = obj.parentNode ;
	
	if (p != null) {
		if (String(p.nodeName)=="SPAN" || String(p.nodeName)=="DIV") {
			//alert("found div");
			if (p.style.display == 'none') {
				p.style.display = 'inline';
			}
		}
		displayParentDiv(p);
	}
}

function radioValue(obj) {
	if (obj.length) {
		// more than 1 in the group
		for (var i=0; i<obj.length; ++i) {
			if (obj[i].checked) {
				return obj[i].value;
			}
		}
		return null;
	} else {
		return obj.value;
	}
}
function setRadioValue(obj, value) {
	alert(obj.length);
	for (var i=0; i<obj.length; ++i) {
		alert(obj[i]);
	}
}

// format number into #,##0.00 format
function formatDollarString(num,dp){
	var fnum = cleanRound(num, dp);
	
	if ( fnum.length >= 7 ){ 
		fnum = fnum.substr(0,fnum.length-6) + "," + fnum.substr(fnum.length-6,fnum.length);
	}
	if ( fnum.length >= 11 ){
		fnum = fnum.substr(0,fnum.length-10) + "," + fnum.substr(fnum.length-10,fnum.length);
	}
	if ( fnum.length >= 15 ){
		fnum = fnum.substr(0,fnum.length-14) + "," + fnum.substr(fnum.length-14,fnum.length);
	}
	
	return fnum;
}


function isUndefined(a) {
    return !isDefined(a);
}


function isDefinedAndEmpty(field) {
	if (!isDefined(field)) {
		return false;
	} else {
		return isEmpty(field);
	}
}

function isDefinedAndNotEmpty(field) {
	if (!isDefined(field)) {
		return false;
	} else {
		return !isEmpty(field);
	}
}

function isEmpty(value) {
	if (typeof value == 'object') {
		value = value.value;
	}
	return value == null || trim(value).length == 0;
}

function setValueIfDefined(field,value) {
	if (typeof field != 'undefined') {
		field.value = value;
	}
}

function clearIfDefined(field) {
	setValueIfDefined(field,'');
}

function enableFirst() {
	for(var i=1; i < arguments.length; i++) {
		var name = arguments[i];
		if (name != arguments[0]) {
			var ds = document.getElementById(name);
			if (ds) {
				ds.disabled = true;
			}
		}
	}
	var en = document.getElementById(arguments[0]);
	if (en) {
		en.disabled = false;
	}
	en.focus();
}

function checkRadioIfExists(name) {
	var radio = document.getElementById( name );
	if (radio) {
		radio.checked = true;
	}
}

function areCookiesEnabled(){
	//if not IE4+ nor NS6+
	if (!isDefined(navigator.cookieEnabled)){ 
	  	var tmpcookie = new Date();
	  	chkcookie = (tmpcookie.getTime() + '');
  		document.cookie = "chkcookie=" + chkcookie + "; path=/";
  		var cookieEnabled = !(document.cookie.indexOf(chkcookie,0) < 0);
		document.cookie=""; //erase dummy value
		return cookieEnabled;
	} else {
		return navigator.cookieEnabled;
	}
}

/* 
* Clear function
*/
function clearText(fieldVal)
{
	if (fieldVal.defaultValue == fieldVal.value)
			fieldVal.value = '';
}	 

/*
 * Opens a 'generic' popup window. 
 */
function openPopupWindow(URL, width, height) {
	var h = height;
	var w = width;
	var top = 10;
	var left = 25;
	var params = 'width=' + w + ',screenX=5,screenY=5,height=' + h + ',left=' + left + ',top=' + top + ',resizable=yes,menubar=no,scrollbars=no,titlebar=no,toolbar=no,status=no';
    window.open(URL, new Date().getTime(), params);
}

// PG moved doPDF() to a central location
function doPDF(pdfURL) {
	openPopupWindowWithBorder(pdfURL, 50);
}

function openPopupWindowWithBorder(URL, border) {
	var h = Math.round(screen.availHeight - border);
	var w = Math.round(screen.availWidth - border);
	openPopupWindow(URL, w, h);
}

function openMemberPDF(url) {		
	var pdf_loc = getRootDirectory()+'members/pdf/'+url;		
	doPDF(pdf_loc);
}

/*
 * Valid return values NoJava, JavaUnknown, Java1.4-, Java5+
 */
function getJavaVersion() {
	var numPlugs=navigator.plugins.length;
	var lessJava15 = false;
	var equalMoreJava15 = false;
	if (numPlugs) {
		for (var x=0; x<numPlugs; x++) {
			var description = navigator.plugins[x].description;
			if (description.match('Java.* [2-9][.][0-9]')) {
				equalMoreJava15 = true;
			} else if (description.match('Java.* 1[.][5-9]')) {
				equalMoreJava15 = true;
			} else if (description.match('Java.* 1.[1-4]')) {
				lessJava15 = true;
			}
		}
	} else {
		return navigator.javaEnabled() ? 'JavaUnknown' : 'NoJava'
	}
	if (equalMoreJava15) {
		return 'Java5+';
	} else if (lessJava15) {
		return 'Java1.4-';
	} else {
		return 'NoJava';
	}
}

/*
	Show or hide a folder's files. Also change the icon on the folder to either
	folder-open or folder-closed.
*/
function changeFolderTree(id) {
	var files = document.getElementById(id);
	var shouldHide = (files.style.display != "none");
	files.style.display = shouldHide ? "none" : "inline";
	var folder = document.getElementById(id + 'folder');
	folder.className = shouldHide ? "folder-closed" : "folder-open";
}

function showSection(divId) {
	if (isDefined(document.getElementById(divId))) {
		document.getElementById(divId).style.display = "block";
	}
}

function hideSection(divId) {
	if (isDefined(document.getElementById(divId))) {
		document.getElementById(divId).style.display = "none";	
	}
}

/** can disable an entire editable results table row */ 
function disableRow(rowNumber) {
	var rowFields = getFieldsOfRow(rowNumber);
	
	for (var j = 0; j<rowFields.length; j++) {
		disableField(rowFields[j]);
	}
}

/** can enable an entire editable results table row */ 
function enableRow(rowNumber) {
	var rowFields = getFieldsOfRow(rowNumber);
	
	for (var j = 0; j<rowFields.length; j++) {
		enableField(rowFields[j]);
	}
}

function getFieldsOfRow(rowNumber) {
	var fields = new Array();
	var counter = 0;
	var trElement = document.getElementById('r_' + rowNumber);

	for (var i = 0; i<trElement.childNodes.length; i++) {
		
		if (trElement.childNodes[i].nodeName == "TD") {
			var inputFields = trElement.childNodes[i].getElementsByTagName("input");
			for (var j = 0; j<inputFields.length; j++) {
				fields[counter++] = inputFields[j];
			}
			
			var selectFields = trElement.childNodes[i].getElementsByTagName("select");
			for (var k = 0; k<selectFields.length; k++) {
				fields[counter++] = selectFields[k];
			}
		}
	}
	
	return fields;
}

function disableField(inputField) {
	if (!(inputField.className.substring(inputField.className.length-9,inputField.className.length) == ' disabled')) {
		inputField.className = inputField.className + " disabled";
	}
	inputField.disabled = 'disabled';
}

function enableField(inputField) {
	if (inputField.className.substring(inputField.className.length-9,inputField.className.length) == ' disabled') {
		inputField.className = inputField.className.substring(0,inputField.className.length-9);
		inputField.disabled = null;
	}
}

function login() {
	document.forms[0].submit();
	
	// Change cursor to wait
	var elem = document.getElementById('t-wrapper');
	if (elem) elem.style.cursor = 'wait';
	elem = document.getElementById('login_button')
	if (elem) elem.style.cursor = 'wait';
	
	// If logon msg exists, show it, and hide the error msg
	elem = document.getElementById('l-info');
	if (elem) {
		elem.style.display = 'block';
		elem = document.getElementById('l-error');
		if (elem) elem.style.display = 'none'
	}
}

function update(field, newValue) {
	field = document.getElementById(field);
	if (field != null && isDefined(field)) {
		if (field.nodeName == 'CHECKBOX') {
			field.checked = newValue;
		} else {
			field.value = newValue;	
		}
		var form = field.parentNode;
		while(isDefined(form)) {
			if (form.nodeName == 'FORM') {
				registerUnsavedChange( form.name );
				break;
			}
			form = form.parentNode;
		}
	}
}

// End functions to fix investment issue.

//video boxes 
jQuery(document).ready(function() {
    jQuery("a.video").fancybox({ width: 696, height: 415, hideOnContentClick: false });
});
var use_selectors = true;

//help hover tooltip
jQuery(function() {
    //jQuery('.helpContent').hide();
    jQuery('.help').bt
    (
        {
            contentSelector: "jQuery('.helpContent').html()", 
            padding: 14,
            width: 150,
            strokeWidth: 0, 
            spikeLength: 20,
            spikeGirth: 40,
            cornerRadius: 12,
            positions: ['left'],
            fill: 'rgba(140, 125, 112, .95)',
            cssStyles: {color: '#FFFFFF', fontSize: '11px'}
        }
    );
});

// forceNumeric()
jQuery.fn.forceNumeric = function () {
 return this.each(function () {
	 $(this).keydown(function (e) {
		 var key = e.which || e.keyCode;

		 if (!e.shiftKey && !e.altKey && !e.ctrlKey &&
		 // numbers   
			 key >= 48 && key <= 57 ||
		 // Numeric keypad
			 key >= 96 && key <= 105 ||
		 // comma, period and minus, . on keypad
			key == 190 || key == 188 || key == 109 || key == 110 ||
		 // Backspace and Tab and Enter
			key == 8 || key == 9 || key == 13 ||
		 // Home and End
			key == 35 || key == 36 ||
		 // left and right arrows
			key == 37 || key == 39 ||
		 // Del and Ins
			key == 46 || key == 45)
			 return true;

		 return false;
	 });
 });
}

/*
 * Supporting functionality for updating emails
*/
function validateEmail(newEmailAdddress) {
    var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
    var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
    var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
    var sQuotedPair = '\\x5c[\\x00-\\x7f]';
    var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d';
    var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22';
    var sDomain_ref = sAtom;
    var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')';
    var sWord = '(' + sAtom + '|' + sQuotedString + ')';
    var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*';
    var sLocalPart = sWord + '(\\x2e' + sWord + ')*';
    var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec
    var sValidEmail = '^' + sAddrSpec + '$'; // as whole string
    var reValidEmail = new RegExp(sValidEmail);
    var emailA = newEmailAdddress;
    if (reValidEmail.test(emailA)) {
        return true;
    }
    else {
        return false;
    }
}

function checkEmail(newEmailAddress) {
	newEmailAddress.attr('size', newEmailAddress.val().length + 3);
	newEmailAddress.removeClass('validate_ok'); newEmailAddress.removeClass('validate_error');
    if (validateEmail(newEmailAddress.val()) == true) {
        newEmailAddress.css({ "color": "#000" });
	}
	else
	{
        newEmailAddress.css({ "color": "#F00" });
    }
}

function confirmEmail(newEmailAddress) {
    $('#hNewEmailAddress').val(newEmailAddress.val());
    if (validateEmail(newEmailAddress.val()) == true) {
        newEmailAddress.addClass('validate_ok'); newEmailAddress.removeClass('validate_error');
    } else {
        newEmailAddress.addClass('validate_error'); newEmailAddress.removeClass('validate_ok');
    }
}

function updateEmail(k, m, oldEmailAddress, newEmailAddress) {
	if ($.trim(newEmailAddress.val()) == '')
	{
		alert("Your email address is not valid or is not recorded. \n\nUpdate it in the box below and select 'Continue'.");
		newEmailAddress.select();
		return false;
	}
	if (newEmailAddress.val().length > 50)
	{
		alert("Your email address is too long. If you are unable to enter an address under 50 characters in length you will not be able to make a claim online. \n\nCall us on 13 43 72 for help with your claim.");
		newEmailAddress.select();
		return false;
	}
    if (oldEmailAddress.val() == newEmailAddress.val()) {
		popAiaeClaim();
        return false;
    } else {
        if ((newEmailAddress.val() == '') || (validateEmail(newEmailAddress.val()) == false)) {
            alert("Your email address is not valid or is not recorded. \n\nUpdate it in the box below and select 'Continue'.");
            newEmailAddress.select();
            return false;
        }
		$("[id$='divUpdateEmailSuccess']").show('slow', function() { 
			try
			{
				$.ajax({
					type: "POST",
					url: "../../aspx/MOL/Services/MemberServices.asmx/UpdateEmail",
					data: "{ k: '" + k + "', m: '" + m + "', oldEmailAddress: '" + oldEmailAddress.val() + "', newEmailAddress: '" + newEmailAddress.val() + "'}",
					contentType: "application/json; charset=utf-8",
					dataType: "json",
					async: true,
					timeout: 120000,
					success: function(msg) {
						if (msg.d != '') {
							$("[id$='divUpdateEmailSuccess']").hide('slow', function() { alert(msg.d); });
							$.fancybox.close(); 
							return false;
						} else {
							$('#hOldEmailAddress').val(newEmailAddress.val());
							$("[id$='divUpdateEmailSuccess']").hide('slow', function() { popAiaeClaim() });
						}
						return true;
					},
					error: function(request, status, error) {
						$("[id$='divUpdateEmailSuccess']").hide('slow', function() { alert('An error has occurred while attempting to update your details. Please contact member services.'); });
						$.fancybox.close(); 
						return false;
					}
				});
			} catch (e) {
			}
		});
    }
}

// Additional functionality for Insurance Variation form
// Authors: Victor Tsen, Markus Giesen
// Create date: 2010-09-10
// Last mod date: 2010-09-29

//GLOBAL VARIABLE TO IDENTIFY WHICH OPT-OUT CHECKBOX WAS CLICKED ON
var whichOpt = "";

jQuery(document).ready(function() {
	//GLOBAL VARIABLE TO IDENTIFY WHICH OPT-OUT CHECKBOX WAS CLICKED ON
	var deathSelectValue = jQuery("[id$='ddlDeath'] option:selected").val();
	var tpdSelectValue = jQuery("[id$='ddlTpd'] option:selected").val();
	var sciSelectValue = jQuery("[id$='ddlSci'] option:selected").val();
	
	//CONFIRMATION PAGE CHECK BOX VALIDATION
	jQuery(".submitButton").click(function() 
    { 
		if(jQuery("[id$='CheckBoxConfirmation']").length) { 
			if(jQuery("[id$='CheckBoxConfirmation']").is(':checked')) 
			{ 
				return true; //submit the form
			}  
			else 
			{ 
				alert ("You must tick the box to confirm that you accept the member declaration notifications listed."); 
				return false; 
			} 
		}
    }); 
	
    jQuery('.occupationDescription').keyup(function() {
		var len = this.value.length;
		if (len >= 250) {
			this.value = this.value.substring(0, 250);
		}
	});
	
	//OCCUPATION DESCRIPTION CHECK VALIDATION
	jQuery(".saveBtn").click(function() 
    { 
		if((jQuery("[id$='ddlNewOccupationCategory']").val()==0) && (jQuery("[id$='ddlDeath']").val()=="null") &&  (jQuery("[id$='ddlTpd']").val()=="null") && jQuery("[id$='ddlSci']").val()=="null" && (jQuery("[id$='ddlEventDeath']").val()=="null") &&  (jQuery("[id$='ddlEventTpd']").val()=="null") && jQuery("[id$='ddlEventSci']").val()=="null" && (jQuery("[id$='ddlNewWaitingPeriod']").val()=="null") && !(jQuery("[id$='chkFixCover']").is(':checked'))) {
			alert ("At least one item must be changed to continue processing the variation.");
			return false; 
		}
        if(jQuery("[id$='ddlNewOccupationCategory']").val()!=0) {
			if(jQuery(".occupationDescription").val() != "") 
			{ 
				return true; //submit the form
			}  
			else 
			{ 
				alert ("Please provide the description of your current occupation."); 
				return false; 
			}
		}
	
    }); 
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CHOOSE TO INCREASE THEIR INSURANCE ABOVE THE MAX LIMIT.
	jQuery(".alertAboveBox").fancybox({
	    'autoDimensions' : false,	
  		'height' : 80, 
		'width' : 800,
		'hideOnContentClick': false
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CHOOSE TO OPT-OUT.
	jQuery(".alertBox").fancybox({
		'autoDimensions' : false,
  		'height' : 270, 
		'width' : 800,
		'hideOnContentClick': false
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CLICK TO FIND OUT MORE INFORMATION ON MAX COVER BASIC.
	jQuery(".alertMaxCoverBox").fancybox({
	    'autoDimensions' : false,	
  		'height' : 350, 
		'width' : 800,
		'titleShow'		: false,
		'hideOnContentClick': false
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CLICK TO FIND OUT MORE INFORMATION ON LIFEAPP REDIRECT.
	jQuery(".alertLifeAppBox").fancybox({
	    'autoDimensions' : false,
  		'height' : 250, 
		'width' : 800,
		'titleShow'	: false,
		'hideOnContentClick': false
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CLICK TO FIND OUT MORE INFORMATION BEING AT WORK.
	jQuery(".alertAtWorkBox").fancybox({
	    'autoDimensions' : false,	
  		'height' : 65, 
		'width' : 700,
		'titleShow'		: false,
		'hideOnContentClick': true
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CLICK TO FIND OUT MORE INFORMATION FOR DEATH, TPD & SCI.
	jQuery(".alertInsuranceBox").fancybox({
	    'autoDimensions' : false,	
  		'height' : 'auto', 
		'width' : 700,
		'titleShow'		: false,
		'hideOnContentClick': true
 	});
	
	//THIS FANCY ALERT BOX POPS UP WHEN USER CLICK TO FIND OUT MORE INFORMATION FOR WAITING PERIOD
	jQuery(".alertWaitingBox").fancybox({
	    'autoDimensions' : false,	
  		'height' :100, 
		'width' : 700,
		'titleShow'		: false,
		'hideOnContentClick': true
 	});

	//THE TRIGGER FOR DEATH AND TPD SELECTION ABOVE ALLOWED MAX INSURANCE LIMIT	
	jQuery("[id$='ddlDeath']").change(function() {

		if((jQuery("[id$='ddlDeath'] option:selected").text()=="Above")) {
			jQuery("#alertAboveClick").trigger('click');
			jQuery("[id$='ddlDeath']").val(deathSelectValue);		
		} else if((jQuery("[id$='ddlDeath'] option:selected").text()=="Opt-out")) {
			jQuery("#alert1BoxClick").trigger('click');	
			jQuery("[id$='ddlDeath']").val(deathSelectValue);
			whichOpt = "[id$=\"ddlDeath\"]";
		} 
		
	});
	
	//THE TRIGGER FOR TPD ONLY SELECTION ABOVE ALLOWED MAX INSURANCE LIMIT
	jQuery("[id$='ddlTpd']").change(function() { 

		if((jQuery("[id$='ddlTpd'] option:selected").text()=="Above")) {
			jQuery("#alertAboveClick").trigger('click');
			jQuery("[id$='ddlTpd']").val(tpdSelectValue);		
		} else if((jQuery("[id$='ddlTpd'] option:selected").text()=="Opt-out")) {
			jQuery("#alert1BoxClick").trigger('click');	
			jQuery("[id$='ddlTpd']").val(tpdSelectValue);
			whichOpt = "[id$=\"ddlTpd\"]";
		}
	
	});
	
	//THE TRIGGER FOR SCI ONLY SELECTION ABOVE ALLOWED MAX INSURANCE LIMIT
	jQuery("[id$='ddlSci']").change(function() { 
		if(jQuery(this).val()!="-1") {
			jQuery(".sciSelect").removeAttr('disabled');
		}
		if((jQuery("[id$='ddlSci'] option:selected").text()!="Opt-out")) {
			jQuery('.sciSelect').removeAttr('disabled');
		}
		if((jQuery("[id$='ddlSci'] option:selected").text()=="Above")) {
			jQuery("#alertAboveClick").trigger('click');
			jQuery("[id$='ddlSci']").val(sciSelectValue);		
		} else if((jQuery("[id$='ddlSci'] option:selected").text()=="Opt-out")) {
			jQuery("#alert1BoxClick").trigger('click');	
			jQuery("[id$='ddlSci']").val(sciSelectValue);
			whichOpt = "[id$=\"ddlSci\"]";
		}
	
	});

	//PRINT BUTTON FUNCTION ATTACHED NEXT TO SUBMIT BUTTONS
	var printbutton = jQuery('<div class="right"><input class="printButton" type="button" value="Print"/></div>').click(function(){
		window.print();
	});
	printbutton.insertAfter('.confirmCancelButton');
	printbutton.insertAfter('.confirmButton');
	
	//SHOW ALL BUTTON FUNCTION ATTACHED NEXT TO CLASS
	var showButton = jQuery('<div class="right"><input type="button" class="showButton" value="Show All"/></div>');
	showButton.insertAfter('.showAll');
	
	//Occupation Change select drop down box
	//Hide occupation content
	jQuery('.stateContent').hide();

	//Display content of default selected job	
	jQuery('#OC' + jQuery("[id$='ddlNewOccupationCategory']").val()).show();
	//On drop down change
	jQuery("[id$='ddlNewOccupationCategory']").change(function() {
		//Hide all occupation content
		jQuery('.stateContent').hide();
		//Display selected occupation content
		jQuery('#OC' + jQuery(this).val()).show();
	});
	
	//On hover over select drop down menu
	jQuery("[id$='ddlNewOccupationCategory'] option").hover(function() {
		//Hide all occupation content
		jQuery('.stateContent').hide();
		//Display selected occupation content
		jQuery('#OC' + jQuery(this).val()).show();
	});
	
		
});

/*
 * Supporting functionality for MOL EStatements
*/
$(document).ready(function() {
	//Register the original email address
	$('#origEmailEstatements').val( ($('#txtEmailEstatements').val())); 
	if ($("#rdoEstatementE").attr("checked") == true)
	{
		//$("#txtEmailEstatements").attr("disabled", false);
		$("#txtEmailEstatements").removeAttr('readOnly');
		$("#txtEmailEstatements").css("background-color", "White");
	}
	else
	{
		//$("#txtEmailEstatements").attr("disabled", true);
		$("#txtEmailEstatements").attr('class', 'readonly');
		$("#txtEmailEstatements").css("background-color", "#ccc");
	}
	
	// Validate email on text box losing focus
	$("#txtEmailEstatements").blur(function() 
    { 
		if (validateEmail($(this).val()) == false) alert("Your email address is not a valid address. Please update it and select ‘Save’.");	
    }); 	
	 
	 // Disable text box on 'Mail' selection
	 $("input[name='rdoEstatements']").click(function()	 
	 {	 	 
		 try {
	        this.blur();
	        this.focus();
			if (this.checked && $(this).val() == 'Opt-out') {		
				//$("#txtEmailEstatements").attr("disabled", true);	
				$("#txtEmailEstatements").attr('readonly', 'readonly');
				$("#txtEmailEstatements").css("background-color", "#ccc");
			}
			else
			{
				//$("#txtEmailEstatements").attr("disabled", false);
				$("#txtEmailEstatements").removeAttr('readOnly');
				$("#txtEmailEstatements").css("background-color", "White");
				alert("You will not receive a paper statement in the mail");
			}
	    }
	    catch (e) {}
	 });
	 
	 
	// Validate email on Save if 'Email' option selected
	$("input[name='btnEStatements']").click(function() 
	{
		if ($("#rdoEstatementE").attr("checked") == true)
		{
		    if (validateEmail($("#txtEmailEstatements").val()) == true) {
				if ($('#txtEmailEstatements').val() != $('#origEmailEstatements').val())
				{
					alert("All future email communication will be sent to your new email address.");
				}				
				return true;
		    } else {
		        return false;
		    }
		}
		else
		{			
			return true;
		}
});
	 
});

/*
 * Supporting functionality for AIA eClaims
*/
$(document).ready(function() {

    // Add popup for AIA eClaim
    $(".alertAiaeClaimAppBox").fancybox({
	    'autoDimensions' : false,	
  		'height' : 'auto', 
		'width' : 700,
		'scrolling': 'no',	
        'titleShow': false,
        'hideOnContentClick': false,
		'onStart' : function() {
			$("[id$='divAiaeClaimsIntro']").show();
			$("[id$='divAiaeClaimsIntroSci']").hide();
		},
		'onClosed' : function() {
			$("[id$='divUpdateEmailSuccess']").hide();
		}		
    });

    // Add popup for AIA eClaim
    $(".alertAiaeClaimAppBoxSci").fancybox({
	    'autoDimensions' : false,	
  		'height' : 'auto', 
		'width' : 700,
		'scrolling': 'no',		
        'titleShow': false,
        'hideOnContentClick': false,
		'onStart' : function() {
			$("[id$='divAiaeClaimsIntro']").hide();
			$("[id$='divAiaeClaimsIntroSci']").show();
		},		
		'onClosed' : function() {
			$("[id$='divUpdateEmailSuccess']").hide();
		}		
    });

	// Add click event for 'at work' warning- assuming it finds one.
    $("#alertAiaeClaimAtWorkClick").fancybox({
		'scrolling': 'no',		
        'titleShow': false,
        'hideOnContentClick': false
    });

	$("#eClaimsHeaderAtWorkCheck").click(function() {
		if ($('#eClaimsAccordianContent').is(':visible'))
		{
			$('#eClaimsAccordianMenuButton').trigger('click');
		}
		else
		{
			$("#alertAiaeClaimAtWorkClick").trigger('click');
		}
		return false;
	});
	
});

function updateEmailForAiaeClaim(k, m, oldEmailAddress, newEmailAddress) {
	updateEmail(k, m, oldEmailAddress, newEmailAddress);
}

function popAiaeClaim() {
    $.fancybox.close(); 
    window.open('/AIAeClaimPost.html');
}

/*
 * Supporting functionality for Age and Life Event Insurance
*/
$(document).ready(function () {
	$("[id$='txtSalaryIncrease']").forceNumeric();
	$("[id$='ddlEventSci']").html('');
	$("<option value='null'>Please select</option>").appendTo($("[id$='ddlEventSci']"));
});

function updateSciListForSalaryIncrease(salaryIncrease, currentValue, minValue, maxValue, miaValue, incrementBy) {
	$("[id$='ddlEventSci']").html('');

	var percentIncrease = (salaryIncrease.val() / 100);
	var miaRounded = (currentValue * percentIncrease) % incrementBy == 0 ? (currentValue * percentIncrease) : (currentValue * percentIncrease) + (incrementBy - ((currentValue * percentIncrease) % incrementBy));
	var mia = miaValue > miaRounded ? miaRounded : miaValue;
	var max = (currentValue + mia) > maxValue ? maxValue : (currentValue + mia);
	
	$("<option value='null'>Please select</option>").appendTo($("[id$='ddlEventSci']"));
	for (var i = minValue; i <= max; i = i + incrementBy) {
		var s = new String();
		s = currencyFormatted(i);
		s = commaFormatted(s);
		s = s.substring(0, s.length-3);
		$("<option value='" + i + "'>$" + s + "</option>").appendTo($("[id$='ddlEventSci']"));
	}
	
}

function checkForAgeEvent(rbAgeAndLifeEvent, ageExpired, dpDateOfLifeEvent) {
	if (rbAgeAndLifeEvent.find('input:checked').val() == 1) {
		if (ageExpired == true)
		{
			jQuery("#alertAgeEventExpiredClick").trigger('click');
			rbAgeAndLifeEvent.find('input:checked').attr('checked', false);
		}
		else
		{
			dpDateOfLifeEvent.datepicker('disable');	
			dpDateOfLifeEvent.val('');
		}
	}
	else
	{
		dpDateOfLifeEvent.datepicker('enable');	
	}
}

