//START ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.ESRI.ADF.System.release.js
//----------------------------------------------------------
// Copyright (C) ESRI. All rights reserved.
//----------------------------------------------------------
Type.registerNamespace('ESRI.ADF.System');ESRI.ADF.System.addMouseWheelHandler = function(element, handler, handlerOwner) {
if (typeof(handler) !== 'function') { throw Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);}
if(handlerOwner) {
handler = Function.createDelegate(handlerOwner, handler);}
if(Sys.Browser.agent===Sys.Browser.InternetExplorer || Sys.Browser.agent===Sys.Browser.Safari || Sys.Browser.agent===Sys.Browser.Opera) {
var fnc = Function.createDelegate(handlerOwner, function (sender) { return handler.call(element, ESRI.ADF.System.addMouseWheelHandler._convertWheelEventIE(sender));});$addHandler(element, "mousewheel",fnc);}
else if(element.addEventListener) {
var fnc = Function.createDelegate(handlerOwner, function (sender) { return handler.call(element, ESRI.ADF.System.addMouseWheelHandler._convertWheelEventMozilla(sender));});$addHandler(element, "DOMMouseScroll", fnc);} 
}
ESRI.ADF.System.addMouseWheelHandler._convertWheelEventIE = function(sender) {
sender.type = 'mousewheel';sender.wheelDelta = sender.rawEvent.wheelDelta;sender.preventDefault();sender.stopPropagation();return sender;};ESRI.ADF.System.addMouseWheelHandler._convertWheelEventMozilla = function(sender) {
sender.type = 'mousewheel';sender.wheelDelta = -sender.rawEvent.detail*40;sender.screenX = sender.rawEvent.screenX;sender.screenY = sender.rawEvent.screenY;sender.clientX = sender.rawEvent.pageX;sender.clientY = sender.rawEvent.pageY;sender.offsetX = sender.rawEvent.layerX;sender.offsetY = sender.rawEvent.layerY;sender.preventDefault();sender.stopPropagation();return sender;};ESRI.ADF.System._makeMouseEventRelativeToElement = function(evt,element,location) {
var e = evt;if(e.target && element && element!==e.target)
{ 
e = {};for(var idx in evt) e[idx] = evt[idx];if(!location) { location = Sys.UI.DomElement.getLocation(element);}
if(Sys.Browser.agent===Sys.Browser.InternetExplorer) {
if(e.target.parentNode===document.body) { e.target = document.body;}
e.offsetX = evt.screenX-window.screenLeft-location.x+document.documentElement.scrollLeft - 2;e.offsetY = evt.screenY-window.screenTop-location.y+document.documentElement.scrollTop - 2;}
else {
var eventLocation = Sys.UI.DomElement.getLocation(e.target);var diffX = eventLocation.x-location.x;var diffY = eventLocation.y-location.y;e.offsetX += diffX;e.offsetY += diffY;}
e.target = element;}
return e;};ESRI.ADF.System._templateBinderAttrRegEx = new RegExp("{@.*?}","g")
ESRI.ADF.System._templateBinderEvalRegEx = new RegExp("{eval(.*?)}","g");ESRI.ADF.System.templateBinder = function(dataItem,template) {
if(!template) { return '';}
var str = template;for(var idx in dataItem){
var re = new RegExp("{@" + idx + "}","g");str = str.replace(re,dataItem[idx]);}
var evalRe = new RegExp("\\{eval\\((.*?)\\)\\}", "g");var myArray = str.match(evalRe);if(myArray != null){
for(var idx=0;idx<myArray.length;idx++){
var result = eval(myArray[idx].replace(evalRe,"$1"));str = str.replace(myArray[idx],result);}
}
return str;};ESRI.ADF.System.arrayTemplateBinder = function(dataItems,itemTemplate,headerTemplate,footerTemplate,separatorTemplate,alternatingItemTemplate) {
var str = '';if(headerTemplate) str += headerTemplate;for(var idx=0;idx<dataItems.length;idx++) {
var dataItem = dataItems[idx];if(alternatingItemTemplate && idx%2==1)
str += ESRI.ADF.System.templateBinder(dataItem,alternatingItemTemplate);else
str += ESRI.ADF.System.templateBinder(dataItem,itemTemplate);if(separatorTemplate && idx<dataItems.length-1) str += separatorTemplate;}
if(footerTemplate) str += footerTemplate;return str;};ESRI.ADF.System.setOpacity = function(element,value) {
if (!element) { return;}
var filters = null;if(element.runtimeStyle) { filters = element.runtimeStyle.filter;}
if (filters!=null) {
var createFilter = true;if (filters.length !== 0) {
if(filters.indexOf('progid:DXImageTransform.Microsoft.Alpha')>-1) {
var filter = element.filters['DXImageTransform.Microsoft.Alpha'];if(value===1) {
var pngFilter = (ESRI.ADF.System.__isIE6?element.filters['progid:DXImageTransform.Microsoft.AlphaImageLoader']:null);element.runtimeStyle.filter = '';if(pngFilter) {ESRI.ADF.System.setIEPngTransparency(element,pngFilter.src,pngFilter.sizingMethod==='image',element.format);}
}
else {
filter.opacity = value * 100;filter.enabled = true;}
createFilter = false;}
}
if (createFilter && value!==1) {
element.runtimeStyle.filter += 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (value * 100) + ')';}
}
else {
element.style.opacity = value;}
};ESRI.ADF.System.setIEPngTransparency = function(img,src,noscale,format) {
if(ESRI.ADF.System.__isIE6 && img && img.tagName==='IMG') {
var srcLC = (format?'.'+format:src).toLowerCase();if(srcLC.endsWith('.gif') || srcLC.endsWith('.jpg') || format && !format.toLowerCase().startsWith('png')) { 
if (img.runtimeStyle.filter.indexOf("DXImageTransform.Microsoft.AlphaImageLoader")> -1) {
var opacityFilter = img.filters['DXImageTransform.Microsoft.Alpha'];img.runtimeStyle.filter = '';if(opacityFilter) ESRI.ADF.System.setOpacity(img,opacityFilter.opacity/100);}
img.src = src;}
else {
if (img.runtimeStyle.filter.indexOf("DXImageTransform.Microsoft.AlphaImageLoader")> -1) {
img.filters['DXImageTransform.Microsoft.AlphaImageLoader'].src = src;img.filters['DXImageTransform.Microsoft.AlphaImageLoader'].enabled = true;img.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod = (noscale?'image':'scale');img.format = format;}
else {
img.runtimeStyle.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='"+(noscale?'image':'scale')+"');";img.src = esriBlankImagePath;}
}
}
};ESRI.ADF.System.__isIE6 = (Sys.Browser.agent === Sys.Browser.InternetExplorer && Sys.Browser.version<7)
ESRI.ADF.System.ContentAlignment = function() {
throw Error.invalidOperation();};ESRI.ADF.System.ContentAlignment.prototype = {
TopLeft : 1,
TopCenter : 2,
TopRight : 4,
MiddleLeft : 16,
MiddleCenter : 32,
MiddleRight : 64,
BottomLeft : 256,
BottomCenter : 512,
BottomRight : 1024
};ESRI.ADF.System.ContentAlignment.registerEnum("ESRI.ADF.System.ContentAlignment", false);__esriDoPostBack = ESRI.ADF.System.__DoPostBack = function(uniqueId, clientId, argument, clientCallback, context) {
var status = Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();if(status) {
if(!ESRI.ADF.System._postBackQueue) { ESRI.ADF.System._postBackQueue = [];}
var fnc = Function.createDelegate(this, function() { ESRI.ADF.System.__DoPostBack(uniqueId, clientId, argument, clientCallback, context) });Array.add(ESRI.ADF.System._postBackQueue,fnc);}
else {
if(clientCallback) {
var _fncLoading = function(sender, args) {
Sys.WebForms.PageRequestManager.getInstance().remove_pageLoading(_fncLoading);clientCallback(sender, args, clientId, context);}
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(_fncLoading);}
__doPostBack(uniqueId, argument);}
};ESRI.ADF.System._checkQueue = function() {
if(ESRI.ADF.System._postBackQueue && ESRI.ADF.System._postBackQueue.length>0) {
var fnc = ESRI.ADF.System._postBackQueue[0];Array.removeAt(ESRI.ADF.System._postBackQueue,0);fnc();}
};if(Sys.WebForms) {
Sys.Application.add_init(function() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(ESRI.ADF.System._checkQueue);});};ESRI.ADF.System.ProcessMSAjaxCallbackResult = function(sender, args, controlId, context) {
var dataItems = args.get_dataItems();if(dataItems[controlId])
ESRI.ADF.System.processCallbackResult(dataItems[controlId],context);};ESRI.ADF.System._doCallback = function(callbackFunctionString, uniqueID, id, argument, context) {
if(ESRI.ADF.System.checkSessionExpired()) return;if(callbackFunctionString && !callbackFunctionString.startsWith('__esriDoPostBack'))
{
if(callbackFunctionString) {
window.setTimeout(Function.createDelegate(context,function() { eval(callbackFunctionString) }),0);}
}
else {
ESRI.ADF.System.__DoPostBack(uniqueID, id, argument, ESRI.ADF.System.ProcessMSAjaxCallbackResult, context);}
};ESRI.ADF.System.__epsilon = 1E-12;processCallbackResult = ESRI.ADF.System.processCallbackResult = function(response, context) {
if(!response) { return;}
var results=[];if(response.startsWith('///:::')) { 
var pairs = response.split("^^^");for (var k=0;k<pairs.length;k++) {
var item = pairs[k];if (item===null || item.length===0) { continue;} 
var actions = item.split(":::");if(actions.length<3) { continue;}
var type = actions[0].toLowerCase();var cntlID = actions[1];var actn = actions[2].toLowerCase();var pars = [];for(var j=3;j<actions.length;j++) {
Array.add(pars,actions[j]);}
Array.add(results,{"id":cntlID,"type":type,"action":actn,"params":pars});}
}
else { 
try { results = eval(response);}
catch(ex) {
Sys.Debug.trace('Failed to process page response: "' + response + '"');return;} 
}
ESRI.ADF.System.resetSessionLapse();var validResponse = false;for (var idx=0;idx<results.length;idx++)
{ 
var result = results[idx];var controlID = result.id;var controlType = result.type;var obj = null;if(controlID) { obj = $find(controlID);}
var action = result.action.toLowerCase();var params = result.params;if(action==='javascript') {
var method = function() {
try { eval(params[0]);}
catch(ex) { Sys.Debug.trace('CallbackResult[javascript]: Could not evaluate JavaScript: ' + params[0] +'\\n' + ex.name+' (' + ex.number + '):\\n' + ex.message);}
};if(obj || context) {
Function.createDelegate(obj?obj:context,method)();}
else { method();}
validResponse = true;continue;}
else if (action==="content") {
var o = $get(controlID);if (o) { o.outerHTML=params[0];}
else { Sys.Debug.trace('CallbackResult[content]: Element "' + controlID + '" not found');} 
validResponse = true;continue;}
else if (action==="innercontent") {
var o2 = $get(controlID);if (o2) { o2.innerHTML=params[0];validResponse = true;}
else { Sys.Debug.trace('CallbackResult[innercontent]: Element "' + controlID + '" not found');}
continue;}
else if (action==="image")
{
var o3 = $get(controlID);if (o3) { o3.src = params[0];}
else { Sys.Debug.trace('CallbackResult[image]: Image element "' + controlID + '" not found');}
validResponse = true;continue;}
else if (action==="set")
{
if(obj) {
var properties = params[0];if(String.isInstanceOfType(params[0])) {
properties = eval('('+params[0]+')');}
for(var name in properties) {
var val = properties[name];var setter = obj["set_" + name];if (setter && typeof(setter) === 'function') { setter.apply(obj, [val]);}
else { obj.name = val;}
}
}
else { Sys.Debug.trace('CallbackResult[set]: Component "' + controlID + '" not found');}
validResponse = true;continue;}
else if (action==='invoke') {
var method = null;var methodname = params[0];if(obj) { 
method = obj[methodname];}
else if(!controlID) { 
try { method = eval('('+methodname+')');}
catch(ex) { }
}
else {
Sys.Debug.trace('CallbackResult[invoke]: Component "' + controlID + '" not found');continue;}
if(method && typeof(method) == 'function') {
var args = params[1];if(args) {
if(Array.isInstanceOfType(args)) { method.apply(obj,args);}
else { method.apply(obj,[args]);}
}
else { method.apply(obj);}
}
else { Sys.Debug.trace('CallbackResult[invoke]: Invalid method "' + (controlID?controlID+'.':'')+methodname + '"');}
validResponse = true;continue;}
else if (action=='include') {
var id = params[0];var elm = (id?$get(id):null);if(elm) { elm.parentNode.removeChild(elm);}
elm=null;var src = params[1];var tagname = params[2];var type = params[3];var language = params[4];elm = document.createElement(tagname);if(id) { elm.id = id;}
if(tagname==='link') { elm.href = src;}
else { elm.src = src;}
if(type) { 
elm.type = type;if(type==='text/css') { elm.rel = 'stylesheet';}
}
if(language) { elm.language = language;}
document.getElementsByTagName('head').item(0).appendChild(elm);validResponse = true;continue;}
else if(obj && obj.processCallbackResult) {
validResponse = obj.processCallbackResult(result.action,params);if (obj._cancelled) {
obj._cancelled = false;return;}
continue;}
if(!validResponse) {
Sys.Debug.trace('CallbackResult action "' + action+ '" couldn\'t be processed.');}
}
if (validResponse)
{
lastResponseReceivedTime=new Date();}
};Type.registerNamespace('ESRI.ADF.UI.__DomEvent');ESRI.ADF.UI.__DomEvent = function(e) {
var target = e.target ? e.target : e.srcElement;if ((target !== window) && (target !== document) &&
!(window.HTMLElement && (target instanceof HTMLElement)) &&
(typeof(target.nodeName) !== 'string')) {
e.target = document.body;}
if(target.parentNode==null) return;ESRI.ADF.UI.__DomEvent.initializeBase(this, [e]);};ESRI.ADF.UI.__DomEvent.registerClass('ESRI.ADF.UI.__DomEvent',Sys.UI.DomEvent);ESRI.ADF.UI.__DomEvent.__addHandler = function (element, eventName, handler) {
if (!element._events) {
element._events = {};}
var eventCache = element._events[eventName];if (!eventCache) {
element._events[eventName] = eventCache = [];}
var browserHandler;if (element.addEventListener) {
browserHandler = function(e) {
return handler.call(element, new ESRI.ADF.UI.__DomEvent(e));}
element.addEventListener(eventName, browserHandler, false);}
else if (element.attachEvent) {
browserHandler = function() {
return handler.call(element, new ESRI.ADF.UI.__DomEvent(window.event));}
element.attachEvent('on' + eventName, browserHandler);}
eventCache[eventCache.length] = {handler: handler, browserHandler: browserHandler};};ESRI.ADF.System.__getAbsoluteMousePosition = function(e) {
var mouseX = 0;var mouseY = 0;if(e && typeof(e.pageX)!=='undefined' && typeof(e.pageY)!=='undefined') {
mouseX=e.pageX;mouseY=e.pageY;}
else {
e = window.event;mouseX=event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);mouseY=event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);}
return {"mouseX":mouseX,"mouseY":mouseY};};ESRI.ADF.System.__lastResponseRecievedTime = new Date();ESRI.ADF.System.__sessionExpired = false;ESRI.ADF.System.checkSessionExpired = function() {
var now = new Date();var last = ESRI.ADF.System.__lastResponseRecievedTime;var diff = Math.floor((now.getTime() - last.getTime()) / (1000 * 60));if(!ESRI.ADF.System.maximumLapseTime) { return false;} 
var hasExpired = (diff>=ESRI.ADF.System.maximumLapseTime);if(hasExpired && !ESRI.ADF.System.__sessionExpired) { 
ESRI.ADF.System.__sessionExpired = true;ESRI.ADF.System.showLapseAlert();}
return hasExpired;};ESRI.ADF.System.resetSessionLapse = function () {
ESRI.ADF.System.__lastResponseRecievedTime = new Date();};ESRI.ADF.System.showLapseAlert = function() {
alert("Session has timed out from extended inactivity. A new session must be started to use this application by closing this browser and reopening.");};ESRI.ADF.System.escapeForCallback = function(toEscape) {
if (toEscape) 
{
toEscape = toEscape.replace(/&/g, "__amp__");}
return toEscape;};if (typeof(Sys) !== 'undefined') { Sys.Application.notifyScriptLoaded();}

