﻿/* ForeSee survey implementation

   Added 2011.08.05 by jbri
   ForeSee requires a call to the foresee-trigger.js at the top of every page.
   Currently the only way to do that would be to edit the template for each page type on the site and regen the entire website or
   include it in this global.js - hence:
   
   document.write('<scr' + 'ipt type="text\/javascript" src="\/includes\/foresee\/foresee-trigger.js"><\/script>'); 
*/
   document.write('<scr' + 'ipt type="text\/javascript" src="\/includes\/foresee\/foresee-trigger.js"><\/script>'); 


// ------------ SURVEY START
// DD_belatedPNG() is for the survey.

/**

* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.

* Author: Drew Diller

* Email: drew.diller@gmail.com

* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/

* Version: 0.0.8a

* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license

*

* Example usage:

* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector

* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement

**/

 

/*

PLEASE READ:

Absolutely everything in this script is SILLY.  I know this.  IE's rendering of certain pixels doesn't make sense, so neither does this code!

*/

 

var DD_belatedPNG = {

       ns: 'DD_belatedPNG',

       imgSize: {},

       delay: 10,

       nodesFixed: 0,

       createVmlNameSpace: function () { /* enable VML */

              if (document.namespaces && !document.namespaces[this.ns]) {

                     document.namespaces.add(this.ns, 'urn:schemas-microsoft-com:vml');

              }

       },

       createVmlStyleSheet: function () { /* style VML, enable behaviors */

              /*

                     Just in case lots of other developers have added

                     lots of other stylesheets using document.createStyleSheet

                     and hit the 31-limit mark, let's not use that method!

                     further reading: http://msdn.microsoft.com/en-us/library/ms531194(VS.85).aspx

              */

              var screenStyleSheet, printStyleSheet;

              screenStyleSheet = document.createElement('style');

              screenStyleSheet.setAttribute('media', 'screen');

              document.documentElement.firstChild.insertBefore(screenStyleSheet, document.documentElement.firstChild.firstChild);

              if (screenStyleSheet.styleSheet) {

                     screenStyleSheet = screenStyleSheet.styleSheet;

 

                     /*                   screenStyleSheet.addRule(this.ns + '\\:*', 'behavior:url(#default#VML);');  */

                     /* added 2011.01.05 jbri  */

                     screenStyleSheet.addRule(this.ns + "\\:shape", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:rect", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:oval", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:fill", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:stroke", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:imagedata", "behavior: url(#default#VML);");

                     screenStyleSheet.addRule(this.ns + "\\:group", "behavior: url(#default#VML);");

 

                     screenStyleSheet.addRule(this.ns + '\\:shape', 'position:absolute;');

                     screenStyleSheet.addRule('img.' + this.ns + '_sizeFinder', 'behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;'); /* large negative top value for avoiding vertical scrollbars for large images, suggested by James O'Brien, http://www.thanatopsic.org/hendrik/ */

                     this.screenStyleSheet = screenStyleSheet;

 

                     /* Add a print-media stylesheet, for preventing VML artifacts from showing up in print (including preview). */

                     /* Thanks to Rémi Prévost for automating this! */

                     printStyleSheet = document.createElement('style');

                     printStyleSheet.setAttribute('media', 'print');

                     document.documentElement.firstChild.insertBefore(printStyleSheet, document.documentElement.firstChild.firstChild);

                     printStyleSheet = printStyleSheet.styleSheet;

 

                     /*                   printStyleSheet.addRule(this.ns + '\\:*', '{display: none !important;}');  */

                     /* added 2011.01.05 jbri  */

                     printStyleSheet.addRule(this.ns + "\\:shape", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:rect", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:oval", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:fill", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:stroke", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:imagedata", "display: none !important;");

                     printStyleSheet.addRule(this.ns + "\\:group", "display: none !important;");

 

 

                     printStyleSheet.addRule('img.' + this.ns + '_sizeFinder', '{display: none !important;}');

              }

       },

       readPropertyChange: function () {

              var el, display, v;

              el = event.srcElement;

              if (!el.vmlInitiated) {

                     return;

              }

              if (event.propertyName.search('background') != -1 || event.propertyName.search('border') != -1) {

                     DD_belatedPNG.applyVML(el);

              }

              if (event.propertyName == 'style.display') {

                     display = (el.currentStyle.display == 'none') ? 'none' : 'block';

                     for (v in el.vml) {

                           if (el.vml.hasOwnProperty(v)) {

                                  el.vml[v].shape.style.display = display;

                           }

                     }

              }

              if (event.propertyName.search('filter') != -1) {

                     DD_belatedPNG.vmlOpacity(el);

              }

       },

       vmlOpacity: function (el) {

              if (el.currentStyle.filter.search('lpha') != -1) {

                     var trans = el.currentStyle.filter;

                     trans = parseInt(trans.substring(trans.lastIndexOf('=')+1, trans.lastIndexOf(')')), 10)/100;

                     el.vml.color.shape.style.filter = el.currentStyle.filter; /* complete guesswork */

                     el.vml.image.fill.opacity = trans; /* complete guesswork */

              }

       },

       handlePseudoHover: function (el) {

              setTimeout(function () { /* wouldn't work as intended without setTimeout */

                     DD_belatedPNG.applyVML(el);

              }, 1);

       },

       /**

       * This is the method to use in a document.

       * @param {String} selector - REQUIRED - a CSS selector, such as '#doc .container'

       **/

       fix: function (selector) {

              if (this.screenStyleSheet) {

                     var selectors, i;

                     selectors = selector.split(','); /* multiple selectors supported, no need for multiple calls to this anymore */

                     for (i=0; i<selectors.length; i++) {

                           this.screenStyleSheet.addRule(selectors[i], 'behavior:expression(DD_belatedPNG.fixPng(this))'); /* seems to execute the function without adding it to the stylesheet - interesting... */

                     }

              }

       },

       applyVML: function (el) {

              el.runtimeStyle.cssText = '';

              this.vmlFill(el);

              this.vmlOffsets(el);

              this.vmlOpacity(el);

              if (el.isImg) {

                     this.copyImageBorders(el);

              }

       },

       attachHandlers: function (el) {

              var self, handlers, handler, moreForAs, a, h;

              self = this;

              handlers = {resize: 'vmlOffsets', move: 'vmlOffsets'};

              if (el.nodeName == 'A') {

                     moreForAs = {mouseleave: 'handlePseudoHover', mouseenter: 'handlePseudoHover', focus: 'handlePseudoHover', blur: 'handlePseudoHover'};

                     for (a in moreForAs) {                   

                           if (moreForAs.hasOwnProperty(a)) {

                                  handlers[a] = moreForAs[a];

                           }

                     }

              }

              for (h in handlers) {

                     if (handlers.hasOwnProperty(h)) {

                           handler = function () {

                                  self[handlers[h]](el);

                           };

                           el.attachEvent('on' + h, handler);

                     }

              }

              el.attachEvent('onpropertychange', this.readPropertyChange);

       },

       giveLayout: function (el) {

              el.style.zoom = 1;

              if (el.currentStyle.position == 'static') {

                     el.style.position = 'relative';

              }

       },

       copyImageBorders: function (el) {

              var styles, s;

              styles = {'borderStyle':true, 'borderWidth':true, 'borderColor':true};

              for (s in styles) {

                     if (styles.hasOwnProperty(s)) {

                           el.vml.color.shape.style[s] = el.currentStyle[s];

                     }

              }

       },

       vmlFill: function (el) {

              if (!el.currentStyle) {

                     return;

              } else {

                     var elStyle, noImg, lib, v, img, imgLoaded;

                     elStyle = el.currentStyle;

              }

              for (v in el.vml) {

                     if (el.vml.hasOwnProperty(v)) {

                           el.vml[v].shape.style.zIndex = elStyle.zIndex;

                     }

              }

              el.runtimeStyle.backgroundColor = '';

              el.runtimeStyle.backgroundImage = '';

              noImg = true;

              if (elStyle.backgroundImage != 'none' || el.isImg) {

                     if (!el.isImg) {

                           el.vmlBg = elStyle.backgroundImage;

                           el.vmlBg = el.vmlBg.substr(5, el.vmlBg.lastIndexOf('")')-5);

                     }

                     else {

                           el.vmlBg = el.src;

                     }

                     lib = this;

                     if (!lib.imgSize[el.vmlBg]) { /* determine size of loaded image */

                           img = document.createElement('img');

                           lib.imgSize[el.vmlBg] = img;

                           img.className = lib.ns + '_sizeFinder';

                           img.runtimeStyle.cssText = 'behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;'; /* make sure to set behavior to none to prevent accidental matching of the helper elements! */

                           imgLoaded = function () {

                                  this.width = this.offsetWidth; /* weird cache-busting requirement! */

                                  this.height = this.offsetHeight;

                                  lib.vmlOffsets(el);

                           };

                           img.attachEvent('onload', imgLoaded);

                           img.src = el.vmlBg;

                           img.removeAttribute('width');

                           img.removeAttribute('height');

                           document.body.insertBefore(img, document.body.firstChild);

                     }

                     el.vml.image.fill.src = el.vmlBg;

                     noImg = false;

              }

              el.vml.image.fill.on = !noImg;

              el.vml.image.fill.color = 'none';

              el.vml.color.shape.style.backgroundColor = elStyle.backgroundColor;

              el.runtimeStyle.backgroundImage = 'none';

              el.runtimeStyle.backgroundColor = 'transparent';

       },

       /* IE can't figure out what do when the offsetLeft and the clientLeft add up to 1, and the VML ends up getting fuzzy... so we have to push/enlarge things by 1 pixel and then clip off the excess */

       vmlOffsets: function (el) {

              var thisStyle, size, fudge, makeVisible, bg, bgR, dC, altC, b, c, v;

              thisStyle = el.currentStyle;

              size = {'W':el.clientWidth+1, 'H':el.clientHeight+1, 'w':this.imgSize[el.vmlBg].width, 'h':this.imgSize[el.vmlBg].height, 'L':el.offsetLeft, 'T':el.offsetTop, 'bLW':el.clientLeft, 'bTW':el.clientTop};

              fudge = (size.L + size.bLW == 1) ? 1 : 0;

              /* vml shape, left, top, width, height, origin */

              makeVisible = function (vml, l, t, w, h, o) {

                     vml.coordsize = w+','+h;

                     vml.coordorigin = o+','+o;

                     vml.path = 'm0,0l'+w+',0l'+w+','+h+'l0,'+h+' xe';

                     vml.style.width = w + 'px';

                     vml.style.height = h + 'px';

                     vml.style.left = l + 'px';

                     vml.style.top = t + 'px';

              };

              makeVisible(el.vml.color.shape, (size.L + (el.isImg ? 0 : size.bLW)), (size.T + (el.isImg ? 0 : size.bTW)), (size.W-1), (size.H-1), 0);

              makeVisible(el.vml.image.shape, (size.L + size.bLW), (size.T + size.bTW), (size.W), (size.H), 1 );

              bg = {'X':0, 'Y':0};

              if (el.isImg) {

                     bg.X = parseInt(thisStyle.paddingLeft, 10) + 1;

                     bg.Y = parseInt(thisStyle.paddingTop, 10) + 1;

              }

              else {

                     for (b in bg) {

                           if (bg.hasOwnProperty(b)) {

                                  this.figurePercentage(bg, size, b, thisStyle['backgroundPosition'+b]);

                           }

                     }

              }

              el.vml.image.fill.position = (bg.X/size.W) + ',' + (bg.Y/size.H);

              bgR = thisStyle.backgroundRepeat;

              dC = {'T':1, 'R':size.W+fudge, 'B':size.H, 'L':1+fudge}; /* these are defaults for repeat of any kind */

              altC = { 'X': {'b1': 'L', 'b2': 'R', 'd': 'W'}, 'Y': {'b1': 'T', 'b2': 'B', 'd': 'H'} };

              if (bgR != 'repeat' || el.isImg) {

                     c = {'T':(bg.Y), 'R':(bg.X+size.w), 'B':(bg.Y+size.h), 'L':(bg.X)}; /* these are defaults for no-repeat - clips down to the image location */

                     if (bgR.search('repeat-') != -1) { /* now let's revert to dC for repeat-x or repeat-y */

                            v = bgR.split('repeat-')[1].toUpperCase();

                           c[altC[v].b1] = 1;

                           c[altC[v].b2] = size[altC[v].d];

                     }

                     if (c.B > size.H) {

                           c.B = size.H;

                     }

                     el.vml.image.shape.style.clip = 'rect('+c.T+'px '+(c.R+fudge)+'px '+c.B+'px '+(c.L+fudge)+'px)';

              }

              else {

                     el.vml.image.shape.style.clip = 'rect('+dC.T+'px '+dC.R+'px '+dC.B+'px '+dC.L+'px)';

              }

       },

       figurePercentage: function (bg, size, axis, position) {

              var horizontal, fraction;

              fraction = true;

              horizontal = (axis == 'X');

              switch(position) {

                     case 'left':

                     case 'top':

                           bg[axis] = 0;

                           break;

                     case 'center':

                           bg[axis] = 0.5;

                           break;

                     case 'right':

                     case 'bottom':

                           bg[axis] = 1;

                           break;

                     default:

                           if (position.search('%') != -1) {

                                  bg[axis] = parseInt(position, 10) / 100;

                           }

                           else {

                                  fraction = false;

                           }

              }

              bg[axis] = Math.ceil(  fraction ? ( (size[horizontal?'W': 'H'] * bg[axis]) - (size[horizontal?'w': 'h'] * bg[axis]) ) : parseInt(position, 10)  );

              if (bg[axis] % 2 === 0) {

                     bg[axis]++;

              }

              return bg[axis];

       },

       fixPng: function (el) {

              el.style.behavior = 'none';

              var lib, els, nodeStr, v, e;

              if (el.nodeName == 'BODY' || el.nodeName == 'TD' || el.nodeName == 'TR') { /* elements not supported yet */

                     return;

              }

              el.isImg = false;

              if (el.nodeName == 'IMG') {

                     if(el.src.toLowerCase().search(/\.png$/) != -1) {

                           el.isImg = true;

                           el.style.visibility = 'hidden';

                     }

                     else {

                           return;

                     }

              }

              else if (el.currentStyle.backgroundImage.toLowerCase().search('.png') == -1) {

                     return;

              }

              lib = DD_belatedPNG;

              el.vml = {color: {}, image: {}};

              els = {shape: {}, fill: {}};

              for (v in el.vml) {

                     if (el.vml.hasOwnProperty(v)) {

                           for (e in els) {

                                   if (els.hasOwnProperty(e)) {

                                         nodeStr = lib.ns + ':' + e;

                                         el.vml[v][e] = document.createElement(nodeStr);

                                  }

                           }

                           el.vml[v].shape.stroked = false;

                           el.vml[v].shape.appendChild(el.vml[v].fill);

                           el.parentNode.insertBefore(el.vml[v].shape, el);

                     }

              }

              el.vml.image.shape.fillcolor = 'none'; /* Don't show blank white shapeangle when waiting for image to load. */

              el.vml.image.fill.type = 'tile'; /* Makes image show up. */

              el.vml.color.fill.on = false; /* Actually going to apply vml element's style.backgroundColor, so hide the whiteness. */

              lib.attachHandlers(el);

              lib.giveLayout(el);

              lib.giveLayout(el.offsetParent);

              el.vmlInitiated = true;

              lib.applyVML(el); /* Render! */

       }

};

try {

       document.execCommand("BackgroundImageCache", false, true); /* TredoSoft Multiple IE doesn't like this, so try{} it */

} catch(r) {}

DD_belatedPNG.createVmlNameSpace();

DD_belatedPNG.createVmlStyleSheet();

 

$(document).ready(function () {

   // Survey

   $(document).ready(function () {

 

      var survey = 'off';

      var path = top.location.pathname;

      var host = top.location.hostname;

      //alert('path: ' + path);

      var pathLength = path.match(/\//g).length;

      //alert('pathLength = ' + pathLength + "\n host = " + host + "\n path = " + path);

 

 

      // the first conditional is for testing, the second is production

      //if (path.match(/\/myhome\/customerservice\/smartmeter\/analogmeters\/schedule\/resinfo\//) || path.match(/\/myhome\/customerservice\/smartmeter\/analogmeters\//) ){

      if (pathLength > 4 && host.match(/pge\.com/)) {

         //alert('Qualifies for survey potential with pathLength = ' +pathLength );

//         survey = 'on';

         survey = 'off'; // to turn off the survey

      }

 

 

      // Trying to display the survey invitation once every four users

      if (survey == 'on') {

         var rand = Math.floor(Math.random() * 10);

         //var rand = Math.floor(Math.random()*2); //testing

         //alert('rand needs to be 1. it is ' + rand);

         if (rand == 1) {

            // Create html element

            $(document.createElement("div")).attr("id", "survey-alert-container").prependTo("body");

            $("#survey-alert-container").html('<div class="box-close"><a href="javascript:void(0)" class="jqmClose png_fix"><span>Close</span></a></div><div class="box-wrapper"><h2>Want to make this site better?</h2><div class="bd clearfix"><ul><li><div class="thumb"><img src="/includes/images/shared/keyboard_100x73.jpg" alt="Survey" /></div><div class="content"><p>Answer 4 quick questions to help us improve.</p><p><strong><a href="https://survey.qualtrics.com/SE/?SID=SV_8AniTmLubWZ2htG" target="_blank" >Take the Survey</a></strong></p></div></li></ul></div></div>');

            // Create background html element

            $(document.createElement("div")).attr("id", "survey-alert-background").prependTo("body");

 

 

            if ($.cookie("alert-bar") != 'no') {

               $("#survey-alert-background").css({ "opacity": "0.5" });

 

               //centering alert box

               var windowWidth = document.documentElement.clientWidth;

               var windowHeight = document.documentElement.clientHeight;

               var popupHeight = $("#survey-alert-container").height();

               var popupWidth = $("#survey-alert-container").width();

               $("#survey-alert-container").css({

                  "top": windowHeight / 2 - popupHeight / 2,

                  "left": windowWidth / 2 - popupWidth / 2

               });

 

               // IE6

               $("#survey-alert-background").css({

                  "height": windowHeight

               });

 

               $("#survey-alert-background").fadeIn("slow");

               $("#survey-alert-container").show();

               DD_belatedPNG.fix('.png_fix');

            }

 

            // click on X in alert container to close

            $('#survey-alert-container .box-close a').click(function () {

               $.cookie("alert-bar", "no", { expires: 7 });

               $("#survey-alert-container").hide();

               $("#survey-alert-background").hide();

            });

 

            // click on background to close

            $('#survey-alert-background').click(function () {

               $.cookie("alert-bar", "no", { expires: 7 });

               $("#survey-alert-container").hide();

               $("#survey-alert-background").hide();

            });

         }

      }

   });

   // END of Survey
   
   
   // Solar Survey
   /*
var path = top.location.pathname;
if (path != "/myhome/saveenergymoney/solarenergy/afterinstalling/ab920/" && path != "/mybusiness/energysavingsrebates/solar/afterinstalling/ab920/") {
if (path.match(/\/myhome\/saveenergymoney\/solarenergy\//) || path.match(/\/mybusiness\/energysavingsrebates\/solar\//)) {
	var rand = Math.floor(Math.random() * 5);
	if (rand == 1) {
		// Create html element
		$(document.createElement("div")).attr("id", "survey-alert-container").prependTo("body");
		$("#survey-alert-container").html('<div class="box-close"><a href="javascript:void(0)" class="jqmClose png_fix"><span>Close</span></a></div><div class="box-wrapper"><h2>Want to make this site better?</h2><div class="bd clearfix"><ul><li><div class="thumb"><img src="/includes/images/shared/keyboard_100x73.jpg" alt="Survey" /></div><div class="content"><p>Answer a few quick questions about your use of the Solar Energy section of pge.com.</p><p><strong><a href="https://survey.qualtrics.com/SE/?SID=SV_abBLVcNsRKUO81m" target="_blank" >Take the Survey</a></strong></p></div></li></ul></div></div>');
		// Create background html element
		$(document.createElement("div")).attr("id", "survey-alert-background").prependTo("body");
		if ($.cookie("alert-bar") != 'no') {
			$("#survey-alert-background").css({ "opacity": "0.5" });
			//centering alert box
			var windowWidth = document.documentElement.clientWidth;
			var windowHeight = document.documentElement.clientHeight;
			var popupHeight = $("#survey-alert-container").height();
			var popupWidth = $("#survey-alert-container").width();
			$("#survey-alert-container").css({
				"top": windowHeight / 2 - popupHeight / 2,
				"left": windowWidth / 2 - popupWidth / 2
			});
			// IE6
			$("#survey-alert-background").css({
				"height": windowHeight
			});
			$("#survey-alert-background").fadeIn("slow");
			$("#survey-alert-container").show();
			DD_belatedPNG.fix('.png_fix');
		}
		// click on X in alert container to close
		$('#survey-alert-container .box-close a').click(function () {
			$.cookie("alert-bar", "no", { expires: 7 });
			$("#survey-alert-container").hide();
			$("#survey-alert-background").hide();
		});
		// click on background to close
		$('#survey-alert-background').click(function () {
			$.cookie("alert-bar", "no", { expires: 7 });
			$("#survey-alert-container").hide();
			$("#survey-alert-background").hide();
		});
	}
}
}
*/


   (function () {

      var ua = navigator.userAgent;

      var ie = /MSIE/.test(ua) && ua.replace(/.*?MSIE (.).*/, "$1");

      var ff = /Firefox/.test(ua) && ua.replace(/.*?Firefox\/(.)\.(.).*/, "$1_$2");

      var safari = /Safari/.test(ua) && ua.replace(/.*?Version\/(.).*/, "$1");

      var chrome = /Chrome/.test(ua) && ua.replace(/.*?Chrome\/(.).*/, "$1");

      var opera = /Opera/.test(ua) && ua.replace(/.*?Opera\/(.).*/, "$1");

      document.getElementsByTagName("html")[0].className = "js" + (ie ? " ie ie" + ie : ff ? " ff ff" + ff : chrome ? " chrome chrome" + chrome : safari ? " safari safari" + safari : opera ? " opera opera" + opera : "");

   })();

 

   // create entry page section memory

   $('#enter_list li').each(function () {

      var section_name = $(this).attr('id');

      var new_content = $('<label><input type="checkbox" /> <span>Always take me to this site</span></label>');

      var new_input = new_content.find('input');

 

      $('.content a', this).before(new_content).click(function () {

         if (new_input.attr('checked')) {

            $.cookie('pge_section', section_name, { expires: 365 });

         }

      });

   });

 

   // Print the page using print.css

   $('#print').click(function () {

      window.print();

   });

 

   // login page equal-height columnizer (disabled for xpand function)

   /*

   if ($('body.login').length) {

   var login = $('div.login');

   var mod_col = $('div.module_cols');

   var mods = $('div.module');

 

   var max_height = 1;

              

   if (login.height() > mod_col.height()) {

   mods.each(function() {

   $(this).height(login.height() - 175);

   });

   } else {

   var diff = mod_col.height() - login.height();

   login.children('.login_wrap').css('padding-bottom',20+diff);

   }

   }

   */

 

   // suckerfish

 

   $('ul#main_navigation li').hover(function () {

      $(this).addClass('scriptfocus');

   }, function () {

      $(this).removeClass('scriptfocus');

   });

 

   // Logged status on top nav

   if ($.cookie('SMSESSION') == null || $.cookie('SMSESSION') == 'LOGGEDOFF') {

      var classname = '';

      if (typeof PGE != "undefined") { // had to split this out, because it was blowing everything up.

         if (typeof PGE != "undefined" || PGE.inlanguage != "") {

            classname = (PGE.inlanguage == "chinese" || PGE.inlanguage == "espanol" || PGE.inlanguage == "vietnamese") ? 'class=\"redirect\"' : '';

         }

      }

      var txt = $('<a href="https://www.pge.com/myenergyweb/appmanager/pge/customer" ' + classname + '>' + translate("Login") + '</a>');

      $('#log').html(txt);

   }

   else {

      var txt = $('<a alt="Click here to return to your account" href="https://www.pge.com/myenergyweb/appmanager/pge/customer">' + translate("Logged in") + '</a>');

      $('#log').html(txt);

   }

 

   var strBodyClass = $('body').attr('class');

   var bOtherLanguage = false;

   bOtherLanguage = /chinese/.test(strBodyClass) || /espanol/.test(strBodyClass) || /vietnamese/.test(strBodyClass);

 

   //L3 menu redesign changes only for english

   if (!bOtherLanguage && $('#section_nav').length && $('#global_nav').length) {

      var sectionLink = "";

      if (/business/.test(strBodyClass)) { sectionLink = $('#for_business').html(); }

      else if (/myhome/.test(strBodyClass)) { sectionLink = $('#for_home').html(); }

      else { sectionLink = $('#section_nav li:first').html() }

 

      if ($('#log').length) {

         $('<li id="section_list">' + sectionLink + '</li>').insertAfter('#log');

      }

      else {

         var globalNavHtml = '<li id="section_list">' + sectionLink + '</li>' + $('#global_nav').html();

         $('#global_nav').html(globalNavHtml);

      }

      $('#section_list a').attr('class', 'heading');

      $('#section_nav').appendTo('#section_list');

 

      $('#log').attr('class', 'redesign');

      if ($('#search').find('input:text').size() > 0)

         $('#search').find('input:text').attr('class', 'search_field');

      else if ($('#search').find('input[type=text]').size() > 0)

         $('#search').find('input[type=text]').attr('class', 'search_field');

 

      // fix the search go button so it points to the old image

      $('#main_content .search_header fieldset').find('input[type=image]').attr('src', '/includes/images/TPL/site/entry_go_button_old.gif');

 

      if (!/b2b/.test(strBodyClass)) {

         $('#top .heading').click(function (e) {

         e.preventDefault();

         $('#top').toggleClass('open');

         });

      }

 

      var searchDefault = "Search";

      $('.search_field').focus(function () {

         if ($(this).val() == searchDefault) {

            $(this).val('');

         }

      });

 

      $('.search_field').blur(function () {

         if ($(this).val().length == 0) {

            $(this).val(searchDefault);

         }

      });

      $('.search_field').trigger('blur');

   }

 

   if (!bOtherLanguage) {

      // create non-critical navigation wrapper to keep dropdown links clickable over ie6 AlphaImageLoader filter (no js => no dropdown to begin with) 

      $('#main_navigation ul').wrap('<div class="tertiary-nav"></div>');

      $('#main_navigation .tertiary-nav').prepend('<div class="ie6bg"></div>');

   }

   else {

     // assign dropdown classes

      $('#main_navigation ul').wrap('<div class="dropdown_wrap"></div>');

      $('#main_navigation ul li:first-child').addClass('first');

      $('#main_navigation ul li:last-child').addClass('last');

   }

 

   /* TEMPORARY: Disabled the uncompleted footer options

   $("#footer .inline_nav li:gt(2)").css("display","none");

   $("#footer .inline_nav li:eq(2)").attr("class","last");

   */

 

});

 

function translate(text){

       if ( typeof PGE != "undefined" && PGE.inlanguage != ""){

              switch (text){

                     case "Login":

                           text = ( PGE.inlanguage == "chinese" ) ? "&#x767B;&#x5165;" : ( PGE.inlanguage == "espanol" ) ? "Iniciar sesi&#xF3;n" : ( PGE.inlanguage == "vietnamese" ) ? "&#x110;&#x103;ng Nh&#x1EAD;p" : text;

                           break;

                     case "Logged in":

                           text = ( PGE.inlanguage == "chinese" ) ? "&#x5DF2;&#x767B;&#x5165;" : ( PGE.inlanguage == "espanol" ) ? "Ha iniciado la sesi&#xF3;n" : ( PGE.inlanguage == "vietnamese" ) ? "&#x110;&#xE3; &#x111;&#x103;ng nh&#x1EAD;p" : text;

                           break;

                     default:

                           text = text;

              }

       }

       return text;

}

 

 

