function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// window pop up function
function popWindow(url, myWidth, myHeight) {
	var winWidth, winHeight;
	if (myWidth) {
		winWidth = myWidth;
	} else {
		winWidth = 478;
	}
	
	if (myHeight) {
		winHeight = myHeight;
	} else {
		winHeight = 480;
	}
	
	var optionListing = "HEIGHT=" + winHeight + ",WIDTH=" + winWidth + ",innerHeight=480,innerWidth=462,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,screenX=10,screenY=20"
	remote = window.open(url,"sb_popup",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}

function popWindowLarge(url) {
	var optionListing = "HEIGHT=500,WIDTH=660,innerHeight=500,innerWidth=660,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,screenX=10,screenY=20"
	remote = window.open(url,"sb_popup",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}

// window pop up function
function popWindowFull(url, myWidth, myHeight) {
	var winWidth, winHeight;
	if (myWidth) {
		winWidth = myWidth;
	} else {
		winWidth = 750;
	}
	
	if (myHeight) {
		winHeight = myHeight;
	} else {
		winHeight = 550;
	}
	
	var optionListing = "HEIGHT=" + winHeight + ",WIDTH=" + winWidth + ",innerHeight="+(winHeight-2)+",innerWidth="+(winWidth-2)+",channelmode=0,dependent=0,directories=0,fullscreen=0,location=1,menubar=1,resizable=1,scrollbars=1,status=1,toolbar=1,screenX=10,screenY=20"
	remote = window.open(url,"_blank",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}

function sb_validateForm() { //v4.0
  	var i,p,q,nm,test,num,min,max,errors='',args=sb_validateForm.arguments;
  	for (i=0; i<(args.length-2); i+=3) { 
	
		test=args[i+2]; 
		val=MM_findObj(args[i]);
		
		if (val) { 
	
			var temp_nm=val.name;
			temp_nm=args[i];
			nm = eval(temp_nm+'_label'); 
			
			// GET VALUES FOR RADIO BUTTONS AND CHECKBOXES
			if (val.length > 0 && (val.type!="select-one")){
				if ((val[0].type == "radio") || (val[0].type == "checkbox")) {
					theValue = "";
					for (j=0; j<val.length; j++) {
						if (val[j].checked) {theValue = val[j].value;}
					}
					val = theValue;
				}
			// GET VALUES FOR EVERYTHING ELSE
			} else {
				val = val.value;
			}
			
			if ((val != "") && (test.indexOf('Rif')==-1) && (test.indexOf('RisNumif')==-1)) {
    	  		if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					q=val.lastIndexOf('.');
					if (p<1 || q>=(val.length-2) || ((p+1) >= q)) {
						errors+='- '+nm+' '+emailError+'\n';
     				}
				
				} else if (test.indexOf('isNotSpecial')!=-1) { 
					sPattern = /[^A-Za-z0-9_ .,'"&`-]/;
					if (val.search(sPattern) != -1) {
						errors+='- '+nm+' '+specialCharError+'\n';
     				}
				} else if (test.indexOf('isNoSpaceNotSpecial')!=-1) { 
					sPattern = /[^A-Za-z0-9_]/;
					if (val.search(sPattern) != -1) {
						errors+='- '+nm+' '+spaceSpecialCharError+'\n';
     				}
				} else if (test.indexOf('isPhone')!=-1) { 
					sPattern = /[^\d()\. -]/;
					if (val.search(sPattern) != -1) {
						errors+='- '+nm+' '+numericError+'\n';
     				}
				} else if ((test!='R') && (test.indexOf('Rif')==-1) && (test.indexOf('RisNumif')==-1)) { 
					num = parseFloat(val);
       				if (isNaN(val)) {
       					errors+='- '+nm+' '+numericError+'\n';
	   				}
					
					// date - day
					if (test.indexOf('isDay') != -1) { 
        	  			min=1; 
          				max=31;
         				if (num<min || max<num) {
         					errors+='- '+nm+' '+dayError+'\n';
    					}
					// date - month
					} else if (test.indexOf('isMonth') != -1) { 
        	  			min=1; 
          				max=12;
         				if (num<min || max<num) {
         					errors+='- '+nm+' '+monthError+'\n';
    					}
					// date - year
					} else if (test.indexOf('isBirthYear') != -1) { 
        	  			min=1900; 
          				max=2000;
         				if (num<min || max<num) {
         					errors+='- '+nm+' '+birthYearError+'\n';
    					}	
					// in Range	
					} else if (test.indexOf('inRange') != -1) { 
						p=test.indexOf(':');
        	  			min=test.substring(8,p); 
          				max=test.substring(p+1);
         				if (num<min || max<num) {
         					errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    					}
					} // end if in range
    			} // end if 
			// conditional validation.  only validate if specified field has specified value
			} else if ((test.indexOf('Rif')==0) || (test.indexOf('RisNumif')==0)){ 
				var numericValue = false;
				var validateField = true;
				
				if (test.indexOf('Rif')==0) {
					conditionList = new Array;
					conditionList = test.substr(3).split('#');
					numericValue = false;
				} else if (test.indexOf('RisNumif')==0) {
					conditionList = new Array;
					conditionList = test.substr(8).split('#');
					numericValue = true;
				} 
				
				
				// FOR EACH CONDITION
				
				for (conditionCounter = 0; conditionCounter < conditionList.length; conditionCounter++) {
					p=conditionList[conditionCounter].indexOf(':');
					conditionItem=conditionList[conditionCounter].substring(0,p); 
					conditionValue=conditionList[conditionCounter].substring(p+1); // value of conditional form field that enables validation
					conditionElse = "";
					p=conditionValue.indexOf(':');
									
					if (p != -1) {
						conditionElse = conditionValue.substring(p+1);
						conditionValue = conditionValue.substring(0,p); 
					}
					
					conditionValueNot = false;
					if (conditionValue.indexOf('!') == 0) {
						conditionValueNot = true;
						conditionValue = conditionValue.substring(1);
					}
					
					conditionItem=MM_findObj(conditionItem);
					// GET VALUES FOR RADIO BUTTONS AND CHECKBOXES
					if (conditionItem.length > 0 && (conditionItem.type!="select-one")){
						if ((conditionItem[0].type == "radio") || (conditionItem[0].type == "checkbox")) {
							theValue = "";
							for (j=0; j<conditionItem.length; j++) {
								if (conditionItem[j].checked) {theValue = conditionItem[j].value;}
							}
							conditionItem = theValue;
						}
					} else { // GET VALUES FOR EVERYTHING ELSE
						conditionItem = conditionItem.value;
					}
					
					// get value of "Else" field if one is specified.  if this field is not empty, the current field can be empty
					if (conditionElse != "") {
						conditionElse=MM_findObj(conditionElse);
						
						// GET VALUES FOR RADIO BUTTONS AND CHECKBOXES
						if (conditionElse.length > 0 && (conditionElse.type!="select-one")){
							if ((conditionElse[0].type == "radio") || (conditionElse[0].type == "checkbox")) {
								theValue = "";
								for (j=0; j<conditionElse.length; j++) {
									if (conditionElse[j].checked) {theValue = conditionElse[j].value;}
								}
								conditionElse = theValue;
							}
						} else { // GET VALUES FOR EVERYTHING ELSE
							conditionElse = conditionElse.value;
						}
					}
					
					// Clear error if any condition for validation is not met.
					if (conditionValueNot) {
						if ((conditionItem == conditionValue) || (conditionElse != "")) {
							validateField = false;
						}
					} else {
						if ((conditionItem != conditionValue) || (conditionElse != "")) {
							validateField = false;
						}
					}
				} // END FOR EACH CONDITION
				
				if (validateField) {
					if (val == "") {
						errors += '- '+nm+' '+nullError+'.\n'; 
					} else if (numericValue) {
						num = parseFloat(val);
	       				if (isNaN(val)) {
	       					errors+='- '+nm+' '+numericError+'\n';
		   				}
					}
				}
				
    		} else if ((test.charAt(0) == 'R') && (test != 'RisNotSpecial')) {
    			errors += '- '+nm+' '+nullError+'.\n'; 
			} // end if value != ""
		} // end if val
  	} // end for loop
	
  	if (errors) {
  		alert(validationMessage+'\n'+errors);
	}
	
  document.MM_returnValue = (errors == '');
}



// Returns the entire query string passed to the current page.
function getQueryString(){ 
        zquery = parent.location.search; 
        zquery = zquery.substring(1,zquery.length); 
        return (zquery); 
} 

// Parses a query string 'queryString' for the variable 'queryName'
// and returns the value associated with that name.
function parseQuery (queryString, queryName) {
	startIndex = queryString.indexOf(queryName);
	if (startIndex == -1) {
		return "";
	}
	
	startIndex = queryString.indexOf("=", startIndex) + 1;
	endIndex = queryString.indexOf("&", startIndex);
	if (endIndex == -1) {
		endIndex = queryString.length;
	}
	return queryString.substring(startIndex, endIndex);
}

function jumpPage(url) {
	if ((url != "none") && (url != "")) {
		// Escape the value of the parameter
		if (url.indexOf("=") > -1) {
			paramName = url.substring(0, url.indexOf("=")+1);
			varName = escape(url.substring(url.indexOf("=") + 1, url.length));
			url =  paramName + varName;
		}
		location.href=url;
	}
}

function changeIframe (baseUrl, defaultPage, iframeNameParam) {
	var iframeName = "externalContent";
	if ((typeof iframeNameParam != 'undefined') && (iframeNameParam != "")) {
		iframeName = iframeNameParam;
	}
	
	if (baseUrl == "") {
		baseUrl = location.host;
	} 
	
	var queryString = getQueryString();
	var queryName = "subpage";
	var subpage;
	var startIndex = queryString.indexOf(queryName);
	if (startIndex == -1) {
		subpage = "";
	} else {	
		startIndex = queryString.indexOf("=", startIndex) + 1;
		endIndex = queryString.length;
		subpage = queryString.substring(startIndex, endIndex);
	}				
	
	//alert("subpage = " + subpage);
	if (subpage == "") {
		subpage = defaultPage;
	}
	
	iFrameObj = getObj(iframeName);
	iFrameObj.src= "http://" + baseUrl + subpage;
}

// protects all links on the page, except those with certain specified styles
function protectLinks(loggedIn) {
	if (!loggedIn) {
		linkCount = document.links.length;
		for (i=0; i < linkCount; i++) {
			currClass = document.links[i].className;
		 	if ((currClass != "popupDivButton") && (currClass != "popupDivLink") && (currClass != "pageFooter") && (currClass != "pageHeader") && (currClass != "pageTopNav") && (currClass != "accountLink") && (currClass != "footerLink") && (currClass != "footerUtilityLink") && (currClass != "headerAudience") && (currClass != "pageUtilitesLink") && (currClass != "popupFooterLink") && (currClass != "linkNotProtected") && (currClass != "accountMastheadLink")) {
				if (mBrowser.isNS && !mBrowser.isNS4) {
					document.links[i].addEventListener ("click", popupDiv, true);
				} else if (mBrowser.isIE){
					document.links[i].onclick = function() {return popupDiv();};
				}
			}
		}
	} 
} 
 
// function to pop a Div and block the link that was clicked
// currently only supports IE, NS6+, and Mozilla 
function popupDiv (e) {
	divId = "signinDiv";
	divObj = MM_findObj(divId);

	if (mBrowser.isNS && !mBrowser.isNS4) {
		positionedElement = e.target;
		xPosition = positionedElement.offsetLeft;
		yPosition = positionedElement.offsetTop;
		divObj.style.top = e.pageY;
		divObj.style.left = e.pageX + 10;
		e.cancelBubble = true;
		e.preventDefault();
	} else if (mBrowser.isIE){
		divObj.style.left = event.clientX + document.body.scrollLeft + 10;
		divObj.style.top = event.clientY + document.body.scrollTop;
	}
	
	MM_showHideLayers(divId, '', 'show');
	return false;
 }

function Trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}
 
// Writes out the subsection navigation
function sb_writeSubsectionNav () {
	var sHTML = "";
	var currentLocation = location.href;
	currentLocation = currentLocation.slice(currentLocation.lastIndexOf("/")+1);
	currentSection = -1;
	currentIndex = -1;
	
	//alert("currentIndex = "+currentIndex);
	
	for (i=0; (i<subsection.length) && (currentSection < 0); i++) {
		for (j=0; (j<subsection[i].length) && (currentIndex < 0); j++) {
			if (subsection[i][j].indexOf(currentLocation) != -1) {
				//alert ("index found at "+j+" - "+i);
				currentIndex = j;
				currentSection = i;
			}
		}
	}
	
	sHTML += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	sHTML += "<tr>";
	sHTML += "<td><img src=\"/site_images/s.gif\" width=\"1\" height=\"10\" alt=\"\"/></td>"
	sHTML += "<td  align=\"center\" valign=\"middle\" class=\"prevNext\" height=\"10\" nowrap>";
	
	if ((currentIndex-1) < 0) {
		sHTML += "<img src=\"/site_images/s.gif\" width=\"2\" height=\"1\" alt=\"\" /><span class=\"prevNextArrow\">&lt;</span><img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" />" + prevText ;
	} else {
		sHTML += "<img src=\"/site_images/s.gif\" width=\"2\" height=\"1\" alt=\"\" /><span class=\"prevNextArrow\">&lt;</span><img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" /><a href=\""  + subsection[currentSection][currentIndex-1] + "\" class=\"prevNextLink\">" + prevText + "</a>";
	}
	
	if (subsectionIndex == "") {
		sHTML += "<img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" />|<img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" />";
		sHTML += "Index";
		sHTML += "<img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" />|<img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" />";
	} else {
		sHTML += "<img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" />|<img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" />";
		sHTML += "<a href=\"" + subsectionIndex + "\" class=\"prevNextLink\">" + indexText + "</a>";
		sHTML += "<img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" />|<img src=\"/site_images/s.gif\" width=\"5\" height=\"1\" alt=\"\" />";
	}

	if ( (currentIndex < 0) || (currentIndex > (subsection[currentSection].length - 2)) ) {	
		sHTML += nextText + "<img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" /><span class=\"prevNextArrow\">&gt;</span><img src=\"/site_images/s.gif\" width=\"3\" height=\"1\" alt=\"\" />";
	} else {
		sHTML += "<a href=\"" + subsection[currentSection][currentIndex+1] +  "\" class=\"prevNextLink\">" + nextText + "</a><img src=\"/site_images/s.gif\" width=\"4\" height=\"1\" alt=\"\" /><span class=\"prevNextArrow\">&gt;</span><img src=\"/site_images/s.gif\" width=\"3\" height=\"1\" alt=\"\" />";
	}	
	sHTML += "</td>";
	sHTML += "</tr>";
	sHTML += "</table>";

	//alert(sHTML);
	document.write(sHTML);
}