//END ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.ESRI.ADF.System.release.js
//START ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.display_dotnetadf.js
/*
COPYRIGHT 1995-2003 ESRI

TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
Unpublished material - all rights reserved under the 
Copyright Laws of the United States.

For additional information, contact:
Environmental Systems Research Institute, Inc.
Attn: Contracts Dept
380 New York Street
Redlands, California, USA 92373


email: contracts@esri.com
*/


// set path for loading banner image
loadBannerPath = "images";
var displayLoading = false;
var sendDelay = 100;
var currentEventArg = "";

activeControl = "Map1";
var esriCurrentResponseCount = 0;
var esriLastResponseCount = -1;
var postBackInterval = null;

var clientPostbackEventArgs = new Array();
// add additional control non-tool event args, if necessary
clientPostbackEventArgs[0] = "resize";
clientPostbackEventArgs[1] = "scrollwheelzoom";
clientPostbackEventArgs[2] = "dragimage";
clientPostbackEventArgs[3] = "drawtile";
clientPostbackEventArgs[4] = "getextent";
clientPostbackEventArgs[5] = "newextent";
clientPostbackEventArgs[6] = "dragrectangle";
clientPostbackEventArgs[7] = "changelevel";
clientPostbackEventArgs[8] = "point";
clientPostbackEventArgs[9] = "line";
clientPostbackEventArgs[10] = "polyline";
clientPostbackEventArgs[11] = "polygon";
clientPostbackEventArgs[12] = "circle";
clientPostbackEventArgs[13] = "oval";


function postBack(control, eventArg, responseFunction) {
	//eventArg = eventArg.toLowerCase();
	currentEventArg = eventArg;	
	//var map2 = Maps[control];
	//var ov2 = Overviews[control];
	//var page2 = Pages[control];
	var toolbar2 = Toolbars[control];
//	var toc2 = Tocs[control];
	var forcePostBack  = false;
	activeControl = control;
	var mode = "";
	var f;
//	if (map2!=null) {
//		// map request
//		f = map2.document.forms[docFormID];
//		f.minx.value = map2.xMin;
//		f.miny.value = map2.yMin;
//		f.maxx.value = map2.xMax;
//		f.maxy.value = map2.yMax;
//		f.coords.value = map2.coords;
//		var postbackEvents = map2.forcePostBackEvent.split(",");
//		for (var h=0;h<clientPostbackEventArgs.length;h++)
//		{	// Check if eventArg is a PostBack event arg.
//			if (eventArg.toLowerCase()==clientPostbackEventArgs[h])
//			{	//check postback event
//				for (var i=0;i<postbackEvents.length;i++)
//				{	// Check if Postback is for Map Mode.
//					if (map2.mode==postbackEvents[i])
//						forcePostBack = true;
//				}
//			}
//		}
//		f.elements[control + "_mode"].value = map2.mode;
//		mode = map2.mode;
//		map2.mode = map2.tempMode;
//		map2.actionType = map2.tempAction;
//		map2.cursor = map2.tempCursor;
//		if (map2.callBackFunctionString!=null) callBackFunctionString = map2.callBackFunctionString;
//	}
//	 else if (page2!=null) {
//		// page request
//		f = page2.document.forms[docFormID];
//		f.minx.value = page2.xMin;
//		f.miny.value = page2.yMin;
//		f.maxx.value = page2.xMax;
//		f.maxy.value = page2.yMax;
//		f.coords.value = page2.coords;
//		var supportpostbackEvents = page2.toolsSupportingClientPostBack.split(",");
//		for (var j=0;j<clientPostbackEventArgs.length;j++)
//		{	// Check if eventArg is a PostBack event arg.
//			if (eventArg.toLowerCase()==clientPostbackEventArgs[j])
//			{	//check postback event
//				for (var k=0;k<supportpostbackEvents.length;k++)
//				{	// Check if Postback is for Page Mode.
//					if (page2.mode==supportpostbackEvents[k])
//						forcePostBack = true;
//				}
//			}
//		}
//		f.elements[control + "_mode"].value = page2.mode;
//		mode = page2.mode;
//		page2.mode = page2.tempMode;
//		page2.actionType = page2.tempAction;
//		page2.cursor = page2.tempCursor;
//		if (page2.callBackFunctionString!=null) callBackFunctionString = page2.callBackFunctionString;
//	} else if (ov2!=null) {
//		// overview request
//		f = ov2.document.forms[docFormID];
//		f.centerx.value = ov2.centerX;
//		f.centery.value = ov2.centerY;
//        if (eventArg==ov2.forcePostBackEvent)
//            forcePostBack = true;
//		if (ov2.callBackFunctionString!=null) callBackFunctionString = ov2.callBackFunctionString;
//	}  else
	 if (toolbar2!=null) {
		f = toolbar2.document.forms[docFormID];
		//find out if item supports client postback
		// ToDo: set up for forced postback
//		if (toolbar2.enableClientPostBack &&
//			(isForcePostBackTool(eventArg, toolbar2.buttonsSupportingClientPostBack)
//		  || eventArg == "resize" || eventArg == "drawtile") )
//			forcePostBack = true;
		if ((toolbar2.items[currentEventArg]!=null) && (toolbar2.items[currentEventArg].selectAutoPostBack))
			forcePostBack = true;
		if (toolbar2.callBackFunctionString!=null) callBackFunctionString = toolbar2.callBackFunctionString;
	} 	else if (toc2 !=null) {
		f = toc2.document.forms[docFormID];
		//enableClientPostBack = toc2.enableClientPostBack;
		if (toc2.callBackFunctionString!=null) callBackFunctionString = toc2.callBackFunctionString;
	} else {
		alert(control + " is not available or does not exist.");
		return false;
	}
	if (f.elements["PostBackMode"]!=null) f.PostBackMode.value = f.elements[control+"_mode"].value;
	//alert("forcePostBack=" + forcePostBack);
	if (forcePostBack) {
		__doPostBack(control, eventArg);
	} else {
		// send to ClientPostBack
		var querystring = createClientPostBackQueryString(control, eventArg);
		clientPostBack(querystring);
	}
	
	map2=null;
	page2=null;
	ov2=null;
	toolbar2=null;
	toc2=null;
}

function clientPostBack(querystring) {
	
	var argument = querystring;
	var context = activeControl + "," + currentEventArg;
	if (querystring!=null && querystring.length>0) {
		eval(callBackFunctionString);
		// Debug stuff to be removed, or at least commented out
		if (checkForFormElement(document, 0, "MapDebugBox")) document.forms[0].MapDebugBox.value += "PostBack Request: " + querystring + "\n";
	}
}

function delayedClientPostBack(argument, context, callbackString) {
    if (commonCallbackFree) {
        eval(callBackString);
// Debug stuff to be removed, or at least commented out
if (checkForFormElement(document, 0, "MapDebugBox")) document.forms[0].MapDebugBox.value += "PostBack Request: " + querystring + "\n";
        window.clearInterval(postBackInterval);
        commonCallbackFree = false;
    }

}

function postBackError(argument, context) {
	alert("An unhandled exception has occurred:\n" + argument);
}

function createClientPostBackQueryString(control, eventArg) {
	var s = "ControlID=" + control;
	s += "&EventArg=" + eventArg;
	var map2 = map;
	var ov2 = ov;
	var page2 = page;
	var map2 = Maps[control];
	var ov2 = Overviews[control];
	var page2 = Pages[control];
	var toolbar2 = Toolbars[control];
	var toc2 = Tocs[control];
	var f;
	if (map2!=null) {
	  f = map2.document.forms[docFormID];
		s += "&ControlType=Map&PageID=" + map2.pageID;
	} else if (ov2!=null) {
	  f = ov2.document.forms[docFormID];
		s += "&ControlType=OverviewMap&PageID=" + ov2.pageID;
	} else if (page2!=null) {
	  f = page2.document.forms[docFormID];
		s += "&ControlType=PageLayout&PageID=" + page2.pageID;
		s += "&dataframeIndex=" + page2.dataframeIndex;
	} else if (toolbar2!=null) {
	  f = toolbar2.document.forms[docFormID];
		s += "&ControlType=Toolbar&PageID=" + toolbar2.pageID;
	} else if (toc2!=null) {
	  f = toc2.document.forms[docFormID];
		s += "&ControlType=Toc&PageID=" + toc2.pageID;
	}
	
	if (f != null)
	{
	  var fieldList = f.elements["ESRIWebADFHiddenFields"].value;
	  var fields = fieldList.split(',');
	  var value;
	  for (var i= 0; i < fields.length; ++i)
	  {
	    if (f.elements[fields[i]] !=null)
	    {
	      value = f.elements[fields[i]].value;
	      if (value != null)
	        s += "&" + fields[i] + "=" + value;
	    }
	  }
	}
	
	map2=null;
	page2=null;
	ov2=null;
	toolbar2=null;
	toc2=null;
	//alert(s);
	return s;
}

