
<!--
/* Functions that swaps images. */

var temp1,temp2;
var jumped = false;
var w_global = null;


/* Creates a Unique number per call on one client browser.
	DOES NOT CREATE A SERVER-SCOPED UNIQUE KEY! */
function createUUID() {
	var l_dDate = new Date();
	var l_nUUID = l_dDate.getTime().toString();
	return l_nUUID;
}

/* (reloads) the current page in window (win) without the query string (adds a UUID to make browser refresh) */
function cleanReload(win) {
	var myurl = getUrl(win, 1) + "?null=" + createUUID();
	win.document.location.replace(myurl);
}
/* (reloads) the current page in window (win) with the query string (adds a UUID to make browser refresh) */
function urlReload(win) {
	var myurl = win.document.location.href;
	myurl = (myurl.indexOf("?") >= 0) ? myurl + "&" : myurl + "?";
	myurl = myurl + "null=" + createUUID();
	win.document.location.replace(myurl);
}



/* gets the document url (minus query string if (clean)) */
function getUrl(win, clean) {
  var myurl = win.document.location.href;
  if (clean) {
    var loc = myurl.indexOf("?");
    if (loc > 0) {
      myurl = myurl.substring(0,loc);
    }
  }
  return myurl;
}
/* adds junk */

/* RTRIM() -removes ending spaces */
function rtrim(str) {
	if (str.length) {
		var cutLoc, i, stop;
		i = str.length;
		stop = 0;
		do {
			if (str.charAt(i-1) == " ") {
				i--;
			} else {
				stop = 1;
			}
		} while (stop == 0 && i > 0)
		if (i < (str.length)) {
			str = str.substring(0,i);
		}
	}
	return str;
}

/* LTRIM() -removes leading spaces */
function ltrim(str) {
	if (str.length) {
		var cutLoc, i, stop;
		i = 0;
		stop = 0;
		do {
			if (str.charAt(i) == " ") {
				i++;
			} else {
				stop = 1;
			}
		} while (stop == 0 && i < str.length)
		if (i > 0) {
			str = str.substring(i,str.length);
		}
	}
	return str;
}

/* TRIM() leading and ending spaces */
function trim(str) {
	if (str.length) {
		str = rtrim(str);
	}
	if (str.length) {
		str = ltrim(str);
	}
	return str;
}

/* Function to swap a font tag's font class */
function NC_swapClass(textID,myClass) {
	obj=MM_findObj(textID);
	if (obj) obj.className=myClass;
}

/* Function to find a document object */
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;
}

/* Functions that swap layers - used only in product nav menu */
function MM_showHideLayers() { //v3.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; }
}

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_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 that handle preload. */
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_checkPlugin(plgIn, theURL, altURL, autoGo) { //v3.0
  var ok=false; document.MM_returnValue = false;
  with (navigator) if (appName.indexOf('Microsoft')==-1) ok=(plugins && plugins[plgIn]);
  else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
    if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
    else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
    else ok=autoGo; }
  if (!ok) theURL=altURL; if (theURL) window.location=theURL;
}

function popNew(loc,name,width,height) {
	pop = window.open(loc,name,'scrollbars,status,resizable,width=' + width + ',height=' + height);
	pop.focus();
}

function popMenu(loc,name,width,height) {
	pop = window.open(loc,name,'scrollbars,menubar,status,resizable,width=' + width + ',height=' + height);
	pop.focus();
}

function popNewResize(loc,name,width,height) {
	pop = window.open(loc,name,'status,resizable,width=' + width + ',height=' + height);
	pop.focus();
}

function popRestricted(loc,name,width,height) {
	pop = window.open(loc,name,'status,width=' + width + ',height=' + height);
	pop.focus();
}

function popNewNoChrome(loc,name,width,height) {
	pop = window.open(loc,name,'width=' + width + ',height=' + height);
	pop.focus();
}

function popReal(loc,name,width,height) {
	pop = window.open(loc,name,'scrollbars,status,toolbar,menubar,directories,location,resizable,width=' + width + ',height=' + height);
	pop.focus();
}
function openWindow (f_name, s_title, s_attrib) {
	w_global = window.open(f_name, s_title, s_attrib);
}

/* checks if text in a form field is a possible email address */
/*   x@x.xx  minimum  */
/*   usage: if (isemail('txt_username','Email not valid!')) submitForm('frm_login');  */
/* djh 2/7/01 added ',atloc' to the 4th line to fix bug with '.' before @ */
function isemail(field,message) {
	var obj=MM_findObj(field);
	var val=obj.value;
	var atloc=val.indexOf('@');
	var dotloc=val.indexOf('.',atloc);
	if ((atloc > 1) && (dotloc > atloc+1) && (val.length > dotloc+2)) {
		var bob=true;
	} else {
		alert(message);
		var bob=false;
	}
	return bob;
}

