// _lcid="1033" _version="11.0.8161"
// _localBinding
// Version: "11.0.8161"
// Copyright (c) Microsoft Corporation.  All rights reserved.
	var StrNewNamespace = "http://schemas.microsoft.com/WebPart/v2";
	function SplitIndex(Index)
	{
		var sPropURN = "";
		var sPropName = "";
		var pos = Index.lastIndexOf("#");
		if( -1 == pos )
		{
			pos = Index.lastIndexOf(":");
		}
		if( -1 == pos )
		{
			sPropName = Index;
		}
		else
		{
			sPropName = Index.substring(pos+1, Index.length);
			sPropURN = Index.substring(0, pos);
		}
		var Splitted = {PropURN : sPropURN, PropName : sPropName};
		return Splitted;
	}
	function String2XML(Value)
	{
			var XMLString = "";
			var re = /&/g;
			XMLString = Value.replace(re,"&amp;");
			re = /</g;
			XMLString = XMLString.replace(re,"&lt;");
			re = />/g;
			XMLString = XMLString.replace(re,"&gt;");
			re = /"/g;
			XMLString = XMLString.replace(re,"&quot;");
			re = /'/g;
			XMLString = XMLString.replace(re,"&apos;");
			return XMLString;
	}
	function URL2Unicode(strURL)
	{
		return Utf8ToUnicode(unescape(strURL));
	}
	function Unicode2URL(strUnicode)
	{
		return URLEncode(strUnicode);
	}
	function URLEncode(strURL)
	{
		var strSpecialUrl = " <>\"#%{}|^~[]`'&?+=";
		var strEncode="";
		var i;
		var chUrl;
		var iCode;
		strURL+="";
		for (i=0; i<strURL.length; i++)
		{
			chUrl = strURL.charAt(i);
			iCode = chUrl.charCodeAt(0);
			if (iCode<=parseInt(0x7F))
			{
				if (strSpecialUrl.indexOf(chUrl) != -1)
				{
					strEncode+="%"+iCode.toString(16).toUpperCase();
				}
				else
				{
					strEncode+=chUrl;
				}
			}
			else
			{
				strEncode += GetUTFCode(iCode);
			}
		}
		return strEncode;
	}
	function GetUTFCode(UniCode)
	{
		var BitLen = 11;
		var ByteLen = 2;
		var UTFCode = "";
		var FirstByte = 0xC0;	
		var i;
		while(UniCode >= (1<<BitLen))
		{
			FirstByte = FirstByte>>1;
			BitLen+=5;
			ByteLen++;
		}
		for( i = 0; i < ByteLen; i++ )
		{
			var Code = 0x80 | (UniCode & 0x3f);
			UniCode = UniCode >>> 6;
			if( i == ByteLen-1 )
			{
				Code |= FirstByte;
			}
			UTFCode = "%"+Code.toString(16).toUpperCase() + UTFCode;
		}
		return UTFCode;
	}
	function Utf8ToUnicode(strUtf8)
	{
		if(strUtf8 == null)
		{
			return "";
		}
		var bstr = "";
		var nTotalChars = strUtf8.length;	
		var nOffset = 0;					
		var nRemainingBytes = nTotalChars;	
		var nOutputPosition = 0;
		var iCode, iCode1, iCode2;			
		while (nOffset < nTotalChars)
		{
			iCode = strUtf8.charCodeAt(nOffset);
			if ((iCode & 0x80) == 0)			
			{
				if ( nRemainingBytes < 1 )
				{	
					break;
				}
				bstr += String.fromCharCode(iCode & 0x7F);
				nOffset ++;
				nRemainingBytes -= 1;
			}
			else if ((iCode & 0xE0) == 0xC0)	
			{
				iCode1 =  strUtf8.charCodeAt(nOffset + 1);
				if ( nRemainingBytes < 2 ||			
				   (iCode1 & 0xC0) != 0x80 )		
				{
					break;
				}
				bstr += String.fromCharCode(((iCode & 0x3F) << 6) | (iCode1 & 0x3F));
				nOffset += 2;
				nRemainingBytes -= 2;
			}
			else if ((iCode & 0xF0) == 0xE0)	
			{
				iCode1 =  strUtf8.charCodeAt(nOffset + 1);
				iCode2 =  strUtf8.charCodeAt(nOffset + 2);
				if ( nRemainingBytes < 3   ||		
				   (iCode1 & 0xC0) != 0x80 ||		
			  	   (iCode2 & 0xC0) != 0x80 )
				{
					break;
				}
				bstr += String.fromCharCode(((iCode & 0x0F) << 12) | 
						((iCode1 & 0x3F) <<  6) |
						(iCode2 & 0x3F));
				nOffset += 3;
				nRemainingBytes -= 3;
			}
			else
			{
				break;
			}
		}
		if (0 != nRemainingBytes)
		{
			bstr = "";
		}
		return bstr;
	}
	function SPSoapRequestBuilder(functionName)
	{
		var object = new Object();
		function AddParameter(parameterName, parameterValue)
		{
			var index = this.parameterNameList.length;
			this.parameterNameList[index] = parameterName;
			this.parameterValueList[index] = parameterValue;
		}
		function SendSOAPMessage(xmlhttp)
		{
			var funcName = this.functionName;
			var paramNames = this.parameterNameList;
			var paramValues = this.parameterValueList;
			xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
			xmlhttp.setRequestHeader("SOAPAction", "http://microsoft.com/sharepoint/webpartpages/" + funcName);
			var soapData = 	'<?xml version="1.0" encoding="utf-8"?>' +
							'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
							'<soap:Body>' +
							'<' + funcName + ' xmlns="http://microsoft.com/sharepoint/webpartpages">';
			for(var i=0; i < paramNames.length; i++)
			{
				var soapParam = (typeof(paramValues[i]) == "string") ? String2XML(paramValues[i]) : paramValues[i];
				soapData += 	'<' + paramNames[i] + '>' + soapParam + '</' + paramNames[i] + '>';
			}
			soapData +=		'</' + funcName + '>' +
							'</soap:Body>' +
							'</soap:Envelope>'
			xmlhttp.Send(soapData);
			return xmlhttp;
		}
		object.functionName = functionName;
		object.parameterNameList = new Array();
		object.parameterValueList = new Array();
		object.AddParameter = AddParameter;
		object.SendSOAPMessage = SendSOAPMessage;
		return object;
	}
	function Collection()
	{
		function Item(Index)
		{
			var Obj = null;
			if(Index != null)
			{
				var realIndex = parseInt(Index);
				if (!isNaN(realIndex) && realIndex >= 0 && realIndex < this.length)
					Obj = this[realIndex];
			}
			return Obj;
		}
		function Find(Object)
		{
			var i;
			var obj = null;
			for (i=0; i<this.length; i++)
			{
				if (this[i] == Object)
				{
					obj = this[i];
					break;
				}
			}
			return obj;
		}
		function FindByName(Name, Qualifier)
		{
			var i;
			var obj = null;
			for (i=0; i<this.length; i++)
			{
				if (this[i].Name == Name && this[i].Qualifier == Qualifier)
				{
					obj = this[i];
					break;
				}
			}
			return obj;
		}
		function Add(Object)
		{
			var ArraySize = this.length;
			this[ArraySize] = Object;
			return this[ArraySize];
		}
		function Remove(Index)
		{
			var i;
			var realIndex = parseInt(Index);
			if (isFinite(realIndex) && realIndex >= 0 && realIndex < this.length)
			{
				for (i=realIndex; i<this.length-1; i++)
					this[i] = this[i+1];
				this.length--;
			}
		}
		function RemoveObject(Object)
		{
			var i;
			for (i=0; i<this.length; i++)
			{
				if (this[i] == Object)
				{
					this.Remove(i);
					break;
				}
			}
		}
		function Count()
		{
			return this.length;
		}
		var obj = Array();
		obj.Item = Item;
		obj.Count = Count;
		obj.Add = Add;
		obj.Remove = Remove;
		obj.Find = Find;
		obj.FindByName = FindByName;
		obj.RemoveObject = RemoveObject;
		return obj;
	}
	function PartDef(WebPartQualifier, StorageKey, DOMObject)
	{
		function GetPropertyXmlString(propertyNode)
		{
			var differentNameSpace = (propertyNode.NamespaceURN.toLowerCase() != StrNewNamespace.toLowerCase());
			return currentXML = "<" + propertyNode.SchemaElement + ((differentNameSpace) ? " xmlns='" + String2XML(propertyNode.NamespaceURN) + "'": " ") +  ">" + String2XML(propertyNode.Value.toString()) + "</" + propertyNode.SchemaElement + ">";
		}
		function Save(async, callBack)
		{
			if(!this.Properties.PropertiesLoaded)
			{
				return;
			}
			var partDWP = "<WebPart xmlns= '" + StrNewNamespace + "'>" + 
							GetPropertyXmlString(this.Properties.AssemblyInfo) + 
							GetPropertyXmlString(this.Properties.TypeNameInfo);
			for(var index=0; index < this.Properties.length; index++)
			{
				partDWP += GetPropertyXmlString(this.Properties[index]);
			}
			partDWP += "</WebPart>";
			try
			{
				var varPart = eval('varPart' + this.WebPartQualifier);
				var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
				this.xmlhttp = xmlhttp;
				varPart.callBackUsed = false;
				xmlhttp.Open('POST', WPSC.WebPartPage.WebURL + '/_vti_bin/WebPartPages.asmx',(async != true) ? false : true);
				if (callBack != null)
				{
					this.callBackFunction = callBack;
					xmlhttp.onreadystatechange= new Function("varPart" + this.WebPartQualifier + ".SaveHandler()");
				}
				var soapBuilder = SPSoapRequestBuilder("SaveWebPart");
				soapBuilder.AddParameter("pageUrl", document.location.href);
				soapBuilder.AddParameter("storageKey", this.StorageKey);
				soapBuilder.AddParameter("webPartXml", partDWP);
				soapBuilder.SendSOAPMessage(xmlhttp);
			}
			catch(exception) 
			{
				var varPart = eval('varPart' + this.WebPartQualifier);
				if(callBack != null && varPart.callBackUsed != true)
				{
					callBack(false, "");
					varPart.callBackUsed = true;
				}
			}
		}
		function SaveHandler()
		{
			var varPart = eval('varPart' + this.WebPartQualifier);
			if(this.xmlhttp.readyState == 4 && this.callBackFunction != null && varPart.callBackUsed != true)
			{
				var saveSucceeded = (this.xmlhttp.responseXML.getElementsByTagName("SaveWebPartResponse")[0] != null);
				var soapStatus = this.xmlhttp.status;
				var soapExceptionText = "";
				if(!saveSucceeded)
				{
					var soapException = this.xmlhttp.responseXML.getElementsByTagName("soap:Fault")[0];
					if(soapException != null)
					{
						var soapExceptionTextXml = soapException.getElementsByTagName("detail")[0];
						if(soapExceptionTextXml != null)
						{
							soapExceptionText = soapExceptionTextXml.text;
						}
					}
				}
				varPart.callBackUsed = true;
				this.callBackFunction(saveSucceeded, soapExceptionText, soapStatus);
			}
		}
		this.SaveHandler = SaveHandler;
		this.DOMObject = DOMObject;
		this.WebPartQualifier = WebPartQualifier;
		this.StorageKey = StorageKey;
		this.Properties = new PropColDef();
		this.Properties.Owner = this;
		this.Save = Save;
	}
	function PropertyDef(URN, SchemaElement, Value)
	{
		this.OriginalValue = Value;
		this.NamespaceURN = URN;
		this.SchemaElement = SchemaElement;
		this.Value = Value;
	}
	function PropColDef()
	{
		var PropCol = new Collection();
		function GetPropCol(ItemID, bGlobal)
		{
			var returnValues = new Array();
			try
			{
				var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
				if (xmlhttp == null) return;
				xmlhttp.Open('POST', WPSC.WebPartPage.WebURL + '/_vti_bin/WebPartPages.asmx', false);
				var soapBuilder = SPSoapRequestBuilder("GetWebPart");
				soapBuilder.AddParameter("pageurl", document.location.href);
				soapBuilder.AddParameter("storageKey", ItemID);
				soapBuilder.AddParameter("storage", 'None');
				soapBuilder.SendSOAPMessage(xmlhttp);			
				xmlhttp.responseXML.loadXML(xmlhttp.responseXML.text);
				var webPartXML = xmlhttp.responseXML.getElementsByTagName("WebPart")[0];
				if(webPartXML)
				{
					var propertiesListXML = webPartXML.childNodes;
					for(var index = 0; index < propertiesListXML.length; index++)
					{
						var node = propertiesListXML.item(index);
						var prop = new PropertyDef(node.namespaceURI, node.baseName, node.nodeTypedValue);
						returnValues[returnValues.length] = prop;
					}
				}
				else
				{
					alert(MSOStrings.GetPropertiesFailure);
				}
			}
			catch (e)
			{
				alert(MSOStrings.GetPropertiesFailure);
			}
			return returnValues;
		}
		function FindProp(Index)
		{
			var nIndex = -1;
			var property = null;
			if (isNaN(Index))
			{
				var Splitted = SplitIndex(Index);
				var PropURN = Splitted.PropURN;
				var PropName = Splitted.PropName;
				var i;
				for (i=0; i<PropCol.Count(); i++)
				{
					var Item = PropCol[i];
					var itemNamespace = new String(Item.NamespaceURN);
					var schemaMatch = (Item.SchemaElement.toLowerCase() == PropName.toLowerCase());
					var namespaceMatch = (itemNamespace.toLowerCase() == PropURN.toLowerCase());
					if(schemaMatch && namespaceMatch)
					{
						nIndex = i;
						property = Item;
						break;
					}
				}
			}
			else
			{
				if (Index < 0 || Index >= PropCol.Count())
				{
					nIndex = -1;
					property = null;
				}
				else
				{
					nIndex = Index;
					property = PropCol[Index]
				}
			}
			return property;
		}
		function Item(Index)
		{	
			var Property = null;
			if(Index != null)
			{
				if(!(this.PropertiesLoaded))
				{
					this.LoadProperties();
				}
				Property = FindProp(Index);
			}
			return Property;
		}
		function Init(Properties, Owner)
		{
			this.Owner = Owner;
			for(var i = 0; i < Properties.length; i++)
			{
				var node = Properties[i];
				if(node.SchemaElement ==  "Assembly")
				{
					this.AssemblyInfo = node;
				}
				else if(node.SchemaElement == "TypeName")
				{
					this.TypeNameInfo = node;
				}
				else
				{
					this[this.length] = node;
				}
			}
		}
		function Count()
		{
			if(!(this.PropertiesLoaded))
			{
				this.LoadProperties();
			}
			return this.length;
		}
		function LoadProperties()
		{
			this.Init(GetPropCol(this.Owner.StorageKey, false), this.Owner);
			this.PropertiesLoaded = true;
		}
		PropCol.Owner = null;				
		PropCol.Item = Item;
		PropCol.Init = Init;
		PropCol.Count = Count;
		PropCol.LoadProperties = LoadProperties;
		PropCol.PropertiesLoaded = false;
		PropCol.AssemblyInfo = null;
		PropCol.TypeNameInfo = null;
		return PropCol;
	}
	function PartColDef()
	{
		var ThisPartCol = new Collection();
		function FindPart(Index)
		{
			var nIndex = -1;
			if (isNaN(Index))
			{
				var i;
				for (i=0; i<ThisPartCol.Count(); i++)
				{
					if (ThisPartCol.Item(i).WebPartQualifier == Index)
					{
						nIndex = i;
						break;
					}
				}
			}
			else
			{
				if (Index < 0 || Index >= ThisPartCol.Count())
					nIndex = -1;
				else
					nIndex = Index;
			}
			return nIndex;
		}
		function Item(Index)
		{
			var Part = null;
			if(Index != null)
			{
				var PartIndex = FindPart(Index);
				if (PartIndex >= 0)
					Part = ThisPartCol.Item(PartIndex);
			}
			return Part;
		}
		function Register(WebPartQualifier, StorageKey, DOMPart)
		{
			var NewPart;
			var PartIndex = FindPart(WebPartQualifier);
			if (PartIndex >= 0)
			{
				NewPart = ThisPartCol.Item(PartIndex);
			}
			else
			{
				NewPart = new PartDef(WebPartQualifier, StorageKey, DOMPart);
				ThisPartCol.Add(NewPart);
				this.Count = ThisPartCol.Count();
			}
			return NewPart;
		}
		function UnRegister(Index)
		{
			ThisPartCol.Remove(FindPart(Index));
			this.Count = ThisPartCol.Count();
		}
		this.Item = Item;
		this.Register = Register;
		this.UnRegister = UnRegister;
		this.Count = ThisPartCol.Count();
	}
	function WebPartPageDef(DOMObj)
	{
		this.Parts = new PartColDef();
		this.DOMObject = DOMObj;
		this.Properties = new PropColDef();
	}
	function EventDef(EventName)
	{
		var EventHandlers = new Collection();
		function FindEventHandler(CallbackFunction)
		{
			return EventHandlers.Find(CallbackFunction);
		}
		function AddHandler(CallbackFunction)
		{
			return EventHandlers.Add(CallbackFunction);
		}
		function RemoveHandler(CallbackFunction)
		{
			EventHandlers.RemoveObject(CallbackFunction);
		}
		function Raise(Param)
		{
			var i;
			for (i=0; i<EventHandlers.Count(); i++)
				EventHandlers.Item(i)(Param);
		}
		this.Name = EventName;
		this.FindEventHandler = FindEventHandler;
		this.AddHandler = AddHandler;
		this.RemoveHandler = RemoveHandler;
		this.Raise = Raise;
	}
	function NotificationServiceDef()
	{
		var Events = new Collection();
		function RegisterSupportedBrowserEvent(eventName, eventFunction)
		{
			switch(eventName)
			{
				case "onafterprint":
				case "onbeforeprint":
				case "onbeforeunload":
				case "onblur":
				case "onclose":
				case "onload":
				case "onresize":
				case "onfocus":
					window.attachEvent(eventName, eventFunction);
					break;
				case "onclick":
				case "onhelp":
					window.document.attachEvent(eventName, eventFunction);
					break;
				default:
					break;
			}
		}
		function UnRegisterSupportedBrowserEvent(eventName, eventFunction)
		{
			switch(eventName)
			{
				case "onafterprint":
				case "onbeforeprint":
				case "onbeforeunload":
				case "onblur":
				case "onclose":
				case "onload":
				case "onresize":
				case "onfocus":
					window.detachEvent(eventName, eventFunction);
					break;
				case "onclick":
				case "onhelp":
					window.document.detachEvent(eventName, eventFunction);
					break;
				default:
					break;
			}
		}
		function RaiseEvent(Namespace, Event, Data)  
		{
			var Event;
			var EventName;
			EventName = Namespace + "::" + Event;
			Event = Events.FindByName(EventName);
			if (null != Event)
				Event.Raise(Data);
		}
		function RegisterForEvent(Namespace, Event, CallbackFunction, Qualifier)
		{
			var EventObject;
			var EventName;
			EventName = Namespace + "::" + Event;
			EventObject = Events.FindByName(EventName, Qualifier);
			if (EventObject == null)
			{
				EventObject = new EventDef(EventName);
				EventObject.Qualifier = Qualifier;
				Events.Add(EventObject);
			}
			if (EventObject.FindEventHandler(CallbackFunction) == null)
			{
				if(Namespace == "urn:schemas-microsoft-com:dhtml")
				{
					RegisterSupportedBrowserEvent(Event, CallbackFunction);
				}
				EventObject.AddHandler(CallbackFunction);
			}
		}
		function UnRegisterForEvent(Namespace, Event, CallbackFunction, Qualifier)
		{
			var EventObject;
			var EventName;
			EventName = Namespace + "::" + Event;
			EventObject = Events.FindByName(EventName, Qualifier);
			if ((EventObject != null) && (EventObject.FindEventHandler(CallbackFunction) != null))
			{
				if(Namespace == "urn:schemas-microsoft-com:dhtml")
				{
					UnRegisterSupportedBrowserEvent(Event, CallbackFunction);
				}
				EventObject.RemoveHandler(CallbackFunction);
			}
		}
		this.RegisterForEvent = RegisterForEvent;
		this.RaiseEvent = RaiseEvent;
		this.UnRegisterForEvent = UnRegisterForEvent;
	}
	function MessageDef(MessageName)
	{
		this.Name = MessageName;
		this.Value = "";
	}
	function StateServiceDef()
	{
		var SaveCallbacks = new Array();
		function IsScriptHREF()
		{
			var returnValue = false;
			if(event != null)
			{
				var srcElement = event.srcElement;
				while(srcElement != null && srcElement.tagName != 'A' && srcElement.tagName != 'BODY')
				{
					srcElement = srcElement.parentElement;
				}
				if(srcElement != null && srcElement.tagName == 'A')
				{
					var href = srcElement.href.toLowerCase( );
					returnValue = (href.indexOf('javascript:') == 0 || href.indexOf('vbscript:') == 0)
				}
			}
			return returnValue;
		}
		function BeforeUnloading()
		{
			if(!MSOWebPartPage_hideNextBeforeUnload)
			{
				try
					{
					if (WPSCinpreview == true)
						{
						}				
					}
				catch (e)
					{
					WPSC.RaiseEvent("urn:schemas-microsoft-com:dhtml","onunload",null);
					}
				ProcessDirtyParts();
			}
			MSOWebPartPage_hideNextBeforeUnload = false;
		}
		function ProcessDirtyParts()
		{
			if (MSOWPSC_SavePerformed == false && SaveCallbacks.length > 0)
			{
				var i;
				var prompt = false;
				for (i=0;i<SaveCallbacks.length;i++)
				{
					SaveCallbacks[i].Dirty = SaveCallbacks[i].IsDirtyCallbackFunction(SaveCallbacks[i].Param);
					prompt = prompt || SaveCallbacks[i].Dirty;
				}
				if (prompt == true && window.confirm(MSOStrings.SaveDirtyPartsDialogText))
				{
					for (i=0;i<SaveCallbacks.length;i++)
					{
						if (SaveCallbacks[i].Dirty == true)
						{
							SaveCallbacks[i].SaveCallbackFunction(SaveCallbacks[i].Param);
							SaveCallbacks[i].Dirty = false;
						}
					}
				}
			}
			if(typeof(event.returnValue) == "undefined")
			{
				MSOWPSC_SavePerformed = true;
			}
		}
		function RegisterForPromptedSave(IsDirtyCallbackFunction, SaveCallbackFunction, Param)
		{
			var Callback = new CallbackParamDef(IsDirtyCallbackFunction, SaveCallbackFunction, Param);
			SaveCallbacks[SaveCallbacks.length++] = Callback;
		}
		this.BeforeUnloading = BeforeUnloading;
		this.IsScriptHREF = IsScriptHREF;
		this.RegisterForPromptedSave = RegisterForPromptedSave;
		this.ProcessDirtyParts = ProcessDirtyParts;
	}
	function CallbackParamDef(IsDirtyCallbackFunction, SaveCallbackFunction, Param)
	{
		this.IsDirtyCallbackFunction = IsDirtyCallbackFunction;
		this.SaveCallbackFunction = SaveCallbackFunction;
		this.Param = Param;
		this.Dirty = false;
	}
	function WPSCDef() 
	{
		var InternalWebPartPage;
		var NotificationService = new NotificationServiceDef();
		function FirePartCommunicationEvents(connectedParts, isInit)
		{		
			var interfaceObject;
			for (var i = 0; i < connectedParts.length; i++)
			{
				interfaceObject = eval(connectedParts[i]);
				if (interfaceObject != null)
				{
					if (isInit)
					{
						try
						{
							interfaceObject.PartCommunicationInit(WPSC);
						}
						catch (e)
						{
						}
					}
					else
					{
						try
						{
							interfaceObject.PartCommunicationMain();
						}
						catch (e)
						{
						}	
					}
				}
			}
		}
		function InitPartCommunication()
		{
			var xmlNodes;
			if (MSOConnections == null)
				return;
			xmlNodes = MSOConnections.selectNodes("Connections/Connection");
			if (xmlNodes == null)
				return;
			var connectedParts = new Array();
			var isProviderInList = false;
			var isConsumerInList = false;
			var xmlProviderRef = null;
			var xmlConsumerRef = null;
			for (var i = 0; i < xmlNodes.length; i++)
			{
				xmlProviderRef = xmlNodes.item(i).selectSingleNode("@ProviderObject"); 
				xmlConsumerRef = xmlNodes.item(i).selectSingleNode("@ConsumerObject");			
				isProviderInList = false;
				isConsumerInList = false;
				if (xmlProviderRef != null && xmlConsumerRef != null)
				{			
					for (var j =0; j < connectedParts.length; j++)
					{
						if (connectedParts[j] == xmlProviderRef.text)
						{
							isProviderInList = true;
						}
						if (connectedParts[j] == xmlConsumerRef.text)
						{
							isConsumerInList = true;
						}
					}
					if (!isProviderInList)
					{
						connectedParts[connectedParts.length] = xmlProviderRef.text;
					}		
					if (!isConsumerInList)
					{
						connectedParts[connectedParts.length] = xmlConsumerRef.text;
					}
				}
			}
			FirePartCommunicationEvents(connectedParts, true); 
			FirePartCommunicationEvents(connectedParts, false); 
		}
		function RaiseConnectionEventSpecial(InterfaceName, EventName, EventArgsNames, EventArgsValues)
		{
			var eventArgs = new Object();
			var tempNames = ConvertVBArrayIfNecessary(EventArgsNames);
			var tempValues = ConvertVBArrayIfNecessary(EventArgsValues);
			if (tempNames.length == tempValues.length)
			{
				for (var i = 0; i < tempNames.length; i++)
				{
					eval("eventArgs." + tempNames[i] + " = ConvertVBArrayIfNecessary(tempValues[i])");
				}
				RaiseConnectionEvent(InterfaceName, EventName, eventArgs);
			}
		}
		function ConvertVBArrayIfNecessary(vbarray)
		{
			try
			{
				var a = new VBArray(vbarray);
				return a.toArray();
			}
			catch(e)
			{
				return vbarray;
			}
		}
		function RaiseConnectionEvent(InterfaceName, EventName, EventParams)
		{
		   	var fProvider = false;
 			var xmlNodes;
 			var xmlSourceRef;
			var xmlTargetRef;
 			var strEval;
		   	if (MSOConnections.selectSingleNode("Connections/Connection[@ProviderIntName = '" + InterfaceName + "']") != null)
		   	{
				fProvider = true;
		   	}
			if (fProvider)
			{
			   	xmlNodes = MSOConnections.selectNodes("Connections/Connection[@ProviderIntName ='" + InterfaceName + "']");
			}
			else
			{
				xmlNodes = MSOConnections.selectNodes("Connections/Connection[@ConsumerIntName ='" + InterfaceName + "']");
			}
			if (xmlNodes != null)
			{
				for (var i = 0; i < xmlNodes.length; i++)
				{
					if (fProvider)
					{
						xmlSourceRef =xmlNodes.item(i).selectSingleNode("@ProviderObject"); 
						xmlTargetRef = xmlNodes.item(i).selectSingleNode("@ConsumerObject");
					}
					else
					{
						xmlSourceRef =xmlNodes.item(i).selectSingleNode("@ConsumerObject"); 
						xmlTargetRef = xmlNodes.item(i).selectSingleNode("@ProviderObject");
					}
					if (xmlSourceRef != null && xmlTargetRef != null)
					{
						strEval = xmlTargetRef.text;
						strEval += "." + EventName;
						strEval += "(" + xmlSourceRef.text + ", EventParams)";
						eval (strEval);
					}			
				}
			}			
		}
		function RegisterForPromptedSave(IsDirtyCallbackFunction, SaveCallbackFunction, Param)
		{
			StateService.RegisterForPromptedSave(IsDirtyCallbackFunction, SaveCallbackFunction, Param);
		}
		function Init(DOMObj)
		{
			window.attachEvent("onbeforeunload", StateService.BeforeUnloading);
			document.body.attachEvent("onclick", new Function("if(StateService.IsScriptHREF()) {MSOWebPartPage_hideNextBeforeUnload = true;}"));
			this.WebPartPage = new WebPartPageDef(DOMObj);
			return this.WebPartPage;
		}
		function Convert(InputString, InputType, OutputType)
		{
			var Converted = InputString;
			if( "URL" == InputType )
			{
				if( "UNICODE" == OutputType )
					Converted = URL2Unicode(InputString);
			}
			else if( "UNICODE" == InputType )
			{
				if( "URL" == OutputType )
					Converted = Unicode2URL(InputString);
			}
			return Converted;
		}
		function MSOMenu_GetMenuItem(MenuClientID, MenuOptionID)
		{
			var menuItem = null;
			var menu = document.all.item(MenuClientID);
			if(menu != null)
			{
				menuItem = menu.all.item(MenuOptionID);
			}
			return menuItem;
		}
		function MSOMenu_SetChecked(MenuClientID, MenuOptionID, SetValue)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				menuItem.checked = (SetValue) ? 'true' : 'false';
			}
		}
		function MSOMenu_SetVisible(MenuClientID, MenuOptionID, SetValue)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				menuItem.style.display = (SetValue) ? '' : 'none';
			}
		}
		function MSOMenu_SetEnabled(MenuClientID, MenuOptionID, SetValue)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				menuItem.disabled = !(SetValue == true);
			}
		}
		function MSOMenu_GetChecked(MenuClientID, MenuOptionID)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				return (menuItem.checked == 'true') ? true : false;
			}
			return null;
		}
		function MSOMenu_GetVisible(MenuClientID, MenuOptionID)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				return (menuItem.style.display != 'none') ? true : false;
			}
			return null;
		}
		function MSOMenu_GetEnabled(MenuClientID, MenuOptionID)
		{
			var menuItem = MSOMenu_GetMenuItem(MenuClientID, MenuOptionID);
			if(menuItem != null)
			{
				return (menuItem.disabled != true) ? true : false;
			}
			return null;
		}
		this.RaiseConnectionEvent = RaiseConnectionEvent;
		this.RaiseConnectionEventSpecial = RaiseConnectionEventSpecial;
		this.InitPartCommunication = InitPartCommunication;
		this.RaiseEvent = NotificationService.RaiseEvent;   
		this.RegisterForEvent = NotificationService.RegisterForEvent;
		this.UnRegisterForEvent = NotificationService.UnRegisterForEvent;
		this.RegisterForPromptedSave = RegisterForPromptedSave;
		this.Init = Init;
		this.WebPartPage = InternalWebPartPage;
		this.Convert = Convert;
		this.MSOMenu_SetChecked = MSOMenu_SetChecked;
		this.MSOMenu_SetVisible = MSOMenu_SetVisible;
		this.MSOMenu_SetEnabled = MSOMenu_SetEnabled;
		this.MSOMenu_GetChecked = MSOMenu_GetChecked;
		this.MSOMenu_GetVisible = MSOMenu_GetVisible;
		this.MSOMenu_GetEnabled = MSOMenu_GetEnabled;
	}