// checks if tool is available for client postback
function isForcePostBackTool(tool,toolstring) {
	//alert("tool: " + tool + "\ntoolstring: " + toolstring);
	var hasIt = false;
	if (toolstring!=null && toolstring!="") {
		var toollist = toolstring.split(",");
		for (var i=0;i<toollist.length;i++) {
			if (toollist[i]==tool) {
				hasIt = true;
				break;
			}
		}
	}
	return hasIt;
}

function tocAutoLayerVisibility(e, tocID) {
	var o;
	if (isNav && e != null)
		o = e.target;
	else
    o = window.event.srcElement;
  if (o.tagName == 'INPUT' && o.type == 'checkbox' && o.name != null && o.name.indexOf('CheckBox') > -1)
	{
	    //alert(o.state);
        o.state = o.checked;
        var req = "EventArg=Toc&" + o.value + "&state=" + o.checked; 
        eval('CallServer_' + tocID + '(req,"");');
	}
}

function resizeContentsFunction(win){
    
	if (win.contentsObject!=null) {
		if (win.contentsObject.resize!=null) //map, overviewmap, pagelayout
			win.contentsObject.resize(win.width, win.height); 
	}
}

function checkForClientPostbackEventArgs(eventArg) {
	//retValue = false;
	for (var i=0;i<clientPostbackEventArgs.length;i++) {
		if (eventArg.toLowerCase().indexOf(clientPostbackEventArgs[i].toLowerCase())!=-1) return true;
	}
	return false;
}

//END ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.display_dotnetadf.js
//START ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.display_common.js
/*
COPYRIGHT 1995-2005 ESRI

TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
Unpublished material - all rights reserved under the 
Copyright Laws of the United States.

For additional information, contact:
Environmental Systems Research Institute, Inc.
Attn: Contracts Dept
380 New York Street
Redlands, California, USA 92373


email: contracts@esri.com
*/


//////////////////////// Common global variables ////////////////////////

// setup test for browser
var isNav = (window.navigator.appName.toLowerCase().indexOf("netscape")>=0);
var isIE = (Sys.Browser.agent == Sys.Browser.InternetExplorer)
var userAgent = navigator.userAgent;
var navType = "IE";
var nav70 = false;
var nav8 = false;
// get flavor of browser
switch(Sys.Browser.agent) {
	case Sys.Browser.InternetExplorer: 'IE'; break;
	case Sys.Browser.Firefox: navType = 'FireFox'; break;
	case Sys.Browser.Safari: navType = 'Safari'; break;
	case Sys.Browser.Opera: navType = 'Opera'; break;
	default: navType = 'Mozilla'; break;
}

// if IE, check for major versions
if (Sys.Browser.agent == Sys.Browser.InternetExplorer) {
    var ieVersion = Sys.Browser.version;
}

var doc = document;
var defaultImagePath = "/aspnet_client/ESRI/WebADF/images/";
var defaultStylePath = "/aspnet_client/ESRI/WebADF/styles/";
var esriBlankImagePath = "/aspnet_client/ESRI/WebADF/images/blank.gif";

// current coords
var mouseX = 0;
var mouseY = 0;

// saved zoom box coords
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var x3 = 0;
var y3 = 0;
var lastX = 0;
var lastY = 0;

// zoom box variables
var zleft = 0;
var ztop = 0;
var zright = 0;
var zbottom = 0;

// obj's for Form Identifier
var docFormID = 0;

var leftButton =1;
var rightButton = 2;
if (isNav) {
	leftButton = 1;
	rightButton = 3;
}

var Maps = [];
var MapNames = [];
var map = null;
var lastmap = null;
var page = null;
var lastpage = null;
var pagemap = null;
var lastpagemap = null;
var mapCount = 0;
var pageCount = 0;
var dragbox = null;

var promptString = "";
var savedCursor = "pointer";

var eLeft = 0;
var eTop = 0;
var eWidth = 0;
var eHeight = 0;

var xMove = 0;
var yMove = 0;

var mapCount = 0;

var jumpToFinish = false;

var coordString = "";
//var statusString = "";
var controlType = "Map";

var Overviews = new Array();
var OverviewNames = new Array();
var ovCount = 0;
var ov = null;

//var Toolbars = new Array();
//var ToolbarGroups = new Array();
//var ToolbarName = new Array();

var Tocs = [];
var TocNames = [];

// popup window objects
var mapWindow = null;
var ovWindow = null;
var tocWindow = null;
var toolWindow = null;
var pageWindow = null;

// maptips objects
var MapTipCollections = [];
var MapTipCollectionNames = [];
var maptipHoverPanel = null;
var maptipExtendedPanels = [];
var maptips = null;
var maptip = null;
var mt_manager = null;
var maptipsActive = false;

var tempMouseMove = null;
var tempMouseUp = null;
var tempContent = "";
var tempStyle = "";

// dynamic stylesheet
var m_StyleSheet = null;
var m_ajaxMethodPrefix = "";
var m_ajaxMethods = null;

var callBackFunctionString = "";
var tileCallbackFunctionString = "";
if (identifyCallbackFunctionString==null)
    var identifyCallbackFunctionString = "";
if (overviewCallbackFunctionString==null)
    var overviewCallbackFunctionString = "";
if (vectorCallbackFunctionString==null)
    var vectorCallbackFunctionString = "";
var hasZoomLevel = false;
var webPageIsLoaded = false;

var commonCallbackFree = true;
var shiftPressed = false;
var ctrlPressed = false;
var altPressed = false;

var esriJavaScriptDecimalDelimiter = ((("theChar is" + (10/100)).indexOf("."))==-1) ? "," : "."; // get decimal delimiter used by JavaScript on user machine
if (typeof(esriSystemDecimalDelimiter)=="undefined") 
    esriSystemDecimalDelimiter = esriJavaScriptDecimalDelimiter;

function createLayer(name, inLeft, inTop, width, height, visible, content, classname, style, container) {
	var oStyle = 'position:absolute; overflow:hidden; left:' + inLeft + 'px; top:' + inTop + 'px; width:' + width + 'px; height:' + height + 'px;' + '  visibility:' + (visible ? 'visible;' : 'hidden;');
	var s = '<div id="' + name + '" style=" position:absolute; overflow:hidden; left:' + inLeft + 'px; top:' + inTop + 'px; width:' + width + 'px; height:' + height + 'px;' + '  visibility:' + (visible ? 'visible;' : 'hidden;');
	if (style!=null)  s += style;
	s += '"';
	if ((classname!=null) && (classname!=""))  s += ' class="' + classname + '"';
	s += '>';
	//s += content;
	//s += '</div>';
	if (container!=null) {
		var contObj = document.getElementById(container);
		contObj.innerHTML = s + content + '</div>';
	} else {
		//alert(s);
		var oDiv = document.createElement("div");
		oDiv.id = name;
		if (style!=null) oStyle += ";" + style;
		oDiv.style.cssText += oStyle;
		if (classname!=null) oDiv.className = classname;
		
		dragObj.innerHTML = content;
		document.body.appendChild(dragObj);		
	}
}

function addDiv(id, content, left, top, width, height, visible, style, className, parent) {
	// add a delay (window.setTimeout('addDiv()', 1000)) for IE if called during page creation 
	var oDiv = document.createElement("div");

	oDiv.id = id;

	if (left!=null) oDiv.style.left = left + "px";
	if (top!=null) oDiv.style.top = top + "px";
	if (width!=null) oDiv.style.width = width + "px";
	if (height!=null) oDiv.style.height = height + "px";
	if (className!=null) oDiv.className = className;
	if (style!=null) oDiv.style.cssText += "; " + style;
	if (oDiv.style.position==null) oDiv.style.position = "absolute";	
	oDiv.innerHTML = content;
	if(parent) { parent.appendChild(oDiv); }
	else { document.body.appendChild(oDiv);	 }
	if (visible!=null) oDiv.style.visibility = visible;	
}


function createLayer2(name, inLeft, inTop, width, height, visible, content, classname, style, container) {
	document.write('<div id="' + name + '" style=" position:absolute; overflow:hidden; left:' + inLeft + 'px; top:' + inTop + 'px; width:' + width + 'px; height:' + height + 'px;' + ';  visibility:' + (visible ? 'visible;' : 'hidden;'));
	if (style!=null) document.write(style);
	document.write('"');
	if ((classname!=null) && (classname!="")) document.write(' class="' + classname + '"');
	document.writeln('>');
	document.writeln(content);
	document.writeln('</div>');
}

// get the layer object called "name"
function getLayer(name) {
	var theObj = document.getElementById(name);
	if (theObj!=null) return theObj.style;
	  else return(null);
}

// set layer background color
function setLayerBackgroundColor(name, color) {
  	var layer = getLayer(name);
    layer.backgroundColor = color;
}

// set Div Z-ORDER
function setDivZOrder(name, zvalue)
{
	var layer = getLayer(name);
	layer.zIndex = zvalue;
}

// toggle layer to invisible
function hideLayer(name) {
  	var layer = getLayer(name);
   	if (layer!=null) layer.visibility = "hidden";
	return false;
}

// toggle layer to visible
function showLayer(name) {
  	var layer = getLayer(name);
   	if (layer!=null) layer.visibility = "visible";
	return false;
}

// move layer to x,y
function moveLayer(name, x, y) {		
  	var layer = getLayer(name);	
	if (layer!=null) {	
   		layer.left = x + "px";
		layer.top  = y + "px";
	}
	return false;
}

// replace layer's content with new content
function replaceLayerContent(name, content) {
	var theObj = document.getElementById(name);
	if (theObj!=null) {	  
		theObj.innerHTML = content;	
	}
}

// check to see if the specified div is visible
function isLayerVisible(name) {
	var layer = getLayer(name);
	if (layer!=null) {
		if (layer.visibility == "visible")  return(true);
	}
	return(false);
}



// get cursor location 
function getXY(e) {
	if (isNav) {
		mouseX=e.pageX;
		mouseY=e.pageY;
	} else {
		mouseX=event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		mouseY=event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
// Added to adjust to cursor hot spot in IE 
		mouseX-=3;
		mouseY-=3;
// Added to adjust to cursor hot spot in IE

	}
	return false;
}

// clip function for zoom box edges... 
function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {
	var layer = getLayer(name);
	if (layer!=null) {
		var newWidth = clipright - clipleft;
		var newHeight = clipbottom - cliptop;
		layer.height = newHeight;
		layer.width	= newWidth;
		layer.top	= cliptop  + "px";
		layer.left	= clipleft + "px";
	}
	return false;

}

// add to dynamic style sheet
function addToDynamicStyleSheet(ruleKey, ruleValue) {
	if (isIE) {
		if (m_StyleSheet==null) 
			m_StyleSheet = document.createStyleSheet();
		m_StyleSheet.addRule(ruleKey, ruleValue);
	} else {
		if (m_StyleSheet==null) {
			m_StyleSheet = document.createElement("style");
			document.body.appendChild(m_StyleSheet);
		}
		m_StyleSheet.innerHTML += ruleKey + " {" + ruleValue + "}";
	}
}

function getWinWidth () {
	var mapFrameWidth = window.innerWidth;
	if (mapFrameWidth == null) {
		if (document.documentElement && document.documentElement.clientWidth)
			mapFrameWidth = document.documentElement.clientWidth
		else	
			mapFrameWidth = document.body.clientWidth;
	}
	return mapFrameWidth;
}

 //get the Map Image height
function getWinHeight () {
	var mapFrameHeight = window.innerHeight;
	if (mapFrameHeight == null) {
		if (document.documentElement && document.documentElement.clientHeight)
			mapFrameHeight = document.documentElement.clientHeight;
		else
			mapFrameHeight = document.body.clientHeight;
	}
	return mapFrameHeight;
}

function getElementWidth (element) {
    var width = element.clientWidth;
    while (width<10 && element != null) {
        element = element.offsetParent;
        if (element != null) width = element.clientWidth;
    }
    if (width==null || width<10) width = document.documentElement.clientWidth;
    
    return width;
}

function getElementHeight (element) {
    var height = element.clientHeight;
    while (height<10 && element != null) {
        element = element.offsetParent;
        if (element != null) height = element.clientHeight;
    }
    if (height==null || height<10) height = document.documentElement.clientHeight;
    return height;
}