/* used to submit forms easily within divs, or from within other forms */
function submitForm(frm) { //v3.0
	var obj = MM_findObj(frm);
	obj.submit();
}
function submitFormCheck(form) {
	var obj = MM_findObj(form);
	var frmname = "_CF_check" + form + "(obj)";
	var success = eval(frmname);
	if (success) {
		obj.submit();
	}
	//return success;
}


/*submit care centers*/
function gotoLink(frm,cbo) {
   	var obj = MM_findObj(frm);
   	obj=eval('obj.'+cbo);
   	var index=obj.selectedIndex;
   	var val=obj.options[index].value;
   	if (val.length > 6){
   	 	parent.location = val;
		//alert(val);
   	} else {
		obj = MM_findObj(frm);
		obj.submit();
	}
   
}


/* used to ensure a combo's value is not "" */
function verifyCombo(form,cbo,message) {
	obj=MM_findObj(form);
	obj=eval('obj.'+cbo);
	var index=obj.selectedIndex;
	var val=obj.options[index].value;
	if (val == "") {
		if (message != "")
			alert(message);
		return false;
	} else {
		return true;
	}
}
/* used to jump to url specified in combo's selected VALUE */
function jumpToCombo(form,cbo,addnull) {
	if (addnull == null) addnull = 1;
	obj=MM_findObj(form);
	obj=eval('obj.'+cbo);
	var index=obj.selectedIndex;
	var val = obj.options[index].value;
	if (addnull)
		val +=  ((val.indexOf("?") >= 0) ? "&null="+createUUID() : "?null="+createUUID());
	if (val != "") {
		document.location.href=val;
	}
}

/* used to verify a user's request before connecting a link */
function verifyLink(message,myurl) {
	if (confirm(message)) {
		myurl += (myurl.indexOf('?') >= 0) ? "&null="+createUUID() : "?null="+createUUID();
		document.location.href=myurl;
	}
}

// djh 11/21/00
// This popup window will upload images to the server
// the set the parent text boxes to the correct value
//
function popUpload(p_ccaption, p_ctextname, p_noid, p_cpath) {
	popNew("uploadpop.cfm?caption=" + p_ccaption + "&textname=" + p_ctextname + "&oid=" + p_noid + "&path=" + p_cpath,"uploadwindow","270","190");
}

// These set of JavaScript functions are used for validation of a date entered into a text
// form field. The conversion is attempted when the field is blurred using the onBlur()
// JavaScript function. If the text can't be converted into a recognizable date, a message is
// generated via an alert box and focus is returned to the text field.