var StateService = new StateServiceDef();
var WPSC = new WPSCDef();
var MSOWPSC_SavePerformed = false;
function MSOWPSC_OnSubmit()
{
	StateService.ProcessDirtyParts();
}
function Row2ParamsIn_GetRow(paramsInIntName,rowFields,paramsInNames)
{
	var paramsIndex = new Array(paramsInNames.length);
	var fieldsIndex = new Array(paramsInNames.length);
	for (var i = 0; i < paramsIndex; i++)
		paramsIndex[i] = -1;
	for (var i = 0; i < fieldsIndex; i++)
		fieldsIndex[i] = -1;
	var params = paramsInNames;
	var fieldNames = rowFields;
	var name = paramsInIntName;
	var paramsLength = 0;
	this.RowProviderInit = Row2ParamsIn_RowProviderInit;
	this.RowReady = Row2ParamsIn_RowReady;
	this.ParametersInConsumerInit = Row2ParamsIn_ParamsInInit;
	function Row2ParamsIn_ParamsInInit(sender,args)
	{
		var paramProps = args.ParameterInProperties;
		paramsLength = paramProps.length;
		if (paramProps != null && paramProps.length > 0)
			for (var i = 0; i < paramProps.length; i++)
				for (var j= 0; j < params.length; j++)
					if ((paramProps[i]).ParameterName == params[j])
						paramsIndex[j] = i;
	}
	function Row2ParamsIn_RowProviderInit(sender,args)
	{
		var fields = args.FieldList;
		if (fields != null && fields.length > 0)
			for (var i = 0; i < fields.length; i++)
				for (var j= 0; j < fieldNames.length; j++)
					if (fields[i] == fieldNames[j])
						fieldsIndex[j] = i;
	}
	function Row2ParamsIn_ParamsInReadyArgs(value)
	{
		this.ParameterValues = value;
	}	
	function Row2ParamsIn_RowReady(sender,args)
	{
		var rs = args.Rows;
		if (args.SelectionStatus == "Standard" || args.SelectionStatus == "New")
		{
			if (rs != null)
			{
				rs.MoveFirst();
				var paramValues = new Array(paramsLength);
				for (var i = 0; i < paramsLength; i++)
				{
					var found = false;
					try
					{
						for (var j= 0; j < paramsIndex.length; j++)
							if (paramsIndex[j] == i)
							{
								if (rs.Fields.Item(fieldsIndex[j]).Value != null)
								{
									var type = rs.Fields.Item(fieldsIndex[j]).Type;
                                    var varValue = rs.Fields.Item(fieldsIndex[j]).Value;
									paramValues[i] = String(varValue);
                                    if (type == 12)
                                    {
                                        if (typeof(varValue) == "date") 
                                        {
                                            paramValues[i] = P2P_DateToString(paramValues[i]);
                                        }
                                    }
									else if (type == 7 || type == 133 || type == 134 || type == 135)
									{
										paramValues[i] = P2P_DateToString(paramValues[i]);
									}
								}
								else
								{
									paramValues[i] = "";
								}
								found = true;
							}
					}
					catch( e )
					{
						found = false;
					}
					if (!found)
						paramValues[i] = "";
				}
				WPSC.RaiseConnectionEvent(name, "ParametersInReady", new Row2ParamsIn_ParamsInReadyArgs(paramValues));
			}
		}
		else
			WPSC.RaiseConnectionEvent(name, "NoParametersIn", null);
	}
}
function Row2Cell_GetRow(cellIntName,xform)
{
	var field = xform;
	var index = -1;
	var name = cellIntName;
	this.RowProviderInit = Row2Cell_RowProviderInit;
	this.RowReady = Row2Cell_RowReady;
	function Row2Cell_RowProviderInit(sender,args)
	{
		var fields = args.FieldList;
		var fieldDisplayList = args.FieldDisplayList;
		if (fields != null && fields.length > 0)
			for (var i = 0; i < fields.length; i++)
				if (fields[i] == field)
				{
					index = i;
					var displayField = null;
					if (fieldDisplayList != null && fieldDisplayList.length > i)
					{
						displayField = fieldDisplayList[i];
					}
					WPSC.RaiseConnectionEvent(name, "CellProviderInit", new Row2Cell_CellInitArgs(field, displayField));
				}
	}
	function Row2Cell_CellInitArgs(name, displayName)
	{
		this.FieldName = name;
		this.FieldDisplayName = displayName;
	}
	function Row2Cell_CellReadyArgs(value)
	{
		this.Cell = value;
	}
	function Row2Cell_RowReady(sender,args)
	{
		var rs = args.Rows;
		if (rs != null)
		{
			rs.MoveFirst();
			if (args.SelectionStatus && (args.SelectionStatus == "Standard" || args.SelectionStatus == "New") && index != -1 && rs.Fields != null && rs.Fields.Item(index) != null)
				WPSC.RaiseConnectionEvent(name, "CellReady", new Row2Cell_CellReadyArgs(rs.Fields.Item(index).Value));
			else
				WPSC.RaiseConnectionEvent(name, "CellReady", new Row2Cell_CellReadyArgs(null));
		}
	}
}
function Row2Cell_GetCell()
{
	this.CellConsumerInit = Row2Cell_CellInit;
	function Row2Cell_CellInit(sender,args){}
}
function Row2Filter_GetFilter()
{
	this.FilterConsumerInit = Row2Filter_FilterInit;
	function Row2Filter_FilterInit(sender,args){}
}
function Row2Filter_GetRow(filterIntName,fieldFilter,fieldRow)
{
	var field = fieldRow;
	var filter = fieldFilter;
	var index = -1;
	var name = filterIntName;
	this.RowProviderInit = Row2Filter_RowInit;
	this.RowReady = Row2Filter_RowReady;
	function Row2Filter_RowInit(sender,args)
	{
		var fields = args.FieldList;
		if (fields != null && fields.length > 0)
			for (var i = 0; i < fields.length; i++)
				if (fields[i] == field)
					index = i;
	}
	function Row2Filter_SetFilterArgs(value)
	{
		this.FilterExpression = value;
	}
	function P2P_DateToString(dateString)
	{
		function MakeNumberTwoDigits(number)
		{
			if (number < 10)
				return "0" + number;
			else
				return number;
		}
		var date = new Date(Date.parse(dateString));
		var newValue = MakeNumberTwoDigits(date.getMonth()+1) + "/";
		newValue += MakeNumberTwoDigits(date.getDate()) + "/";
		newValue += date.getFullYear() + " ";
		newValue += MakeNumberTwoDigits(date.getHours()) + ":";
		newValue += MakeNumberTwoDigits(date.getMinutes()) + ":";
		newValue += MakeNumberTwoDigits(date.getSeconds());
		return newValue;
	}
	function Row2Filter_RowReady(sender,args)
	{
		var rs = args.Rows;
		if ((args.SelectionStatus == "Standard" || args.SelectionStatus == "New") && index != -1)
		{
			if (rs != null)
			{
				rs.MoveFirst();
				var filterValue = "";
				try
				{
					if (rs.Fields.Item(index).Value != null)
					{
                        var varValue = rs.Fields.Item(index).Value;
						var type = rs.Fields.Item(index).Type;
						filterValue = String(varValue);
                        if (type == 12)
                        {
                            if (typeof(varValue) == "date") 
                            {
                                filterValue = P2P_DateToString(filterValue);
                            }
                        }
						else if (type == 7 || type == 133 || type == 134 || type == 135)
						{
							filterValue = P2P_DateToString(filterValue);
						}
					}
				}
				catch (e)
				{
				}
				WPSC.RaiseConnectionEvent(name, "SetFilter", new Row2Filter_SetFilterArgs("FilterField1=" +WPSC.Convert(filter, "UNICODE", "URL")  + "&FilterValue1=" + WPSC.Convert(filterValue, "UNICODE", "URL")));
			}
			else
			{
				WPSC.RaiseConnectionEvent(name, "SetFilter", new Row2Filter_SetFilterArgs("FilterField1=" + WPSC.Convert(filter, "UNICODE", "URL") + "&FilterValue1="));
			}
		}
		else
			WPSC.RaiseConnectionEvent(name, "NoFilter", null);
	}
}
function ParamsOut2In_GetParamsOut(paramsInIntName, paramsOutNames, paramsInNames)
{
	var paramsInIndex = new Array(paramsInNames.length);
	var paramsOutIndex = new Array(paramsInNames.length);
	var paramsIn = paramsInNames;
	var paramsOut = paramsOutNames;
	var name = paramsInIntName;
	var paramsInLength = 0;
	this.ParametersOutProviderInit = ParamsOut2In_ParamsOutProviderInit;
	this.ParametersOutReady = ParamsOut2In_ParamsOutReady;
	this.ParametersInConsumerInit = ParamsOut2In_ParamsInInit;
	this.NoParametersOut = ParametersOut2In_NoParametersOut;
	function ParametersOut2In_NoParametersOut(sender, args)
	{
		WPSC.RaiseConnectionEvent(name, "NoParametersIn", null);
	}
	function ParamsOut2In_ParamsInInit(sender, args)
	{
		var paramProps = args.ParameterInProperties;
		paramsInLength = paramProps.length		
		if (paramProps != null && paramProps.length > 0)
			for (var i = 0; i < paramProps.length; i++)
				for (var j= 0; j < paramsIn.length; j++)
					if ((paramProps[i]).ParameterName == paramsIn[j])
						paramsInIndex[j] = i;
	}
	function ParamsOut2In_ParamsOutProviderInit(sender, args)
	{
		var paramProps = args.ParameterOutProperties;
		if (paramProps != null && paramProps.length > 0)
			for (var i = 0; i < paramProps.length; i++)
				for (var j= 0; j < paramsOut.length; j++)
					if ((paramProps[i]).ParameterName == paramsOut[j])
						paramsOutIndex[j] = i;
	}
	function ParamsOut2In_ParamsInReadyArgs(value)
	{
		this.ParameterValues = value;
	}
	function ParamsOut2In_ParamsOutReady(sender, args)
	{
		var tempParams = args.ParameterValues;
		if (tempParams != null && tempParams.length > 0)
		{
			var paramValues = new Array(paramsInLength);
			for (var i = 0; i < paramsInLength; i++)
			{
				var found = false;
				for (var j= 0; j < paramsInIndex.length; j++)
				{
					if (paramsInIndex[j] == i)
					{
						paramValues[i] = tempParams[paramsOutIndex[j]];
						found = true;
					}
				}
				if (!found)
					paramValues[i] = "";
			}
			WPSC.RaiseConnectionEvent(name, "ParametersInReady", new ParamsOut2In_ParamsInReadyArgs(paramValues));
		}
	}
}
var MSOLayout_inDesignMode = false;
var MSOLayout_currentDragMode=0;
var MSOLayout_zoneDragOver=0;
var MSOLayout_rowToDrop=0;
var MSOLayout_cellToDrop=0;
var MSOLayout_oDropLocation=0;
var MSOLayout_iBar=document.createElement("div");
var MSOLayout_horzZoneIBar=0;
var MSOLayout_vertZoneIBar=0;
var MSOLayout_horzBodyZoneIBar=0;
var MSOLayout_vertBodyZoneIBar=0;
var MSOLayout_moveObject=0;
var MSOLayout_maintainOriginalZone=0;
var MSOLayout_topObject = document.body;
var MSOLayout_galleryView = 0;
var MSOLayout_unsavedChanges = new Array();
var MSOLayout_FormSubmit=null;
var MenuWebPartID=null;
var MenuWebPart=null;
var MSOConn_SourceWpNode = null;
var MSOConn_TargetWpNode = null;
var MSOConn_XformInfo1 = null;
var MSOConn_XformInfo2 = null;
var MSOConn_ConnCancelled = false;
var MSOConn_MultipleTargetGroups = false;
var MSOConn_TargetGroupNode = null;
var MSOConn_SourceGroupNode = null;
var MSOConn_BackButtonClicked = false;
function MSOLayout_ToggleLayoutMode()
{
	var inDesignMode = document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value;
	if(inDesignMode != 1) 
	{
		document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value = 1;
		document.forms[MSOWebPartPageFormName].submit();
	}
	else
	{
		document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value = 0;
		document.forms[MSOWebPartPageFormName].submit();
	}
}
function MSOLayout_SetupLayoutFlags()
{
	MSOLayout_inDesignMode = true;
	MSOLayout_topObject = (document.body.all.item('MSOTlPn_WebPartPageDiv') != null) ? 
								document.body.all.item('MSOTlPn_WebPartPageDiv') :
								document.body;
}
function MSOLayout_GetRealOffset(StartingObject,OffsetType, EndParent)
{
	var realValue = 0;
	if(!EndParent) EndParent = document.body;
	for (var currentObject = StartingObject; currentObject != EndParent && currentObject != document.body; currentObject = currentObject.offsetParent)
	{
		realValue += eval('currentObject.offset' + OffsetType)
	}
	return realValue;
}
function MSOLayout_MoveWebPartStart(ZoneTableCell, WebPartCaption, Gallery)
{
	if (event.button !=1) return;
	MSOLayout_currentDragMode = 'move';
	document.selection.empty();
	MSOLayout_galleryView = (Gallery == true) ? true : false;
	MSOLayout_CreateDragObject(WebPartCaption);
	MSOLayout_CreateIBar();
	MSOLayout_oDropLocation = ZoneTableCell;
	MSOLayout_maintainOriginalZone = (ZoneTableCell.allowZoneChange == '0') ? MSOLayout_GetParentTable(ZoneTableCell) : '0';
	if (MSOLayout_galleryView && ZoneTableCell.dzc != null)
	{
		var zones = document.all['MSOZone'];
		if (zones != null && zones.length > 1)
		{
			for (i=0; i<zones.length; i++)
				if (zones[i].zoneID == ZoneTableCell.zoneid)
				{
					MSOLayout_maintainOriginalZone = zones[i];
					break;
				}
		}
	}
	MSOLayout_iBar.goodDrop = 'false';
	var zone = MSOLayout_GetParentTable(ZoneTableCell);
	if(zone.id == 'MSOZone')
	{
		MSOLayout_zoneDragOver = zone;
		MSOLayout_zoneDragOver.className = "ms-SPZoneSelected";
	}
	if(!MSOLayout_galleryView)
	{
		MSOLayout_MoveIBar(ZoneTableCell);
	}
	document.body.attachEvent('ondragover', MSOLayout_MoveWebPartBodyDragOver);
	var oldDragEnd = document.body.ondragend;
	var oldDrop = document.body.ondrop;
	document.body.ondragend = new Function("window.event.returnValue = false;");
	document.body.ondrop = new Function("MSOLayout_iBar.goodDrop = 'true';");
	ZoneTableCell.ondragstart = new Function("try {event.dataTransfer.effectAllowed = 'move';} catch (exception) {}");
	ZoneTableCell.attachEvent("ondrag",MSOLayout_MoveDragObject);
	ZoneTableCell.dragDrop();
	document.body.detachEvent('ondragover', MSOLayout_MoveWebPartBodyDragOver);
	document.body.ondragend = oldDragEnd;
	document.body.ondrop = oldDrop;
	ZoneTableCell.detachEvent("ondrag",MSOLayout_MoveDragObject);
	MSOLayout_moveObject.style.display = 'none';
	MSOLayout_currentDragMode = 0;
	if(navigator.userAgent.toLowerCase().indexOf("msie 5.5") != -1)
	{
		ZoneTableCell.swapNode(ZoneTableCell);
	}
	event.returnValue = false;
}
function MSOLayout_MoveWebPartDragZoneEnter(ZoneTable)
{
	if(MSOLayout_currentDragMode != 'move') return;
	if(ZoneTable != MSOLayout_zoneDragOver)
	{
		MSOLayout_zoneDragOver.className = 'ms-SPZone';
		MSOLayout_zoneDragOver = ZoneTable;
		event.dataTransfer.dropEffect = 'move';
	}
	MSOLayout_MoveWebPartStopEventBubble()
}
function MSOLayout_MoveWebPartDragEnter(ZoneTableCell)
{
	if(MSOLayout_currentDragMode != 'move') return;
	event.dataTransfer.dropEffect = 'move';
	MSOLayout_cellToDrop = ZoneTableCell.cellIndex;
	MSOLayout_rowToDrop = MSOLayout_GetParentRow(ZoneTableCell).rowIndex;
}
function MSOLayout_MoveWebPartDragOver(ZoneTableCell,NeedsSetup)
{
	if(MSOLayout_currentDragMode != 'move') return;
	event.dataTransfer.dropEffect = 'move';
	var needSetup = (NeedsSetup == "True")? true:false;
	MSOLayout_SetupDropLocation(ZoneTableCell, needSetup);
	MSOLayout_oDropLocation = MSOLayout_zoneDragOver.rows[MSOLayout_rowToDrop].cells[MSOLayout_cellToDrop];
	MSOLayout_MoveIBar(MSOLayout_oDropLocation);
	if(MSOLayout_galleryView && MSOLayout_maintainOriginalZone=='0') MSOLayout_UpdateZoneDropDown();
	MSOLayout_MoveWebPartStopEventBubble()
}
function MSOLayout_MoveWebPartBodyDragOver()
{
	if(MSOLayout_currentDragMode != 'move') return;
	event.dataTransfer.dropEffect = 'none';
	MSOLayout_iBar.style.display = 'none';
	if(MSOLayout_zoneDragOver.className != 'ms-SPZone') MSOLayout_zoneDragOver.className = 'ms-SPZone';
	window.event.returnValue = false;
}
function MSOLayout_MoveWebPartStopEventBubble()
{
	if(MSOLayout_currentDragMode != 'move' || MSOLayout_iBar.style.display == 'none')  return;
	window.event.returnValue = false;
	window.event.cancelBubble = true;
}
function MSOLayout_MoveWebPart(OriginalTableCell,DestinationTableCell)
{
	MSOLayout_iBar.style.display = 'none';
	MSOLayout_zoneDragOver.className = 'ms-SPZone';
	if(MSOLayout_currentDragMode != 'move' 
		|| MSOLayout_iBar.goodDrop != 'true'
		|| OriginalTableCell == DestinationTableCell) return;
	var newTableCell;									
	var originalZone = MSOLayout_GetParentTable(OriginalTableCell);	
	var originalIndex = (OriginalTableCell.orientation == 'Horizontal') ? OriginalTableCell.cellIndex : OriginalTableCell.parentElement.rowIndex;
	var destinationZone;									
	var destinationIndex;									
	destinationZone = MSOLayout_GetParentTable(DestinationTableCell);
	var zonesChanged = (destinationZone != originalZone);
	if(DestinationTableCell.orientation == 'Horizontal')
	{
		destinationIndex = DestinationTableCell.cellIndex;
		newTableCell = MSOLayout_GetParentRow(DestinationTableCell).insertCell(destinationIndex);
	}
	else
	{
		destinationIndex = DestinationTableCell.parentElement.rowIndex;
		newTableCell = destinationZone.insertRow(MSOLayout_GetParentRow(DestinationTableCell).rowIndex).insertCell();
	}
	newTableCell.swapNode(OriginalTableCell);
	if(OriginalTableCell.orientation == 'Horizontal') newTableCell.removeNode(true);
	else MSOLayout_GetParentRow(newTableCell).removeNode(true);
	OriginalTableCell.orientation = DestinationTableCell.orientation;
	if(zonesChanged)
	{
		var originalEmptyZoneText = originalZone.all.item('MSOZoneCell_emptyZoneText');
		var destinationEmptyZoneText = destinationZone.all.item('MSOZoneCell_emptyZoneText')
		if(originalEmptyZoneText != null) 
		{
			originalEmptyZoneText.webPartsInZone--;
			if(originalEmptyZoneText.webPartsInZone == 0)
			{
				originalEmptyZoneText.style.display = '';
				originalEmptyZoneText.parentElement.style.padding = '';
			}
		}
		if(destinationEmptyZoneText != null)
		{
			destinationEmptyZoneText.webPartsInZone++;
			destinationEmptyZoneText.style.display = 'none';
			destinationEmptyZoneText.parentElement.style.padding = '0';
		}
	}
	if(zonesChanged || (destinationIndex != originalIndex && destinationIndex != originalIndex+1))
	{
		if(originalZone != destinationZone) 
		{
			MSOLayout_AddChange(eval(OriginalTableCell.relatedWebPart), "ZoneID", destinationZone.zoneID);
			MSOLayout_UpdatePartOrderAfterMove(originalZone, 0);
		}
		MSOLayout_UpdatePartOrderAfterMove(destinationZone, 0);
	}
}
function MSOLayout_UpdatePartOrderAfterMove(Zone, StartingIndex)
{
	var index;
	if(Zone.orientation == 'Horizontal')
	{
		var parentRow = Zone.rows[0];
		for(index = StartingIndex; index < parentRow.cells.length; index++)
		{
			MSOLayout_AddChange(eval(parentRow.cells[index].relatedWebPart), "PartOrder", index+1);
		}
	}
	else
	{
		for(index = StartingIndex; index < Zone.rows.length; index++)
		{
			MSOLayout_AddChange(eval(Zone.rows[index].cells[0].relatedWebPart), "PartOrder", index+1);
		}
	}
}
function MSOLayout_CreateDragObject(WebPartTitle)
{	
	var titleText;
	if(!MSOLayout_moveObject)
	{
		MSOLayout_moveObject = document.body.insertAdjacentElement("afterBegin", document.createElement('DIV'));
		MSOLayout_moveObject.className = 'UserCellSelected';
		MSOLayout_moveObject.style.cssText= "font-size:8pt;position:absolute;overflow:hidden;display:none;z-index:100";
		MSOLayout_moveObject.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=75)";
		titleText = MSOLayout_moveObject.insertBefore(document.createElement('NOBR'));
		titleText.style.cssText = "padding-top:2px;width:147px;height:1.5em;overflow:hidden;text-overflow:ellipsis";
	}
	else titleText = MSOLayout_moveObject.children(0);
	titleText.innerText = WebPartTitle;
}
function MSOLayout_MoveDragObject()
{
	if(MSOLayout_currentDragMode != 'move') return;
	if(MSOLayout_moveObject.style.display == 'none') MSOLayout_moveObject.style.display = '';
	if(MSOLayout_moveObject.style.width == '') 
	{
		MSOLayout_moveObject.realWidth = MSOLayout_moveObject.offsetWidth;
		MSOLayout_moveObject.realHeight = MSOLayout_moveObject.offsetHeight;
	}
	var newWidth = MSOLayout_moveObject.realWidth;
	var newHeight = MSOLayout_moveObject.realHeight;
	var newLeft = event.clientX + document.body.scrollLeft - (newWidth / 2);
	var newTop = event.clientY + document.body.scrollTop + 1;
	if(newLeft + newWidth > document.body.scrollWidth) newWidth -= (newLeft + newWidth - document.body.scrollWidth);
	if(newTop + newHeight > document.body.scrollHeight) newHeight -= (newTop + newHeight - document.body.scrollHeight);
	if(newHeight <= 0 || newWidth <= 0) 
	{
		MSOLayout_moveObject.style.display = 'none'; 
		newWidth = newHeight = 0;
	}
	else MSOLayout_moveObject.style.display = '';
	MSOLayout_moveObject.style.width = newWidth;
	MSOLayout_moveObject.style.height = newHeight;
	MSOLayout_moveObject.style.pixelLeft = newLeft;
	MSOLayout_moveObject.style.pixelTop = newTop;
}
function MSOLayout_CreateIBar()
{
	if(!MSOLayout_vertZoneIBar || !MSOLayout_horzZoneIBar)
	{
		var iBarBuilder = document.createElement('TABLE');
		iBarBuilder.style.cssText = "font-size:1pt; position:absolute; display:none; border-collapse:collapse";
		iBarBuilder.className = 'ms-SPZoneIBar';
		iBarBuilder.cellSpacing = '0';
		iBarBuilder.cellPadding = '0';
		iBarBuilder.attachEvent('ondragenter', MSOLayout_MoveWebPartStopEventBubble);
		iBarBuilder.attachEvent('ondragover', MSOLayout_MoveWebPartStopEventBubble);
		var insideIBarCell = iBarBuilder.insertRow().insertCell();
		insideIBarCell.align = 'center';
		var insideIBar = insideIBarCell.insertBefore(document.createElement('DIV'));
		insideIBar.id = "MSOLayout_insideIBar";
		insideIBar.className = 'ms-SPZoneIBar';
		insideIBar.style.backgroundColor = iBarBuilder.currentStyle.borderColor;
		insideIBar.style.background = "transparent";
		insideIBar.style.borderWidth = "2px";
		insideIBar.style.position = "relative";		
		MSOLayout_horzZoneIBar = MSOLayout_topObject.appendChild(iBarBuilder.cloneNode(true));
		MSOLayout_vertZoneIBar = MSOLayout_topObject.appendChild(iBarBuilder.cloneNode(true));
		var insideHorzIBar = MSOLayout_horzZoneIBar.all["MSOLayout_insideIBar"];
		var insideVertIBar = MSOLayout_vertZoneIBar.all["MSOLayout_insideIBar"];
		MSOLayout_horzZoneIBar.style.width = 6;
		MSOLayout_horzZoneIBar.style.borderStyle = "solid none";
		insideHorzIBar.style.height = '100%';
		insideHorzIBar.style.width = '33%';
		insideHorzIBar.style.borderStyle = "none solid none none";
		insideHorzIBar.style.posTop = 0;
		MSOLayout_vertZoneIBar.style.height = 6;
		MSOLayout_vertZoneIBar.style.borderStyle = "none solid";
		insideVertIBar.style.width = '100%';
		insideVertIBar.style.height = '2';
		insideVertIBar.style.borderStyle = "solid none none none";
		insideVertIBar.style.posTop = 1;
		if(MSOLayout_topObject != document.body)
		{
			MSOLayout_horzBodyZoneIBar = document.body.appendChild(MSOLayout_horzZoneIBar.cloneNode(true));
			MSOLayout_vertBodyZoneIBar = document.body.appendChild(MSOLayout_vertZoneIBar.cloneNode(true));
		}
	}
	MSOLayout_iBar = MSOLayout_vertZoneIBar;
}
function MSOLayout_MoveIBar(ZoneTableCell)
{
	if(MSOLayout_iBar) MSOLayout_iBar.style.display = 'none';
	var insideLayoutDiv = MSOLayout_topObject.contains(ZoneTableCell);
	if(MSOLayout_maintainOriginalZone == '0' || MSOLayout_GetParentTable(ZoneTableCell) == MSOLayout_maintainOriginalZone)
	{
		var insideIBar;
		if(ZoneTableCell.orientation == 'Horizontal')
		{
			var rightOffset = ((document.dir == "rtl") ? ZoneTableCell.offsetWidth - ((ZoneTableCell.cellIndex == 0) ? 3 : 0) : 0); 
			MSOLayout_iBar = (insideLayoutDiv) ? MSOLayout_iBar = MSOLayout_horzZoneIBar : MSOLayout_horzBodyZoneIBar;
			insideIBar = MSOLayout_iBar.all["MSOLayout_insideIBar"];
			MSOLayout_iBar.style.pixelLeft = MSOLayout_GetRealOffset(ZoneTableCell, 'Left', MSOLayout_topObject) - ((ZoneTableCell.cellIndex == 0) ? 0 : 3);
			MSOLayout_iBar.style.pixelLeft += rightOffset;
			MSOLayout_iBar.style.pixelTop = MSOLayout_GetRealOffset(MSOLayout_zoneDragOver, 'Top', MSOLayout_topObject) + 1;
			MSOLayout_iBar.style.height = MSOLayout_zoneDragOver.clientHeight;
			if(ZoneTableCell.id == "MSOZone_EmptyZoneCell")
			{
				var emptyZoneText = ZoneTableCell.all.item('MSOZoneCell_emptyZoneText');
				if(emptyZoneText != null && emptyZoneText.webPartsInZone > 0)
				{
					MSOLayout_iBar.style.pixelLeft -= 3;
				}
			}
		}
		else
		{
			MSOLayout_iBar = (insideLayoutDiv) ? MSOLayout_vertZoneIBar : MSOLayout_vertBodyZoneIBar;
			insideIBar = MSOLayout_iBar.all["MSOLayout_insideIBar"];
			MSOLayout_iBar.style.pixelLeft = MSOLayout_GetRealOffset(MSOLayout_zoneDragOver, 'Left', MSOLayout_topObject) + 1;
			MSOLayout_iBar.style.pixelTop = MSOLayout_GetRealOffset(ZoneTableCell, 'Top', MSOLayout_topObject) - ((MSOLayout_GetParentRow(ZoneTableCell).rowIndex == 0) ? 0 : 4);
			MSOLayout_iBar.style.width = MSOLayout_zoneDragOver.clientWidth;
			if(ZoneTableCell.id == "MSOZone_EmptyZoneCell")
			{
				MSOLayout_iBar.style.pixelTop -= 1;
			}
		}
		if(MSOLayout_zoneDragOver.className != 'ms-SPZoneSelected') MSOLayout_zoneDragOver.className = 'ms-SPZoneSelected';
		MSOLayout_iBar.style.display = 'inline';
	}
}
function MSOLayout_UpdateZoneDropDown()
{
	var dropd = document.all[zoneChooserID];
	if(dropd != null)
	{
		for (i=0; i<dropd.options.length; i++)
		{
			if (dropd.options[i].value == MSOLayout_zoneDragOver.zoneID)
				dropd.options[i].selected = true;
		}
	}
}
function MSOLayout_SetupDropLocation(ZoneTableCell, CheckSize)
{
	if(ZoneTableCell.orientation == 'Vertical')
	{
		var parentRow = MSOLayout_GetParentRow(ZoneTableCell);
		if(!parentRow) return;
		if(CheckSize && (event.clientY + MSOLayout_topObject.scrollTop - MSOLayout_GetRealOffset(ZoneTableCell, 'Top')) > (ZoneTableCell.offsetHeight / 2))
			MSOLayout_rowToDrop = parentRow.rowIndex + 1;
		else 
			MSOLayout_rowToDrop = parentRow.rowIndex;
	}
	else
	{
		var rtlPage = (document.dir == "rtl"),	
			maxCells = ZoneTableCell.parentElement.childNodes.length,
			nextCellIndex = ZoneTableCell.cellIndex + 1;
		if(CheckSize && (event.clientX + MSOLayout_topObject.scrollLeft - MSOLayout_GetRealOffset(ZoneTableCell, 'Left')) > (ZoneTableCell.offsetWidth / 2))
			MSOLayout_cellToDrop = (rtlPage) ? ZoneTableCell.cellIndex : ZoneTableCell.cellIndex + 1;
		else 
		{
			if (rtlPage)	
				MSOLayout_cellToDrop = (nextCellIndex >= maxCells) ? ZoneTableCell.cellIndex : ZoneTableCell.cellIndex + 1;
			else
				MSOLayout_cellToDrop = ZoneTableCell.cellIndex;
		}
	}
}
function MSOLayout_UpdatePropertySheet(WebPart,PropertyName,PropertyValue)
{
	var toolPane = document.all.item("MSOTlPn_MainTD");
	if(WebPart.SelectedWebPart && toolPane)
	{
		for(Elements = toolPane.all, ElementIndex = 0; ElementIndex < Elements.length; ElementIndex++)
		{
			if(Elements[ElementIndex].layoutID == PropertyName)
			{
				if(PropertyName == "FrameState")
				{
					for(radioElements = Elements[ElementIndex].all, radioIndex = 0; radioIndex <  radioElements.length; radioIndex++)
					{
						if(radioElements[radioIndex].value == PropertyValue)
						{
							radioElements[radioIndex].checked = true;
							break;
						}
					}
				}
				else if (PropertyName == "Height" || PropertyName == "Width")
				{
					for(radioElements = Elements[ElementIndex].all, radioIndex = 0; radioIndex <  radioElements.length; radioIndex++)
					{
						if(radioElements[radioIndex].id.indexOf("YesOption") != -1)
						{
							radioElements[radioIndex].checked = true;
						}
						else if(radioElements[radioIndex].id.indexOf("SizeTextBox") != -1)
						{
							radioElements[radioIndex].value = PropertyValue;
						}
						else if(radioElements[radioIndex].id.indexOf("UnitsDropdown") != -1)
						{
							radioElements[radioIndex].value = "Pixel";
						}
					}
				}
				else
				{
					Elements[ElementIndex].value = PropertyValue;
				}
			}
		}
	}
}
function MSOLayout_MinimizeRestore(WebPart)
{
	var newValue;
	var newValueIndex;
	if(WebPart.style.display != 'none')
	{
		newValue = 'Minimized';
		newValueIndex = 1;
		WebPart.style.display = 'none';
	}
	else
	{
		newValue = 'Normal';
		newValueIndex = 0;
		WebPart.style.display = '';
	}
	MSOLayout_UpdatePropertySheet(WebPart, "FrameState", newValue);
	MSOLayout_AddChange(WebPart, "frameState", newValueIndex)
}
function MSOLayout_PageViewerMinimizeRestore(WebPart, PageViewerIFrameID)
{
	var PageViewerIFrame = document.all.item(PageViewerIFrameID);
	if (PageViewerIFrame != null)
	{
		if(WebPart.style.display != 'none')
		{
			if (PageViewerIFrame.src != PageViewerIFrame.ddf_src)
			{
				PageViewerIFrame.src = PageViewerIFrame.ddf_src;
			}
		}
	}
}
function MSOLayout_FindAncestorByAttribute(Element, AttributeName)
{
	while (Element != null)
	{
		if (Element.getAttribute(AttributeName) != null)
			break;
		Element = Element.parentElement;	
	}
	return Element;
}
function MSOLayout_MinimizeRestoreToolPart(ToolPart, partTitle)
{
	if (event.keyCode != 0 && event.keyCode != 13 && event.keyCode != 32)
		return;
	var display = null;
	var imgElement = event.srcElement;
	var tdElement = event.srcElement;
	if (imgElement.tagName == 'TD')
	{
		imgElement = imgElement.children.tags('IMG')[0];
	}
	else
	{
		tdElement = imgElement.parentElement;
	}
	var part = MSOLayout_FindAncestorByAttribute(document.all.item(ToolPart),"ToolPartExpandCollapse");
	var image = imgElement.src;
	var lastSlash = image.lastIndexOf('/');
	var path = image.substring(0, lastSlash + 3);
	var lastChar = image.charAt(image.length - 5);
	image = image.substring(lastSlash + 3,image.length - 5);
	display = 'inline';	
	if(part.style.display != 'none')
	{
		display = 'none';
	}
	var minMax;
	var tooltipString;
	if (image == 'Max')
	{
		minMax = 'Min';
		tooltipString = MSOStrings.ToolPartCollapseToolTip;
	}
	else
	{
		minMax = 'Max';
		var tooltipString = MSOStrings.ToolPartExpandToolTip;
	}
	tooltipString = tooltipString.replace("%0", partTitle);
	imgElement.alt = tooltipString;
	tdElement.title = tooltipString;
	part.style.display = display;
	imgElement.src = path + minMax + lastChar + '.gif';
}
function MSOLayout_RemoveWebPart(webPart)
{
	MSOLayout_AddChange(webPart, "isIncluded", "False")
	document.forms[MSOWebPartPageFormName].MSOWebPartPage_PostbackSource.value=19;
	if(webPart.SelectedWebPart) MSOTlPn_onToolPaneCloseClick();
	else document.forms[MSOWebPartPageFormName].submit();
}
function MSOLayout_RefreshIFrame(IFrame)
{
	document.forms[MSOWebPartPageFormName].MSOWebPartPage_PostbackSource.value=23;
	IFrame.src = IFrame.src;
}
function MSOLayout_GetStyleFromClass(sClass,sRule)
{
	document.body.insertAdjacentHTML( 'beforeEnd', "<div style = 'display:none' id='temp' class='" + sClass + "'></div>");
	var sReturnValue = eval('temp.currentStyle.' + sRule );
	temp.removeNode();
	return sReturnValue;
}
function MSOLayout_AddChange(WebPart,Property,NewValue)
{
	if(!WebPart) return;
	var WebPartGUID = WebPart.WebPartID;
	if(WebPart.layoutChanges)
	{
		var propertyIndex = MSOLayout_SearchArray(WebPart.layoutChanges,Property);
		if(propertyIndex != -1) WebPart.layoutChanges[propertyIndex + 1] = NewValue;
		else
		{
			WebPart.layoutChanges.push(Property);
			WebPart.layoutChanges.push(NewValue);
		}
	}
	else
	{
		WebPart.layoutChanges = new Array();
		WebPart.layoutChanges.push(Property); 
		WebPart.layoutChanges.push(NewValue);	
	}
	if(MSOLayout_SearchArray(MSOLayout_unsavedChanges,WebPartGUID) == -1)
	{
		MSOLayout_unsavedChanges.push(((MSOLayout_unsavedChanges.length) ? "|" : "") + WebPartGUID);
		MSOLayout_unsavedChanges.push(WebPart.layoutChanges);
	}
	document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value = MSOLayout_unsavedChanges;
	MSOLayout_UpdatePropertySheet(WebPart,Property,NewValue);
	if(MSOLayout_FormSubmit ==  null)
	{
		MSOLayout_FormSubmit = document.forms[MSOWebPartPageFormName].submit;
		document.forms[MSOWebPartPageFormName].submit = new Function("MSOLayout_OnSubmit(); MSOLayout_FormSubmit();");
		document.forms[MSOWebPartPageFormName].attachEvent("onsubmit", MSOLayout_OnSubmit);
		window.attachEvent("onunload", MSOLayout_SaveChanges);
	}
}
function MSOLayout_OnSubmit()
{
	window.detachEvent("onunload", MSOLayout_SaveChanges);
}
function MSOLayout_SaveChanges()
{
	if(document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges != null && document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value != "")
	{
		var pageUrl = document.URLUnencoded;
		var hashMarkExpression = /\#/;
		var hashMarkIndex = pageUrl.search(hashMarkExpression);
		if(hashMarkIndex != -1)
		{
			pageUrl = pageUrl.substring(0, hashMarkIndex);
		}
		pageUrl = encodeURI(pageUrl)
		var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		xmlhttp.Open('POST',pageUrl,false);
		var formData = '&__REQUESTDIGEST='+URLEncode(document.forms[MSOWebPartPageFormName].__REQUESTDIGEST.value) + '&MSOLayout_LayoutChanges='+URLEncode(document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.Send(formData);
		document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value = "";
	}
}
function MSOLayout_SearchArray(SearchArray, Value)
{
	for(var index = 0; index < SearchArray.length; index++)
	{
		if(SearchArray[index] == Value || SearchArray[index] == "#" + Value) return index;
	}
	return -1;
}
function MSOWebPartPage_OpenMenu(MenuToOpen,SourceElement,WebPart,InConnectionsMode)
{
	if(WebPart) 
	{
		MenuWebPart = WebPart
		MenuWebPartID = WebPart.WebPartID;
		var minOption = MenuToOpen.all.item('MSOMenu_Minimize');
		var restoreOption = MenuToOpen.all.item('MSOMenu_Restore');
		var closeOption = MenuToOpen.all.item('MSOMenu_Close');
		var deleteOption = MenuToOpen.all.item('MSOMenu_Delete');
		var exportOption = MenuToOpen.all.item('MSOMenu_Export');
		var resetPersOption = MenuToOpen.all.item('MSOMenu_RestorePartDefaults');
		var helpOption = MenuToOpen.all.item('MSOMenu_Help');
		var connectionOption = MenuToOpen.all.item('MSOMenu_Connections');
		if(minOption)
		{
			minOption.style.display = (WebPart.allowMinimize == 'false' || WebPart.style.display == 'none') ? 'none' : '';
		}
		if(restoreOption)
		{
			restoreOption.style.display = (WebPart.allowMinimize == 'false' || WebPart.style.display != 'none') ? 'none' : '';
		}
		if(closeOption)
		{
			closeOption.style.display = (WebPart.allowRemove == 'false') ? 'none' : '';
		}
		if(deleteOption)
		{
			deleteOption.style.display = (MSOLayout_inDesignMode && WebPart.allowDelete != 'false') ? '' : 'none';
		}
		if(exportOption)
		{
			exportOption.style.display = (WebPart.allowExport == 'false') ? 'none' : '';
		}
		if(helpOption)
		{
			helpOption.style.display = (WebPart.helpLink == null) ? 'none' : "";
		}
		if(resetPersOption)
		{
			resetPersOption.style.display = (MSOLayout_inDesignMode && WebPart.HasPers == 'true' && WebPart.OnlyForMePart != 'true') ? '' : 'none';
		}
		if(connectionOption)
		{
			connectionOption.style.display = (MSOLayout_inDesignMode ? '' : 'none');
		}
		if(InConnectionsMode != 'False')
		{	
			var connMenu = document.all.item('MSOMenu_Connections'+WebPart.id);
			if(connectionOption != null && connMenu != null)
			{	
				connectionOption.outerHTML = connMenu.innerHTML;
			}
		}
	}
	try
	{
		if (!MenuToOpen.isOpen()) MenuToOpen.show(SourceElement, true);
	}
	catch(e)
	{
	}
}
function  MSOConn_IsXFormNeeded()
{
	var tinterface = MSOConn_TargetGroupNode.selectSingleNode('tInterface');
	var xFormNeeded = false;
	var xFormNode = tinterface.selectSingleNode('xForm');
	if(xFormNode != null)
	{
		xFormNeeded = true;
		if(MSOConn_TargetGroupNode.getAttribute("isConn") == "True")
		{
			document.all.MSOConn_Button.value = "edit";
		}
		if(xFormNode.getAttribute("type") == "RowCellTransform")
		{
			MSOConn_ShowRowCellXForm(tinterface);
		}
		else if(xFormNode.getAttribute("type") == "RowFilterTransform")
		{
			MSOConn_ShowRowFilterXForm(tinterface);
		}
	}
	if(!xFormNeeded && MSOConn_TargetGroupNode.getAttribute("isConn") == "True" && MSOConn_BackButtonClicked == false)
	{
		document.all.MSOConn_Button.value = "remove";
	}
}
function  MSOConn_ShowRowFilterXForm(targetInterface)
{
	var rowProInitArgNode;
	var filConInitArgNode;
	var providerPart;
	var consumerPart;
	var sMatchInterfaceName = targetInterface.selectSingleNode("mi").getAttribute("id");
	var xFormInfo = targetInterface.selectSingleNode("mi").getAttribute("xInfo");
	var sInterfaceNode = MSOConn_SourceGroupNode.selectSingleNode("sInterfaces/sInterface[@id = '"+ sMatchInterfaceName +"']");
	rowProInitArgNode = targetInterface.selectSingleNode("InitEventArgs/RowProviderInitEventArgs");
	var isConnected = MSOConn_TargetGroupNode.getAttribute("isConn");
	if(rowProInitArgNode == null)
	{
		rowProInitArgNode = sInterfaceNode.selectSingleNode("InitEventArgs/RowProviderInitEventArgs");
		filConInitArgNode = targetInterface.selectSingleNode("InitEventArgs/FilterConsumerInitEventArgs");
		consumerPart = MSOConn_TargetWpNode;
		providerPart = MSOConn_SourceWpNode;
	}
	else 
	{
		filConInitArgNode = sInterfaceNode.selectSingleNode("InitEventArgs/FilterConsumerInitEventArgs");
		consumerPart = MSOConn_SourceWpNode;
		providerPart = MSOConn_TargetWpNode;
	}
	if(rowProInitArgNode != null && filConInitArgNode != null)
	{
		var rowFieldList = new Array();
		var rowFieldDisplayList = new Array();
		var rowFieldListNodes = rowProInitArgNode.selectNodes("Field");
		var filterFieldListNodes = filConInitArgNode.selectNodes("Field");
		var filterFieldList = new Array();
		var filterFieldDisplayList = new Array();
		if(rowFieldListNodes == null || rowFieldListNodes.length == 0)
		{
			var cref = rowProInitArgNode.getAttribute("cref");
			if(cref != null)
			{
				var strVal = cref+".GetInitEventArgs()";
				var args= null;
				try
				{
					args = eval(strVal);
				}
				catch(e)
				{ 
				}
				if(args != null)
				{
					rowFieldList = args.FieldList;
					rowFieldDisplayList = args.FieldDisplayList;
				}
			}
		}
		else
		{
			for(var i=0 ; i< rowFieldListNodes.length; i++)
			{
				var displayListSet = false;
				rowFieldList[i] = rowFieldListNodes[i].getAttribute("FieldName");
				if(rowFieldListNodes[i].getAttribute("FieldDisplayName") != null)
				{
					rowFieldDisplayList[i] = rowFieldListNodes[i].getAttribute("FieldDisplayName");
					displayListSet = true;
				}
				else if(displayListSet == true)
				{
					rowFieldDisplayList = null;
				}
			}
		}
		if(filterFieldListNodes == null || filterFieldListNodes.length == 0)
		{
			var cref = filConInitArgNode.getAttribute("cref");
			if(cref != null)
			{
				var strVal = cref+".GetInitEventArgs()";
				var args = null;
				try
				{
					args = eval(strVal);
				}
				catch(e)
				{ 
				}
				if(args != null)
				{
					filterFieldList = args.FieldList;
					filterFieldDisplayList = args.FieldDisplayList;
				}
			}
		}
		else
		{
			for(var i=0 ; i< filterFieldListNodes.length; i++)
			{
				var displayListSet = false;
				filterFieldList[i] = filterFieldListNodes[i].getAttribute("FieldName");
				if(filterFieldListNodes[i].getAttribute("FieldDisplayName") != null)
				{
					filterFieldDisplayList[i] = filterFieldListNodes[i].getAttribute("FieldDisplayName");
					displayListSet=true;
				}
				else if(displayListSet == true)
				{
					filterFieldDisplayList = null;
				}
			}
		}
		if((rowFieldList != null && rowFieldList.length != 0 && filterFieldList != null && filterFieldList.length != 0) || isConnected == 'True' )
		{
			var rfxFormInfo;
			var rowList = rowFieldList;
			if(rowFieldDisplayList != null && rowFieldDisplayList.length == rowFieldList.length)
			{
				rowList = rowFieldDisplayList;
			}
			var sFeatures = "dialogHeight:160px;dialogWidth:460px;help:no;status:no;scroll:no;resizable:no;";
			var url = document.all.MSOConn_RFProXform.value+"?part=provider";
			var arguments = new Array(rowList, isConnected, providerPart.getAttribute("title"), consumerPart.getAttribute("title"),MSOConn_MultipleTargetGroups, xFormInfo, rowFieldList);
			 var rfxFormInfoRowIndex = showModalDialog(url, arguments, sFeatures);	
			if(rfxFormInfoRowIndex == null || rfxFormInfoRowIndex == "undefined") 
			{
			  	MSOConn_ConnCancelled = true;
			}
			else if(rfxFormInfoRowIndex == "remove")
			{
				document.all.MSOConn_Button.value = "remove";
				rfxFormInfo= "";
			}
			else if(rfxFormInfoRowIndex == "back")
			{
				MSOConn_ShowTargetGroupsDialog();
				MSOConn_ShowXFormsAndPersist();
				MSOConn_ConnCancelled = true;
			}
			else 
			 {
				var filterList = filterFieldList;
				if(filterFieldDisplayList != null && filterFieldList.length == filterFieldDisplayList.length)
				{
					filterList = filterFieldDisplayList;
				}
				var selectedRowDisplayFieldName = rowList[rfxFormInfoRowIndex];
				arguments = new Array(filterList, selectedRowDisplayFieldName, isConnected,consumerPart.getAttribute("title"),xFormInfo, filterFieldList);
				var rfxFormInfoFilterIndex = showModalDialog(document.all.MSOConn_RFConXform.value, arguments ,sFeatures);
				if(rfxFormInfoFilterIndex == null)
				{
					MSOConn_ConnCancelled = true;
				}
				else if(rfxFormInfoFilterIndex == "remove")
				{
					document.all.MSOConn_Button.value = "remove";
					rfxFormInfo= "";
				}
				else if(rfxFormInfoFilterIndex == "back")
				{
					MSOConn_ShowRowFilterXForm(targetInterface);
				}
				else if(MSOConn_ConnCancelled != true)
				{
					MSOConn_XformInfo1 =filterFieldList[rfxFormInfoFilterIndex];
					MSOConn_XformInfo2 = rowFieldList[rfxFormInfoRowIndex];	
				}
			}
		}
		else
		{
			MSOConn_InitArgsError();
			MSOConn_ConnCancelled = true;
		}
	}
	else
	{
		MSOConn_InitArgsError();
		MSOConn_ConnCancelled = true;
	}
}
function  MSOConn_ShowRowCellXForm(targetInterface)
{
	var rowProInitArgNode= null;
	var cellConInitArgNode= null;
	var providerPart= null;
	var consumerPart= null;
	var rcxFormInfo = null;
	var sMatchInterfaceName = targetInterface.selectSingleNode("mi").getAttribute("id");
	var xFormInfo = targetInterface.selectSingleNode("mi").getAttribute("xInfo");
	var sInterfaceNode = MSOConn_SourceGroupNode.selectSingleNode("sInterfaces/sInterface[@id = '"+ sMatchInterfaceName +"']");
	rowProInitArgNode = targetInterface.selectSingleNode("InitEventArgs/RowProviderInitEventArgs");
	var isConnected = MSOConn_TargetGroupNode.getAttribute("isConn");
	if( rowProInitArgNode == null)
	{	
		rowProInitArgNode = sInterfaceNode.selectSingleNode("InitEventArgs/RowProviderInitEventArgs");
		cellConInitArgNode = targetInterface.selectSingleNode("InitEventArgs/CellConsumerInitEventArgs");
		providerPart = MSOConn_SourceWpNode;
		consumerPart =MSOConn_TargetWpNode;
	}
	else 
	{
		cellConInitArgNode = sInterfaceNode.selectSingleNode("InitEventArgs/CellConsumerInitEventArgs");
		providerPart = MSOConn_TargetWpNode;
		consumerPart = MSOConn_SourceWpNode;
	}
	if(rowProInitArgNode != null && cellConInitArgNode != null)
	{
		var fieldList = new Array();
		var fieldDisplayList = new Array();
		var fieldListNodes = rowProInitArgNode.selectNodes("Field");
		if(fieldListNodes == null || fieldListNodes.length == 0)
		{
			var cref = rowProInitArgNode.getAttribute("cref");
			if(cref != null)
			{
				var strVal =cref +".GetInitEventArgs()";
				var args = null;
				try
				{
					args = eval(strVal);
				}
				catch(e)
				{
				}
				if(args != null)
				{
					fieldList = args.FieldList;
					fieldDisplayList = args.FieldDisplayList;
				}
			}
		}
		else
		{
			for(var i=0 ; i< fieldListNodes.length; i++)
			{
				var displayListSet =false;
				fieldList[i] = fieldListNodes[i].getAttribute("FieldName");
				if(fieldListNodes[i].getAttribute("FieldDisplayName") != null)
				{
					fieldDisplayList[i] = fieldListNodes[i].getAttribute("FieldDisplayName");
					displayListSet = true;
				}
				else if(displayListSet == true)
				{
					fieldDisplayList = null;
				}
			}
		}
		var cell = cellConInitArgNode.getAttribute("FieldName");
		var cellDisplayName = cellConInitArgNode.getAttribute("FieldDisplayName");
		if(cell == null)
		{
			var cref =cellConInitArgNode.getAttribute("cref");
			if(cref != null)
			{
				var strVal =cref +".GetInitEventArgs()";
				var args = null;
				try
				{
					args = eval(strVal);
				}
				catch(e)
				{ 
				}
				if(args != null)
				{
					cell = args.FieldName;
					cellDisplayName = args.cellDisplayName;
				}
			}
		}
		if((fieldList != null  && fieldList.length != 0 && cell != null) || isConnected == 'True')
		{
			var cellName = cell;
			var rowList = fieldList;
			if(fieldDisplayList != null && fieldDisplayList.length == fieldList.length)
			{
				rowList = fieldDisplayList;
			}
			if(cellDisplayName != null)
			{
				cellName = cellDisplayName;
			}
			var arguments = new Array(rowList, cellName, isConnected , providerPart.getAttribute("title"), consumerPart.getAttribute("title"),MSOConn_MultipleTargetGroups, xFormInfo, fieldList);
			var sFeatures = "dialogHeight:160px;dialogWidth:460px;help:no;status:no;scroll:no;resizable:no;";
			var rcxFormInfoIndex = showModalDialog(document.all.MSOConn_RCXform.value,arguments,sFeatures);
			if(rcxFormInfoIndex == "undefined" || rcxFormInfoIndex == null)
			{
				MSOConn_ConnCancelled = true;
			}
			else if(rcxFormInfoIndex == "remove")
			{
				document.all.MSOConn_Button.value = "remove";
				rcxFormInfo="";
			}
			else if(rcxFormInfoIndex == "back")
			{
				MSOConn_ShowTargetGroupsDialog();
				MSOConn_ShowXFormsAndPersist();
				MSOConn_ConnCancelled = true;
			}
			else
			{
				rcxFormInfo = fieldList[rcxFormInfoIndex];
			}
		}
		else
		{	
			MSOConn_InitArgsError();
			MSOConn_ConnCancelled = true;
		}
	}
	else
	{
		MSOConn_InitArgsError();
		MSOConn_ConnCancelled = true;
	}
	if(rcxFormInfo != null && MSOConn_ConnCancelled != true)
	{
		MSOConn_XformInfo1 = rcxFormInfo;
	}
}
function MSOConn_InitArgsError()
{
	document.body.style.cursor = 'auto';
	alert(MSOStrings.NoInitArgs);
}
function MSOConn_ShowTargetGroupsDialog()
{
	var connected = false;
	if(MSOConn_TargetWpNode.selectNodes("tg") != null && MSOConn_TargetWpNode.selectNodes("tg").length != 0)
	{
		var targetGroupNodes = MSOConn_TargetWpNode.selectNodes("tg");
		if(targetGroupNodes != null)
		{
			for(i=0; i< targetGroupNodes.length;i++)
			{
				var tg = targetGroupNodes.item(i);
				if(tg.getAttribute('isConn') == 'True')
				{
					connected = true;
					MSOConn_TargetGroupNode = tg;
					break;
				}
			}
		}
		if(!connected)
		{
			var sFeatures = "dialogHeight:180px;dialogWidth:460px;help:no;status:no;scroll:no;resizable:no;";
			var rValues = showModalDialog(document.all.MSOConn_GroupUrl.value, MSOConn_TargetWpNode,sFeatures);
			var buttonClicked; 
			if(rValues != null)
			{
				document.all.MSOConn_Button.value = rValues[1];
				MSOConn_TargetGroupNode = rValues[0];
			}
			else 
			{
				MSOConn_ConnCancelled = true;
			}
		}
	}
	else
	{
		MSOConn_ConnCancelled = true;
	}
}
function MSOConn_ConfirmRemoveConnection(sourceTitle, targetTitle)
{
	var errMsg = MSOStrings.RemoveConnection;
	var titleArray = new Array();
	titleArray[0] = sourceTitle;
	titleArray[1] = targetTitle;
	if(titleArray != null)
	{
		for(var index=0; index < titleArray.length; index++)
		{
			errMsg = errMsg.replace("%" + index, titleArray[index]);
		}
	}
	return errMsg;
}
function MSOConn_ShowXFormsAndPersist()
{
	if(!MSOConn_ConnCancelled && MSOConn_TargetGroupNode != null)
	{
		if(document.all.MSOConn_Button.value != "remove")
		{
			MSOConn_IsXFormNeeded();
		}
		if(!MSOConn_ConnCancelled)
		{
			if(document.all.MSOConn_Button.value == "remove")
			{
				var errMsg = MSOConn_ConfirmRemoveConnection( MSOConn_SourceWpNode.getAttribute("title"), MSOConn_TargetWpNode.getAttribute("title"));
				if(confirm(errMsg))
				{
					MSOConn_PersistConnection();
				}
			}
			else
			{
				MSOConn_PersistConnection();
			}
		}
	}
	document.all.MSOConn_Button.value = "none";
	MSOConn_ConnCancelled = false;
	MSOConn_XformInfo1 = null;
	MSOConn_XformInfo2 = null;
	MSOConn_SourceWpNode = null;
	MSOConn_TargetWpNode = null;
	MSOConn_MultipleTargetGroups=false;
	MSOConn_TargetGroupNode= null;
	MSOConn_SourceGroupNode=null;
}
function MSOConn_CreateConnectionStep1(sourceGuid, 
												targetGuid, 
												sourceTitle, 
												targetTitle, 
												sGroupID, 
												connected, 
												isXFormNeeded, 
												tGroupID)
{		
	document.all.MSOConn_SWpId.value = sourceGuid;
	document.all.MSOConn_TWpId.value = targetGuid;
	document.all.MSOConn_SGroupId.value = sGroupID;
	document.all.MSOConn_Button.value = "save";
	document.all.MSOConn_TGroupId.value = "";
	document.all.MSOConn_XForm1.value = "";
	document.all.MSOConn_XForm2.value = "";
	var submit = true;
	if(tGroupID)
	{
		document.all.MSOConn_TGroupId.value = tGroupID;
	}
	if(connected == "True" && tGroupID != null && isXFormNeeded != null && isXFormNeeded == "False")
	{
		var errMsg = MSOConn_ConfirmRemoveConnection(sourceTitle, targetTitle);
		if(confirm(errMsg))
		{
			document.all.MSOConn_Button.value = "remove";
		}
		else
		{
			submit = false;
		}
	}
	else if(connected == "True" && tGroupID == null)
	{
		document.all.MSOConn_Button.value = "edit";
	}
	if(submit == true)
	{
		document.all.MSOConn_CreationStep.value = "1";
		document.body.style.cursor = "wait";
		document.forms[MSOWebPartPageFormName].submit();
	}
}
function MSOConn_CreateConnectionStep2(sourceGuid, targetGuid, sourceID, targetID, sGroupID, tGroupID)
{	
	var targetGroupID = null;
	var targetGpNode = null;
	document.all.MSOConn_SWpId.value = sourceGuid;
	document.all.MSOConn_TWpId.value = targetGuid;
	var sourceWpNode = MSOConn_Compatibility.selectSingleNode("ConnDesign/sWebPart[@id = 'MSOConn_" + sourceID + "']");
	if(sourceWpNode != null)
	{
		MSOConn_SourceWpNode = sourceWpNode;
		var sourceGpNode = sourceWpNode.selectSingleNode("sg[@id = '" + sGroupID + "']");
		if(sourceGpNode != null)
		{
			MSOConn_SourceGroupNode = sourceGpNode;
			var targetWpNode = sourceGpNode.selectSingleNode("tParts/tWebPart[@id = 'MSOConn_" + targetID + "']");
			if(targetWpNode != null)
			{
				MSOConn_TargetWpNode = targetWpNode;
				if(!tGroupID)
				{
					MSOConn_MultipleTargetGroups= true;
					MSOConn_ShowTargetGroupsDialog();
				}
				else 
				{
					MSOConn_TargetGroupNode = targetWpNode.selectSingleNode("tg[@id = '" + tGroupID + "']");
				}
				MSOConn_ShowXFormsAndPersist();			
			}
		}
	}
	document.body.style.cursor = "auto";
}
function MSOConn_PersistConnection()
{
	document.all.MSOConn_SGroupId.value = MSOConn_SourceGroupNode.getAttribute('id');
	document.all.MSOConn_TGroupId.value = MSOConn_TargetGroupNode.getAttribute('id');
	if(document.all.MSOConn_Button.value != "remove" && document.all.MSOConn_Button.value != "edit")
	{
		document.all.MSOConn_Button.value = "save";
	}
	if(MSOConn_XformInfo1 != null)
	{
		document.all.MSOConn_XForm1.value = MSOConn_XformInfo1;
	}
	if(MSOConn_XformInfo2 != null)
	{
		document.all.MSOConn_XForm2.value = MSOConn_XformInfo2;
	}
	document.forms[MSOWebPartPageFormName].submit();
}
function MSOLayout_ShowErrorDetails()
{
	var src = event.srcElement.parentElement;
	 MSOLayout_ShowHideErrorDetails(src.nextSibling, src);
}
function MSOLayout_HideErrorDetails()
{
	var src = event.srcElement.parentElement.parentElement;
	 MSOLayout_ShowHideErrorDetails(src.previousSibling, src);
}
function MSOLayout_ShowHideErrorDetails(show, hide)
{
	hide.style.display='none';
	show.style.display='inline';
}
var MSOTlPn_prevBuilder=null;
var MSOTlPn_prevWidth = 0;
var MSOTlPn_prevHeight = 0;
var MSOTlPn_shownViewChangeWarning = false;
var MSOWebPartPage_hideNextBeforeUnload = false;
var MSOWebPartPage_partDeleted = "";
function MSOLayout_CheckAndSaveChanges()
{
	if(document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges != null && document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value != "")
	{
		MSOLayout_SaveChanges();
	}
}
function MSOWebPartPage_ExportCheckWarning(address, hasPersonalizations)
{
	var doexport = true;
	if (hasPersonalizations)
	{
		if (!confirm(MSOStrings.ExportPersonalizationDialogText))
		{
			doexport = false;
		}
	}
	if (doexport)
	{
		var oldSavePerformed = false;
		if(typeof(MSOWPSC_SavePerformed) == "boolean")
		{
			oldSavePerformed = MSOWPSC_SavePerformed;
		}
		MSOWebPartPage_SetWindowLocation(address);
		if(typeof(MSOWPSC_SavePerformed) == "boolean")
		{
			MSOWPSC_SavePerformed = oldSavePerformed;
			MSOWebPartPage_hideNextBeforeUnload = true;
		}	
	}
}
function MSOMode_SetMode(bAllUsers)
{
	var newUrl = MSOMode_GetNewUrl(bAllUsers);
	MSOLayout_CheckAndSaveChanges();
	if(document.forms[MSOWebPartPageFormName].MSOTlPn_View.value != 4)
	{
		document.forms[MSOWebPartPageFormName].MSOTlPn_View.value = 0;
		var toolPaneViewExpression = /[& | \?]ToolPaneView=[-0-9A-Z]*/ig;
		newUrl = MSOMode_RemoveMode(newUrl, toolPaneViewExpression);
	}
	document.forms[MSOWebPartPageFormName].MSOWebPartPage_Shared.value = bAllUsers ? "true" : "false";
	document.forms[MSOWebPartPageFormName].action = newUrl;
	document.forms[MSOWebPartPageFormName].submit();
}
function MSOMode_GetNewUrl(bAllUsers, newUrl)
{
	if (newUrl==null)
	{
		newUrl = document.location.href;
	}
	var personalViewExpression = /[& | \?]PageView=Personal/ig;
	var allUsersViewExpression = /[& | \?]PageView=Shared/ig;
	var newMode = "PageView=" + (bAllUsers ? "Shared" : "Personal");
	newUrl = MSOMode_RemoveMode(newUrl, personalViewExpression);
	newUrl = MSOMode_RemoveMode(newUrl, allUsersViewExpression);
	newUrl = MSOMode_AddMode(newUrl, allUsersViewExpression, newMode);
	return newUrl;
}
function MSOMode_RemoveMode(newUrl, regExpression)
{
	var hashMarkExpression = /\#/;
	var hashMarkIndex = newUrl.search(hashMarkExpression);
	if(hashMarkIndex != -1)
	{
		newUrl = newUrl.substring(0, hashMarkIndex);
	}
	var questionMarkExpression = /\?/;
	var questionMarkIndex = newUrl.search(questionMarkExpression);
	if(questionMarkIndex != -1)
	{
		var pathString = newUrl.substring(0, questionMarkIndex);
		var queryString = newUrl.substring(questionMarkIndex, newUrl.length);
		queryString = queryString.replace(regExpression,'');
		if(queryString.length != 0 && queryString.charAt(0) != '?')
		{
			queryString = "?" + queryString;
		}
		newUrl = pathString + queryString;
	}
	return newUrl;
}
function MSOMode_AddMode(newUrl, regExpression, stringToAdd)
{
	var hashMarkExpression = /\#/;
	var hashMarkIndex = newUrl.search(hashMarkExpression);
	if(hashMarkIndex != -1)
	{
		newUrl = newUrl.substring(0, hashMarkIndex);
	}
	var questionMarkExpression = /\?/;
	var questionMarkIndex = newUrl.search(questionMarkExpression);
	if(questionMarkIndex == -1 )
	{
		newUrl += '?' + stringToAdd; 
	}
	else
	{
		var queryString = newUrl.substring(questionMarkIndex, newUrl.length);
		if(queryString.search(regExpression) == -1)
		{
			newUrl += '&' + stringToAdd; 
		}		
	}
	return newUrl;
}
function MSOPGrid_BuilderVisible(builderID)
{
	MSOPGrid_HidePrevBuilder();
	MSOTlPn_prevBuilder=null;
	builderID.style.display='inline';
}
function MSOPGrid_HidePrevBuilder()
{
	if(MSOTlPn_prevBuilder !=null)
	{
		eval(MSOTlPn_prevBuilder).style.display='none'; 
	}
}
function MSOPGrid_doBuilder(builderUrl, editorId, dialogFeatures)
{
	var pReturnValue=showModalDialog(builderUrl,editorId,dialogFeatures);
	editorId.value=pReturnValue;
//@cc_on
//@if (@_jscript_version >= 5)
//@		try { editorId.focus(); } catch (exception) {}
//@else
//@end
}
function MSOWebPartPage_RestorePageDefault()
{
	if(confirm(MSOStrings.ResetPagePersonalizationDialogText))
	{
		var newInput = document.createElement('INPUT');
		//@cc_on
		//@if (@_jscript_version >= 5)
		//@		try
		//@else
		//@end
		{
			newInput.type='hidden';
		}
		//@cc_on
		//@if (@_jscript_version >= 5)
		//@		catch(e){newInput.style.display = 'none';}
		//@else
		//@end
		newInput.name = 'MSOWebPartPage_RestorePageDefault';
		newInput.value = 'true';
		document.forms[MSOWebPartPageFormName].appendChild(newInput);
		if(document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges != null)
		{
			document.forms[MSOWebPartPageFormName].MSOLayout_LayoutChanges.value = ""
		}
		MSOMode_SetMode(false);
	}
}
function MSOWebPartPage_RestorePartDefaults(webPartID)
{
	if(confirm(MSOStrings.ResetPartPersonalizationDialogText))
	{
		var newInput = document.createElement('INPUT');
		//@cc_on
		//@if (@_jscript_version >= 5)
		//@		try
		//@else
		//@end
		{
			newInput.type='hidden';
		}
		//@cc_on
		//@if (@_jscript_version >= 5)
		//@		catch(e){newInput.style.display = 'none';}
		//@else
		//@end
		newInput.name = 'MSO_RestoreSettings';
		newInput.value = webPartID;
		document.forms[MSOWebPartPageFormName].appendChild(newInput);
		MSOMode_SetMode(false);
	}
}
function MSOWebPartPage_MenuDoPostBack(eventTarget, eventArgument) 
{
	var theform = document.forms[MSOWebPartPageFormName];
	var eventTargetField = theform.__EVENTTARGET;
	var eventArgumentField = theform.__EVENTARGUMENT;
	if(eventTargetField == null)
	{
		eventTargetField = document.createElement('INPUT');
		eventTargetField.style.display = 'none';
		eventTargetField.name = '__EVENTTARGET';
		document.forms[MSOWebPartPageFormName].appendChild(eventTargetField);
	}
	if(eventArgumentField == null)
	{
		eventArgumentField = document.createElement('INPUT');
		eventArgumentField.style.display = 'none';
		eventArgumentField.name = '__EVENTARGUMENT';
		document.forms[MSOWebPartPageFormName].appendChild(eventArgumentField);
	}
	eventTargetField.value = eventTarget;
	eventArgumentField.value = eventArgument;
	theform.submit();
}
function MSOWebPartPage_SignIn()
{
	var newInput = document.createElement('INPUT');
	//@cc_on
	//@if (@_jscript_version >= 5)
	//@		try
	//@else
	//@end
	{
		newInput.type='hidden';
	}
	//@cc_on
	//@if (@_jscript_version >= 5)
	//@		catch(e){newInput.style.display = 'none';}
	//@else
	//@end
	newInput.name = 'MSOWebPartPage_AnonymousAccessLogIn';
	newInput.value = "1";
	document.forms[MSOWebPartPageFormName].appendChild(newInput);
	document.forms[MSOWebPartPageFormName].submit();
}
function MSOWebPartPage_SetWindowLocation(newLocation)
{
	var newLocationLowerCase = newLocation.toLowerCase();
	if(newLocationLowerCase.indexOf('javascript:') == 0 || newLocationLowerCase.indexOf('vbscript:') == 0)
	{
		MSOWebPartPage_hideNextBeforeUnload = true;
	}
	window.location = newLocation;
}
function MSOWebPartPage_SetNewWindowLocation(newLocation)
{
	window.open(newLocation);
}
function MSOTlPn_onToolPaneCloseClick()
{
	var ToolPaneViewClosed = '0';
	var PostbackSourceSettingsHide = '49';
	MSOTlPn_ShowToolPaneWrapper(ToolPaneViewClosed, PostbackSourceSettingsHide);
}
function MSOPGrid_InvokeFPBuilder(type,arguments,editorCtrl)
{
	editorCtrl.value=window.external.InvokeBuilder(type,arguments,editorCtrl.id);
	editorCtrl.focus();
}
function MSOMenu_KeyboardClick(widget)
{
	for(var index=1; index < arguments.length; index++)
	{
		if(event.keyCode == arguments[index])
		{
			widget.click();
			event.returnValue = false;
			return;
		}
	}
}
function MSOTlPn_ToggleDisplay(strID,strImgName,strAnchorName,strAltExpandText,strAltCollapseText, strImageAnchorName)
{
	var fieldID= strID+'_STATEFIELD';
	var stateFieldValue;
	if( document.all.item(strID).style.display == 'none' )
	{
		document.all.item(strID).style.display = '';
		document.images[strImgName].src = '/_layouts/images/TPMin2.gif';
		document.images[strImgName].alt = strAltCollapseText;
		document.all.item(strImageAnchorName).title = strAltCollapseText;
		document.all.item(strAnchorName).title = strAltCollapseText;
		stateFieldValue = "1";
	}
	else
	{
		document.all.item(strID).style.display = 'none';
		document.images[strImgName].src = '/_layouts/images/TPMax2.gif';
		document.images[strImgName].alt = strAltExpandText;
		document.all.item(strImageAnchorName).title = strAltExpandText;
		document.all.item(strAnchorName).title= strAltExpandText;
		stateFieldValue = "0";
	}
	if(document.all[fieldID] != null)
	{
		document.all[fieldID].value = stateFieldValue;
	}
}			
var MSOTlPn_originalToolPaneWidth;
function MSOTlPn_onToolPaneMaxClick()
{
	var mod = 1;
	var minMaxIcon = document.all['MSOTlPn_minMaxIcon'];
	var newSrc = minMaxIcon.src.substring(0, minMaxIcon.src.lastIndexOf('/')+1);
	if (document.all['MSOTlPn_Tbl'].toolpaneWide == null)
	{
		MSOTlPn_originalToolPaneWidth = document.all['MSOTlPn_Tbl'].style.width;
		document.all['MSOTlPn_Tbl'].style.width = (parseInt(document.all['MSOTlPn_Tbl'].offsetWidth)+100).toString()+"px";
		newSrc += ((document.dir == "rtl") ? "tpmax.gif" : "tpmin.gif"); 
		minMaxIcon.title = MSOStrings.ToolPaneShrinkToolTip;
		minMaxIcon.alt = MSOStrings.ToolPaneShrinkToolTip;
		minMaxIcon.parentElement.title = MSOStrings.ToolPaneShrinkToolTip;
		document.all['MSOTlPn_Tbl'].toolpaneWide = "1";
	}
	else
	{
		document.all['MSOTlPn_Tbl'].style.width = MSOTlPn_originalToolPaneWidth;
		newSrc += ((document.dir == "rtl") ? "tpmin.gif" : "tpmax.gif"); 
		minMaxIcon.title = MSOStrings.ToolPaneWidenToolTip;
		minMaxIcon.alt = MSOStrings.ToolPaneWidenToolTip;
		minMaxIcon.parentElement.title = MSOStrings.ToolPaneWidenToolTip;
		document.all['MSOTlPn_Tbl'].toolpaneWide = null;
		mod = -1;
	}
	minMaxIcon.src = newSrc;
	var x = document.all['MSOTlPn_Tbl'];
	for(var i = 0; i < x.all.length; i++)
	{
//@cc_on
//@if (@_jscript_version >= 5)
//@		try
//@else
//@end
		{
			if (x.all(i).getAttribute('ms-TlPnWiden')=="true")
			{			
			   x.all(i).style.pixelWidth += mod*120;
			}
		}
//@cc_on
//@if (@_jscript_version >= 5)
//@		catch (e)
//@else
//@end
		{
		}
	}
	MSOTlPn_WindowResize();
}
function MSOTlPn_WindowResize()
{	
	var objToolPane = document.all['MSOTlPn_MainTD'];
	if (objToolPane == null || objToolPane.offsetWidth == 0) return;
	var widthToolPane = objToolPane.offsetWidth;
	var docFrame = (document.body.offsetWidth - document.body.clientWidth);
	var spDiv = document.all['MSOTlPn_WebPartPageDiv'];
	if ((spDiv.offsetWidth + objToolPane.offsetWidth) == document.body.clientWidth)
	{
		return;
	}
	var widthAncestors = 0;
	var next = spDiv.offsetParent;
	var elementWidth = 0;
	while (next != null)
	{
	    if (document.dir != "rtl")
	    {
		    elementWidth = next.offsetLeft + (next.offsetWidth - (next.clientLeft + next.clientWidth));
		    if (next.offsetParent != null)
		    {
		        elementWidth += next.offsetParent.clientLeft;
		    }
	    }
	    else
	    {
		    elementWidth = (next.offsetParent != null) ? (next.offsetParent.offsetWidth - (next.offsetLeft + next.offsetWidth)) : 0;
	    }
		widthAncestors += elementWidth;
		next = next.offsetParent;	
	}
	widthAncestors -= docFrame;
	var widthCenter = document.body.clientWidth - (widthAncestors + widthToolPane);
	if (widthCenter < 250) 
		widthCenter = 250;
	document.all['MSO_tblPageBody'].style.pixelWidth = widthCenter +widthToolPane;
	spDiv.style.pixelWidth = widthCenter;	
	if (window.event.type == "load" && document.all.MSOTlPn_TlPnCaptionSpan!= null)
		document.all.MSOTlPn_TlPnCaptionSpan.scrollIntoView(false);
}
function MSOTlPn_CheckUrl()
{
	var toolPaneViewExpression = /[& | \?]ToolPaneView=[-0-9A-Z]*/ig;
	var formAction = document.forms[MSOWebPartPageFormName].action;
	var newUrl;
	newUrl = MSOMode_RemoveMode(document.forms[MSOWebPartPageFormName].action, toolPaneViewExpression);
	document.forms[MSOWebPartPageFormName].action = newUrl;
}
function MSOTlPn_Resize(obj)
{
	if (MSOTlPn_prevWidth != obj.clientWidth)
	{
		MSOTlPn_prevWidth = obj.clientWidth;
		MSOTlPn_WindowResize();
	}
	if (MSOTlPn_prevHeight != document.body.clientHeight)
	{
		MSOTlPn_prevHeight = document.body.clientHeight;
		var spDiv = document.all['MSOTlPn_WebPartPageDiv'];
		spDiv.style.height = "100%";
		spDiv.style.height = spDiv.offsetHeight;
	}
}
function MSOWebPartPage_SetupFixedWidthWebParts()
{
	var fixedWidthTitles = document.all['MSOFixedWidthTitle'];
	if(fixedWidthTitles != null)
	{
		if(fixedWidthTitles.length > 0)
		{
			for(var elementIndex = 0; elementIndex < fixedWidthTitles.length; elementIndex++)
			{
				fixedWidthTitles[elementIndex].style.width = MSOWebPartPage_AllocateSpaceForFirstTD(fixedWidthTitles[elementIndex]);
			}
		}
		else
		{
			fixedWidthTitles.style.width = MSOWebPartPage_AllocateSpaceForFirstTD(fixedWidthTitles);
		}
	}
}
function MSOWebPartPage_AllocateSpaceForFirstTD(titleDiv)
{
	var tempElement = document.createElement("DIV");
	tempElement.style.width = titleDiv.fixedWidth;
	document.body.appendChild(tempElement);
	var pixelSize = tempElement.offsetWidth;
	document.body.removeChild(tempElement);
	var tempTable = MSOLayout_GetParentTable(titleDiv).cloneNode(true); 
	if(tempTable != 0) 
	{
		document.body.appendChild(tempTable);
		var tempTableRow = tempTable.rows(0);
		for(var index = 1; index < tempTableRow.cells.length; index++)
		{
			pixelSize -= tempTableRow.cells(index).offsetWidth;
		}
		document.body.removeChild(tempTable);
	}
	return (pixelSize < 1) ? 1 : pixelSize;
}
function MSOWebPartPage_FindControlName(name)
{
   var labelcollection = document.all.tags("label");
   if (labelcollection != null)
   {
	   for (i = 0; i < labelcollection.length; i++)
	   {
			var label = labelcollection[i];
			if (label.innerText == name)
			{
				if (label.htmlFor.indexOf("_EDITOR") != -1)
				{
					return(label.htmlFor);
				}
			}
	   }
   }
   return null;
}
function MSOTlPn_ListViewChange(strWarningText)
{
    if (MSOTlPn_shownViewChangeWarning)
        return;
    alert(strWarningText);
    MSOTlPn_shownViewChangeWarning = true;
}
function MSOTlPn_CustomWindowResize()
{
	var objToolPane = document.all['MSOTlPn_Tbl'];
	if (objToolPane == null || objToolPane.offsetWidth == 0) return;
	objToolPane.style.pixelWidth = document.body.clientWidth;
}
function MSOTlPn_ShowListFilter()
{
	if (document.all['WebPartListFilter'].style.display == 'none')
	{
		document.all['WebPartListFilter'].style.display = 'block'; 
		document.forms[MSOWebPartPageFormName].MSOGallery_FilterVisible.value = "true";
	}
	else
	{
		document.all['WebPartListFilter'].style.display = 'none';
		document.forms[MSOWebPartPageFormName].MSOGallery_FilterVisible.value = "false";
	}
}
function MSOGallery_GetCookie(name) 
{
	var prefix = name + "=";
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex == -1)
	{
		return null;
	}
	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
	if (cookieEndIndex == -1)
	{
		cookieEndIndex = document.cookie.length;
	}
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
} 
function MSOTlPn_ShowAllUsersToolPane(view, source, storageKey)
{
	MSOLayout_CheckAndSaveChanges();
	document.forms[MSOWebPartPageFormName].action = MSOMode_GetNewUrl(true);
	MSOTlPn_ShowToolPaneWrapper(view, source, storageKey);
}
function MSOLayout_MakeInvisibleIfEmpty()
{
	var allElements = document.getElementsByName("_invisibleIfEmpty"); 
	var agt = navigator.userAgent.toLowerCase();
	var isNav = ((agt.indexOf('mozilla')!=-1)&&((agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible')==-1)));
	var isIE = (agt.indexOf("msie")!=-1);
	for (var curElement = 0; curElement < allElements.length; curElement++) 
	{
		if ((isIE && allElements[curElement].childNodes.length == 0)
			|| (isNav && allElements[curElement].childNodes.length <= 1))
		{
			allElements[curElement].style.display = "none";
		}
	}
}
function MSOLayout_GetParentRow(tableCell)
{
	var parentRow = tableCell.parentElement;
	while(parentRow.tagName != "TR" && parentRow.tagName != "BODY") parentRow = parentRow.parentElement;
	if(parentRow.tagName != "TR")
	{
		return null;
	}
	else
	{
		return parentRow;
	}
}
function MSOLayout_GetParentTable(TableCell)
{
	for (var currentObject = TableCell; currentObject.tagName != 'TABLE'; currentObject = currentObject.parentElement)
	{
		if(currentObject == document.body) return 0;
	}
	return currentObject;
}

// SIG // Begin signature block
// SIG // MIIlSgYJKoZIhvcNAQcCoIIlOzCCJTcCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFKLyxSTfRM+g
// SIG // pELCmB7aBs5k6LHsoIIgDTCCBBIwggL6oAMCAQICDwDB
// SIG // AIs8PIgR0T72Y+zfQDANBgkqhkiG9w0BAQQFADBwMSsw
// SIG // KQYDVQQLEyJDb3B5cmlnaHQgKGMpIDE5OTcgTWljcm9z
// SIG // b2Z0IENvcnAuMR4wHAYDVQQLExVNaWNyb3NvZnQgQ29y
// SIG // cG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBSb290
// SIG // IEF1dGhvcml0eTAeFw05NzAxMTAwNzAwMDBaFw0yMDEy
// SIG // MzEwNzAwMDBaMHAxKzApBgNVBAsTIkNvcHlyaWdodCAo
// SIG // YykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsT
// SIG // FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMY
// SIG // TWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MIIBIjANBgkq
// SIG // hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQK9wXDmO/JO
// SIG // Gyifl3heMOqiqY0lX/j+lUyjt/6doiA+fFGim6KPYDJr
// SIG // 0UJkee6sdslU2vLrnIYcj5+EZrPFa3piI9YdPN4PAZLo
// SIG // lsS/LWaammgmmdA6LL8MtVgmwUbnCj44liypKDmo7EmD
// SIG // QuOED7uabFVhrIJ8oWAtd0zpmbRkO5pQHDEIJBSfqeeR
// SIG // KxjmPZhjFGBYBWWfHTdSh/en75QCxhvTv1VFs4mAvzrs
// SIG // VJROrv2nem10Tq8YzJYJKCEAV5BgaTe7SxIHPFb/W/uk
// SIG // ZgoIptKBVlfvtjteFoF3BNr2vq6Alf6wzX/WpxpyXDzK
// SIG // vPAIoyIwswaFybMgdxOF3wIDAQABo4GoMIGlMIGiBgNV
// SIG // HQEEgZowgZeAEFvQcO9pcp4jUX4Usk2O/8uhcjBwMSsw
// SIG // KQYDVQQLEyJDb3B5cmlnaHQgKGMpIDE5OTcgTWljcm9z
// SIG // b2Z0IENvcnAuMR4wHAYDVQQLExVNaWNyb3NvZnQgQ29y
// SIG // cG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBSb290
// SIG // IEF1dGhvcml0eYIPAMEAizw8iBHRPvZj7N9AMA0GCSqG
// SIG // SIb3DQEBBAUAA4IBAQCV6AvAjfOXGDXtuAEk2HcR81xg
// SIG // Mp+eC8s+BZGIj8k65iHy8FeTLLWgR8hi7/zXzDs7Wqk2
// SIG // VGn+JG0/ycyq3gV83TGNPZ8QcGq7/hJPGGnA/NBD4xFa
// SIG // IE/qYnuvqhnIKzclLb5loRKKJQ9jo/dUHPkhydYV81Ks
// SIG // bkMyB/2CF/jlZ2wNUfa98VLHvefEMPwgMQmIHZUpGk3V
// SIG // HQKl8YDgA7Rb9LHdyFfuZUnHUlS2tAMoEv+Q1vAIj364
// SIG // l8WrNyzkeuSod+N2oADQaj/B0jaK4EESqDVqG2rbNeHU
// SIG // HATkqEUEyFozOG5NHA1itwqijNPVVD9GzRxVpnDbEjqH
// SIG // k3Wfp9KgMIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj
// SIG // 7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNv
// SIG // cHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4x
// SIG // HjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
// SIG // MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5
// SIG // MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFow
// SIG // cDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1p
// SIG // Y3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0
// SIG // IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQg
// SIG // Um9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUA
// SIG // A4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKp
// SIG // jSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa
// SIG // 8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ
// SIG // 0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGs
// SIG // gnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgF
// SIG // ZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXRO
// SIG // rxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2
// SIG // O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJ
// SIG // syB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQ
// SIG // W9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNv
// SIG // cHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4x
// SIG // HjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
// SIG // MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5
// SIG // gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQAD
// SIG // ggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiP
// SIG // yTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKre
// SIG // BXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgr
// SIG // NyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVn
// SIG // bA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0
// SIG // sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh3
// SIG // 43agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4
// SIG // bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qAwggSd
// SIG // MIIDhaADAgECAgphR1K6AAAAAAAEMA0GCSqGSIb3DQEB
// SIG // BQUAMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
// SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
// SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMT
// SIG // Gk1pY3Jvc29mdCBUaW1lc3RhbXBpbmcgUENBMB4XDTA2
// SIG // MDkxNjAxNTMwMFoXDTExMDkxNjAyMDMwMFowgaYxCzAJ
// SIG // BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
// SIG // DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
// SIG // ZnQgQ29ycG9yYXRpb24xJzAlBgNVBAsTHm5DaXBoZXIg
// SIG // RFNFIEVTTjpEOEE5LUNGQ0MtNTc5QzEnMCUGA1UEAxMe
// SIG // TWljcm9zb2Z0IFRpbWVzdGFtcGluZyBTZXJ2aWNlMIIB
// SIG // IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm23c
// SIG // hlHoMjs3OpYlss9v7mG1QdIYO1qdeGe6+B/ZCFWSiH7j
// SIG // QVP67ChU/rXa/nA7lSdIfkOgMi8mgUryAnZ3yMmp+KIh
// SIG // WH4NvQHaJMb+RBEFNToBqOpUCjMsh9J+QbPoCdmwvuOZ
// SIG // Jaa8Je3X047b9LdtG0kL5tPDh27uRsl/823r54MeqFNG
// SIG // P8okfuZ8ySz7eRQoRcBPNmtTGqeGs+f84cGfUQnbvKW7
// SIG // /sqHCfa3Mhm+4UpRvLx8rCyVapdz6nJXoZyLhtibvUv8
// SIG // JzPBbTKs4GgY2G46LiJD0fmP7fEAAQ1kwMmj3Q/xyOlU
// SIG // yhH/3HgpPh2sWMDb36rcrmUb0528ZwIDAQABo4H4MIH1
// SIG // MB0GA1UdDgQWBBRPGImK0soAeMbsWQ0P/XzEwSKA3jAf
// SIG // BgNVHSMEGDAWgBRv6E4/l7k0q0uGj7yc6qw7QUPG0DBE
// SIG // BgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vY3JsLm1pY3Jv
// SIG // c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy90c3BjYS5j
// SIG // cmwwSAYIKwYBBQUHAQEEPDA6MDgGCCsGAQUFBzAChixo
// SIG // dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRz
// SIG // L3RzcGNhLmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDAO
// SIG // BgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQEFBQADggEB
// SIG // ADcnHvWMQOD2ZSY+ZMSQvD7jV4XdQw1AhGe+h6gq2ty0
// SIG // NiCYjjN8Ll/gUHthMfMaE96EveppHFh8sxuT4QgngUW2
// SIG // 1HDKFLdfulfp1F7QO0Oqtz+22mGLcc/UfdV7br+0ylow
// SIG // kd/aCg6jNZ8lYU7AMnQregaUcgCsGJ1L5Z4rxTpUrKRg
// SIG // 2Kf3m3/ZqW3tRGu63OAS+vCthwyVYwoyHolOzMx+pzel
// SIG // /l/YZ/pGS9FtHad90r4C//NugvOHdMRp5blwzEtlowc1
// SIG // qUSehH05bv4UBb0aUCG1Pp/zdxyPwpqdV+FpfWnog88C
// SIG // byoiuzczOnL61jAdka32UBrrE946xbdczbMwggSdMIID
// SIG // haADAgECAgphSXztAAAAAAAFMA0GCSqGSIb3DQEBBQUA
// SIG // MHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
// SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
// SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1p
// SIG // Y3Jvc29mdCBUaW1lc3RhbXBpbmcgUENBMB4XDTA2MDkx
// SIG // NjAxNTUyMloXDTExMDkxNjAyMDUyMlowgaYxCzAJBgNV
// SIG // BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
// SIG // VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
// SIG // Q29ycG9yYXRpb24xJzAlBgNVBAsTHm5DaXBoZXIgRFNF
// SIG // IEVTTjoxMEQ4LTU4NDctQ0JGODEnMCUGA1UEAxMeTWlj
// SIG // cm9zb2Z0IFRpbWVzdGFtcGluZyBTZXJ2aWNlMIIBIjAN
// SIG // BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6roFY8jZ
// SIG // ea6ERD6ls8TtTJ4k3zl2HgnWMkpYeNIr2aUHkO/nPfu9
// SIG // Jnyj++V9fjLP2T2LOTfy+Ng7NBbUkoL7NOxohXIaj+C4
// SIG // TOC4hfMzCgLBonZzNUxd8bfhSn0duJR42/8ehRVCRnHO
// SIG // fydXEtGDTzvP+t72i+0/AOPV3mH5F41LpIE89WlA6uGJ
// SIG // vwdPunR76QzlR+qrbPHVZ4EI+BbKfRO7c+IJTPpi++2g
// SIG // OZo6/usRyGEeYljYClSD1TtLS+JVvS9gGo6SBUPaXeuC
// SIG // CiOXCaAFMWWLk04eQSGikpD9RURFbzWxRTetaall+TRD
// SIG // sRfCOznhEIzyGofjVFAfO50xrQIDAQABo4H4MIH1MB0G
// SIG // A1UdDgQWBBR+cvAuP1Yp4CX3aLgB/Evhfs/jPjAfBgNV
// SIG // HSMEGDAWgBRv6E4/l7k0q0uGj7yc6qw7QUPG0DBEBgNV
// SIG // HR8EPTA7MDmgN6A1hjNodHRwOi8vY3JsLm1pY3Jvc29m
// SIG // dC5jb20vcGtpL2NybC9wcm9kdWN0cy90c3BjYS5jcmww
// SIG // SAYIKwYBBQUHAQEEPDA6MDgGCCsGAQUFBzAChixodHRw
// SIG // Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL3Rz
// SIG // cGNhLmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV
// SIG // HQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQEFBQADggEBAGl6
// SIG // ggkMFtHez0aJLr/RNHqBfycoQSrz0yGSDpetX1NeKfnt
// SIG // wVRKqH33E9ALFPlN8oYVAG7jgx0oRacsOTLdb5o3Wu4j
// SIG // Uo9UA40/p5xkOPY2yBRDtjo+mMkNw3GBKPNmpzHiXF2P
// SIG // +VJS4Vzrk5CdaQlMidHRdkw0DWrhfESnK1uDVH9FJBkl
// SIG // xIpGxSXjGYBpKRT2F8bwIiyBRl4r9Pmmxnc+I2/5pmSF
// SIG // jqJiDaktHqjlkD5//7CO/Jfs8f0Er81Jzlp0rPrzEx8b
// SIG // Oc6jtNa89LTuyK3yVh77PPHI1ipEvL+cP31mGM2yIGMK
// SIG // ykA9ZTIZfLK4PcEmSE4iGZlujDDB8ZEwggSdMIIDhaAD
// SIG // AgECAhBqC5lPwAAlqxHbRR9YemeiMA0GCSqGSIb3DQEB
// SIG // BQUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5
// SIG // NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jv
// SIG // c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9z
// SIG // b2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTA2MDkxNjAxMDQ0
// SIG // N1oXDTE5MDkxNTA3MDAwMFoweTELMAkGA1UEBhMCVVMx
// SIG // EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
// SIG // ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
// SIG // dGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IFRpbWVzdGFt
// SIG // cGluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
// SIG // ggEKAoIBAQDcN277r8hCSnEYyM5IPlPA+qsUuiwyuxJP
// SIG // UsiD7T4z2Ukxkii2kWTgH1CEusJL0X8F+O91vovHqNWu
// SIG // aXBmeCdm6La374W5ze6q/RKkC1kiKS/PQNlWBBt2tW1k
// SIG // bUpU293x3r+fg8eA339MAjeU9cCeCFYeaEfN2cB2XC99
// SIG // tiUEtFZbahxj/4B8PO7VBCVNOXd0B13CXNiGNyx1yQ7q
// SIG // HjkJfHb+nWxueuDsPo+XnnEOXypPGGJgMp7Sg04rIlxo
// SIG // RYveL4QQULL5tRqNbO4lmxP4yxDXhQ70gnZzNsaVeqLM
// SIG // YAbsBbCGM7f4lFuEQYRYhZRusB8sSMxvnEPgauh/Jo5r
// SIG // AgMBAAGjggEoMIIBJDATBgNVHSUEDDAKBggrBgEFBQcD
// SIG // CDCBogYDVR0BBIGaMIGXgBBb0HDvaXKeI1F+FLJNjv/L
// SIG // oXIwcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3
// SIG // IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9z
// SIG // b2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3Nv
// SIG // ZnQgUm9vdCBBdXRob3JpdHmCDwDBAIs8PIgR0T72Y+zf
// SIG // QDAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUb+hO
// SIG // P5e5NKtLho+8nOqsO0FDxtAwGQYJKwYBBAGCNxQCBAwe
// SIG // CgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB
// SIG // /wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAJRNETHC
// SIG // fFC7EY6hYQcBDoxwRY3vc1S9PwkFLf+4UVOFHO05kbej
// SIG // VgvejLY7G9H7rKfJt7FRIRtvCGl+awOiIkbtbLRtfCK4
// SIG // RtOE840PvgeKNsHrfulwXUWfktLMzt2OwOG/Ks187Mmu
// SIG // MtWHuctjxDbRGCG/dt47mrMbc54hiNi0tBJUjPScwmVK
// SIG // migmnGCKDzvHE2V4SLvPrYM6T7BiWN4w6ek5HeOJ8to5
// SIG // gfkTIYxkgGMGBJbymgJDL3tGiLr/Atll+Ure2gN0k7MF
// SIG // bgzMndwoYXxI8RecESE4AhyHrAbFljK45UDGUz29qYne
// SIG // 6GY3jfQilpzMsHdUUTrWckSyI/YwggTDMIIDr6ADAgEC
// SIG // AhBqC5lPwAAdqxHaxAKhZie6MAkGBSsOAwIdBQAwcDEr
// SIG // MCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jv
// SIG // c29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENv
// SIG // cnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9v
// SIG // dCBBdXRob3JpdHkwHhcNMDYwNDA0MTc0NDE0WhcNMTIw
// SIG // NDI2MDcwMDAwWjCBpjELMAkGA1UEBhMCVVMxEzARBgNV
// SIG // BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
// SIG // HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEr
// SIG // MCkGA1UECxMiQ29weXJpZ2h0IChjKSAyMDAwIE1pY3Jv
// SIG // c29mdCBDb3JwLjEjMCEGA1UEAxMaTWljcm9zb2Z0IENv
// SIG // ZGUgU2lnbmluZyBQQ0EwggEgMA0GCSqGSIb3DQEBAQUA
// SIG // A4IBDQAwggEIAoIBAQDDzCCNvN//PlDuesLUJCX2ds4h
// SIG // /80qVk7KnLeCsjV5LQDEqAjVY8m3pfbpwcHWsYyWogf6
// SIG // D7aCUprrgsa9EMWowO5rhI5TG7tQ+mQBicEW1IJoAEB4
// SIG // RPUSOE77Y1Hg+j255Tex32MHIztxQDRH9GuuRvUncx4i
// SIG // y0IZHlG2UprTo9ATxhk/cQZt8pUhRF9C7cDJmWQguME0
// SIG // /KJE5nuyHS+4pt70od+bIQ/+WDFBVTh+r1jn5OxZeSWr
// SIG // 9yovET84eD5Cf6do5H4iaBfmSpLEeERSR6FPhImTm8Bn
// SIG // e+oJ+4YDffaZcTwrp2aYzN8t4isCGg80SGX1PBKv8Ycc
// SIG // HSZSb8wDAgEDo4IBKjCCASYwEwYDVR0lBAwwCgYIKwYB
// SIG // BQUHAwMwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSy
// SIG // TY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykg
// SIG // MTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1p
// SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
// SIG // cm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+
// SIG // 9mPs30AwEgYJKwYBBAGCNxUBBAUCAwMABDAdBgNVHQ4E
// SIG // FgQUJfgrS13IclSt5fagKhcW+8H5U4EwGQYJKwYBBAGC
// SIG // NxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgFGMA8G
// SIG // A1UdEwEB/wQFMAMBAf8wCQYFKw4DAh0FAAOCAQEAY+Pg
// SIG // 8wW4sOoLCzTRgjE+iWJF1Qin+WFlyC4D+jhIQc+18ieD
// SIG // 0+PFVlOotRnOzObxoPlWtkiURyTlqR/cetT2FnoS2/OQ
// SIG // G+wIXbOFkLmMWLsczJXTlZQz9JHe/4ibXktJUDkmOiAb
// SIG // VDf8fVwVk8PcHI7wYVI85QftZu957I/OV2NllRhJoHrf
// SIG // ZbffJq7+yBK2xqLMxl+LcPPK26uCbgfcZRm5qPaGwglC
// SIG // mPEmrGl6scErp7BmH6WvhwhrlxO4sDaZHgWjEzijwKww
// SIG // Proh1zCmymISHK9XjeXxehG6XjwMN/GTwZKITgRaBVzH
// SIG // z9ap2eF9kXgn+7RupY8GM1ixXioRDzCCBTMwggQboAMC
// SIG // AQICCmFGnssABAAAAGUwDQYJKoZIhvcNAQEFBQAwgaYx
// SIG // CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
// SIG // MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
// SIG // b3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAsTIkNvcHly
// SIG // aWdodCAoYykgMjAwMCBNaWNyb3NvZnQgQ29ycC4xIzAh
// SIG // BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENB
// SIG // MB4XDTA2MDQwNDE5NDM0NloXDTA3MTAwNDE5NTM0Nlow
// SIG // dDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
// SIG // b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
// SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWlj
// SIG // cm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0B
// SIG // AQEFAAOCAQ8AMIIBCgKCAQEAzYGWOK5covLB397Qq5WN
// SIG // 1jydH4vDXYYuXfCxcvWrrIhqtdqxInsLyMilS5FeIhPp
// SIG // +fUjnbX0bnau7+6kPMfEwFlcP6uzczMmpmKBYXmhYvRu
// SIG // iJXQbt3Hn9KkURF2YbpwimWhlhaJp12B0ERm5dtWnkDK
// SIG // /Nx2JC5EMADl1n17lRHVWB2j6E8LyYjcotZTmWzKY8qZ
// SIG // apqSXkxNEegv01tbXl9So3MtpbuERQ2MGRV2ywjamqZw
// SIG // FehN7Gn9XbJrj+0pUTc4i8ZGSRWUUJiw9Gik194JcWd0
// SIG // nneMHYVrl+rnX0XM4OZxDdFjAJN7MZiOC7QTvbPQ7vHf
// SIG // Ie6pYGHuN0M9wwIDAQABo4IBkjCCAY4wDgYDVR0PAQH/
// SIG // BAQDAgbAMB0GA1UdDgQWBBTu2WupdVPNT+4bThkGHqOc
// SIG // q8+U/TATBgNVHSUEDDAKBggrBgEFBQcDAzCBqQYDVR0j
// SIG // BIGhMIGegBQl+CtLXchyVK3l9qAqFxb7wflTgaF0pHIw
// SIG // cDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1p
// SIG // Y3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0
// SIG // IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQg
// SIG // Um9vdCBBdXRob3JpdHmCEGoLmU/AAB2rEdrEAqFmJ7ow
// SIG // SwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybC5taWNy
// SIG // b3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvQ29kZVNp
// SIG // Z25QQ0EyLmNybDBPBggrBgEFBQcBAQRDMEEwPwYIKwYB
// SIG // BQUHMAKGM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
// SIG // a2kvY2VydHMvQ29kZVNpZ25QQ0EyLmNydDANBgkqhkiG
// SIG // 9w0BAQUFAAOCAQEAONnvlTibXJgUXVRuad8CyOez+9PC
// SIG // Ta0vq39UDdoytvhq5g37IRp3PqVoerSVfopc8kPEg5tl
// SIG // fYhQUXyCFPWDc9eivlzKAnDOJmwXvFIUpYnAt+ShzKF1
// SIG // nZFxPRvAVgBWtfiEJtpeM/vWJXpemtqm+/TyQRqsVUat
// SIG // SNyROBNYCUnx8zGHH7wEjlsSZQPpC1HQoQyKmb3ZwajQ
// SIG // CBUlIbW2V4kc0VuGNaXK/aqH7Kk3P7dDa+Mg8UW8fq7p
// SIG // 8VWyoUi8Zb5TNNnJ6AZjBAZ4blD/SLub6kNah9utCoD1
// SIG // WcUs5OV/W0rlMnnuIoWSDC2zUFvGwkBYWKvSzeMvwc3s
// SIG // bZ83eTGCBKkwggSlAgEBMIG1MIGmMQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
// SIG // cmF0aW9uMSswKQYDVQQLEyJDb3B5cmlnaHQgKGMpIDIw
// SIG // MDAgTWljcm9zb2Z0IENvcnAuMSMwIQYDVQQDExpNaWNy
// SIG // b3NvZnQgQ29kZSBTaWduaW5nIFBDQQIKYUaeywAEAAAA
// SIG // ZTAJBgUrDgMCGgUAoIGmMBkGCSqGSIb3DQEJAzEMBgor
// SIG // BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE
// SIG // AYI3AgEVMCMGCSqGSIb3DQEJBDEWBBS82pdNLSiDuZZB
// SIG // WPFSGpDrLmT0JDBGBgorBgEEAYI3AgEMMTgwNqAUgBIA
// SIG // aQBlADUANQB1AHAALgBqAHOhHoAcaHR0cDovL29mZmlj
// SIG // ZS5taWNyb3NvZnQuY29tIDANBgkqhkiG9w0BAQEFAASC
// SIG // AQC/X8/jBwvy6P/juAXWvVz/kkTFHnizE4eaC2kunCSH
// SIG // HwzddTQD87dG+gpgsbkS9c5W+MtAU4mFJ0/q86R3Zr0W
// SIG // UOEq9HSbWSRAieJ+ZtlF28bYNjrXBwhQpnjypC+TPpV2
// SIG // Vt8DT1y2UUzFKI2BNhtz64Lbwr9/QAF3yPsTmAWFVfIK
// SIG // /GPrAyzNRHA+LqbDY48pajeJjlAXZ3xlv6fDrQyhkG5i
// SIG // p3iHSwTLO8FX6Fwnrnuq3D4Zxs1qJSorJbxBc92OF6+Y
// SIG // irtiKszrD5pHPdRNRmKehSp2zdJozG0QO9fNvaCZUQzc
// SIG // 1Hnn7IDh+RTVHtu4Ab0psscSdCkmbGeQho2koYICHzCC
// SIG // AhsGCSqGSIb3DQEJBjGCAgwwggIIAgEBMIGHMHkxCzAJ
// SIG // BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
// SIG // DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
// SIG // ZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29m
// SIG // dCBUaW1lc3RhbXBpbmcgUENBAgphSXztAAAAAAAFMAcG
// SIG // BSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEH
// SIG // ATAcBgkqhkiG9w0BCQUxDxcNMDcwMzIzMDIyODM0WjAj
// SIG // BgkqhkiG9w0BCQQxFgQUwHrTqQZ9KnmB32Ma40v1QlhC
// SIG // wm4wDQYJKoZIhvcNAQEFBQAEggEADF/o2PZxCtAJJRZ4
// SIG // 5bQnKT0E+FEnWsCAXQyHWzF2ksDcLguDNTznIKT/N8I7
// SIG // njmr9/H/cJRbik3Dmv/o2NIxLpktDJbJkbW5upNT1Pem
// SIG // 2Rol+DIXTBdgSOKWrgtahvPnZozUjEgpASzzzBi9dvLt
// SIG // oFAKT1NAzqA9r1JggIyJQOhYY+KXSRg9hp7v5VLhYArm
// SIG // 1T6zJTjzDCEN4O9X1l7Qr39r3nieruB9zYxngxd6AjwM
// SIG // oK2IR6lwnqoXak09z82DQEeL9Utl7HlmLNoL0TQDNMCE
// SIG // 6Apcze9jgpFG0pcYahrSsHdn1jQGL0JoRA+CmJ6ymAX2
// SIG // 707KC6TaBPZ7N0CjvQ==
// SIG // End signature block