function getParentWidth (element) {
    if (element.offsetParent != null && element.offsetParent.id.indexOf("FWin_") == 0)
    {
        var mapId = element.offsetParent.id.substring(5);
        var windowElement = document.getElementById("FWinContents_" + mapId);
        return windowElement.clientWidth;
    }
    var parElem = element.parentElement;
    var width = 0;
    while (width==0 && parElem != null) {
        width = parElem.clientWidth;
        parElem = parElem.parentElement;
    }
    if (width==null || width==0) width = document.documentElement.clientWidth;
    
    return width;
}
function getParentHeight (element) {
    if (element.offsetParent != null && element.offsetParent.id.indexOf("FWin_") == 0)
    {
        var mapId = element.offsetParent.id.substring(5);
        var windowElement = document.getElementById("FWinContents_" + mapId);
        return windowElement.clientHeight;
    }
    var parElem = element.parentElement;
    var height = 0;
    while (height==0 && parElem != null) {
        height = parElem.clientHeight;
        parElem = parElem.parentElement;
    }
    if (height==null || height==0) width = document.documentElement.clientHeight;
    
    return height;   
}

function getMapWidth (element)
{
    var width = 0;
    var outermostElement = null;

    if (element.offsetParent != null && element.offsetParent.id.indexOf("FWin_") == 0)
    {
        var mapId = element.offsetParent.id.substring(5);
        var windowElement = document.getElementById("FWinContents_" + mapId);
        return windowElement.clientWidth;
    }
    else if (element.id.indexOf("MapControlDiv_")==0) outermostElement = element.offsetParent.offsetParent;
    
    element = outermostElement;
    while (width == 0 && element != null)
    {
        if (element.width)
            width = element.width;
        else 
            width = element.clientWidth;
        //if (isIE) width += (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
        element = element.offsetParent;
    }
    if (width==null || width==0) width = document.documentElement.clientWidth; // + document.documentElement.scrollLeft;
    return width;
}		

function getMapHeight (element)
{
    var height = 0;
    var outermostElement = null;

    if (element.offsetParent != null && element.offsetParent.id.indexOf("FWin_") == 0)
    {
        var mapId = element.offsetParent.id.substring(5);
        var windowElement = document.getElementById("FWinContents_" + mapId);
        return windowElement.clientHeight;
    }
    else if (element.id.indexOf("MapControlDiv_")==0) outermostElement = element.offsetParent.offsetParent;
    
    element = outermostElement;
    while (height == 0 && element != null)
    {
        if (element.height)
            height = element.height;
        else
            height = element.clientHeight;
        //if (isIE) hight += (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
        element = element.offsetParent;
    }
    if (height==null || height==0) height = document.documentElement.clientHeight; // + document.documentElement.scrollTop;
    return height;
}		

// get which mouse button was pressed
function isLeftButton(e) {
	var theButton= 0;
	var isLeft = false;
	// get the button pushed... if right, ignore... let browser do the popup... it will anyway
	if (isNav) {
		theButton = e.which;
	} else {
		theButton = window.event.button;
	}	
	if (theButton==leftButton) isLeft = true;
	
	return isLeft;
}

// find out if shift, ctrl, or alt keys are pressed
function checkShiftCtrlAltKeys(e) {
    if (isIE) 
        e = event;
    shiftPressed = e.shiftKey;
    ctrlPressed = e.ctrlKey;
    altPressed = e.altKey;
}


// converts color string from Netscape/Mozilla div backgrounds... 
// returned as 'rgb(r g b)'... converted to hex string
function convertNSrgb(color) {
	var h = color;
	if (h.indexOf("rgb")!=-1) {
		// netscape gets "rgb(r, g, b)", so convert to hex
		var re = /%20/gi;
		var h2 = h.replace(re, "");
		endpos = h2.indexOf(")");
		var h3 = h2.substring(4,endpos);
		var ha = h3.split(",");
		var r = parseInt(ha[0]).toString(16);
		if (r.length==1) r = "0" + r;
		var g = parseInt(ha[1]).toString(16);
		if (g.length==1) g = "0" + g;
		var b = parseInt(ha[2]).toString(16);
		if (b.length==1) b = "0" + b;
		color = r + g + b;
		//alert(color);
	}
	return color;
}

function calcElementPosition(elementId) {
	//window.status = elementId;
	var element = document.getElementById(elementId);
	eLeft = 0;
    eTop = 0;
    var eLeftBorder, eTopBorder;
	//eWidth = parseInt(element.style.width);
	//eHeight = parseInt(element.style.height);
	eWidth = element.clientWidth;
	eHeight = element.clientHeight;
    while(element != null) {
		eLeftBorder = 0;
		eTopBorder = 0;
        eLeft += element.offsetLeft;
        eTop += element.offsetTop;
        if (element!=document.documentElement) {
            eLeft -= element.scrollLeft;
            eTop -= element.scrollTop;
        }  
        if (element.style.borderWidth!="") {
			eLeftBorder = parseInt(element.style.borderWidth);
			eTopBorder = parseInt(element.style.borderWidth);
		} else if (element.style.borderLeftWidth!="") {
			eLeftBorder = parseInt(element.style.borderLeftWidth);
			eTopBorder = parseInt(element.style.borderTopWidth);
		}							
		if (isNaN(eLeftBorder)) eLeftBorder = 0;
		if (isNaN(eTopBorder)) eTopBorder = 0;
		eLeft += eLeftBorder;
		eTop += eTopBorder;
        element = element.offsetParent;
     }
	 return new RectangleObject("dummy", eLeft, eTop, eWidth, eHeight);
}

function checkForFormElement(mapdoc, formId, elemName) {
	var hasIt = false;
	if (mapdoc.forms[formId].elements[elemName] != null) hasIt = true;
	return hasIt;
}

function resizeElement(ElementId, width, height) {
	var div = document.getElementById(ElementId);
	if (div!=null) {
		if (width!=null) div.style.width = width + "px";
		if (height!=null) div.style.height = height + "px";
	}
}

function remainder(num1, num2) {
	var nfloor = Math.floor(num1 / num2);
	var ftotal = nfloor * num2;
	return(num1 - ftotal);
}


///////////////////////////////////// Common functions /////////////////////////////////////

///////////////////////////////////// Common objects ///////////////////////////////////////

	SimpleObject = function(id) {		
		this._id = this.id = id;		
	}
	SimpleObject.prototype = {
		get_id : function() {
			return this._id;
		}
	}
	SimpleObject.registerClass('SimpleObject');
	
	RectangleObject = function(id, left, top, width, height) {
		RectangleObject.initializeBase(this,[id]);
		//inheritsFrom(new SimpleObject(id), this);
		this.left = left;
		this.top = top;
		this.width = width;
		this.height = height;
	}
	RectangleObject.registerClass('RectangleObject',SimpleObject);
	
	PageElementObject = function(id, left, top, width, height) {
		//inheritsFrom(new RectangleObject(id, left, top, width, height), this);
		PageElementObject.initializeBase(this,[id, left, top, width, height]);
		this.left = left;
		this.top = top;
		this.width = width;
		this.height = height;
		
		this.divId = "";
		this.divObject = null;
		this.document = document;
		this.cursor = "default";
		
		//this.createDivs = null;
	}
	PageElementObject.prototype = {
		show : function() { this.divObject.display=''; },
		hide : function() { this.divObject.display='none'; },
		createDivs : null
	}
	PageElementObject.registerClass('PageElementObject',RectangleObject);
	
	function ControlObject(id, controlType, left, top, width, height) {
		ControlObject.initializeBase(this,[id, left, top, width, height]);
		//inheritsFrom(new PageElementObject(id, left, top, width, height), this);
		this.controlType = controlType;
		this.controlName = id;
		this.mode = "";
		
		this.pageLeft = 0;
		this.pageTop = 0;
		this.xMin = 0;
		this.yMin = 0;
		this.xMax = 0;
		this.yMax = 0;
		this.coords = "";
		
		this.clientAction = "";
		this.actionType = "";
		
		this.pageID = "";
		this.enableClientPostBack = false;
		this.buddyControls = "";
		this.toolsForcingPostback = "";
		
		this.resetDisplay = null;		
	}
	ControlObject.prototype = {
		resize : function(width, height) {
			this.width = width;
			this.height = height;
		},
		setObjects : null,
		setTool : null
	}
	ControlObject.registerClass('ControlObject',PageElementObject);
	// 



var winWidth = getWinWidth();
var winHeight = getWinHeight();

//////////////////////// IE functionality for Mozilla/Netscape ///////////////////////////////
	// make Mozilla browsers emulate IE's node/element functionality
if (isNav) {
	Element.prototype.contains = function(element){
		var range=document.createRange();
		range.selectNode(this);
		return range.compareNode(element)==3;
	}
	
	Element.prototype.applyElement = function(element, where){
		if(!element.splitText){
			element.removeNode();
			if(where && where.toLowerCase()=="inside"){
				for(var i=0;i<this.childNodes.length;i++){
					element.appendChild(this.childNodes[i])
				}
				this.appendChild(element)
			}else{
				var parent_Node=this.parentNode;
				parent_Node.insertBefore(element,this);
				element.appendChild(this);
			}
			return element;
		}
	}

	Element.prototype.insertAdjacent=function(where, element){
		var parent_Node=this.parentNode;
		switch(where.toLowerCase()) {
			case "beforebegin":
				parent_Node.insertBefore(element,this);
				break;
			case "afterend":
				parent_Node.insertBefore(element,this.nextSibling);
				break;
			case "afterbegin":
				this.insertBefore(element,this.childNodes[0]);
				break;
			case "beforeend":
				this.appendChild(element);
				break;
		}
	}
		
	Element.prototype.insertAdjacentText = function(where, text){
		var text_Node=document.createTextNode(text||"")
		this.insertAdjacent(where, text_Node);
	}
	
	Element.prototype.insertAdjacentHTML = function(where, html){
		var range=document.createRange();
		range.selectNode(this);
		var fragment=range.createContextualFragment(html);
		this.insertAdjacent(where, fragment);
	}

	Element.prototype.insertAdjacentElement = function(where,element){
		this.insertAdjacent(where,element);
		return a2;
	}

//	Node.prototype.removeNode = function (node){
//		var parent_Node=this.parentNode;
//		if(parent_Node && !node){
//			var fragment=document.createDocumentFragment();
//			for(var i=0;i<this.childNodes.length;i++){
//				fragment.appendChild(this.childNodes[i])
//			}
//			parent_Node.insertBefore(fragment,this)
//		}
//		return parent_Node ? parent_Node.removeChild(this):this;
//	}

    Node.prototype.removeNode = function( removeChildren ) {
	    var self = this;
	    if ( Boolean( removeChildren ) )
	    {
		    return this.parentNode.removeChild( self );
	    }
	    else
	    {
		    var range = document.createRange();
		    range.selectNodeContents( self );
		    return this.parentNode.replaceChild( range.extractContents(), self );
	    }
    }

	Node.prototype.replaceNode = function (node){
		return this.parentNode.replaceChild(node,this)
	}

	Node.prototype.swapNode=function(node){
		var parent_Node=node.parentNode;
		var next_Sibling=node.nextSibling;
		this.parentNode.replaceChild(node,this);
		parent_Node.insertBefore(this, next_Sibling)
		return this;
	}

    // outerHTML implementation
    var _emptyTags = {
       "IMG":   true,
       "BR":    true,
       "INPUT": true,
       "META":  true,
       "LINK":  true,
       "PARAM": true,
       "HR":    true
    };

    HTMLElement.prototype.__defineGetter__("outerHTML", function () {
       var attrs = this.attributes;
       var str = "<" + this.tagName;
       for (var i = 0; i < attrs.length; i++)
          str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";

       if (_emptyTags[this.tagName])
          return str + ">";

       return str + ">" + this.innerHTML + "</" + this.tagName + ">";
    });

    HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {
       var r = this.ownerDocument.createRange();
       r.setStartBefore(this);
       var df = r.createContextualFragment(sHTML);
       this.parentNode.replaceChild(df, this);
    });

}


function addEvent(obj, eventName, funct) {
    if (obj.addEventListener) {
        obj.addEventListener(eventName, funct, false); 
        return true;
    } else if (obj.attachEvent) {
        var att = obj.attachEvent("on" + eventName, funct);
        if (!att) alert("Unable to add " + eventName + " event to " + obj.id);
        return att;
    } else {
        alert("Unable to add " + eventName + " event to " + obj.id);
        return false;
    }        
}

function removeEvent(obj, eventName, funct) {
    if (obj.removeEventListener) {
        obj.removeEventListener(eventName, funct, false);
        return true;
    } else if (obj.attachEvent) {
        return obj.detachEvent("on" + eventName, funct);
    } else {
        return false;
    }
}