// The following functions were written by Tom Wittbrodt
// Copyright (c) 1998, 1999 Tom Wittbrodt
// License is granted if and only if this entire 
// copyright notice is included. 
function validate_date(date_field, desc) {
		if (!date_field.value)  
                return true;
        var in_date = stripCharString(date_field.value," ");
        in_date = in_date.toUpperCase();
        var date_is_bad = 0;  
        if (!allowInString(in_date,"/0123456789T+-"))
                date_is_bad = 1; // invalid characters in date
        if (!date_is_bad) { 
                var has_rdi = 0;
                if (in_date.indexOf("T") >= 0){ 
                        has_rdi = 1;
                }
                if (!date_is_bad && has_rdi && (in_date.indexOf("T") != 0)) { 
                        date_is_bad = 2; // relative date index character is not in first position
                }
                if (!date_is_bad && has_rdi && (in_date.length == 1)) { 
                        var d = new Date();
                                                var return_month = parseInt(d.getMonth() + 1).toString();
                                                return_month = (return_month.length==1 ? "0" : "") + return_month; 
                                                var return_date =  parseInt(d.getDate()).toString();
                                                return_date = (return_date.length==1 ? "0" : "") + return_date; 
                                        in_date = return_month + "/" + return_date + "/" + get_full_year(d);            
                        has_rdi = 0; // date doesn't have rdi char anymore (will also cause failure of add'l rdi checks, which is a good thing)
                }
                if (!date_is_bad && has_rdi && (in_date.length > 1) && !(in_date.charAt(1) == "+" || in_date.charAt(1) == "-")) {
                        date_is_bad = 3; // length of rdi string is greater than 1 but second char is not "+" or "-"
                }
                if (!date_is_bad && has_rdi && isNaN(parseInt(in_date.substring(2,in_date.length),10))) {
                        date_is_bad = 4; // rdi value is not a number
                }
                if (!date_is_bad && has_rdi && (parseInt(in_date.substring(2,in_date.length),10) < 0)) {
                        date_is_bad = 5; // rdi value is not a positive integer
                }
                if (!date_is_bad && has_rdi) {
                        var d = new Date();
                        ms = d.getTime();
                        offset = parseInt(in_date.substring(2,in_date.length),10);
                        if(in_date.charAt(1) == "+") {
                                ms += (86400000 * offset);
                        } else {
                                ms -= (86400000 * offset);
                        }
                        d.setTime(ms);
                                                var return_month = parseInt(d.getMonth() + 1).toString();
                                                return_month = (return_month.length==1 ? "0" : "") + return_month; 
                                                var return_date =  parseInt(d.getDate()).toString();
                                                return_date = (return_date.length==1 ? "0" : "") + return_date; 
                                        in_date = return_month + "/" + return_date + "/" + get_full_year(d);    
                        has_rdi = 0;
                }
        } 
        if (!date_is_bad) {
                var date_pieces = new Array();
                date_pieces = in_date.split("/");
                if (date_pieces.length == 2) {
                        var d = new Date();
                        in_date = in_date + "/" + get_full_year(d);
                        date_pieces = in_date.split("/");
                }
                if (date_pieces.length != 3 || parseInt(date_pieces[0],10) < 1 || parseInt(date_pieces[0],10) > 12 
                                || parseInt(date_pieces[1],10) < 1 || parseInt(date_pieces[1],10) > 31 
                                || (date_pieces[2].length != 2 && date_pieces[2].length != 4)) {
                        date_is_bad = 6;  // date is not in format of m[m]/d[d]/yy[yy]
                }
        }
        if (date_is_bad) {
                alert(desc + " must be in the format of mm/dd/yy, mm/dd/yyyy, t, t+n or t-n.");
                date_field.focus();
                return (false);
        }
        
        var ms = Date.parse(in_date);
        var d = new Date();
        d.setTime(ms);
                var return_date = d.toLocaleString();
                var return_month = parseInt(d.getMonth() + 1).toString();
                return_month = (return_month.length==1 ? "0" : "") + return_month; 
                var return_date =  parseInt(d.getDate()).toString();
                return_date = (return_date.length==1 ? "0" : "") + return_date; 
        return_date = return_month + "/" + return_date + "/" + get_full_year(d);
        date_field.value = return_date;
        return true;
}       // normalize the year to yyyy
function get_full_year(d) {
                var y = ""
                if (d.getFullYear() != null)
                {
                        y = d.getFullYear();
                        if (y < 1970) y+= 100;          
                } else
                {       
                y = d.getYear();
                if (y > 69  && y < 100) y += 1900;
                if (y < 1000) y += 2000;
                }
        return y;
}
// The following functions were written by Gordon McComb
// More information can be found here: http://www.javaworld.com/javaworld/jw-02-1997/jw-02-javascript.html
function stripCharString (InString, CharString)  {
        var OutString="";
   for (var Count=0; Count < InString.length; Count++)  {
        var TempChar=InString.substring (Count, Count+1);
      var Strip = false;
      for (var Countx = 0; Countx < CharString.length; Countx++) {
        var StripThis = CharString.substring(Countx, Countx+1)
         if (TempChar == StripThis) {
                Strip = true;
            break;
         }
      }
      if (!Strip)
        OutString=OutString+TempChar;
   }
        return (OutString);
}
function allowInString (InString, RefString)  {
        if(InString.length==0) return (false);
        for (var Count=0; Count < InString.length; Count++)  {
        var TempChar= InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)  
        return (false);
   }
   return (true);
}

//  Function to open a new window and place focus there.
// If the window is already opened focus will be placed.
var newWindow
function openWebTopWindow(URL, winName, chrome) {
	if (!newWindow || newWindow.closed) {
		newWindow = window.open(URL,winName,chrome)
		if (!newWindow.opener) {
			newWindow.opener = window
		}
	} else {
		// window's already open; bring to front
		newWindow.location = URL;
		newWindow.focus();
	}
}


