var vFlashVersion = fGetFlashVersion();
var vFlashWModeOK = fGetFlashWModeOK();
var vSiteRoot = fGetRoot();
if(document.location.search.indexOf("flash=0")>-1) vFlashVersion = 0;
if(document.location.search.indexOf("flash=1")>-1) vFlashWModeOK = 0;
var vFlashOK = (vFlashVersion>7);
var W3CDOM = (document.getElementById && document.getElementsByTagName);

function fWritePageBanner(sect){
	var banner = (sect=="home") ? "SiteBanner_home" : "SiteBanner";
	if (sect=="im") {
	  	// lehmans intermediaries banner
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgIntermediariesBanner.png" alt="Northern Rock" />');
	} else if (sect=="leh") {
		// lehmans banner but no link
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/img'+banner+'.jpg" alt="Northern Rock" />');			
	} else if (sect=="save") {
		// Savings banner but no link
	    document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_Savings.jpg" alt="Savings" />');
	} else if (sect=="loans") {
		// Loans banner but no link
	    document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_loans.jpg" alt="Loans" />'); 			
	} else if (sect=="mortgage") {
		// Mortgages banner but no link
	    document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_mortgages.jpg" alt="Mortgages" />'); 
	} else if (sect=="imenter") {
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgIntermediariesBanner.png" alt="Northern Rock" />');
	} else if (sect=="aff") {
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_loans.jpg" alt="Loans" />');
	} else if (sect=="psl") {
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_PSL.jpg" alt="Personal Secured Loans" />');
	} else if (sect=="home") {
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBanner_home.jpg" alt="Welcome" /></a>');
	} else {
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/img'+banner+'.jpg" alt="Northern Rock" />');
    }
}
function fWritePageSideBanner(sect){
	document.write('<div id="iSideBanner">');
			if (sect == "imenter") {	
		document.write('<img src="'+vSiteRoot+'_assets/media/banners/imgSiteBannerSide.jpg" alt="low rate loans online" />');
	}
	document.write('</div>');
}
function fWriteFlash(swf,fid,bgcolor,transparent,noscale){
	var swf = vSiteRoot + swf;
	var txt = "";
	txt += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" ';
 	if(fid) txt += 'id="'+fid+'" ' ;
	txt += 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">';
	txt += '<param name="movie" value="'+swf+'" />';
	txt += '<param name="menu" value="false" />';
 	if(bgcolor) txt += '<param name="bgcolor" value="'+bgcolor+'" />';
	if(noscale) txt += '<param name="scale" value="noscale" /><param name="salign" value="'+noscale+'" />';
	if(transparent) txt += '<param name="wmode" value="transparent" />';
	txt += '<embed src="'+swf+'" menu="false" width="100%" height="100%" ';
 	if(fid) txt += 'id="'+fid+'" name="'+fid+'" ' ;
	if(bgcolor) txt += 'bgcolor="'+bgcolor+'" ';
	if(noscale) txt += 'scale="noscale" salign="'+noscale+'" ';
	if(transparent) txt += 'wmode="transparent" ';
	txt += 'swLiveConnect="true" type="application/x-shockwave-flash "';
	txt += 'pluginspage="//www.macromedia.com/go/getflashplayer" />';
	txt += '</object>';
	document.write(txt);
}
fAddEvent(window, "load", fInitPage);
function fInitPage() {
	fInitNavTips("iNavL1Misc");
	fInitNavTips("iNavL1Products");
	fInitNavTips("iNavL2");
	fInitNavRollovers("iNavL1Products");
	fInitALinks();
        if (!isIe5()) {
	      fInitRoundedCorners();
              fInitTabToggle();
	      fInitToggleTable();
             fInitCollapse();
              fInitPopups();
        }
	savingscollpase();
	
	ratescollapse();

}
function fInitRoundedCorners(){ if(!W3CDOM) return;
	var n = document.getElementById("iNavL3"); if(n!=null) fAddRoundedCornersDIV(n, "jsNavL3");
	n = document.getElementById("iNavAnchorList"); if(n!=null) fAddRoundedCornersDIV(n, "jsNavAnchorList");
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["branchHighlight","jsBranchHighlight"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["branchAddHighlight","jsBranchAddHighlight"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["highlight","jsHighlight"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["highlightProd","jsHighlightProd"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["alert","jsAlert"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["linkGroup","jsLinkGroup"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["example","jsExample"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["errorTxt","jsErrorTxt"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["resultTxt","jsResultTxt"]);
	getElementsByCondition(fGetClassRoundedCornersDIV, null, ["resultTxtSecured","jsresultTxtSecured"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblInfo","tableInfo"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblProd", "tableProd"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblMSRTogether", "tableMSRTogether"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblMSRLifetime", "tableMSRLifetime"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblMSRCapped", "tableMSRCapped"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblMSRGen", "tableMSRGen"]);
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblSavings", "tableSavings"]);
}
function fAddRoundedCornersDIV(obj, c){
	var d = document.createElement('div'); d.className = c;
	obj.parentNode.replaceChild(d, obj);
	var d1 = document.createElement('div');
	var d2 = document.createElement('div');
	var d3 = document.createElement('div');
	var d4 = document.createElement('div');
	d.appendChild(d1); d1.appendChild(d2); d2.appendChild(d3); d3.appendChild(d4); d4.appendChild(obj);
}
function fAddRoundedCornersTBL(obj, c){
	var d = document.createElement('div'); d.className = c;
	obj.parentNode.replaceChild(d, obj);
	var d1 = document.createElement('div'); d1.className = "tblCrnBL";
	var d2 = document.createElement('div'); d2.className = "tblCrnBR";
	d.appendChild(obj); d.appendChild(d1); d.appendChild(d2);
}
function fGetClassRoundedCornersDIV(e,n,arr){ if(e.className==arr[0] && !e._done) { e._done = true; fAddRoundedCornersDIV(e, arr[1]);} }
function fGetClassRoundedCornersTBL(e,n,arr){ if(e.className==arr[0] && !e._done) { e._done = true; fAddRoundedCornersTBL(e, arr[1]);} }

function fInitALinks() {
	var id = document.getElementById("iETS2View"); if (id!=null) return;
	id = document.getElementById("iBranchFinderResults"); if (id!=null) return;
	id = document.getElementById("noFocusReplace"); if (id != null) return;
	id = document.getElementById("people"); if (id != null) return;
	id = document.getElementById("calculator"); if (id != null) return;
	id = document.getElementById("letter"); if (id != null) return;
	id = document.getElementById("mouse"); if (id != null) return;
	id = document.getElementById("largeMouse"); if (id != null) return;
	id = document.getElementById("customer"); if (id != null) return;
	id = document.getElementById("savings"); if (id != null) return;
	id = document.getElementById("insurance"); if (id != null) return;	
	
	var n = document.getElementsByTagName("A"); if(n==null) return;
	for (var i=0; i<n.length; i++) {
		fAddEvent(n[i], "focus", fALinkFocus);
		fAddEvent(n[i], "blur", fALinkBlur);
	}
}

function fALinkFocus(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	e.className = " focus";
}
function fALinkBlur(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	e.className = e.className.replace(new RegExp(" focus\\b"), "");
}
function fInitNavTips(idStr) {
	var n = document.getElementById(idStr); if(n==null) return;
	n = n.getElementsByTagName("A"); if(n==null) return;
	for (var i=0; i<n.length; i++) {
		var cn = n[i];
		if(cn.title=="") continue;
		cn._title = cn.title; if(document.location.search.indexOf("alt=1")<0) cn.title = ""; // debug!!
		fAddEvent(cn, "mouseover", fNavTipShow);
		fAddEvent(cn, "mouseout", fNavTipHideTimer);
		fAddEvent(cn, "focus", fNavTipShow);
		fAddEvent(cn, "blur", fNavTipHideTimer);
	}
}
function fInitNavRollovers(idStr) {
	var n = document.getElementById(idStr); if(n==null) return;
	n = n.getElementsByTagName("A"); if(n==null) return;
	var pi = new Array();
	for (var i=0; i<n.length; i++) {
		var cn = n[i]; var ci = cn.getElementsByTagName("IMG"); if(ci==null) return; var ci = ci[0];
		if (ci) {
		cn._img = ci; ci._src = ci.src; ci._src1 = fGetImgOverSrc(ci.src);
		pi[i] = new Image(); pi[i].src = ci._src1;
		fAddEvent(cn, "mouseover", fNavImgSwap);
		fAddEvent(cn, "mouseout", fNavImgRestore);
		fAddEvent(cn, "focus", fNavImgSwap);
		fAddEvent(cn, "blur", fNavImgRestore);
		}
	}
}
function fGetImgOverSrc(s){ s = s.split("."); var x = s.pop(); return s.join(".") + "1." + x; }
var myTimer = null;
function fNavTipHideTimer(e){
	myTimer = setTimeout("fNavTipHide();", 300);
}
function fNavTipShow(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(!e._title) e = e.parentElement;
	if(myTimer){ clearTimeout(myTimer); myTimer = null;}
	var d = document.getElementById("iNavTip"); if(d==null) return;
	fApplyStyle(d, "visibility", "visible");
	d.innerHTML = e._title;
	}
function fNavTipHide(){
	fApplyStyle("iNavTip", "visibility", "hidden");
}
function fNavImgSwap(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(e._img) e = e._img; e.src = e._src1;
}
function fNavImgRestore(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(e._img) e = e._img; e.src = e._src;
}
function fWriteDate(){
	var dt = new Date();
	var d = "Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday".split("|");
	var m = "January|February|March|April|May|June|July|August|September|October|November|December".split("|");
	var t = "|st|nd|rd|th".split("|");
	var c = dt.getDate();
	var e = c%10;
	var f = Math.floor(c/10);
	document.write(d[dt.getDay()]+" "+c+"<sup>"+t[(e>3||f==1)?4:e]+"</sup> "+m[dt.getMonth()]+" "+dt.getFullYear());
}

function Scoller(obj, id, speed, pause) {
	this._UL=null;this._LIs=null;this._height=null;this._currentLI=0;
	this._speed=speed;this._pause=pause;this._name=obj;this.init(id);
}
Scoller.moveLeft = function(obj, p) { obj.moveLeft(p); }
Scoller.prototype.init = function(id){
	var e = document.getElementById(id); if(e==null) return;
	var eLi = e.getElementsByTagName("LI"); if(e==null) return;
	this._UL = e; this._LIs = eLi; this._width = Number(this._UL.offsetWidth);
	for(i in this._LIs){ fApplyStyle(this._LIs[i], "position", "absolute"); fApplyStyle(this._LIs[i], "display", "block"); fApplyStyle(this._LIs[i], "left", this._width+"px"); } this.moveLeft();
}
Scoller.prototype.moveLeft = function(move){
	if(!move) this._LIs[this._currentLI]._x = this._width;
	var cL = this._LIs[this._currentLI];
	fApplyStyle(cL, "left", cL._x+"px");
	(--cL._x>-Number(cL.offsetWidth)) ? setTimeout("Scoller.moveLeft("+this._name+",true);", this._speed) : this.pause();
}
Scoller.prototype.pause = function(){ setTimeout("Scoller.moveLeft("+this._name+");", this._pause); }
fAddEvent(window, "load", fInitScroller);
function fInitScroller(){	oScoller = new Scoller("oScoller", "iHomepageTicker", 15, 1000); }


function fGetRoot(){
	if (!document.getElementById) document.getElementById = function() { return "/"; }
	var l = document.getElementById("iPathFinder");
	if(!l||!l.href) return "/";
	l = String(l.href);
	l = l.substring(0, l.indexOf("_assets/"));
	return l;
}
function getElementsByCondition(condition,container,arg){	container = container || document; var all = container.all || container.getElementsByTagName('*'); var arr = new Array(); var e; for(var k=0; k<all.length; k++){ e = all[k]; if(condition(e,k,arg)) arr[arr.length] = e; } return arr; }
function fApplyStyle(id, style, prop){ var e = (typeof(id)=="string")?document.getElementById(id):id; if(e==null) return; if(e.style) e = e.style; e[style] = prop; }
function fAddEvent(obj, evType, fn){ if(obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; } else if(obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else return false; }
function fGetFlashWModeOK(){return (navigator.platform.toLowerCase().indexOf("win")>-1)&&(navigator.appVersion.toLowerCase().indexOf('msie')>-1);}
function fGetFlashVersion(){var latestV=15;flVersion=0;var agent=navigator.userAgent.toLowerCase();if(agent.indexOf("mozilla/3")!=-1&&agent.indexOf("msie")==-1){flVersion=0;}if(navigator.plugins!=null&&navigator.plugins.length>0){var flashPlugin=navigator.plugins['Shockwave Flash'];if(typeof flashPlugin=='object'){for(var i=latestV;i>=3;i--){if(flashPlugin.description.indexOf(i+'.')!=-1){flVersion=i;break;}}}}else if(agent.indexOf("msie")!=-1&&parseInt(navigator.appVersion)>=4&&agent.indexOf("win")!=-1&&agent.indexOf("16bit")==-1){var doc='<scr'+'ipt language="VBScript"\> \n';doc+='On Error Resume Next \n';doc+='Dim obFlash \n';doc+='For i = '+latestV+' To 3 Step -1 \n';doc+='   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';doc+='   If IsObject(obFlash) Then \n';doc+='      flVersion = i \n';doc+='      Exit For \n';doc+='   End If \n';doc+='Next \n';doc+='</scr'+'ipt\> \n';document.write(doc);}else if(agent.indexOf("webtv/2.5")!=-1)flVersion=3;else if(agent.indexOf("webtv")!=-1)flVersion=2;else{flVersion=-1;}return flVersion;}
if(!Array.prototype.pop) {
	function array_pop(){ lastElement = this[this.length-1]; this.length = Math.max(this.length-1,0); return lastElement;	}
	Array.prototype.pop = array_pop;
}

/* Silver Savings Online */
/* functions used for note toggle on savings rate pages */
// set the parent class and the tab class when clicked.
function fInitTabToggle() {
  var tabContainers = getElementsByClassName ('div', 'jsContainer');
  var rEHere = /here/;

  for (i = 0; i < tabContainers.length; i++) {
    var ref = tabContainers [i];
    var tabs = getElementsByClassName ('ul','jsTab',ref);
    var lists = tabs [0].getElementsByTagName ('li');

    for (var j = 0; j < lists.length; j++) {
      var ref2= lists [j];	
      var link = ref2.getElementsByTagName ('a') [0];

      if (rEHere.test(ref2.className )) {
        ref.className += ' jsTab ' + ref2.id + ' jsTab';
      }

      link.onclick = function () {
        var rE = new RegExp ( '(^| )jsContainer( |$)' );
        var rERep = /jsTab\s(.+)\sjsTab/;
        var parent = this.parentNode;
        var liPar = this.parentNode;
        var applyC = this.className;

        for (var i = 0; i < 4; i++) {
          if (rE.test(parent.className)) {
            var pId = parent.className.match (rERep) [1];
	    var li = document.getElementById (pId);
	    li.className = li.className.toString().replace('here','');
	    liPar.className += ' here';
	    parent.className = parent.className.replace(rERep,'');
	    parent.className += ' jsTab ' + liPar.id + ' jsTab';
	    return false;
          }
          parent = parent.parentNode
        }
      }
    }
  }
}

var dynamicID=0;
function getElementsByClassName($tag,$className,$node) {
  if (!document.getElementsByTagName) return false;
  $node	= $node || document;
  var matches = new Array;
  var elements = $node.getElementsByTagName($tag);
  var expression = new RegExp('(^| )' + $className + '( |$)');
  var j	= 0;

  for (var i = 0; i < elements.length; i++) {
    var ref = elements[i];
    if (ref.className) {
      if (expression.test (ref.className)) {
        matches[j++] = ref;
      }
    }
  }
  return matches;
}


function toggleAppendLinks($objAppend,$objRef) {
  var tID = $objRef.id.toString();
  var spans = $objAppend.getElementsByTagName('span');
  var rE = new RegExp ('(^| )jsToggle( |$)');

  for (var i in spans) {
    var ref = spans[i];
    if (rE.test(ref.className)) {
      var o = document.createElement("a");
      o.id = ref.id;
      o.className = ref.className;
      o.href = '#' + tID;
      o.innerHTML = "show";
      o.onclick = function () { toggle (this); return false; }
      ref.parentNode.replaceChild ( o, ref );
    }
  }
}

function toggle ($obj) {
  var targ = $obj.href.split('#')[1];
  var ref = document.getElementById(targ);
  ///////////////
  var rEHere = /here/;

  if ( !rEHere.test($obj.className )) {
    $obj.className += ' here';
  } else {
    $obj.className = $obj.className.toString().replace (' here', '');
  }
  //////////////
  if (ref) {
    var rE = new RegExp ('(^| )jsToggleOpen( |$)');
    if (rE.test(ref.className))	{
      // reduce the rowspan of the parent tr to fix the table
      ref.className = ref.className.toString().replace ('jsToggleOpen', 'jsToggleClosed');	
      $obj.innerHTML = "show";
    } else {
      // increase the rowspan of the parent tr to fix the table
      ref.className = ref.className.toString().replace ('jsToggleClosed', 'jsToggleOpen');
      $obj.innerHTML = "hide";
    }
  }
}

/* Table function */
function toggleTableRepair($obj) {
  var links = $obj.getElementsByTagName ('a');
  var rE = new RegExp ('(^| )jsToggle( |$)');
  for (var i in links) {
    var ref = links[i];
    if (rE.test(ref.className))	{
      var o = document.createElement("span");
      o.id = ref.id;
      o.className = ref.className;
      o.innerHTML = ref.innerHTML;
      ref.parentNode.replaceChild(o,ref);
    }
  }
}


// hides and shows table notes.
function fInitToggleTable() {
  dynamicID = dynamicID || 0;
  var tables = document.getElementsByTagName ('tbody');
  
  // quick references to the regular expressions
  var rECollapsee = new RegExp('(^| )jsCollapsee( |$)');
  var rECollapsor = new RegExp('(^| )jsCollapsor( |$)');
  var rEOpen = new RegExp('(^| )jsOpen( |$)');

  for ( var i = 0; i < tables.length; i++) {
    var rows = tables[i].getElementsByTagName('tr');	// rows within the table
    var l = rows.length;
    var lastC = null;
    var tc = 0;

    // loop backwards through the array
    while (l--)	{
      var ref = rows[l];// store a reference - for quick access
      // if the reference has a classname
      if (ref.className) {
	    // test to see if it's a collapsee
	    if (rECollapsee.test(ref.className)) {
	      tc++;
          if (tc >= 2) {
	        toggleTableRepair(lastC);
            tc--;
	      }
   	      // if the collapsee doesn't already have an id - give it one
	      if (!ref.id) {
  	        ref.id = "jsId" + dynamicID++
	      }

    	  lastC = ref;
    	  toggleAppendLinks(ref,ref);
   	      // should the element be toggledOpen?
	      if (rEOpen.test(ref.className)) {
	        // swap the open class for jsToggleOpen
	        ref.className = ref.className.toString().replace('jsOpen','jsToggleOpen');
	      } else {
  	        // else apply the closed class
	        ref.className += ' jsToggleClosed';
	      }
   	      continue;
	    }
	    // found a collapsor
	    if (rECollapsor.test(ref.className)) {
	      tc--;
   	      toggleAppendLinks(ref,lastC);
	      continue;
	    }
      }
    }
  }
}

var aAssID = new Array();
function fToggleID(id) {
  if (!document.getElementById) return;
  var o = document.getElementById(id);
  if (o==null) return;
  aAssID[id] = !aAssID[id];
  var visState = (aAssID[id]) ? 'block' : 'none';
  if (o.style) o = o.style;
    o.display = visState;
}

// add links to headings to allow content to be collapsed.
function fInitCollapse() {
  var collapsors = getElementsByClassName('h2','jsCollapsor');
  var collapsees = getElementsByClassName('div','jsCollapsee'); 
  var query = window.location + "";
  var show = query.split('#');
  for (var i = 0; i < collapsors.length; i++) {

    collapsors[i].innerHTML = '<a href="javascript:fToggleID(\''+ collapsees[i].id + '\');">&gt; ' + collapsors[i].innerHTML + '</a>'; 

    // shows copy that has been linked to via an anchor. eg index.asp#openMe
    if (collapsees[i].id != show[1]) {
      collapsees[i].style.display = 'none';   
    } else {
      fToggleID(collapsees[i].id);
    }
  }
}

 function savingscollpase() {
    var nodes	= getElementsByClassName("div", "jsCollapsorSavings");
	var NodeID	= null;
	var spnNode, aNode, spnNodes;

    for(var i=0;i<nodes.length;i++){
        var node	= nodes[i];
		if ( node.id ) {
			NodeID	= node.id
		} else {
			NodeID	= "jsCollapsorSavings" + i
		}
        node.id			= NodeID;
        node.className	= node.className + " jsSavingsToggleClosed";
        spnNodes		= getElementsByClassName("span", "jsSavingsToggle",node);

        for ( var j = 0; j < spnNodes.length; j++ ) {
			spnNode			= spnNodes[j];
            aNode			= document.createElement("a");
			aNode.href		= '#' + NodeID;
			aNode.className	= spnNode.className;
            aNode.innerHTML	= spnNode.innerHTML;
			spnNode.parentNode.replaceChild(aNode, spnNode);
			aNode.onclick = function () {
				var node = document.getElementById ( this.hash.substring ( 1, this.hash.length ) )
				var cls = node.className;
				if(cls.match("jsSavingsToggleClosed")!=null){
				   cls = cls.replace("jsSavingsToggleClosed", "jsSavingsToggleOpen");
				}else{
					cls = cls.replace("jsSavingsToggleOpen", "jsSavingsToggleClosed");
				}
				node.className = cls;
				return false;
			}; 
        }
    }
}



function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function ratescollapse ( ) {
var ratesTable = document.getElementById("tblAccounts");

if (ratesTable) {
	var toggleLinks = getElementsByClass('jsSeeBelow',ratesTable,"td");
	var toggleNotes = getElementsByClass('jsCollapsee',ratesTable,"td");
	//var i = 0;
	
	
	for (var i=0; i < toggleLinks.length; i++) {
	    updateToggleLinks(toggleLinks[i],toggleNotes[i]);
	}
}
}

function updateToggleLinks(toggle,note) {

	toggle.innerHTML = '<a>show</a>';
	toggle.className = "jsSeeBelowClosed";
	note.className = "jsCollapseeClosed";
	toggle.onclick = function () {
		if (toggle.className == "jsSeeBelowClosed" ) { 	
			note.className = "jsCollapseeOpen";
			toggle.innerHTML = "<a>hide</a>";
			toggle.className = "jsSeeBelowOpen";
		} else {
			toggle.innerHTML = "<a>show</a>";
			note.className = "jsCollapseeClosed";
			toggle.className = "jsSeeBelowClosed";
		}
	}
}

// unobtrusive accessible popup.
function fInitPopups() {
  var pops = getElementsByClassName('a','jsPopup');
  for (var i = 0; i < pops.length; i++) {
    target = pops[i].target;
    url = pops[i].href;
    // add popup functionality to anything with a class of jsPopup
    pops[i].onclick = function () {
      var theWindow = window.open(url, target,'location=no,toolbar=no,status=no,scrollbars=yes');
      theWindow.focus(); 
      return theWindow;
    }
  }
}


function isNumeric(str){
 var validChars = "0123456789.,";
 if(str.length == 0) return false;
 for (i=0; i<str.length; i++) if(validChars.indexOf(str.charAt(i))==-1) return false;
 return true;
}

function isIe5() { 
    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();

    // *** BROWSER VERSION ***
    // Note: On IE5, these return 4, so use is.ie5up to detect IE5.
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);

    this.ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    this.ie3    = (this.ie && (this.major < 4));
    this.ie4    = (this.ie && (this.major == 4) && (agt.indexOf("msie 4")!=-1) );
    this.ie4up  = (this.ie  && (this.major >= 4));
    this.ie5    = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    this.ie5_5  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.5") !=-1));
    this.ie5up  = (this.ie  && !this.ie3 && !this.ie4);
    this.ie5_5up =(this.ie && !this.ie3 && !this.ie4 && !this.ie5);

    if (this.ie5) {
      return true;
    } else {
      return false;
    }
}
// 