/*
////////////////////////////// Pre 9.2 function support ////////////////////////////////
// Functions with 9.1 names, calling 9.2 functionality... 
// For support of projects created prior to 9.2
// These functions are called by 9.1 MapViewer Template Identify
/////////////////////////////////////////////////////////////////////////////////////////

function getMapDiv(e) {
	map = getSelectedMapObject(e);
}

function ShowLoading() {
	if (map!=null) {
		if (map.loadingObject!=null) map.loadingObject.show();
	}
	if (page!=null) {
		if (page.loadingObject!=null) page.loadingObject.show();	
	} 
}

function HideLoading() {
	if (map!=null) {
		if (map.loadingObject!=null) map.loadingObject.hide();
	}
	if (page!=null) {
		if (page.loadingObject!=null) page.loadingObject.hide();	
	}
}

function adjustMapCoords() {
	zleft = mouseX - map.pageLeft;
	ztop = mouseY - map.pageTop;
	map.xMin=zleft;
	map.yMin=ztop;
	return null;
}
*/

////////////////////////////// Common Timing functions ////////////////////////////////
// 
/////////////////////////////////////////////////////////////////////////////////////////

var lastResponseReceivedTime = new Date();
var maximumLapseTime = 10; // Change this value to session timeout in minutes


// function executed when page is loaded... other functions can check webPageIsLoaded if necessary before executing
function webPageLoaded() {
    webPageIsLoaded = true;
}

// function that does nothing... used in required hyperlinks such as in treeview so page won't refresh
    // called in link as "javascript: doNothing();"
function doNothing() {
    // nothing happening here
}

// function that gets the elapsed time between requests... so client knows when the server code will not respone anymore
function getSessionLapse() {
    var now = new Date();
    var last = lastResponseReceivedTime;
    var diff = Math.floor((now.getTime() - last.getTime()) / (1000 * 60));
    return diff;
}

// function that resets the global laspe start time
function setSessionLapse() {
    lastResponseReceivedTime = new Date();
}

// function that displays an alert indicating session has lapsed
function showLapseAlert() {
    alert("Session has timed out from extended inactivity. A new session must be started to use this application by closing this browser and reopening.");
}

function switchImageSourceAndAlphaBlend(imgElement, newSource, forcePng)
{
    if (forcePng==null) forcePng = false;
    if (imgElement!=null)
    {
        if (ESRI.ADF.System.__isIE6)
        {
            var imageUrl=newSource;
            var imageType=imageUrl.substr(imageUrl.length-3,3);
            if (imageType=="png" || forcePng){
			    if (imgElement.runtimeStyle.filter.indexOf("DXImageTransform.Microsoft.AlphaImageLoader")> -1) {
				    imgElement.filters['DXImageTransform.Microsoft.AlphaImageLoader'].src = newSource;
                }
			    else {
			        imgElement.runtimeStyle.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + newSource + "',sizingMethod='image');";
					imgElement.src = esriBlankImagePath;
				}
			}
			else {
			    imgElement.src=newSource;
			}
        }
        else
        {
            imgElement.src=newSource;
        }
    }
}
/*
function iframeHideWorkaroundForVML()
{
        if (isIE && ieVersion < 7)
        {
            var iframes=document.getElementsByTagName("iframe");
            if (iframes==null)return;
            for (var i=0;i<iframes.length;i++)
            {
                var iframe=iframes[i];
                if (iframe==null)continue;
                if (iframe.style.hiddenForIE6==null)
                {
                    if (iframe.style.visibility!=null) iframe.style.hiddenForIE6=new String(iframe.style.visibility.toString());
                    iframe.style.visibility='hidden';
                }
           } 
        }
}

function iframeShowWorkaroundForVML()
{
        if (isIE && ieVersion < 7)
        {
            var iframes=document.getElementsByTagName("iframe");
            if (iframes==null)return;
            for (var i=0;i<iframes.length;i++)
            {
                var iframe=iframes[i];
                if (iframe==null)continue;
                if (iframe.style.hiddenForIE6!=null)
                {
                    iframe.style.visibility=iframe.style.hiddenForIE6;
                    iframe.style.hiddenForIE6=null; 
                }
           } 
        }
}

var commonLoaded = true;
*/
function setElementDisplayStyle(id, style)
{
    var elem = document.getElementById(id);
    if (elem != null)
        elem.style.display = style;
}

function expandCollapseElement(expandCollapseImageId, elementId, collapsedImage, expandedImage)
{
    var elem = document.getElementById(elementId);
    var src;
    if (elem != null)
    {
        if (elem.style.display == "none") //collapsed; so expand
        {
            elem.style.display = "block";
            src = expandedImage; 
        }
        else//expanded; so collapse
        {
            elem.style.display = "none";
            src = collapsedImage; 
        }
       if (expandCollapseImageId != null)
        { 
            var image = document.getElementById(expandCollapseImageId);
            if (image != null)
                image.src = src;
        } 
    }
}

function enableDisableElements(enableIds, disableIds)
{
    var element = null;
    if (enableIds != null)
    { 
        var enableArray = enableIds.split(',');
        if (enableArray != null && enableArray.length >0)
        {
            for(var i=0;i<enableArray.length;++i)
            {
                element = document.getElementById(enableArray[i]);
                if (element != null)
               { 
                    element.disabled = false;
                    element.style.color = "";
               } 
            } 
        } 
    } 
    if (disableIds != null)
    { 
        var disableArray = disableIds.split(',');
        if (disableArray != null && disableArray.length >0)
        {
            for(var i=0;i<disableArray.length;++i)
            {
                element = document.getElementById(disableArray[i]);
                if (element != null)
               { 
                    element.disabled = true;  
                    element.style.color = "Gray"; //spans(labels) cannot be disabled in Mozilla.  They have to be grayed out.
               } 
            } 
        } 
    }        
}