//this is for the slide search
	var ns = (document.layers)? true:false;
	var is = (document.all)? true:false;
	var out = true;
	var moving = false;
	var j = 0;
	var move_total_dist = 900;
	var move_len = 30; //move speed (the more form elements exist, the higher it should be (10-40))
	var move_count = parseInt(move_total_dist/move_len);
	var start_x = 1.7;
	var start_y = 0;
	
	function moveit() {
		if (!moving) {
			moving = true;
			if (out) {
				gn_timer_id = window.setInterval("moveright()",1);
			} else {
				gn_timer_id = window.setInterval("moveleft()",1);
			}
			out = !out;
		} else {
			// stop div movement and go back the way it was going
			clearInterval(gn_timer_id);
			j = move_count - j;
			moving = false;
			moveit();
		}
	}
	
	function jumpit() {
		var item = "idsearch";
		if (out) {
			if (ns) {
				document.layers[item].left = 0 - move_total_dist;
			} else {
				var l_osrch = eval(item + '.style');
				l_osrch.pixelLeft = 0 - move_total_dist;
			}
		} else {
			if (ns) {
				document.layers[item].left = 0;
			} else {
				var l_osrch = eval(item + '.style');
				l_osrch.pixelLeft = 0;
			}
		}
		out = !out;
	}
	
	function moveleft() {
		var item = "idsearch";
		if (ns) {
			document.layers[item].left = (j==0) ? 0-move_len : document.layers[item].left - move_len;
			//document.layers[item].left -= move_len;
		} else {
			var l_osrch = eval(item + '.style');
			l_osrch.pixelLeft = (j==0) ? 0-move_len : l_osrch.pixelLeft - move_len;
			//l_osrch.pixelLeft -= move_len;
		}
		j++;
		if (j >= move_count) {
			clearInterval(gn_timer_id);	
			j = 0;
			moving = false;
		}
	}

	function moveright() {
		var item = "idsearch";
		if (ns) {
			document.layers[item].left = (j==0) ? 0-move_total_dist + move_len : document.layers[item].left + move_len;
			//document.layers[item].left += move_len;
		} else {
			var l_osrch = eval(item + '.style');
			l_osrch.pixelLeft = (j==0) ? 0-move_total_dist + move_len : l_osrch.pixelLeft + move_len;
			//l_osrch.pixelLeft += move_len;
		}
		j++;
		if (j >= move_count) {
			clearInterval(gn_timer_id);
			j = 0;
			moving = false;
		}
	}
	
	function moveallover() {
		var item = "idsearch";
		var ym = Math.ceil(Math.random() * 31) - 16;
		var xm = Math.ceil(Math.random() * 31) - 16;
		if (ns) {
			document.layers[item].top += ym;
			document.layers[item].left += xm;
		} else {
			var l_osrch = eval(item + '.style');
			l_osrch.pixelTop += ym;
			l_osrch.pixelLeft += xm;
		}
		j++;
		if (j >= (move_count*5)) {
			clearInterval(gn_timer_id);
			j = 0;
			moving = false;
			if (ns) {
				document.layers[item].left=start_x;
				document.layers[item].top=start_y;
			} else {
				eval(item+'.style').pixelLeft=start_x;eval(item+'.style').pixelTop=start_y;
			}
		}
	}
	function moveegg() {
		if (document.forms.frm_search) {
			var frm = document.forms.frm_search;
			if (frm.cbo_cat_accomm.selectedIndex == 1
						&& frm.cbo_cat_attract.selectedIndex == 2
						&& frm.cbo_cat_rest.selectedIndex == 3
						&& frm.cbo_cat_meet.selectedIndex == 4) {
				var item = "idsearch";
				clearInterval(gn_timer_id);
				moving = true;
				j = 0;
				gn_timer_id = window.setInterval("moveallover()",1);
				if (start_x != parseInt(start_x)) {
					start_x=(ns)?document.layers[item].left:eval(item+'.style').pixelLeft;
					start_y=(ns)?document.layers[item].top:eval(item+'.style').pixelTop;
				}
			}
		}
	}
	function temp() {
		x = 234;
	}
	
function js_dump(obj, deep) {
	var parms = "";
	var script_tag = "<scr" + "ipt language='JavaScript'>function jsdumpswitch(source) {target = source.parentElement.cells[1].style;if (target.display == 'none') {source.style.fontStyle = 'normal';source.style.backgroundColor = 'aaaaee';target.display = '';} else {source.style.fontStyle = 'italic';source.style.backgroundColor = 'silver';target.display = 'none';}}</scr" + "ipt>";
	if (deep) {
		parms += js_dump_loop(obj, 0, true);
	} else {
		parms += js_dump_loop(obj, 0, false);
	}
	parms = script_tag + parms;
	var asdfpoiuqwerlkujh = window.open();
	asdfpoiuqwerlkujh.document.write(parms);
}

