String.prototype.trim = function() {	a = this.replace(/^\s+/, '');	return a.replace(/\s+$/, '');};function openLink(link){cw = window.open(link,"CW","resizable='no',top=100, left=100, width=400,height=360,scrollbars='yes'");cw.focus();}function displogin(){document.getElementById("divExtranetLogin").style.visibility = "visible";}function doSearch ( s, v ) {var regExp1 = /\bfield\b/;var regExp2 = /[(,),<,>,\[,\]]/;var str = s.value; if ( str == "" ){ alert("Please be sure to enter something to search for.");s.focus();} else { if ( typeof regExp1.source != 'undefined' ) //supports regular expression testing if ( regExp1.test( str ) || regExp2.test( str ) ){var alrt = "Please note that you can not search for:"; alrt += "\n\nThe reserved word 'field' or\nthe characters [, ], (, ), < or >";s.focus();return alert( alrt );}openDbRelativeURL(v+"?SearchView&Query=" + escape( str ) + "&start=1&count=100");}}function openDbRelativeURL( url, target ){//Check we have a target window;target = (target == null ) ? window : target;//Work out the path of the database;path = location.pathname.split('.nsf')[0] + '.nsf/';target.location.href = path + url;//window.open(path + url, 'Search', 'width=800, height=600, toolbar=no,location=no,directories=no, status=no,menubar=no,scrollbars=no,resizable=no');}function returnFalse(s){s = document.forms[0].Query;v=document.forms[0].view;doSearch(s, v);return false;}function searchKeyDown(e){//var whichCode = (e.keyCode);//var whichCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;//var whichCode = (document.all) ?e.which  : e.keyCode;var whichCode;var browserName=navigator.appName;if (browserName=="Microsoft Internet Explorer"){whichCode =e.keyCode;}else{//var whichCode = (document.all) ?e.which  : e.keyCode;whichCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;};if (whichCode==13){doSearch (window.document.forms[0].Query, window.document.forms[0].view.value);}}function NiftyCheck(){if(!document.getElementById || !document.createElement)    return(false);var b=navigator.userAgent.toLowerCase();if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1)    return(false);return(true);}function Rounded(selector,bk,color,size){var i;var v=getElementsBySelector(selector);var l=v.length;for(i=0;i<l;i++){    AddTop(v[i],bk,color,size);    AddBottom(v[i],bk,color,size);    }}function RoundedTop(selector,bk,color,size){var i;var v=getElementsBySelector(selector);for(i=0;i<v.length;i++)    AddTop(v[i],bk,color,size);}function RoundedBottom(selector,bk,color,size){var i;var v=getElementsBySelector(selector);for(i=0;i<v.length;i++)    AddBottom(v[i],bk,color,size);}function AddTop(el,bk,color,size){var i;var d=document.createElement("b");var cn="r";var lim=4;if(size && size=="small"){ cn="rs"; lim=2}d.className="rtop";d.style.backgroundColor=bk;for(i=1;i<=lim;i++){    var x=document.createElement("b");    x.className=cn + i;    x.style.backgroundColor=color;    d.appendChild(x);    }el.insertBefore(d,el.firstChild);}function AddBottom(el,bk,color,size){var i;var d=document.createElement("b");var cn="r";var lim=4;if(size && size=="small"){ cn="rs"; lim=2}d.className="rbottom";d.style.backgroundColor=bk;for(i=lim;i>0;i--){    var x=document.createElement("b");    x.className=cn + i;    x.style.backgroundColor=color;    d.appendChild(x);    }el.appendChild(d,el.firstChild);}function getElementsBySelector(selector){var i;var s=[];var selid="";var selclass="";var tag=selector;var objlist=[];if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"    s=selector.split(" ");    var fs=s[0].split("#");    if(fs.length==1) return(objlist);    return(document.getElementById(fs[1]).getElementsByTagName(s[1]));    }if(selector.indexOf("#")>0){ //id selector like "tag#id"    s=selector.split("#");    tag=s[0];    selid=s[1];    }if(selid!=""){    objlist.push(document.getElementById(selid));    return(objlist);    }if(selector.indexOf(".")>0){  //class selector like "tag.class"    s=selector.split(".");    tag=s[0];    selclass=s[1];    }var v=document.getElementsByTagName(tag);  // tag selector like "tag"if(selclass=="")    return(v);for(i=0;i<v.length;i++){    if(v[i].className==selclass){        objlist.push(v[i]);        }    }return(objlist);}var classname = 'bg1';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname1 = 'bg1';// static value, change this to your class 1 namevar classname2 = 'bg1-selected';// static value, change this to your class 2 namevar classnameb = 'bg2';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname3 = 'bg2';// static value, change this to your class 1 namevar classname4 = 'bg2-selected';// static value, change this to your class 2 namevar classnamec = 'bg3';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname5 = 'bg3';// static value, change this to your class 1 namevar classname6 = 'bg3-selected';// static value, change this to your class 2 namevar classnamed = 'bg4';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname7 = 'bg4';// static value, change this to your class 1 namevar classname8 = 'bg4-selected';// static value, change this to your class 2 namevar classnamee = 'bg5';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname9 = 'bg5';// static value, change this to your class 1 namevar classname10 = 'bg5-selected';// static value, change this to your class 2 namevar classnamef = 'bg6';// this will test the class values, it holds the current value, and should correspond to the off state classvar classname11 = 'bg6';// static value, change this to your class 1 namevar classname12 = 'bg6-selected';// static value, change this to your class 2 namevar feature = 'single';// sets if only hover element or all changes :: options: 'single' or 'all'// gets all the elements of that have class classname and returns them as an arrayfunction getElementsByClassName(needle){   var my_array = document.getElementsByTagName("*");   var retvalue = new Array();   var i;   var j;   for (i=0,j=0;i<my_array.length;i++)   {      var c = " " + my_array[i].className + " ";      if (c.indexOf(" " + needle + " ") != -1) retvalue[j++] = my_array[i];   }   return retvalue;}// if feature is set to all, this will switch all of the class items// loops through the classname array and switches them to their opposite valuesfunction toggle(){   var divs = getElementsByClassName(classname)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname1)      {         divs[i].className = classname2;         classname = classname2;      }      else      {         divs[i].className = classname1;         classname = classname1;      }   }   var divs = getElementsByClassName(classnameb)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname3)      {         divs[i].className = classname4;         classname = classname4;      }      else      {         divs[i].className = classname3;         classname = classname3;      }   }   var divs = getElementsByClassName(classnamec)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname5)      {         divs[i].className = classname6;         classname = classname6;      }      else      {         divs[i].className = classname5;         classname = classname5;      }   }   var divs = getElementsByClassName(classnamed)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname7)      {         divs[i].className = classname8;         classname = classname8;      }      else      {         divs[i].className = classname7;         classname = classname7;      }   }   var divs = getElementsByClassName(classnamee)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname9)      {         divs[i].className = classname10;         classname = classname10;      }      else      {         divs[i].className = classname9;         classname = classname9;      }   }   var divs = getElementsByClassName(classnamef)   for(i=0; i <divs.length;i++)   {      if(divs[i].className == classname11)      {         divs[i].className = classname12;         classname = classname12;      }      else      {         divs[i].className = classname11;         classname = classnam11;      }   }}// for onmouseoverfunction rollon(e){   var srcId, srcElement, targetElement;   if (window.event) e = window.event;   srcElement = ( e.srcElement ) ? e.srcElement : e.target;   if ( srcElement.className == classname1 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname2;         classname = classname2;      }   }  if ( srcElement.className == classname3 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname4;         classname = classname4;      }   }  if ( srcElement.className == classname5 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname6;         classname = classname6;      }   }  if ( srcElement.className == classname7 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname8;         classname = classname8;      }   }  if ( srcElement.className == classname9 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname10;         classname = classname10;      }   }  if ( srcElement.className == classname11 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname12;         classname = classname12;      }   }}// for mouseofffunction rolloff(e){   var srcId, srcElement, targetElement;   if (window.event) e = window.event;   srcElement = ( e.srcElement ) ? e.srcElement : e.target;   if ( srcElement.className == classname2 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname1;         classname = classname1;      }   }         if ( srcElement.className == classname4 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname3;         classname = classname3;      }   }       if ( srcElement.className == classname6 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname5;         classname = classname5;      }   }           if ( srcElement.className == classname8 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname7;         classname = classname7;      }   }           if ( srcElement.className == classname10 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname9;         classname = classname9;      }   }             if ( srcElement.className == classname12 )   {      if ( feature == 'all' )      {         toggle();      }      else if ( feature == 'single' )      {         srcElement.className = classname11;         classname = classname11;      }   }   }// assign rollon() to handle onMouseOver eventsdocument.onmouseover = rollon;// assign rolloff() to handle onMouseOut eventsdocument.onmouseout = rolloff;var ns4 = (document.layers) ? true : false;var ie4 = (document.all && !document.getElementById) ? true : false;var ie5 = (document.all && document.getElementById) ? true : false;var ns6 = (!document.all && document.getElementById) ? true : false;function show(sw,obj) {	// show/hide the divisions	if (sw && (ie4 || ie5) ) document.all[obj].style.visibility = 'visible';	if (!sw && (ie4 || ie5) ) document.all[obj].style.visibility = 'hidden';	if (sw && ns4) document.layers[obj].visibility = 'visible';	if (!sw && ns4) document.layers[obj].visibility = 'hidden';}var dhtmlgoodies_slideSpeed = 10;	// Higher value = fastervar dhtmlgoodies_timer = 10;	// Lower value = fastervar objectIdToSlideDown = false;var dhtmlgoodies_activeId = false;function showHideContent(){	var numericId = this.id.replace(/[^0-9]/g,'');	var answerDiv = document.getElementById('dhtmlgoodies_a' + numericId);	if(!answerDiv.style.display || answerDiv.style.display=='none'){		if(dhtmlgoodies_activeId &&  dhtmlgoodies_activeId!=numericId){			objectIdToSlideDown = numericId;			slideContent(dhtmlgoodies_activeId,(dhtmlgoodies_slideSpeed*-1));		}else{			answerDiv.style.display='block';			answerDiv.style.visibility = 'visible';			slideContent(numericId,dhtmlgoodies_slideSpeed);		}	}else{		slideContent(numericId,(dhtmlgoodies_slideSpeed*-1));		dhtmlgoodies_activeId = false;	}	}function slideContent(inputId,direction){	var obj =document.getElementById('dhtmlgoodies_a' + inputId);	var contentObj = document.getElementById('dhtmlgoodies_ac' + inputId);	height = obj.clientHeight;	height = height + direction;	rerunFunction = true;	if(height>contentObj.offsetHeight){		height = contentObj.offsetHeight;		rerunFunction = false;	}	if(height<0){		height = 0;		rerunFunction = false;	}	obj.style.height = height + 'px';	var topPos = height - contentObj.offsetHeight;	if(topPos>0)topPos=0;	contentObj.style.top = topPos + 'px';	if(rerunFunction){		setTimeout('slideContent(' + inputId + ',' + direction + ')',dhtmlgoodies_timer);	}else{		if(height==0){			obj.style.display='none'; 			if(objectIdToSlideDown && objectIdToSlideDown!=inputId){				document.getElementById('dhtmlgoodies_a' + objectIdToSlideDown).style.display='block';				document.getElementById('dhtmlgoodies_a' + objectIdToSlideDown).style.visibility='visible';				slideContent(objectIdToSlideDown,dhtmlgoodies_slideSpeed);							}		}else{			dhtmlgoodies_activeId = inputId;		}	}}function initShowHideDivs(){	var divs = document.getElementsByTagName('DIV');	var divCounter = 1;	for(var no=0;no<divs.length;no++){		if(divs[no].className=='dhtmlgoodies_question'){			divs[no].onclick = showHideContent;			divs[no].id = 'dhtmlgoodies_q'+divCounter;						var answer = divs[no].nextSibling;			while(answer && answer.tagName!='DIV'){				answer = answer.nextSibling;			}						answer.id = 'dhtmlgoodies_a'+divCounter;							contentDiv = answer.getElementsByTagName('DIV')[0];			contentDiv.style.top = 0 - contentDiv.offsetHeight + 'px'; 				contentDiv.className='dhtmlgoodies_answer_content';			contentDiv.id = 'dhtmlgoodies_ac' + divCounter;			answer.style.display='none';			divCounter++;		}			}	}function openLink(link){window.open(link,"","resizable=yes,top=100, left=100 width=600,height=500,scrollbars=yes");}function openView(link){window.open(link,"","resizable=yes,top=100, left=100 width=650,height=600,scrollbars=yes");}  ////////////////////////////////////////////////var _frm = null; // global var for document.forms[0];/* form onload */function loader() {  _frm = document.forms[0];}/* clear the suggest div within which tr resides */function ClearSuggest(tr) {  // tr->tbody->table->div  var div = tr.parentNode.parentNode.parentNode;  div.innerHTML = "";  div.style.display = "none";}/* returns html for a table based on xml, fields and colummns  xml  = data from ?ReadViewEntries flds = array of fields to load when a row is selected        e.g. ['Customer','PhoneNo','']. blank values will display        in the suggest div but not fill any field(s) columns = array of columns whose data will fill the respective        fields  e.g., [0,1,4].  columns set to -1 will not display        in the suggest but will return a value to the respecitve field*/function GetTableFromXML(xml,flds,columns) {  var tbl = new Array;  var root = xml.documentElement;  rows = root.getElementsByTagName("viewentry");  if ( rows.length == 0 ) {    return "<table width=\"100%\"><tr><td width=\"100%\" style=\"color:#336699;\">Nothing found</table>";  }    var cols = rows[0].getElementsByTagName("entrydata");    var rowCount = rows.length;  var colCount = cols.length;  if ( rowCount > 10 ) rowCount = 10;  // start the table that will be in the div element    var htm = "<table>";  // get an array of positive integers for the columns  var posCols = new Array;  for ( var i = 0 ; i < columns.length; i++ ) {    posCols[i] = Math.abs( columns[i] );  }    for ( var r = 0; r < rowCount; r++ ) {      // set tr attributes so row highlights on hover and sets fields onclick    htm += "<tr onmouseover=mov(this) onmouseout=mou(this) id=\"" + rows[r].attributes[1].value + "\"";    var jscode = "";    for ( var c = 0; c < colCount; c++ ) {          // build js code to set fields in onclick event       if ( posCols.inArray(c) && flds[posCols.indexOf(c)] != ''  ) {        jscode += "_frm." + flds[posCols.indexOf(c)] + ".value='";                jscode += getInnerText(rows[r].getElementsByTagName("entrydata")[c]) + "';";      }     }    // set the onclick event to the jscode    htm += " onclick=\"" + jscode + ";ClearSuggest(this);\">";    // build the js onclick code from the fields and column valu    for ( var c = 0; c < colCount; c++ ) {      if ( columns.inArray(c) ) {  //this won't find negative columns            // output all the column values requested in the function        htm += "<td>" + getInnerText(rows[r].getElementsByTagName("entrydata")[c]);       }    }  }    // get rid of newline/cr/whatever in firefox  htm = htm.replace( /\s/g,' ')    // close the table  htm += "</table>";  // return the html to put in the suggest div  return htm;  }/*   create a suggest div based on a view   oFld - primary field for suggest to attach    view - lookup    cols - array of view columns to get   flds - array of corresponding fields to store vals */function SuggestView( oFld, view, cols, flds, suggestDivId ) {  var startkey = oFld.value;  // if the div doesn't exist on the page already, create it  if (!document.getElementById(suggestDivId)) {    var newNode = document.createElement("div");    newNode.id = suggestDivId;    newNode.className = "suggestDiv";    suggestDiv = document.body.appendChild(newNode);  }          // position the div below the field  var x = oFld.offsetLeft;  var y = oFld.offsetTop + oFld.offsetHeight;  // figure out where the top corner of the div should be, based on the  // bottom left corner of the input field  var x = oFld.offsetLeft;  var y = oFld.offsetTop + oFld.offsetHeight;  var parent = oFld;  while (parent.offsetParent) {    parent = parent.offsetParent;    x += parent.offsetLeft;    y += parent.offsetTop;  }  suggestDiv.style.position = "absolute";  suggestDiv.style.left = x + "px";  suggestDiv.style.top = y + "px"      var url = location.href.split(".nsf")[0] + ".nsf/" + view + "?ReadViewEntries";  parms = "StartKey=" + startkey;  // get the list of items to display in the div    new Ajax.Request( url, {method: "get",        parameters: parms,        asynchronous:true,        onLoading:function(){                     $(suggestDivId).style.display = "block";          $(suggestDivId).innerHTML = "<table><tr><td>Loading...</table>";  },        onFailure: function(request) { alert(request.statusText); },        on404: function(request) { alert(request.statusText); },                 onComplete:function(req){          $(suggestDivId).innerHTML = GetTableFromXML(req.responseXML,flds,cols);    }});      }/* mouseout row code */function mou(o) { o.style.backgroundColor = "";}/* mouseover row code */function mov(o) {  o.style.backgroundColor = "#eeeeff";}/* new array prototypes */Array.prototype.inArray = function (value) {  var i;  for (i=0; i < this.length; i++) {    if (this[i] === value) {      return true;    }   }  return false;};function insertAfter(parent, node, referenceNode) {  parent.insertBefore(node, referenceNode.nextSibling);}