function addScriptTag(id, type, language, src, defer, charset, content)
{
    var scriptObj = document.createElement("script");
    // Add script object attributes
    if (id != null) scriptObj.setAttribute("id", id);
    if (type != null) scriptObj.setAttribute("type", type);
    if (charset != null) scriptObj.setAttribute("charset", charset);
    if (src != null) scriptObj.setAttribute("src", src);
    if (language != null) scriptObj.setAttribute("language", language);
    if (defer != null) scriptObj.setAttribute("defer", defer);
   if (content != null) scriptObj.text = content; 
    var headLoc = document.getElementsByTagName("head").item(0);
    headLoc.appendChild(scriptObj);
}
//END ESRI.ArcGIS.ADF.Web.UI.WebControls.Runtime.JavaScript.display_common.js
//START AjaxControlToolkit.Common.Common.js
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.BoxSide = function() {
}
AjaxControlToolkit.BoxSide.prototype = {
Top : 0,
Right : 1,
Bottom : 2,
Left : 3
}
AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide", false);AjaxControlToolkit._CommonToolkitScripts = function() {
}
AjaxControlToolkit._CommonToolkitScripts.prototype = {
_borderStyleNames : ["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],
_borderWidthNames : ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
_paddingWidthNames : ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
_marginWidthNames : ["marginTop", "marginRight", "marginBottom", "marginLeft"],
getCurrentStyle : function(element, attribute, defaultValue) {
var currentValue = null;if (element) {
if (element.currentStyle) {
currentValue = element.currentStyle[attribute];} else if (document.defaultView && document.defaultView.getComputedStyle) {
var style = document.defaultView.getComputedStyle(element, null);if (style) {
currentValue = style[attribute];}
}
if (!currentValue && element.style.getPropertyValue) {
currentValue = element.style.getPropertyValue(attribute);}
else if (!currentValue && element.style.getAttribute) {
currentValue = element.style.getAttribute(attribute);} 
}
if ((!currentValue || currentValue == "" || typeof(currentValue) === 'undefined')) {
if (typeof(defaultValue) != 'undefined') {
currentValue = defaultValue;}
else {
currentValue = null;}
} 
return currentValue;},
getInheritedBackgroundColor : function(element) {
if (!element) return '#FFFFFF';var background = this.getCurrentStyle(element, 'backgroundColor');try {
while (!background || background == '' || background == 'transparent' || background == 'rgba(0, 0, 0, 0)') {
element = element.parentNode;if (!element) {
background = '#FFFFFF';} else {
background = this.getCurrentStyle(element, 'backgroundColor');}
}
} catch(ex) {
background = '#FFFFFF';}
return background;},
getLocation : function(element) {
if (element === document.documentElement) {
return new Sys.UI.Point(0,0);}
if (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version < 7) {
if (element.window === element || element.nodeType === 9 || !element.getClientRects || !element.getBoundingClientRect) return new Sys.UI.Point(0,0);var screenRects = element.getClientRects();if (!screenRects || !screenRects.length) {
return new Sys.UI.Point(0,0);}
var first = screenRects[0];var dLeft = 0;var dTop = 0;var inFrame = false;try {
inFrame = element.ownerDocument.parentWindow.frameElement;} catch(ex) {
inFrame = true;}
if (inFrame) {
var clientRect = element.getBoundingClientRect();if (!clientRect) {
return new Sys.UI.Point(0,0);}
var minLeft = first.left;var minTop = first.top;for (var i = 1;i < screenRects.length;i++) {
var r = screenRects[i];if (r.left < minLeft) {
minLeft = r.left;}
if (r.top < minTop) {
minTop = r.top;}
}
dLeft = minLeft - clientRect.left;dTop = minTop - clientRect.top;}
var ownerDocument = element.document.documentElement;return new Sys.UI.Point(first.left - 2 - dLeft + ownerDocument.scrollLeft, first.top - 2 - dTop + ownerDocument.scrollTop);}
return Sys.UI.DomElement.getLocation(element);},
setLocation : function(element, point) {
Sys.UI.DomElement.setLocation(element, point.x, point.y);},
getContentSize : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var size = this.getSize(element);var borderBox = this.getBorderBox(element);var paddingBox = this.getPaddingBox(element);return {
width : size.width - borderBox.horizontal - paddingBox.horizontal,
height : size.height - borderBox.vertical - paddingBox.vertical
}
},
getSize : function(element) {
if (!element) {
throw Error.argumentNull('element');}
return {
width: element.offsetWidth,
height: element.offsetHeight
};},
setContentSize : function(element, size) {
if (!element) {
throw Error.argumentNull('element');}
if (!size) {
throw Error.argumentNull('size');}
if(this.getCurrentStyle(element, 'MozBoxSizing') == 'border-box' || this.getCurrentStyle(element, 'BoxSizing') == 'border-box') {
var borderBox = this.getBorderBox(element);var paddingBox = this.getPaddingBox(element);size = {
width: size.width + borderBox.horizontal + paddingBox.horizontal,
height: size.height + borderBox.vertical + paddingBox.vertical
};}
element.style.width = size.width.toString() + 'px';element.style.height = size.height.toString() + 'px';},
setSize : function(element, size) {
if (!element) {
throw Error.argumentNull('element');}
if (!size) {
throw Error.argumentNull('size');}
var borderBox = this.getBorderBox(element);var paddingBox = this.getPaddingBox(element);var contentSize = {
width: size.width - borderBox.horizontal - paddingBox.horizontal,
height: size.height - borderBox.vertical - paddingBox.vertical
};this.setContentSize(element, contentSize);},
getBounds : function(element) {
var offset = $common.getLocation(element);return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0);}, 
setBounds : function(element, bounds) {
if (!element) {
throw Error.argumentNull('element');}
if (!bounds) {
throw Error.argumentNull('bounds');}
this.setSize(element, bounds);$common.setLocation(element, bounds);},
getClientBounds : function() {
var clientWidth;var clientHeight;switch(Sys.Browser.agent) {
case Sys.Browser.InternetExplorer:
clientWidth = document.documentElement.clientWidth;clientHeight = document.documentElement.clientHeight;break;case Sys.Browser.Safari:
clientWidth = window.innerWidth;clientHeight = window.innerHeight;break;case Sys.Browser.Opera:
clientWidth = Math.min(window.innerWidth, document.body.clientWidth);clientHeight = Math.min(window.innerHeight, document.body.clientHeight);break;default: 
clientWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);clientHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);break;}
return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);},
getMarginBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box = {
top: this.getMargin(element, AjaxControlToolkit.BoxSide.Top),
right: this.getMargin(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getMargin(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getMargin(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal = box.left + box.right;box.vertical = box.top + box.bottom;return box;},
getBorderBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box = {
top: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Top),
right: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal = box.left + box.right;box.vertical = box.top + box.bottom;return box;},
getPaddingBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box = {
top: this.getPadding(element, AjaxControlToolkit.BoxSide.Top),
right: this.getPadding(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getPadding(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getPadding(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal = box.left + box.right;box.vertical = box.top + box.bottom;return box;},
isBorderVisible : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName = this._borderStyleNames[boxSide];var styleValue = this.getCurrentStyle(element, styleName);return styleValue != "none";},
getMargin : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName = this._marginWidthNames[boxSide];var styleValue = this.getCurrentStyle(element, styleName);try { return this.parsePadding(styleValue);} catch(ex) { return 0;}
},
getBorderWidth : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));}
if(!this.isBorderVisible(element, boxSide)) {
return 0;} 
var styleName = this._borderWidthNames[boxSide];var styleValue = this.getCurrentStyle(element, styleName);return this.parseBorderWidth(styleValue);},
getPadding : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName = this._paddingWidthNames[boxSide];var styleValue = this.getCurrentStyle(element, styleName);return this.parsePadding(styleValue);},
parseBorderWidth : function(borderWidth) {
if (!this._borderThicknesses) {
var borderThicknesses = { };var div0 = document.createElement('div');div0.style.visibility = 'hidden';div0.style.position = 'absolute';div0.style.fontSize = '1px';document.body.appendChild(div0)
var div1 = document.createElement('div');div1.style.height = '0px';div1.style.overflow = 'hidden';div0.appendChild(div1);var base = div0.offsetHeight;div1.style.borderTop = 'solid black';div1.style.borderTopWidth = 'thin';borderThicknesses['thin'] = div0.offsetHeight - base;div1.style.borderTopWidth = 'medium';borderThicknesses['medium'] = div0.offsetHeight - base;div1.style.borderTopWidth = 'thick';borderThicknesses['thick'] = div0.offsetHeight - base;div0.removeChild(div1);document.body.removeChild(div0);this._borderThicknesses = borderThicknesses;}
if (borderWidth) {
switch(borderWidth) {
case 'thin':
case 'medium':
case 'thick':
return this._borderThicknesses[borderWidth];case 'inherit':
return 0;}
var unit = this.parseUnit(borderWidth);Sys.Debug.assert(unit.type == 'px', String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit, unit.type));return unit.size;}
return 0;},
parsePadding : function(padding) {
if(padding) {
if(padding == 'inherit') {
return 0;}
var unit = this.parseUnit(padding);Sys.Debug.assert(unit.type == 'px', String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit, unit.type));return unit.size;}
return 0;},
parseUnit : function(value) {
if (!value) {
throw Error.argumentNull('value');}
value = value.trim().toLowerCase();var l = value.length;var s = -1;for(var i = 0;i < l;i++) {
var ch = value.substr(i, 1);if((ch < '0' || ch > '9') && ch != '-' && ch != '.' && ch != ',') {
break;}
s = i;}
if(s == -1) {
throw Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits);}
var type;var size;if(s < (l - 1)) {
type = value.substring(s + 1).trim();} else {
type = 'px';}
size = parseFloat(value.substr(0, s + 1));if(type == 'px') {
size = Math.floor(size);}
return { 
size: size,
type: type
};},
getElementOpacity : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var hasOpacity = false;var opacity;if (element.filters) {
var filters = element.filters;if (filters.length !== 0) {
var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];if (alphaFilter) {
opacity = alphaFilter.opacity / 100.0;hasOpacity = true;}
}
}
else {
opacity = this.getCurrentStyle(element, 'opacity', 1);hasOpacity = true;}
if (hasOpacity === false) {
return 1.0;}
return parseFloat(opacity);},
setElementOpacity : function(element, value) {
if (!element) {
throw Error.argumentNull('element');}
if (element.filters) {
var filters = element.filters;var createFilter = true;if (filters.length !== 0) {
var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];if (alphaFilter) {
createFilter = false;alphaFilter.opacity = value * 100;}
}
if (createFilter) {
element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (value * 100) + ')';}
}
else {
element.style.opacity = value;}
},
getVisible : function(element) {
return (element &&
("none" != $common.getCurrentStyle(element, "display")) &&
("hidden" != $common.getCurrentStyle(element, "visibility")));},
setVisible : function(element, value) {
if (element && value != $common.getVisible(element)) {
if (value) {
if (element.style.removeAttribute) {
element.style.removeAttribute("display");} else {
element.style.removeProperty("display");}
} else {
element.style.display = 'none';}
element.style.visibility = value ? 'visible' : 'hidden';}
},
resolveFunction : function(value) {
if (value) {
if (value instanceof Function) {
return value;} else if (String.isInstanceOfType(value) && value.length > 0) {
var func;if ((func = window[value]) instanceof Function) {
return func;} else if ((func = eval(value)) instanceof Function) {
return func;}
}
}
return null;},
addCssClasses : function(element, classNames) {
for(var i = 0;i < classNames.length;i++) {
Sys.UI.DomElement.addCssClass(element, classNames[i]);}
},
removeCssClasses : function(element, classNames) {
for(var i = 0;i < classNames.length;i++) {
Sys.UI.DomElement.removeCssClass(element, classNames[i]);}
},
setStyle : function(element, style) {
$common.applyProperties(element.style, style);},
removeHandlers : function(element, events) {
for (var name in events) {
$removeHandler(element, name, events[name]);}
},
overlaps : function(r1, r2) {
return r1.x < (r2.x + r2.width)
&& r2.x < (r1.x + r1.width)
&& r1.y < (r2.y + r2.height)
&& r2.y < (r1.y + r1.height);},
containsPoint : function(rect, x, y) {
return x >= rect.x && x < (rect.x + rect.width) && y >= rect.y && y < (rect.y + rect.height);},
isKeyDigit : function(keyCode) { 
return (0x30 <= keyCode && keyCode <= 0x39);},
isKeyNavigation : function(keyCode) { 
return (Sys.UI.Key.left <= keyCode && keyCode <= Sys.UI.Key.down);},
padLeft : function(text, size, ch, truncate) { 
return $common._pad(text, size || 2, ch || ' ', 'l', truncate || false);},
padRight : function(text, size, ch, truncate) { 
return $common._pad(text, size || 2, ch || ' ', 'r', truncate || false);},
_pad : function(text, size, ch, side, truncate) {
text = text.toString();var length = text.length;var builder = new Sys.StringBuilder();if (side == 'r') {
builder.append(text);} 
while (length < size) {
builder.append(ch);length++;}
if (side == 'l') {
builder.append(text);}
var result = builder.toString();if (truncate && result.length > size) {
if (side == 'l') {
result = result.substr(result.length - size, size);} else {
result = result.substr(0, size);}
}
return result;},
__DOMEvents : {
focusin : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focusin", true, false, window, 1);} },
focusout : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focusout", true, false, window, 1);} },
activate : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("activate", true, true, window, 1);} },
focus : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focus", false, false, window, 1);} },
blur : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("blur", false, false, window, 1);} },
click : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
dblclick : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
mousedown : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
mouseup : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
mouseover : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
mousemove : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
mouseout : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null);} },
load : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("load", false, false);} },
unload : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("unload", false, false);} },
select : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("select", true, false);} },
change : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("change", true, false);} },
submit : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("submit", true, true);} },
reset : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("reset", true, false);} },
resize : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("resize", true, false);} },
scroll : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("scroll", true, false);} }
},
tryFireRawEvent : function(element, rawEvent) {
try {
if (element.fireEvent) {
element.fireEvent("on" + rawEvent.type, rawEvent);return true;} else if (element.dispatchEvent) {
element.dispatchEvent(rawEvent);return true;}
} catch (e) {
}
return false;}, 
tryFireEvent : function(element, eventName, properties) {
try {
if (document.createEventObject) {
var e = document.createEventObject();$common.applyProperties(e, properties || {});element.fireEvent("on" + eventName, e);return true;} else if (document.createEvent) {
var def = $common.__DOMEvents[eventName];if (def) {
var e = document.createEvent(def.eventGroup);def.init(e, properties || {});element.dispatchEvent(e);return true;}
}
} catch (e) {
}
return false;},
wrapElement : function(innerElement, newOuterElement, newInnerParentElement) {
var parent = innerElement.parentNode;parent.replaceChild(newOuterElement, innerElement);(newInnerParentElement || newOuterElement).appendChild(innerElement);},
unwrapElement : function(innerElement, oldOuterElement) {
var parent = oldOuterElement.parentNode;if (parent != null) {
$common.removeElement(innerElement);parent.replaceChild(innerElement, oldOuterElement);}
},
removeElement : function(element) {
var parent = element.parentNode;if (parent != null) {
parent.removeChild(element);}
},
applyProperties : function(target, properties) {
for (var p in properties) {
var pv = properties[p];if (pv != null && Object.getType(pv)===Object) {
var tv = target[p];$common.applyProperties(tv, pv);} else {
target[p] = pv;}
}
},
createElementFromTemplate : function(template, appendToParent, nameTable) {
if (typeof(template.nameTable)!='undefined') {
var newNameTable = template.nameTable;if (String.isInstanceOfType(newNameTable)) {
newNameTable = nameTable[newNameTable];}
if (newNameTable != null) {
nameTable = newNameTable;}
}
var elementName = null;if (typeof(template.name)!=='undefined') {
elementName = template.name;}
var elt = document.createElement(template.nodeName);if (typeof(template.name)!=='undefined' && nameTable) {
nameTable[template.name] = elt;}
if (typeof(template.parent)!=='undefined' && appendToParent == null) {
var newParent = template.parent;if (String.isInstanceOfType(newParent)) {
newParent = nameTable[newParent];}
if (newParent != null) {
appendToParent = newParent;}
}
if (typeof(template.properties)!=='undefined' && template.properties != null) {
$common.applyProperties(elt, template.properties);}
if (typeof(template.cssClasses)!=='undefined' && template.cssClasses != null) {
$common.addCssClasses(elt, template.cssClasses);}
if (typeof(template.events)!=='undefined' && template.events != null) {
$addHandlers(elt, template.events);}
if (typeof(template.visible)!=='undefined' && template.visible != null) {
this.setVisible(elt, template.visible);}
if (appendToParent) {
appendToParent.appendChild(elt);}
if (typeof(template.opacity)!=='undefined' && template.opacity != null) {
$common.setElementOpacity(elt, template.opacity);}
if (typeof(template.children)!=='undefined' && template.children != null) {
for (var i = 0;i < template.children.length;i++) {
var subtemplate = template.children[i];$common.createElementFromTemplate(subtemplate, elt, nameTable);}
}
var contentPresenter = elt;if (typeof(template.contentPresenter)!=='undefined' && template.contentPresenter != null) {
contentPresenter = nameTable[contentPresenter];}
if (typeof(template.content)!=='undefined' && template.content != null) {
var content = template.content;if (String.isInstanceOfType(content)) {
content = nameTable[content];}
if (content.parentNode) {
$common.wrapElement(content, elt, contentPresenter);} else {
contentPresenter.appendChild(content);}
}
return elt;},
prepareHiddenElementForATDeviceUpdate : function () {
var objHidden = document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts');if (!objHidden) {
var objHidden = document.createElement('input');objHidden.setAttribute('type', 'hidden');objHidden.setAttribute('value', '1');objHidden.setAttribute('id', 'hiddenInputToUpdateATBuffer_CommonToolkitScripts');objHidden.setAttribute('name', 'hiddenInputToUpdateATBuffer_CommonToolkitScripts');if ( document.forms[0] ) {
document.forms[0].appendChild(objHidden);}
}
},
updateFormToRefreshATDeviceBuffer : function () {
var objHidden = document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts');if (objHidden) {
if (objHidden.getAttribute('value') == '1') {
objHidden.setAttribute('value', '0');} else {
objHidden.setAttribute('value', '1');}
}
}
}
var CommonToolkitScripts = AjaxControlToolkit.CommonToolkitScripts = new AjaxControlToolkit._CommonToolkitScripts();var $common = CommonToolkitScripts;Sys.UI.DomElement.getVisible = $common.getVisible;Sys.UI.DomElement.setVisible = $common.setVisible;Sys.UI.Control.overlaps = $common.overlaps;AjaxControlToolkit._DomUtility = function() {
}
AjaxControlToolkit._DomUtility.prototype = {
isDescendant : function(ancestor, descendant) {
for (var n = descendant.parentNode;n != null;n = n.parentNode) {
if (n == ancestor) return true;}
return false;},
isDescendantOrSelf : function(ancestor, descendant) {
if (ancestor === descendant) 
return true;return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);},
isAncestor : function(descendant, ancestor) {
return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);},
isAncestorOrSelf : function(descendant, ancestor) {
if (descendant === ancestor)
return true;return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);},
isSibling : function(self, sibling) {
var parent = self.parentNode;for (var i = 0;i < parent.childNodes.length;i++) {
if (parent.childNodes[i] == sibling) return true;}
return false;}
}
AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtility");AjaxControlToolkit.DomUtility = new AjaxControlToolkit._DomUtility();AjaxControlToolkit.TextBoxWrapper = function(element) {
AjaxControlToolkit.TextBoxWrapper.initializeBase(this, [element]);this._current = element.value;this._watermark = null;this._isWatermarked = false;}
AjaxControlToolkit.TextBoxWrapper.prototype = {
dispose : function() {
this.get_element().AjaxControlToolkitTextBoxWrapper = null;AjaxControlToolkit.TextBoxWrapper.callBaseMethod(this, 'dispose');},
get_Current : function() {
this._current = this.get_element().value;return this._current;},
set_Current : function(value) {
this._current = value;this._updateElement();},
get_Value : function() {
if (this.get_IsWatermarked()) {
return "";} else {
return this.get_Current();}
},
set_Value : function(text) {
this.set_Current(text);if (!text || (0 == text.length)) {
if (null != this._watermark) {
this.set_IsWatermarked(true);}
} else {
this.set_IsWatermarked(false);}
},
get_Watermark : function() {
return this._watermark;},
set_Watermark : function(value) {
this._watermark = value;this._updateElement();},
get_IsWatermarked : function() {
return this._isWatermarked;},
set_IsWatermarked : function(isWatermarked) {
if (this._isWatermarked != isWatermarked) {
this._isWatermarked = isWatermarked;this._updateElement();this._raiseWatermarkChanged();}
},
_updateElement : function() {
var element = this.get_element();if (this._isWatermarked) {
if (element.value != this._watermark) {
element.value = this._watermark;}
} else {
if (element.value != this._current) {
element.value = this._current;}
}
},
add_WatermarkChanged : function(handler) {
this.get_events().addHandler("WatermarkChanged", handler);},
remove_WatermarkChanged : function(handler) {
this.get_events().removeHandler("WatermarkChanged", handler);},
_raiseWatermarkChanged : function() {
var onWatermarkChangedHandler = this.get_events().getHandler("WatermarkChanged");if (onWatermarkChangedHandler) {
onWatermarkChangedHandler(this, Sys.EventArgs.Empty);}
}
}
AjaxControlToolkit.TextBoxWrapper.get_Wrapper = function(element) {
if (null == element.AjaxControlToolkitTextBoxWrapper) {
element.AjaxControlToolkitTextBoxWrapper = new AjaxControlToolkit.TextBoxWrapper(element);}
return element.AjaxControlToolkitTextBoxWrapper;}
AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextBoxWrapper', Sys.UI.Behavior);AjaxControlToolkit.TextBoxWrapper.validatorGetValue = function(id) {
var control = $get(id);if (control && control.AjaxControlToolkitTextBoxWrapper) {
return control.AjaxControlToolkitTextBoxWrapper.get_Value();}
return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);}
if (typeof(ValidatorGetValue) == 'function') {
AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue = ValidatorGetValue;ValidatorGetValue = AjaxControlToolkit.TextBoxWrapper.validatorGetValue;}
if (Sys.CultureInfo.prototype._getAbbrMonthIndex) {
try {
Sys.CultureInfo.prototype._getAbbrMonthIndex('');} catch(ex) {
Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) {
if (!this._upperAbbrMonths) {
this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);}
return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));}
Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex = Sys.CultureInfo.prototype._getAbbrMonthIndex;Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex = Sys.CultureInfo.prototype._getAbbrMonthIndex;}
}