function js_dump_loop(obj, tnum, deep) {
	var parms = "";
	if (isArray(obj) && tnum < 5) {
		// ARRAYS
		var td_left_start = "<td valign='top'>";
		var td_right_start = "<td bgcolor='ffffff'>";
		var td_end = "</td>";
		var tr_start = "<tr>";
		var tr_end = "</tr>";
		var table_start = "<table border='1' cellspacing='0' cellpadding='1' bgcolor='cceecc' bordercolor='Green'>";
		var table_end = "</table>";
		parms = table_start;
		for (var a=0;a<obj.length;a++) {
			parms += tr_start + td_left_start + a + td_end + td_right_start;
			if (deep && typeof obj[a] == "object") {
				parms += js_dump_loop(obj[a], (tnum+1), deep);
			} else {
				parms += htmlSafe(obj[a]);
			}
			parms += td_end + tr_end;
		}
		parms += table_end;
	} else if (isObject(obj) && tnum < 5) {
		// OBJECTS
		var td_left_start = "<td valign='top' onClick='jsdumpswitch(this)'>";
		var td_right_start = "<td valign='top' bgcolor='ffffff'>";
		var td_end = "</td>";
		var tr_start = "<tr>";
		var tr_end = "</tr>";
		var table_start = "<table border='1' cellspacing='0' cellpadding='1' bgcolor='aaaaee' bordercolor='Blue'>";
		var table_end = "</table>";
		parms = table_start;
		for (var a in obj) {
			var key_out = htmlSafe(a);
			
			//add row and td for key and td start for data
			parms += tr_start + td_left_start + key_out + td_end + td_right_start;
			if (deep && typeof obj[a] == "object") {
				parms += js_dump_loop(obj[a], tnum+1, deep);
			} else {
				parms += htmlSafe(obj[a]);
			}
			parms += td_end + tr_end;
		}
		parms += table_end;
	} else {
		// SIMPLE VALUE
		parms += htmlSafe("" + obj);
	}
	return parms;
}
function htmlSafe(p_in) {
	var p_out = "" + p_in;
	p_out = p_out.replace(/\&/g,"&amp;");
	p_out = p_out.replace(/\</g,"&lt;");
	p_out = p_out.replace(/\>/g,"&gt;");
	return p_out;
}
function isArray(p_cName) {
	if(p_cName.length >= 0) return true;
	else return false;
}
function isObject(p_cName) {
	if(typeof(p_cName) == "object") return true;
	else return false;
}









var asdfpoiuqwerlkujh;
function js_dump2(obj, deep) {
	var script_tag = "<scr" + "ipt language='JavaScript'>function jsdumpswitch(source) {target = source.parentElement.cells[1].style;if (target.display == 'none') {source.style.fontStyle = 'normal';source.style.backgroundColor = 'aaaaee';target.display = '';} else {source.style.fontStyle = 'italic';source.style.backgroundColor = 'silver';target.display = 'none';}}</scr" + "ipt>\n";
	asdfpoiuqwerlkujh = window.open();
	asdfpoiuqwerlkujh.document.write(script_tag);
	if (deep) {
		js_dump_loop2(obj, 0, true);
	} else {
		js_dump_loop2(obj, 0, false);
	}
}

function js_dump_loop2(obj, tnum, deep) {
	if (isArray(obj) && tnum < 5) {
		// ARRAYS
		var td_left_start = "<td valign='top'>";
		var td_right_start = "<td bgcolor='ffffff'>";
		var td_end = "</td>";
		var tr_start = "<tr>";
		var tr_end = "</tr>\n";
		var table_start = "\n<table border='1' cellspacing='0' cellpadding='1' bgcolor='cceecc' bordercolor='Green'>\n";
		var table_end = "\n</table>\n";
		asdfpoiuqwerlkujh.document.write(table_start);
		for (var a=0;a<obj.length;a++) {
			asdfpoiuqwerlkujh.document.write(tr_start + td_left_start + a + td_end + td_right_start);
			if (deep && typeof obj[a] == "object") {
				js_dump_loop2(obj[a], (tnum+1), deep);
			} else {
				asdfpoiuqwerlkujh.document.write(htmlSafe(obj[a]));
			}
			asdfpoiuqwerlkujh.document.write(td_end + tr_end);
		}
		asdfpoiuqwerlkujh.document.write(table_end);
	} else if (isObject(obj) && tnum < 5) {
		// OBJECTS
		var td_left_start = "<td valign='top' onClick='jsdumpswitch(this)'>";
		var td_right_start = "<td valign='top' bgcolor='ffffff'>";
		var td_end = "</td>";
		var tr_start = "<tr>";
		var tr_end = "</tr>\n";
		var table_start = "\n<table border='1' cellspacing='0' cellpadding='1' bgcolor='aaaaee' bordercolor='Blue'>\n";
		var table_end = "\n</table>\n";
		asdfpoiuqwerlkujh.document.write(table_start);
		for (var a in obj) {
			var key_out = htmlSafe(a);
			
			//add row and td for key and td start for data
			asdfpoiuqwerlkujh.document.write(tr_start + td_left_start + key_out + td_end + td_right_start);
			if (deep && typeof obj[a] == "object") {
				js_dump_loop2(obj[a], tnum+1, deep);
			} else {
				asdfpoiuqwerlkujh.document.write(htmlSafe(obj[a]));
			}
			asdfpoiuqwerlkujh.document.write(td_end + tr_end);
		}
		asdfpoiuqwerlkujh.document.write(table_end);
	} else {
		// SIMPLE VALUE
		asdfpoiuqwerlkujh.document.write(htmlSafe("" + obj));
	}
}