//END AjaxControlToolkit.Common.Common.js
//START AjaxControlToolkit.ExtenderBase.BaseScripts.js
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.BehaviorBase = function(element) {
AjaxControlToolkit.BehaviorBase.initializeBase(this,[element]);this._clientStateFieldID = null;this._pageRequestManager = null;this._partialUpdateBeginRequestHandler = null;this._partialUpdateEndRequestHandler = null;}
AjaxControlToolkit.BehaviorBase.prototype = {
initialize : function() {
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'initialize');},
dispose : function() {
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'dispose');if (this._pageRequestManager) {
if (this._partialUpdateBeginRequestHandler) {
this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequestHandler);this._partialUpdateBeginRequestHandler = null;}
if (this._partialUpdateEndRequestHandler) {
this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestHandler);this._partialUpdateEndRequestHandler = null;}
this._pageRequestManager = null;}
},
get_ClientStateFieldID : function() {
return this._clientStateFieldID;},
set_ClientStateFieldID : function(value) {
if (this._clientStateFieldID != value) {
this._clientStateFieldID = value;this.raisePropertyChanged('ClientStateFieldID');}
},
get_ClientState : function() {
if (this._clientStateFieldID) {
var input = document.getElementById(this._clientStateFieldID);if (input) {
return input.value;}
}
return null;},
set_ClientState : function(value) {
if (this._clientStateFieldID) {
var input = document.getElementById(this._clientStateFieldID);if (input) {
input.value = value;}
}
},
registerPartialUpdateEvents : function() {
if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){
this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();if (this._pageRequestManager) {
this._partialUpdateBeginRequestHandler = Function.createDelegate(this, this._partialUpdateBeginRequest);this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequestHandler);this._partialUpdateEndRequestHandler = Function.createDelegate(this, this._partialUpdateEndRequest);this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHandler);}
}
},
_partialUpdateBeginRequest : function(sender, beginRequestEventArgs) {
},
_partialUpdateEndRequest : function(sender, endRequestEventArgs) {
}
}
AjaxControlToolkit.BehaviorBase.registerClass('AjaxControlToolkit.BehaviorBase', Sys.UI.Behavior);AjaxControlToolkit.DynamicPopulateBehaviorBase = function(element) {
AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(this, [element]);this._DynamicControlID = null;this._DynamicContextKey = null;this._DynamicServicePath = null;this._DynamicServiceMethod = null;this._cacheDynamicResults = false;this._dynamicPopulateBehavior = null;this._populatingHandler = null;this._populatedHandler = null;}
AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype = {
initialize : function() {
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'initialize');this._populatingHandler = Function.createDelegate(this, this._onPopulating);this._populatedHandler = Function.createDelegate(this, this._onPopulated);},
dispose : function() {
if (this._populatedHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populated(this._populatedHandler);}
this._populatedHandler = null;}
if (this._populatingHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);}
this._populatingHandler = null;}
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.dispose();this._dynamicPopulateBehavior = null;}
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'dispose');},
populate : function(contextKeyOverride) {
if (this._dynamicPopulateBehavior && (this._dynamicPopulateBehavior.get_element() != $get(this._DynamicControlID))) {
this._dynamicPopulateBehavior.dispose();this._dynamicPopulateBehavior = null;}
if (!this._dynamicPopulateBehavior && this._DynamicControlID && this._DynamicServiceMethod) {
this._dynamicPopulateBehavior = $create(AjaxControlToolkit.DynamicPopulateBehavior,
{
"id" : this.get_id() + "_DynamicPopulateBehavior",
"ContextKey" : this._DynamicContextKey,
"ServicePath" : this._DynamicServicePath,
"ServiceMethod" : this._DynamicServiceMethod,
"cacheDynamicResults" : this._cacheDynamicResults
}, null, null, $get(this._DynamicControlID));this._dynamicPopulateBehavior.add_populating(this._populatingHandler);this._dynamicPopulateBehavior.add_populated(this._populatedHandler);}
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.populate(contextKeyOverride ? contextKeyOverride : this._DynamicContextKey);}
},
_onPopulating : function(sender, eventArgs) {
this.raisePopulating(eventArgs);},
_onPopulated : function(sender, eventArgs) {
this.raisePopulated(eventArgs);},
get_dynamicControlID : function() {
return this._DynamicControlID;},
get_DynamicControlID : this.get_dynamicControlID,
set_dynamicControlID : function(value) {
if (this._DynamicControlID != value) {
this._DynamicControlID = value;this.raisePropertyChanged('dynamicControlID');this.raisePropertyChanged('DynamicControlID');}
},
set_DynamicControlID : this.set_dynamicControlID,
get_dynamicContextKey : function() {
return this._DynamicContextKey;},
get_DynamicContextKey : this.get_dynamicContextKey,
set_dynamicContextKey : function(value) {
if (this._DynamicContextKey != value) {
this._DynamicContextKey = value;this.raisePropertyChanged('dynamicContextKey');this.raisePropertyChanged('DynamicContextKey');}
},
set_DynamicContextKey : this.set_dynamicContextKey,
get_dynamicServicePath : function() {
return this._DynamicServicePath;},
get_DynamicServicePath : this.get_dynamicServicePath,
set_dynamicServicePath : function(value) {
if (this._DynamicServicePath != value) {
this._DynamicServicePath = value;this.raisePropertyChanged('dynamicServicePath');this.raisePropertyChanged('DynamicServicePath');}
},
set_DynamicServicePath : this.set_dynamicServicePath,
get_dynamicServiceMethod : function() {
return this._DynamicServiceMethod;},
get_DynamicServiceMethod : this.get_dynamicServiceMethod,
set_dynamicServiceMethod : function(value) {
if (this._DynamicServiceMethod != value) {
this._DynamicServiceMethod = value;this.raisePropertyChanged('dynamicServiceMethod');this.raisePropertyChanged('DynamicServiceMethod');}
},
set_DynamicServiceMethod : this.set_dynamicServiceMethod,
get_cacheDynamicResults : function() {
return this._cacheDynamicResults;},
set_cacheDynamicResults : function(value) {
if (this._cacheDynamicResults != value) {
this._cacheDynamicResults = value;this.raisePropertyChanged('cacheDynamicResults');}
},
add_populated : function(handler) {
this.get_events().addHandler("populated", handler);},
remove_populated : function(handler) {
this.get_events().removeHandler("populated", handler);},
raisePopulated : function(arg) {
var handler = this.get_events().getHandler("populated");if (handler) handler(this, arg);},
add_populating : function(handler) {
this.get_events().addHandler('populating', handler);},
remove_populating : function(handler) {
this.get_events().removeHandler('populating', handler);},
raisePopulating : function(eventArgs) {
var handler = this.get_events().getHandler('populating');if (handler) {
handler(this, eventArgs);}
}
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.registerClass('AjaxControlToolkit.DynamicPopulateBehaviorBase', AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.ControlBase = function(element) {
AjaxControlToolkit.ControlBase.initializeBase(this, [element]);this._clientStateField = null;this._callbackTarget = null;this._onsubmit$delegate = Function.createDelegate(this, this._onsubmit);this._oncomplete$delegate = Function.createDelegate(this, this._oncomplete);this._onerror$delegate = Function.createDelegate(this, this._onerror);}
AjaxControlToolkit.ControlBase.prototype = {
initialize : function() {
AjaxControlToolkit.ControlBase.callBaseMethod(this, "initialize");if (this._clientStateField) {
this.loadClientState(this._clientStateField.value);}
if (typeof(Sys.WebForms)!=="undefined" && typeof(Sys.WebForms.PageRequestManager)!=="undefined") {
Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements, this._onsubmit$delegate);} else {
$addHandler(document.forms[0], "submit", this._onsubmit$delegate);}
},
dispose : function() {
if (typeof(Sys.WebForms)!=="undefined" && typeof(Sys.WebForms.PageRequestManager)!=="undefined") {
Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements, this._onsubmit$delegate);} else {
$removeHandler(document.forms[0], "submit", this._onsubmit$delegate);}
AjaxControlToolkit.ControlBase.callBaseMethod(this, "dispose");},
findElement : function(id) {
return $get(this.get_id() + '_' + id.split(':').join('_'));},
get_clientStateField : function() {
return this._clientStateField;},
set_clientStateField : function(value) {
if (this.get_isInitialized()) throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSetClientStateField);if (this._clientStateField != value) {
this._clientStateField = value;this.raisePropertyChanged('clientStateField');}
},
loadClientState : function(value) {
},
saveClientState : function() {
return null;},
_invoke : function(name, args, cb) {
if (!this._callbackTarget) {
throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlNotRegisteredForCallbacks);}
if (typeof(WebForm_DoCallback)==="undefined") {
throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotRegisteredForCallbacks);}
var ar = [];for (var i = 0;i < args.length;i++) 
ar[i] = args[i];var clientState = this.saveClientState();if (clientState != null && !String.isInstanceOfType(clientState)) {
throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidClientStateType);}
var payload = Sys.Serialization.JavaScriptSerializer.serialize({name:name,args:ar,state:this.saveClientState()});WebForm_DoCallback(this._callbackTarget, payload, this._oncomplete$delegate, cb, this._onerror$delegate, true);},
_oncomplete : function(result, context) {
result = Sys.Serialization.JavaScriptSerializer.deserialize(result);if (result.error) {
throw Error.create(result.error);}
this.loadClientState(result.state);context(result.result);},
_onerror : function(message, context) {
throw Error.create(message);},
_onsubmit : function() {
if (this._clientStateField) {
this._clientStateField.value = this.saveClientState();}
return true;} 
}
AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.ControlBase", Sys.UI.Control);
AjaxControlToolkit.Resources={
"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios must have 4 elements","Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.createAnimation cannot add child animations to type \"{0}\" that does not derive from AjaxControlToolkit.Animation.ParentAnimation","PasswordStrength_RemainingSymbols":"{0} symbol characters","ExtenderBase_CannotSetClientStateField":"clientStateField can only be set before initialization","RTE_PreviewHTML":"Preview HTML","RTE_JustifyCenter":"Justify Center","PasswordStrength_RemainingUpperCase":"{0} more upper case characters","Animation_TargetNotFound":"AjaxControlToolkit.Animation.Animation.set_animationTarget requires the ID of a Sys.UI.DomElement or Sys.UI.Control.  No element or control could be found corresponding to \"{0}\"","RTE_FontColor":"Font Color","RTE_LabelColor":"Label Color","Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is invalid for parseBorderWidth","RTE_Heading":"Heading","Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before initialization","RTE_OrderedList":"Ordered List","ReorderList_DropWatcherBehavior_NoChild":"Could not find child of list with id \"{0}\"","CascadingDropDown_MethodTimeout":"[Method timeout]","RTE_Columns":"Columns","RTE_InsertImage":"Insert Image","RTE_InsertTable":"Insert Table","RTE_Values":"Values","RTE_OK":"OK","ExtenderBase_PageNotRegisteredForCallbacks":"This Page has not been registered for callbacks","Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\" or \"{1}\"","Animation_InvalidBaseType":"AjaxControlToolkit.Animation.registerAnimation can only register types that inherit from AjaxControlToolkit.Animation.Animation","RTE_UnorderedList":"Unordered List","ResizableControlBehavior_InvalidHandler":"{0} handler not a function, function name, or function text","Animation_InvalidColor":"Color must be a 7-character hex representation (e.g. #246ACF), not \"{0}\"","RTE_CellColor":"Cell Color","PasswordStrength_RemainingMixedCase":"Mixed case characters","RTE_Italic":"Italic","CascadingDropDown_NoParentElement":"Failed to find parent element \"{0}\"","ValidatorCallout_DefaultErrorMessage":"This control is invalid","RTE_Indent":"Indent","ReorderList_DropWatcherBehavior_CallbackError":"Reorder failed, see details below.\\r\\n\\r\\n{0}","PopupControl_NoDefaultProperty":"No default property supported for control \"{0}\" of type \"{1}\"","RTE_Normal":"Normal","PopupExtender_NoParentElement":"Couldn\u0027t find parent element \"{0}\"","RTE_ViewValues":"View Values","RTE_Legend":"Legend","RTE_Labels":"Labels","RTE_CellSpacing":"Cell Spacing","PasswordStrength_RemainingNumbers":"{0} more numbers","RTE_Border":"Border","RTE_Create":"Create","RTE_BackgroundColor":"Background Color","RTE_Cancel":"Cancel","RTE_JustifyFull":"Justify Full","RTE_JustifyLeft":"Justify Left","RTE_Cut":"Cut","ResizableControlBehavior_CannotChangeProperty":"Changes to {0} not supported","RTE_ViewSource":"View Source","Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid for parsePadding","RTE_Paste":"Paste","ExtenderBase_ControlNotRegisteredForCallbacks":"This Control has not been registered for callbacks","Calendar_Today":"Today: {0}","Common_DateTime_InvalidFormat":"Invalid format","ListSearch_DefaultPrompt":"Type to search","CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"","RTE_ViewEditor":"View Editor","RTE_BarColor":"Bar Color","PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very Weak;Weak;Poor;Almost OK;Barely Acceptable;Average;Good;Strong;Excellent;Unbreakable!","RTE_Inserttexthere":"Insert text here","Animation_UknownAnimationName":"AjaxControlToolkit.Animation.createAnimation could not find an Animation corresponding to the name \"{0}\"","ExtenderBase_InvalidClientStateType":"saveClientState must return a value of type String","Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}","Tabs_OwnerExpected":"owner must be set before initialize","DynamicPopulate_WebServiceTimeout":"Web service call timed out","PasswordStrength_RemainingLowerCase":"{0} more lower case characters","Animation_MissingAnimationName":"AjaxControlToolkit.Animation.createAnimation requires an object with an AnimationName property","RTE_JustifyRight":"Justify Right","Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs collection","RTE_CellPadding":"Cell Padding","RTE_ClearFormatting":"Clear Formatting","AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVisibleControlBehavior must have an element","Slider_NoSizeProvided":"Please set valid values for the height and width attributes in the slider\u0027s CSS classes","DynamicPopulate_WebServiceError":"Web Service call failed: {0}","PasswordStrength_StrengthPrompt":"Strength: ","PasswordStrength_RemainingCharacters":"{0} more characters","PasswordStrength_Satisfied":"Nothing more required","RTE_Hyperlink":"Hyperlink","Animation_NoPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\"","PasswordStrength_InvalidStrengthDescriptionStyles":"Text Strength description style classes must match the number of text descriptions.","PasswordStrength_GetHelpRequirements":"Get help on password requirements","PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text strength descriptions specified","RTE_Underline":"Underline","Tabs_PropertySetAfterInitialization":"{0} cannot be changed after initialization","RTE_Rows":"Rows","RTE_Redo":"Redo","RTE_Size":"Size","RTE_Undo":"Undo","RTE_Bold":"Bold","RTE_Copy":"Copy","RTE_Font":"Font","CascadingDropDown_MethodError":"[Method error {0}]","RTE_BorderColor":"Border Color","RTE_Paragraph":"Paragraph","RTE_InsertHorizontalRule":"Insert Horizontal Rule","Common_UnitHasNoDigits":"No digits","RTE_Outdent":"Outdent","Common_DateTime_InvalidTimeSpan":"\"{0}\" is not a valid TimeSpan format","Animation_CannotNestSequence":"AjaxControlToolkit.Animation.SequenceAnimation cannot be nested inside AjaxControlToolkit.Animation.ParallelAnimation","Shared_BrowserSecurityPreventsPaste":"Your browser security settings don\u0027t permit the automatic execution of paste operations. Please use the keyboard shortcut Ctrl+V instead."};
//END AjaxControlToolkit.ExtenderBase.BaseScripts.js
//START AjaxControlToolkit.TextboxWatermark.TextboxWatermark.js
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.TextBoxWatermarkBehavior = function(element) {
AjaxControlToolkit.TextBoxWatermarkBehavior.initializeBase(this, [element]);this._watermarkText = null;this._watermarkCssClass = null;this._focusHandler = null;this._blurHandler = null;this._keyPressHandler = null;this._propertyChangedHandler = null;this._watermarkChangedHandler = null;this._oldClassName = null;this._clearedForSubmit = null;this._maxLength = null;if ((typeof(WebForm_OnSubmit) == 'function') && !AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit) {
AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit = WebForm_OnSubmit;WebForm_OnSubmit = AjaxControlToolkit.TextBoxWatermarkBehavior.WebForm_OnSubmit;}
}
AjaxControlToolkit.TextBoxWatermarkBehavior.prototype = {
initialize : function() {
AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'initialize');var e = this.get_element();var hasInitialFocus = false;var clientState = AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'get_ClientState');if (clientState != null && clientState != "") {
hasInitialFocus = (clientState == "Focused");AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'set_ClientState', null);}
this._oldClassName = e.className;this._focusHandler = Function.createDelegate(this, this._onFocus);this._blurHandler = Function.createDelegate(this, this._onBlur);this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);$addHandler(e, 'focus', this._focusHandler);$addHandler(e, 'blur', this._blurHandler);$addHandler(e, 'keypress', this._keyPressHandler);this.registerPropertyChanged();var currentValue = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_Current();var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());if (("" == currentValue) || (this._watermarkText == currentValue)) {
wrapper.set_Watermark(this._watermarkText)
wrapper.set_IsWatermarked(true);}
if (hasInitialFocus) {
this._onFocus();} else {
e.blur();this._onBlur();}
this._clearedForSubmit = false;this.registerPartialUpdateEvents();this._watermarkChangedHandler = Function.createDelegate(this, this._onWatermarkChanged);wrapper.add_WatermarkChanged(this._watermarkChangedHandler);},
dispose : function() {
var e = this.get_element();if (this._watermarkChangedHandler) {
AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).remove_WatermarkChanged(this._watermarkChangedHandler);this._watermarkChangedHandler = null;}
if(e.control && this._propertyChangedHandler) {
e.control.remove_propertyChanged(this._propertyChangedHandler);this._propertyChangedHandler = null;}
if (this._focusHandler) {
$removeHandler(e, 'focus', this._focusHandler);this._focusHandler = null;}
if (this._blurHandler) {
$removeHandler(e, 'blur', this._blurHandler);this._blurHandler = null;}
if (this._keyPressHandler) {
$removeHandler(e, 'keypress', this._keyPressHandler);this._keyPressHandler = null;}
if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()) {
this.clearText(false);}
AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, 'dispose');},
_onWatermarkChanged : function(sender, eventArgs) {
if (AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()) {
this._onBlur();} else {
this._onFocus();}
},
clearText : function(focusing) {
var element = this.get_element();var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(element);wrapper.set_Value("");wrapper.set_IsWatermarked(false);if(focusing) {
element.setAttribute("autocomplete","off");element.select();}
},
_onFocus : function(evt) {
var e = this.get_element();if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(e).get_IsWatermarked()) {
this.clearText(evt ? true : false);}
e.className = this._oldClassName;if (this._maxLength > 0) {
this.get_element().maxLength = this._maxLength;this._maxLength = null;}
},
_onBlur : function() {
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());if(("" == wrapper.get_Current()) || wrapper.get_IsWatermarked()) {
if (this.get_element().maxLength > 0 && this._watermarkText.length > this.get_element().maxLength) {
this._maxLength = this.get_element().maxLength;this.get_element().maxLength = this._watermarkText.length;}
this._applyWatermark();}
},
_applyWatermark : function() {
var wrapper = AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element());wrapper.set_Watermark(this._watermarkText);wrapper.set_IsWatermarked(true);if(this._watermarkCssClass) {
this.get_element().className = this._watermarkCssClass;}
},
_onKeyPress : function() {
AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).set_IsWatermarked(false);},
registerPropertyChanged : function() {
var e = this.get_element();if(e.control && !this._propertyChangedHandler) {
this._propertyChangedHandler = Function.createDelegate(this, this._onPropertyChanged);e.control.add_propertyChanged(this._propertyChangedHandler);}
},
_onPropertyChanged : function(sender, propertyChangedEventArgs) {
if("text" == propertyChangedEventArgs.get_propertyName()) {
this.set_Value(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_Current());}
},
_onSubmit : function() {
if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()) {
this.clearText(false);this._clearedForSubmit = true;}
},
_partialUpdateEndRequest : function(sender, endRequestEventArgs) {
AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]);if (this.get_element() && this._clearedForSubmit) {
this.get_element().blur();this._onBlur();this._clearedForSubmit = false;}
},
get_WatermarkText : function() {
return this._watermarkText;},
set_WatermarkText : function(value) {
if (this._watermarkText != value) {
this._watermarkText = value;if (AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()) {
this._applyWatermark();}
this.raisePropertyChanged('WatermarkText');}
},
get_WatermarkCssClass : function() {
return this._watermarkCssClass;},
set_WatermarkCssClass : function(value) {
if (this._watermarkCssClass != value) {
this._watermarkCssClass = value;if (AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()) {
this._applyWatermark();}
this.raisePropertyChanged('WatermarkCssClass');}
},
get_Text : function() {
return AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_Value();},
set_Text : function(value) {
if ("" == value) {
AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).set_Current("");this.get_element().blur();this._onBlur();} else {
this._onFocus();AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).set_Current(value);}
}
}
AjaxControlToolkit.TextBoxWatermarkBehavior.registerClass('AjaxControlToolkit.TextBoxWatermarkBehavior', AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.TextBoxWatermarkBehavior.WebForm_OnSubmit = function() {
var result = AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit();if (result) {
var components = Sys.Application.getComponents();for(var i = 0 ;i < components.length ;i++) {
var component = components[i];if (AjaxControlToolkit.TextBoxWatermarkBehavior.isInstanceOfType(component)) {
component._onSubmit();}
}
}
return result;}

//END AjaxControlToolkit.TextboxWatermark.TextboxWatermark.js
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
(function() {var fn = function() {$get('ScriptManager1_HiddenField').value += ';;ESRI.ArcGIS.ADF.Web.UI.WebControls, Version=9.3.1.1850, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86:en-US:961bd47f-de26-4f63-8ec9-1b4e5245bfd5:74aa143e:29d50843:8071b9f9;AjaxControlToolkit, Version=1.0.10920.32880, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:816bbca1-959d-46fd-928f-6347d6f2c9c3:e2e86ef9:1df13a87:8ccd9c1b';Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);})();