//populate combo from object
function populateSelectFromObject(cbo,obj,selData,defSelection) {
		// clears a select form object, and populates it using the passed data
		cbo.length = 0;
		if(defSelection && defSelection.length > 0) {
			var tmpOpt = new Option;
			tmpOpt.value = "";
			tmpOpt.text = defSelection;
			if ("" == selData) tmpOpt.selected = true;
			cbo.length++;
			cbo.options[cbo.length-1] = tmpOpt;
		}
		for (a in obj) {
			var tmpOpt = new Option;
			tmpOpt.value = a;
			tmpOpt.text = obj[a];
			if (a == selData) tmpOpt.selected = true;
			cbo.length++;
			cbo.options[cbo.length-1] = tmpOpt;
		}
	}

function getFieldValue(fieldobj) {
	if (fieldobj != null) {
		js_dump(fieldobj);
		return "";
	} else return null;
}




/* PopUp Calendar v2.1
© PCI, Inc.,2000 • Freeware
webmaster@personal-connections.com
+1 (925) 955 1624
Permission granted  for unlimited use so far
as the copyright notice above remains intact. */

/* Settings. Please read readme.html file for instructions*/
var ppcDF = "m/d/Y";
var ppcMN = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var ppcWN = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var ppcER = new Array(4);
ppcER[0] = "Required DHTML functions are not supported in this browser.";
ppcER[1] = "Target form field is not assigned or not accessible.";
ppcER[2] = "Sorry, the chosen date is not acceptable. Please read instructions on the page.";
ppcER[3] = "Unknown error occured while executing this script.";
var ppcUC = false;
 var ppcUX = 4;
 var ppcUY = 4;

/* Do not edit below this line unless you are sure what are you doing! */

var ppcIE=(navigator.appName == "Microsoft Internet Explorer");
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));
var ppcTT="<table width=\"200\" cellspacing=\"1\" cellpadding=\"2\" border=\"1\" bordercolorlight=\"#000000\" bordercolordark=\"#000000\">\n";
var ppcCD=ppcTT;var ppcFT="<font face=\"MS Sans Serif, sans-serif\" size=\"1\" color=\"#000000\">";var ppcFC=true;
var ppcTI=false;var ppcSV=null;var ppcRL=null;var ppcXC=null;var ppcYC=null;
var ppcML=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var ppcWE=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var ppcNow=new Date();var ppcPtr=new Date();
if (ppcNN) {
 window.captureEvents(Event.RESIZE);
 window.onresize = restoreLayers;
 document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
 document.onmousedown = recordXY;
 document.onmouseup = confirmXY;}

function restoreLayers(e) {
 if (ppcNN) {
  with (window.document) {
   open("text/html");
   write("<html><head><title>Restoring the layer structure...</title></head>");
   write("<body bgcolor=\"#FFFFFF\" onLoad=\"history.go(-1)\">");
   write("
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2555921-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body></html>");
   close();}}}

function recordXY(e) {
 if (ppcNN) {
  ppcXC = e.x;
  ppcYC = e.y;
  document.routeEvent(e);}}

function confirmXY(e) {
 if (ppcNN) {
  ppcXC = (ppcXC == e.x) ? e.x : null;
  ppcYC = (ppcYC == e.y) ? e.y : null;
  document.routeEvent(e);}}

function getCalendarFor(target,rules) {
 ppcSV = target;
 ppcRL = rules;
 if (ppcFC) {setCalendar();ppcFC = false;}
 if ((ppcSV != null)&&(ppcSV)) {
  if (ppcIE) {
   var obj = document.all['PopUpCalendar'];
   //obj.style.left = 470;
   obj.style.left = event.clientX
   //obj.style.top  = 1025;
   obj.style.top  = 1125;
   obj.style.visibility = "visible";}
  else if (ppcNN) {
   var obj = document.layers['PopUpCalendar'];
   obj.left = ppcXC
   obj.top  = ppcYC
   obj.visibility = "show";}
  else {showError(ppcER[0]);}}
 else {showError(ppcER[1]);}}

function switchMonth(param) {
 var tmp = param.split("|");
 setCalendar(tmp[0],tmp[1]);}

function moveMonth(dir) {
 var obj = null;
 var limit = false;
 var tmp,dptrYear,dptrMonth;
 if (ppcIE) {obj = document.ppcMonthList.sItem;}
 else if (ppcNN) {obj = document.layers['PopUpCalendar'].document.layers['monthSelector'].document.ppcMonthList.sItem;}
 else {showError(ppcER[0]);}
 if (obj != null) {
  if ((dir.toLowerCase() == "back")&&(obj.selectedIndex > 0)) {obj.selectedIndex--;}
  else if ((dir.toLowerCase() == "forward")&&(obj.selectedIndex < 12)) {obj.selectedIndex++;}
  else {limit = true;}}
 if (!limit) {
  tmp = obj.options[obj.selectedIndex].value.split("|");
  dptrYear  = tmp[0];
  dptrMonth = tmp[1];
  setCalendar(dptrYear,dptrMonth);}
 else {
  if (ppcIE) {
   obj.style.backgroundColor = "#FF0000";
   window.setTimeout("document.ppcMonthList.sItem.style.backgroundColor = '#FFFFFF'",50);}}}

function selectDate(param) {
 var arr   = param.split("|");
 var year  = arr[0];
 var month = arr[1];
 var date  = arr[2];
 var ptr = parseInt(date);
 ppcPtr.setDate(ptr);
 if ((ppcSV != null)&&(ppcSV)) {
  if (validDate(date)) {ppcSV.value = dateFormat(year,month,date);hideCalendar();}
  else {showError(ppcER[2]);if (ppcTI) {clearTimeout(ppcTI);ppcTI = false;}}}
 else {
  showError(ppcER[1]);
  hideCalendar();}}

function setCalendar(year,month) {
 if (year  == null) {year = getFullYear(ppcNow);}
 if (month == null) {month = ppcNow.getMonth();setSelectList(year,month);}
 if (month == 1) {ppcML[1]  = (isLeap(year)) ? 29 : 28;}
 ppcPtr.setYear(year);
 ppcPtr.setMonth(month);
 ppcPtr.setDate(1);
 updateContent();}

function updateContent() {
 generateContent();
 if (ppcIE) {document.all['monthDays'].innerHTML = ppcCD;}
 else if (ppcNN) {
  with (document.layers['PopUpCalendar'].document.layers['monthDays'].document) {
   open("text/html");
   write("<html>\n<head>\n<title>DynDoc</title>\n</head>\n<body bgcolor=\"#FFFFFF\">\n");
   write(ppcCD);
   write("
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2555921-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body>\n</html>");
   close();}}
 else {showError(ppcER[0]);}
 ppcCD = ppcTT;}

function generateContent() {
 var year  = getFullYear(ppcPtr);
 var month = ppcPtr.getMonth();
 var date  = 1;
 var day   = ppcPtr.getDay();
 var len   = ppcML[month];
 var bgr,cnt,tmp = "";
 var j,i = 0;
 for (j = 0; j < 7; ++j) {
  if (date > len) {break;}
  for (i = 0; i < 7; ++i) {
   bgr = ((i == 0)||(i == 6)) ? "#FFFFCC" : "#FFFFFF";
   if (((j == 0)&&(i < day))||(date > len)) {tmp  += makeCell(bgr,year,month,0);}
   else {tmp  += makeCell(bgr,year,month,date);++date;}}
  ppcCD += "<tr align=\"center\">\n" + tmp + "</tr>\n";tmp = "";}
 ppcCD += "</table>\n";}

function makeCell(bgr,year,month,date) {
 var param = "\'"+year+"|"+month+"|"+date+"\'";
 var td1 = "<td width=\"20\" bgcolor=\""+bgr+"\" ";
 var td2 = (ppcIE) ? "</font></span></td>\n" : "</font></a></td>\n";
 var evt = "onMouseOver=\"this.style.backgroundColor=\'#FF0000\'\" onMouseOut=\"this.style.backgroundColor=\'"+bgr+"\'\" onMouseUp=\"selectDate("+param+")\" ";
 var ext = "<span Style=\"cursor: hand\">";
 var lck = "<span Style=\"cursor: default\">";
 var lnk = "<a href=\"javascript:selectDate("+param+")\" onMouseOver=\"window.status=\' \';return true;\">";
 var cellValue = (date != 0) ? date+"" : "&nbsp;";
 if ((ppcNow.getDate() == date)&&(ppcNow.getMonth() == month)&&(getFullYear(ppcNow) == year)) {
  cellValue = "<b>"+cellValue+"</b>";}
 var cellCode = "";
 if (date == 0) {
  if (ppcIE) {cellCode = td1+"Style=\"cursor: default\">"+lck+ppcFT+cellValue+td2;}
  else {cellCode = td1+">"+ppcFT+cellValue+td2;}}
 else {
  if (ppcIE) {cellCode = td1+evt+"Style=\"cursor: hand\">"+ext+ppcFT+cellValue+td2;}
  else {
   if (date < 10) {cellValue = "&nbsp;" + cellValue + "&nbsp;";}
   cellCode = td1+">"+lnk+ppcFT+cellValue+td2;}}
 return cellCode;}

function setSelectList(year,month) {
 var i = 0;
 var obj = null;
 if (ppcIE) {obj = document.ppcMonthList.sItem;}
 else if (ppcNN) {obj = document.layers['PopUpCalendar'].document.layers['monthSelector'].document.ppcMonthList.sItem;}
 else {/* NOP */}
 while (i < 13) {
  obj.options[i].value = year + "|" + month;
  obj.options[i].text  = ppcMN[month] + ", " + year;
  i++;
  month++;
  if (month == 12) {year++;month = 0;}}}

function hideCalendar() {
 if (ppcIE) {document.all['PopUpCalendar'].style.visibility = "hidden";}
 else if (ppcNN) {document.layers['PopUpCalendar'].visibility = "hide";window.status = " ";}
 else {/* NOP */}
 ppcTI = false;
 setCalendar();
 ppcSV = null;
 if (ppcIE) {var obj = document.ppcMonthList.sItem;}
 else if (ppcNN) {var obj = document.layers['PopUpCalendar'].document.layers['monthSelector'].document.ppcMonthList.sItem;}
 else {/* NOP */}
 obj.selectedIndex = 0;}

function showError(message) {
 window.alert("[ PopUp Calendar ]\n\n" + message);}

function isLeap(year) {
 if ((year%400==0)||((year%4==0)&&(year%100!=0))) {return true;}
 else {return false;}}

function getFullYear(obj) {
 if (ppcNN) {return obj.getYear() + 1900;}
 else {return obj.getYear();}}

function validDate(date) {
 var reply = true;
 if (ppcRL == null) {/* NOP */}
 else {
  var arr = ppcRL.split(":");
  var mode = arr[0];
  var arg  = arr[1];
  var key  = arr[2].charAt(0).toLowerCase();
  if (key != "d") {
   var day = ppcPtr.getDay();
   var orn = isEvenOrOdd(date);
   reply = (mode == "[^]") ? !((day == arg)&&((orn == key)||(key == "a"))) : ((day == arg)&&((orn == key)||(key == "a")));}
  else {reply = (mode == "[^]") ? (date != arg) : (date == arg);}}
 return reply;}

function isEvenOrOdd(date) {
 if (date - 21 > 0) {return "e";}
 else if (date - 14 > 0) {return "o";}
 else if (date - 7 > 0) {return "e";}
 else {return "o";}}

function dateFormat(year,month,date) {
 if (ppcDF == null) {ppcDF = "m/d/Y";}
 var day = ppcPtr.getDay();
 var crt = "";
 var str = "";
 var chars = ppcDF.length;
 for (var i = 0; i < chars; ++i) {
  crt = ppcDF.charAt(i);
  switch (crt) {
   case "M": str += ppcMN[month]; break;
   case "m": str += (month<9) ? ("0"+(++month)) : ++month; break;
   case "Y": str += year; break;
   case "y": str += year.substring(2); break;
   case "d": str += ((ppcDF.indexOf("m")!=-1)&&(date<10)) ? ("0"+date) : date; break;
   case "W": str += ppcWN[day]; break;
    default: str += crt;}}
 return unescape(str);}

                       

//-->


