var w = window, d = document, CbOS, GPA, gpa = {};
if (!w.top)
	w.top = w;
(
	function(aTypes)
	{
		for(var j, i = 0; i < aTypes.length; ++i)
			for(j = 0; j < aTypes.length; ++j)
				window[aTypes[i]].prototype["is" + aTypes[j]] = window[aTypes[i]].prototype[aTypes[j].charAt(0).toLowerCase()]  = i == j;
	}(["Array", "Date", "String", "Boolean", "Number"])
);
Function.prototype.Run = function()
{
	return this.apply(window, arguments);
};
String.prototype.Trim = function()
{
	var method = {
		L : /^\s*/g,
		R : /\s*$/g,
		A : /(^\s*)|(\s*$)/g
	};
	return function(aMethod)
	{
		return this.replace(method[aMethod || "A"], "");
	};
}();
Date.prototype.DateFormat = function()
{
	return (this.getMonth() + 1).PadL(2) + "/" + this.getDate().PadL(2) + "/" + this.getFullYear().PadL(4);
};
Date.prototype.DateTimeFormat = function()
{
	return (this.getMonth() + 1).PadL(2) + "/" + this.getDate().PadL(2) + "/" + this.getFullYear().PadL(4) + " " + this.getHours().PadL(2) + ":" + this.getMinutes().PadL(2);
};
Number.prototype.DateFormat = function()
{
	return new Date(this).DateFormat();
};
Number.prototype.TimeFormat = function()
{
	var i = Math.floor(this / 60);
	return (i > 12 ? i - 12 : i).PadL(2) + ":" + (this % 60).PadL(2) + " " + (i > 12 ? "PM" : "AM");
};
String.prototype.TimeFormat = function()
{
	var i = this.split(":");
	return i[0].Trim().PadL(2) + ":" + i[1].substring(0, 2).Trim().PadL(2) + i[1].substring(2, 5).toUpperCase();
};
Number.prototype.Between = function(aMin, aMax)
{
	return this >= aMin && this <= aMax;
};
String.prototype.PadL = function(aLength, aValue)
{
	if (this.length >= aLength)
		return this;
	var	value = [];
	aValue = String(top.CbOS.is.Null(aValue, 0));
	aLength -= this.length;
	while (value.length < aLength)
		value.push(aValue);
	value.push(this);
	return value.join("");
};
Number.prototype.PadL = function(aLength, aValue)
{
	return this.toString().PadL(aLength, aValue);
};
String.prototype.toArray = function(aSplit)
{
	return this.split(top.CbOS.is.Null(aSplit, ","));
};
Array.prototype.toArray = function()
{
	return this;
};
Array.prototype.Prefix = function(aPrefix)
{
	for(var i = 0; i < this.length; ++i)
		this[i] = aPrefix + this[i];
	return this;
};
Array.prototype.Suffix = function(aSuffix)
{
	for(var i = 0; i < this.length; ++i)
		this[i] += aSuffix;
	return this;
};
Array.prototype.GV = function(aIndex, aParam)/*get value*/
{
	return (
			top.CbOS.is.Def(aParam = (aParam && !top.CbOS.is.Def(this[aIndex]))
			?
			this.GV(aIndex - 1, aParam)
			:
			this[aIndex]) && !aParam.isArray
		)
		?
		String(aParam)
		:
		aParam;
};
Array.prototype.toNumber = function()
{
	var o = [];
	for(var i = 0; i < this.length; ++i)
		o.push(top.CbOS.to.Float(this[i]));
	return o;
};
Boolean.prototype.GV = Number.prototype.GV = function()/*get value*/
{
	return this.toString();
};
String.prototype.GV = function()/*get value*/
{
	return String(this);
};
dump = function(aObj, aNames, aCount)
{
	if(typeof aObj == "object" || typeof aObj == "function")
	{
		var out = [], listProp = new String(",innerHTML,outerHTML,innerText,outerText,");
		if (!aCount)
			aCount = 7;
		if(aNames)
			aNames = aNames.join(",").toLowerCase().split(",");
		for(var name in aObj)
		{
			if(aNames)
			{
				var lowerName = name.toLowerCase();
				for (var j = 0; j < aNames.length; ++j)
				{
					if (aNames[j] == lowerName)
					{
						lowerName = null;
						break;
					}
				};
				if(lowerName)
					continue;
			};
			if (new RegExp("^," + name + ",{1}.*$", "i").test(listProp))
				alert(name + " = " + aObj[name]);
			else
			{
				out.push(name + " (" + typeof(aObj[name]) + ") ");
				var err;
				try
				{
					out[out.length - 1] += "= " + aObj[name];
				}
				catch(err)
				{
					out[out.length - 1] += "[dump error]";
				};
				if( out.length == aCount)
				{
					alert(out.join("\n"));
					out = [];
				};
			};
		};
		if (out.length)
			alert(out.join("\n"));
	}
	else
		alert("(" + typeof(aObj) + ") " + aObj);
};

CbOS={
	TimeZoneInfo: function(aShift, aDate)
	{
		var year = new Date().getFullYear(), r1 = Date.UTC(year, 0, 0, 0), r3 = Date.UTC(year + 1, 0, 0, 0, -1), r2 = r1 + (r3 - r1) / 2;
		var shift = new Date(r2).getTimezoneOffset() -  new Date(r1).getTimezoneOffset();
		var res = [year, ", ", new Date(year, 0).getTimezoneOffset() + Math.max(0, shift)];
		if (shift != 0)
		{
			var d1 = new Date(aShift(r1, r2, aShift)), d2 = new Date(aShift(r2, r3, aShift));
			aDate(res, shift < 0 ? d2 : d1, year);
			aDate(res, shift < 0 ? d1 : d2, year);
		};
		return res.join("")
	}
	(
		function(aStart, aEnd, aShift)
		{
			if (aEnd - aStart <= 1000)
				return aStart;
			var midd = aStart + (aEnd - aStart) / 2, offset = new Date(midd).getTimezoneOffset();
			if (offset - new Date(aStart).getTimezoneOffset())
				return aShift(aStart, midd, aShift);
			if (new Date(aEnd).getTimezoneOffset() - offset)
				return aShift(midd, aEnd, aShift);
			return midd;
		},
		function(aArray, aTime, aYear)
		{
			aArray.push(", ", aTime.getMonth() + 1, "/", aTime.getDate(), "/", aYear, " ", aTime.getHours(), ":", aTime.getMinutes())
		}
	),
	Messages:
	{
		InternalError: "Internal error was occurred!"
	},
	BgImg: {},
	EVENTS: {},
	TEMP: {},
	Session: {},
	del: function(aObj, aName, aRun)
	{
		with (CbOS)
			if (aRun)
			{
				if (aObj.getAttribute && is.Def(aObj.getAttribute(aName)))
					aObj.removeAttribute(aName);
				if (is.Def(aObj[aName]))
				{
					aObj[aName] = null;
					delete aObj[aName];
				};
			}
			else
				run.Recursion.a1(del, aObj, aName);
	},
	Title: function(aObj, aHint)
	{
		aObj.hideFocus = true;
		CbOS.Hint.Create(aObj, aHint);
	},
	rem: function(aObj, aAll)
	{
		if(aObj)
		{
			var obj;
			if (aAll)
			{
				obj = aObj;
				while (aObj.hasChildNodes())
					aObj.removeChild(aObj.firstChild);
			}
			else
				(obj = aObj.parentNode).removeChild(aObj);
			return obj;
		}
	},
	IE: function(aIE, aMoz, aOpera)
	{
		with (CbOS.is)
			return ie ? aIE : (op9 ? Null(aOpera, aMoz) : aMoz);
	},
	label: function(aEvent, aObj)
	{
		if (aObj.htmlFor)
			with (CbOS)
			{
				Fcs(aObj = get.Obj(aObj.htmlFor, aObj));
				var objType = aObj.type;
				if (objType != "radio" && objType != "checkbox")
				{
					run.Event(aObj, aObj, "onclick");
					return set.CBubble(aEvent);
				}
			}
	},
	Fcs: function(aObj, aFlag)
	{
		if (aObj)
			with (CbOS)
			{
				if (aObj.cbosFcsObj)
					Fcs(aObj.cbosFcsObj, aObj.sel);
				else if (is.Enabled(aObj))
				{
					SM.run.Event(aObj, aObj);
					aObj.setAttribute("autocomplete", "off");
					mask.Edit(aObj);
					var err;
					try
					{
						aObj.focus();
						if ((aFlag || is.Cls(aObj, "empty")) && aObj.value)
						{
							var o = aObj.createTextRange();
							o.collapse(true);
							o.moveStart('textedit', aFlag ? -1 : 1);
							o.moveEnd('textedit', 1);
							o.select();
						}
					}
					catch (err)
					{
						if (is.Tag(aObj = aObj.parentNode, ["A", "LI"]))
							Fcs(aObj);
					}
				}
			}
	},
	Boot: {
		TaskBar: function(aObj, aClass, aEvent, aHint, aId)
		{
			var obj;
			with (CbOS)
			{
				create.Element("DIV", obj = create.Element("LI", aObj, null, aId),  aClass).innerHTML = "&nbsp;";
				Hint.Create(
					SM.set.Event(obj,
						_.y,
						"return CbOS.SM.on." + aEvent
					),
					aHint
				);
			};
			obj.disabled = true;
		},
		Init: function()
		{
			with (CbOS)
			{
				if(wd.ScreenInit && !wd.Stop)
				{
					SM.set.Event(
						create.Element('DIV', null, 'wins', wd.wins = get.PK()),
						"onscroll",
						"CbOS.SM.on.WinsScroll(this)"
					);
					wd.modal = {};
					wd.del = {};
					create.Element('DIV', null, 'space', wd.space = get.PK());
					with (wd.taskbar = {
							Panel: get.PK(),
							ShowHide: get.PK(),
							Cascade: get.PK(),
							Prev: get.PK(),
							Next: get.PK(),
							PNS: get.PK()
						}
					)
					{
						var obj = create.Element("UL", create.Element('DIV', null, 'ql', Panel));
						this.TaskBar(obj, "qlShowHide", "ShowDesktop(event)", "Show Desktop", ShowHide);
						this.TaskBar(obj, "qlCascade", "CascadeWindows(event)", "Cascade Windows", Cascade);
						create.Element("LI", obj, "qlS").innerHTML = "&nbsp";
						this.TaskBar(obj, "qlPrev", "qlPrev(event,this)", "Previous", Prev);
						this.TaskBar(obj, "qlNext", "qlNext(event,this)", "Next", Next);
						SM.set.Event(obj.parentNode,
							_.y,
							"with (CbOS) if (is.Tag(get.eObj(event), 'DIV')) set.CBubble(event); else SM.on.Focus()"
						);
						create.Element("LI", obj, "qlS").innerHTML = "&nbsp";
						create.Element("LI", obj, "qlS", PNS).innerHTML = "&nbsp";
					}
					create.Window(wd.Template.Screen, wd.ScreenInit);
					del(wd, "ScreenInit");
					SM.set.Event(
						SM.set.Event(w,
							"onresize",
							"top.CbOS.SM.on.Resize()"
						),
						"onscroll",
						"w.scrollTo(0, 0)"
					);
					create.Element('DIV',
						create.Element('DIV',
							create.Element('DIV',
								create.Element('DIV',
									null,
									"menu0",
									Hint.Box = get.PK()
								),
								"menu1"
							),
							"menu3"
						),
						"hint0",
						Hint.Content = get.PK()
					);
					SM.on.Resize();
				};
				delete Boot;
			}
		}
	}
};
/*to*/
CbOS.to = {
	XmlObj: function(aXml, aObj)
	{
		if (!aObj)
			aObj = {};
		aXml = aXml.childNodes
		for (var i = 0; i < aXml.length; ++i)
			aObj[aXml[i].nodeName] = CbOS.get.XmlText(aXml[i]);
		return aObj
	},
	Xml: function(aObj)
	{
		var list = [];
		for (var i in aObj)
			if (CbOS.is.Def(aObj[i]))
				list.push('<', i, '>', (aObj[i] && aObj[i].isArray) ? aObj[i].join("")  : CbOS.set.HTMLEncode(aObj[i]), '</', i, '>');
		return list.join("");
	},
	CamelCase: function(aStyle)
	{
		var list = [(aStyle = aStyle.split('-'))[0]];
		for(var i = 1; i < aStyle.length; ++i)
			list.push(aStyle[i].charAt(0).toUpperCase(), aStyle[i].substring(1));
		return list.join("");
	},
	Int: function(aValue)
	{
		return isNaN(aValue = parseInt(aValue, 10)) ? 0 : aValue;
	},
	Float: function(aValue)
	{
		return isNaN(aValue = parseFloat(aValue, 10)) ? 0 : aValue;
	},
	DateTime: function(aValue)
	{
		return CbOS.get.DateTime(aValue)
	},
	Precision: function(aValue)
	{
		aValue = CbOS.to.Float(aValue);
		var entered = true, fixed = 0, nDigits = 16, valStr = "" + aValue;
		if (valStr.indexOf("N") >= 0 || (aValue == 2 * aValue && aValue == 1 + aValue))
			return 0;/* Error */
		var i = valStr.indexOf("e");
		if (i >= 0)
		{
			var expStr = valStr.substring(i + 1, valStr.length);
			if (i > nDigits - 5)
				i = nDigits - 5;
			valStr = valStr.substring(0, i);
			if (valStr.indexOf(".") < 0)
				valStr += ".";
			valStr += " " + expStr;
		}
		else
		{
			var valNeg = false;
			if (aValue < 0)
			{
				aValue = -aValue;
				valNeg = true;
			};
			var expval = Math.log(aValue) * Math.LOG10E;
			if (aValue == 0)
				expval = 0;
			else if (expval > nDigits - 5)
				aValue /= Math.pow(10, expval = Math.floor(expval));
			else if (-expval > nDigits - 5)
				aValue /= Math.pow(10, expval = Math.ceil(expval));
			else
				expval = 0;
			var valInt = Math.floor(aValue), valFrac = aValue - valInt, prec = nDigits - ("" + valInt).length - 1;
			if (prec < 0)
				return 0;/*"Error"*/
			if (!entered && fixed > 0)
				prec = fixed;
			var mult = " 1000000000000000000".substring(1,prec + 2), frac = Math.floor(valFrac * mult + .5);
			valStr = (valNeg ? "-" : "") + (valInt = Math.floor(Math.floor(aValue * mult + .5) / mult));
			var fracStr = "00000000000000" + frac;
			i = (fracStr = fracStr.substring(fracStr.length - prec, fracStr.length)).length - 1;
			if (entered || fixed == 0)
			{
				while (i >= 0 && fracStr.charAt(i) == "0")
					--i;
				fracStr = fracStr.substring(0, i + 1);
			};
			if (i >= 0)
				valStr += "." + fracStr;
			if (expval != 0)
				valStr += " " + expval;
		};
		return valStr;
	},
	Fixed: function()
	{
		var method = /^(-0){1}[.]*[0]*$/;
		return function(aNumber, aCount)
		{
			return method.test(aNumber = CbOS.to.Float(CbOS.to.Precision(aNumber)).toFixed(aCount)) ? (0).toFixed(aCount) : aNumber;
		};
	}()
};
CbOS.get={
	_XmlText: function(aNode)
	{
		var _result = "";
		if (aNode == null)
			return _result;
		for (var childrens = aNode.childNodes, i = 0; i < childrens.length; ++i)
		{
			var child = childrens.item(i);
			switch (child.nodeType)
			{
				case 1: // ELEMENT_NODE
				case 5: // ENTITY_REFERENCE_NODE
					_result += arguments.callee(child);
					break;
				case 3: // TEXT_NODE
				case 2: // ATTRIBUTE_NODE
				case 4: // CDATA_SECTION_NODE
					_result += child.nodeValue;
					break;
				case 6: // ENTITY_NODE
				case 7: // PROCESSING_INSTRUCTION_NODE
				case 8: // COMMENT_NODE
				case 9: // DOCUMENT_NODE
				case 10: // DOCUMENT_TYPE_NODE
				case 11: // DOCUMENT_FRAGMENT_NODE
				case 12: // NOTATION_NODE
				// skip
				break;
			}
		}
		return _result;
	},
	XmlText: function(aNode)
	{
		return aNode.text || aNode.textContent || CbOS.get._XmlText(aNode);
	},
	Gpa : function(aObj, aGpa)
	{
		if (aObj)
		{
			aObj = CbOS.get.Win(aObj);
			aGpa = aGpa.split(/\.|\[|\]/);
			for (var i = 0; aObj && i < aGpa.length && aGpa[i]; ++i)
				aObj = aObj[aGpa[i]];
			return aObj
		}
	},
	Unique:function(aList, aObj)
	{
		var list =[]
		with (CbOS.is)
			for (var i = 0; i < aList.length; ++i)
				if (!In(aList, list))
					list.push(aList[i])
		var flag, obj1, obj2;
		do
		{
			flag = false;
			for (var i, j = 0; !flag && j < list.length - 1; ++j)
				for (i = j + 1; !flag && i < list.length; ++i)
					if ((flag = list[j] == list[i] || CbOS.is.Child(obj1 = CbOS.get.Obj(list[j], aObj), obj2 = CbOS.get.Obj(list[i], aObj))))
						list.splice(j, 1);
					else if ((flag = CbOS.is.Child(obj2, obj1)))
						list.splice(i, 1);
		}
		while(flag);
		return list;
	},
	ValueByAttr: function(aObj, aAttr)
	{
		for (var i; CbOS.is.Obj(aObj); aObj = aObj.parentNode)
			if ((i = aObj.getAttribute(aAttr)))
				return i;
	},
	VSAtr: function(aObj, aData)
	{
		if (!aData)
			aData = [];
		if (aObj && !CbOS.is.Tag(aObj, "FORM"))
			aObj = CbOS.get.node.Child(aObj, "FORM") || CbOS.get.node.Parent(aObj, "FORM");
		if (aObj){
			var i = aObj.__VIEWSTATE;
			if (i)
			{
				aData.push([i.name, i.value]);
				if ((i = aObj.__VIEWSTATE_KEY))
					aData.push([i.name, i.value]);
				if ((i = aObj.__EVENTVALIDATION))
					aData.push([i.name, i.value]);
			}
		};
		if (aData.length)
			return {Attributes: aData};
	},
	Ajax: function(aObj)
	{
		if (aObj.getAttribute)
			for (var i; CbOS.is.Obj(aObj); aObj = aObj.parentNode)
				if  ((i = aObj.getAttribute("ajax")))
				{
					if (!aObj.id)
						aObj.id = CbOS.get.PK();
					return {o: aObj, ajax: i == "true"};
				};
	},
	Url: function(aObj)
	{
		return CbOS.get.Win(aObj).location.href.split("?")[0];
	},
	Element: function(aForm, aValue)
	{
		for (var elm = aForm.elements, data, i = 0; i < aForm.length; ++i)
		{
			data = elm[i].name.split(":");
			if (data[data.length - 1] == aValue)
				return elm[i];
		}
	},
	Root: function(aObj)
	{
		with(CbOS)
		{
			var skin = ((aObj = get.Win(aObj)) == w || !(aObj = wd.win[aObj.name]) || !aObj.A) ? Skin : aObj.A.Skin;
			return jsROOT + (skin ? "company/" + skin + "/" : "");
		}
	},
	Modal: function(aWin)
	{
		with(CbOS)
			for(var i in wd.modal)
				if (wd.win[i] && wd.win[i].A && (!aWin || aWin.A.Created < wd.win[i].A.Created))
					aWin = wd.win[i];
		return aWin;
	},
	Press: function(aText, aBegin, aEnd)
	{
		aText = String(aText);
		if (!aBegin)
			aBegin = 0;
		return aText.substring(aBegin, CbOS.is.Null(aEnd, aText.length - aBegin) + aBegin).replace(/ /g,"");
	},
	Name: function(aObj)
	{
		aObj = aObj.className.split(" ")[0];
		return aObj.substring(0, aObj.length - 1);
		/*+(CbOS.is.Cls(o.parentNode,["btn2Shadow1","btn2Shadow0"])?"/2":"")*/
	},
	bgImage: function(aObj, aCount)
	{
		if (aObj && (aObj = CbOS.get.Style(aObj, "background-image").replace(/"/g,"")) != "none")
			return aObj.substring(4, aObj.length - 5 - (aCount || 0));
	},
	Index: function(aValue, aArray)
	{
		for (var i = 0; i < aArray.length; ++i)
			if (aArray[i] == aValue)
				return i;
	},
	Position: function(aObj)
	{
		if (CbOS.is.ie)
		{
			aObj = CbOS.get.Doc(aObj).selection.createRange();
			var i = {t: aObj.text, o: aObj.duplicate()};
			aObj.moveStart('textedit', -1);
			i.p = aObj.text.length;
			return i;
		}
	},
	Time: function(aObj)
	{
		if (aObj && aObj.isDate)
			return aObj.getHours() + aObj.getMinutes();
		if (!CbOS.is.Time(aObj))
			return;
		aObj = aObj.replace(/ /g, "");
		var i = aObj.split(":");
		if (i[1].length > 2)
			i[1] = i[1].substring(0, i[1].length - 2);
		if ((i = i.toNumber())[1] < 60
			&&
			i[0] < ((i[3] = (i[4] = (i[2] = aObj.charAt(aObj.length - 2).toUpperCase()) == "P") || i[2] == "A") ? 13 : 25)
		)
			return (((i[3] && i[0] == 12) ? 0 : i[0]) + (i[4] ? 12 : 0)) * 60 + i[1];
	},
	Date:function(aObj)
	{
		if(!CbOS.is.Def(aObj) || aObj.isDate || !(aObj = CbOS.is.Date(aObj)))
			return aObj || null;
		var a = aObj.toArray("/").toNumber();
		if (a[2] > 1752
			&&
			(a[3] = CbOS._.Month[a[0] = Math.max(--a[0], 0)])
			&&
			(a[4] = new Date(a[3] = a[3][0] + " " + a[1] + ", " + a[2]))
			&&
			a[4].getMonth() == a[0]
			&&
			a[4].getDate() == a[1]
			&&
			a[4].getFullYear() == a[2]
		)
			return a[4];
	},
	Year: function()
	{
		var maxYear = (new Date()).getFullYear()+ 20;
		return function(aYear)
		{
			var year = CbOS.to.Int(aYear = String(aYear));
			return 	year + ((year + 2000 <= maxYear) ? 2000 : (aYear.length == 3 ? 1000 : 1900));
		}
	}(),
	DateTime: function(aObj)
	{
		with (CbOS)
		{
			if (!is.Def(aObj) || aObj.isDate || !(aObj = is.DTime(aObj)))
				return aObj || null;
			var data = aObj.split(" "),
				datePart = get.Date(data[0]);
			if (datePart && is.Def(data = get.Time(data[1] + (data[2] || ""))))
			{
				datePart.setMinutes(data);
				return datePart
			}
		}
	},
	Win: function(aObj)
	{
		return (aObj = CbOS.get.Doc(aObj)) && (aObj.defaultView || aObj.parentWindow || aObj);
	},
	Doc: function(aObj)
	{
		return aObj && (aObj.ownerDocument || aObj.document || aObj);
	},
	iWin: function(aObj)
	{
		return this.Win(this.iDoc(aObj));
	},
	iDoc: function(aObj)
	{
		return aObj && (aObj.contentDocument ? aObj.contentDocument : (aObj.contentWindow ? aObj.contentWindow.document : ((aObj = CbOS.get.Win(aObj).frames[aObj.name]) && aObj.document)));
	},
	PK: function()
	{
		var pk = "p" + (new Date() * 1).toString(32), pkn = 0;
		return function(aName)
		{
			if (aName)
				return aName;
			if (pkn > 99999)
			{
				pkn = 0;
				pk = "p" + (new Date() * 1).toString(32);
			};
			return pk + (++pkn).toString(32);
		}
	}(),
	Base: function(aUrl)
	{
		if (CbOS.is.URL(aUrl))
			return aUrl;
		var o = d.getElementsByTagName("BASE");
		return (o.length ? o[0].href : '') + (aUrl || "");
	},
	iURL:function(o,i){with(CbOS.get) if(o.a){for(i=0;i<o.length;i++) o[i]=iURL(o[i]); return o}else return o=="none"?o:"url("+Base(o)+")"},
	JustPath: function(aFileName){return aFileName.split("/").slice(0, -1).join("/")},
	Obj:function(aObj, aDoc)
	{
		if (!aObj || !(aObj.isString || aObj.isArray))
			return aObj;
		aDoc = CbOS.get.Doc(aDoc || (aObj.getDoc && aObj.getDoc()) || d);
		if (aObj.isString)
			return aDoc.getElementById(aObj);
		for (var i = 0; i > aObj.length; ++i)
			aObj[i] = CbOS.get.Obj(Obj[i], aDoc);
		return aObj;
	},
	eObj:function(o){if(!o||o.nodeName||!(o=o.srcElement||o.target)) return o; if(!o.nodeName) return; while(CbOS.is.Tag(o,["#TEXT","OPTION"])) o=o.parentNode; return o},
	X:function(o){return (o.clientX||o.pageX||0)+CbOS.get.sLeft(CbOS._.O(o))},
	Y:function(o){return (o.clientY||o.pageY||0)+CbOS.get.sTop(CbOS._.O(o))},
	Left: function(aObj)
	{
		with (CbOS.get)
		{
			var i;
			i = sLeft(aObj) - Style(aObj, "border-left-width", true) + ((i = CbOS.is.Win(aObj)) ? Left(Obj(i.F)) : 0);
			for (; aObj; aObj = aObj.offsetParent)
				i += aObj.offsetLeft - aObj.scrollLeft + Style(aObj, "border-left-width", true);
			return i
		}
	},
	Top: function(aObj)
	{
		with (CbOS.get)
		{
			var i;
			i = sTop(aObj) - Style(aObj, "border-top-width", true) + ((i = CbOS.is.Win(aObj)) ? Top(Obj(i.F)) : 0);
			for (; aObj; aObj = aObj.offsetParent)
				i += aObj.offsetTop - aObj.scrollTop + Style(aObj, "border-top-width", true);
			return i
		}
	},
	Diff: function(o,n,k,i,a){
		with(CbOS)
		{
			k=(k=is.Win(o))?(n=="top"?get.Top(_.F(k.F)):get.Left(_.F(k.F))):0;
			while((o=_.T(o,"DIV"))&&is.Absolute(o))	k+=_.G(o,"border-"+n+"-width",1);
			return k
		}
	},
 	eLeft: function(aObj)
	{
		with (CbOS.get)
			return (aObj = eObj(aObj)) && (Left(aObj) - sLeft(aObj))
	},
	eTop: function(aObj)
	{
		with (CbOS.get)
			return (aObj = eObj(aObj)) && (Top(aObj) - sTop(aObj))
	},
	ScreenAttr: function(aObj, aWin, aDoc, aBody)
	{
		return (aObj = CbOS.get.Win(aObj))[aWin]
			||
			(
				(aObj = CbOS.get.Doc(aObj)).documentElement
				&&
				aObj.documentElement[aDoc]
			)
			||
			aObj.body[aBody || aDoc]
			||
			0
	},
	sLeft: function(aObj)
	{
		return CbOS.get.ScreenAttr(aObj, "pageXOffset", "scrollLeft")
	},
	sTop: function(aObj)
	{
		return CbOS.get.ScreenAttr(aObj, "pageYOffset", "scrollTop")
	},
	sWidth: function(){
		return CbOS.get.ScreenAttr(window, "innerWidth", "clientWidth", "offsetWidth")
	},
	sHeight: function(){
		return CbOS.get.ScreenAttr(window, "innerHeight", "clientHeight", "offsetHeight")
	},
	Width: function(aObj)
	{
		return aObj.offsetWidth
	},
	Height: function(aObj)
	{
		return aObj.offsetHeight
	},
	Value:function(o,t){
		with(CbOS)
		{
			if(is.Tag(o,"UL"))
				return get.Value(is.Tag(o.firstChild.firstChild,"INPUT")||_.C(o,"INPUT",null,"text"),t);
			if(is.Tag(o,"A")&&(is.CheckBox(o)||is.RadioBox(o)))
				return o.lastChild.value;
			if(is.In(o.type,["text","password","textarea","hidden","file"]))
				return t ? o.value.Trim(t) : o.value;
			if(o.type=="select-one")
				return o.selectedIndex<0?"":o.options[o.selectedIndex].value;
			return o.checked;
		}
	},
	Style:function(o,s,n,r){
		if(o) with(CbOS){
			if(!(r=o.style[to.CamelCase(s)])){
				if((r=get.Doc(o)).defaultView)
					r=r.defaultView.getComputedStyle(o,"").getPropertyValue(s);
				else
					if(o.currentStyle)
						r=o.currentStyle[to.CamelCase(s)]
			};
			return n?to.Int(r):r
		};
		return 0
	},
	node:{
		Child: function(aObj, aName, aClass, aType)
		{
			if (aObj && (aObj.getElementsByTagName || ((aObj= CbOS.get.Doc(aObj)) && aObj.getElementsByTagName)) && (aObj = aObj.getElementsByTagName(aName)).length)
				with (CbOS.is)
					for (var i = 0; i < aObj.length; ++i)
						if ((!aClass || Cls(aObj[i], aClass)) && (!aType || In(aObj[i].type, aType)))
							return aObj[i];
		},
		Parent: function(aObj, aName, aClass, aCurrent)
		{
			if (aObj)
				with (CbOS.is)
					if(!aCurrent || Tag(aObj, aCurrent))
						for (aObj = aObj.parentNode; aObj; aObj = aObj.parentNode)
							if (Tag(aObj, aName) && (!aClass || Cls(aObj, aClass)))
								return aObj;
		},
		_FirstLast: function(aObj, aName, aProp)
		{
			with (CbOS.is)
				for (; aObj; aObj = aObj[aProp])
					if(aName ? Tag(aObj, aName) : !Tag(aObj, "#TEXT"))
						return aObj;
		},
		First: function(aObj, aName)
		{
			if (aObj && (aObj = aObj.firstChild))
				return CbOS.get.node._FirstLast(aObj, aName, "nextSibling")
		},
		Last: function(aObj, aName)
		{
			if (aObj && (aObj = aObj.lastChild))
				return CbOS.get.node._FirstLast(aObj, aName, "previousSibling")
		},
		_PrevNext: function(aObj, aName, aCount, aProp)
		{
			if (aCount)
			{
				do
					aObj = CbOS.get.node._PrevNext(aObj, aName, null, aProp);
				while (aObj && --aCount);
				return aObj
			}
			else if (aObj)
				with (CbOS.is)
					for (aObj = aObj[aProp]; aObj; aObj = aObj[aProp])
						if (aName ? Tag(aObj, aName) : !Tag(aObj, "#TEXT"))
							return aObj;
		},
		Prev: function(aObj, aName, aCount)
		{
			if (aObj)
				return CbOS.get.node._PrevNext(aObj, aName, aCount, "previousSibling");
		},
		Next: function(aObj, aName, aCount)
		{
			if (aObj)
				return CbOS.get.node._PrevNext(aObj, aName, aCount, "nextSibling");
		},
		Sibling: function(aObj, aCount)
		{
			var obj,
				method = CbOS.get.node[aCount < 0 ? "Prev" : "Next"];
			for (var i = -Math.abs(aCount); (obj = method(aObj)) && i < 0; ++i)
				aObj = obj;
			return aObj;
		}
	}
};
/*is*/
(function(o,a,b,c,i,v,k,e){
	i=CbOS.get.node.Child(d,"SCRIPT");
	var src = i.getAttribute("src");
	if (!src)
	{
		i= i.nextSibling;
		src = i.getAttribute("src");
	}
	v = src.replace(/^.*(JavaScript\.ashx\?file=){1}/,"")
	CbOS.jsROOT=v?v.substring(0,v.length-12):"";
	CbOS.Skin=i.getAttribute("Company");
	CbOS.ProjectName=i.getAttribute("projectname");
	k=false;
	if(navigator.plugins&&navigator.plugins.length){
		for(var x=0,l=navigator.plugins.length;x<l;++x)
			if(navigator.plugins[x].description.indexOf('Adobe Acrobat')!=-1){
				k=true;
				break;
			}
	}else if(w.ActiveXObject){
		for(var x=2;x<10;++x)
			try
			{
				i=new ActiveXObject('PDF.PdfCtrl.'+x);
				if(i) k=true;
			}catch(e){}
		if(!k)
		{
			try
			{
				i=new ActiveXObject('PDF.PdfCtrl.1');
				if(i) k=true;
			}catch(e){}
			if(!k)
				try
				{
					i=new ActiveXObject('AcroPDF.PDF.1');
					if(i) k=true;
				}catch(e){}
		}
	}
	o.AdobeReader = k;
	for(i=0;i<c.length;i++)
		if(a.indexOf(c[i][0])>=0){
			k=c[i][1];
			o.Substr=function(a,b,i){return i<(i=a.indexOf(b))?"":a.substring(i+b.length,a.length)};
			v=(o.Substr(a,c[i][0])+(k=="ns"?o.Substr(a,"mozilla"):"")).Trim("L").replace(/ /g,"/").split("/");
			delete o.Substr;
			v=CbOS.to.Float(v[(k=="ns"||v[0]=="")?1:0]);
			o.ns6=k=="ns"&&v>=5;
			o.mz5=k=="mz"&&v>=5;
			o.op9=k=="op"&&v>=9;
			o.sf3=k
			o.ie6=(o.ie55=((o.ie5=((o.ie=(k=="ie"&&v>=4))&&v>=5))&&v>=5.5))&&v>=6;
			o.dom=d.createElement&&d.appendChild&&d.getElementsByTagName;
			o.support=o.ns6||o.mz5||o.ie55||o.op9||o.sf3;
			o.platform=a.indexOf("win")<0?(a.indexOf("mac")<1?"other":"mac"):"win32";
			break
		}
})(CbOS.is={
	InsertKeyPressed: false,
	Modified:function(aObj)
	{
		if (aObj)
		{
			if (CbOS.is.Tag(aObj, "INPUT"))
				return aObj.value != aObj.defaultValue;
			var input = aObj.getElementsByTagName("INPUT");
			for (var j = 0; j < input.length; ++j)
				if(input[j].value != input[j].defaultValue)
					return true
		}
	},
	EditMode: function (aObj)
	{
		with(CbOS)
		{
			var o;
			if (aObj.getAttribute)
			{
				if ((o = aObj.getAttribute("EditMode")))
					return o == "true";
				o = aObj;
				while (is.Obj(o))
				{
					if (o.getAttribute("ajax") && o.getAttribute("EditMode"))
						return o.getAttribute("EditMode") == "true";
					if (is.Tag(o, "FORM"))
						return (o.getAttribute("EditMode") || "true") == "true";
					o=o.parentNode
				}
			};
			if ((o = get.Doc(aObj)) && (o = get.node.Child(o,"FORM")))
				return (o.getAttribute("EditMode") || "true") == "true"
		}
	},
	Child:function(aObj, aRelObj)
	{
		if (aRelObj && aRelObj.contains)
			return aObj == aRelObj || aRelObj.contains(aObj);
		else
			while(aObj)
			{
				if(aObj == aRelObj)
					return true;
				aObj = aObj.parentNode
			}
	},
	Absolute:function(o){with(CbOS)if(is.ie){if(get.Win(o)==w)while(is.Obj(o)){if(_.G(o,"position")=="absolute")return true;o=o.parentNode}}else return true},
	Null:function(a,b,c){with(CbOS) return (_.D(a)||!_.D(b)&&!_.D(c))?a:_.N(b,c)},
	Def:function(n){return n!=null&&typeof n!="undefined"},
	In:function(o,n,i){return i?o==n:CbOS.run.Recursion.a1(CbOS.is.In,o,n)},
	Cls:function(o,n,i){if(o){
			if(i)
				return o==n;
			else if((o=o.className&&o.className.toArray(" ")))
				for(i=0;i<o.length;i++)
					if(CbOS.run.Recursion.a1(CbOS.is.In,o[i],n))
						return true
		}
	},
	Enabled:function(o, i){
		with(CbOS)
		{
			var wn = get.Win(o);
			if (wn.CbOS && !wn.CbOSLoadWindowComplete && is.Tag(o, "A"))
				return false;
			return i ?
			(
				(
						_.D(o.disabled)
					?
						!o.disabled
					:
					(
							!o.getAttribute
						||
							!is.In(o.getAttribute("disabled"), ["true", "disabled"])
					)
				)
				&&
				(
					(
							is.Tag(o, "A")
						&&
						(
								!o.href
							||
								is.Href(o)
						)
					)
					?
							!(i = o.className)
						||
							!/0{1}$|0\s{1}/.test(i)
						||
						(
								/1{1}$|1\s{1}/.test(i)
							&&
								is.Href(o)
						)
					:
						true
				)
			)
			:
				run.Recursion.a3(is.Enabled, o)
		}
	},
	InXY: function(aX, aY, aData)
	{
		if (aData[0].isArray)
		{
			for (var i = 0; i < aData.length; i++)
				if (aX.Between(aData[i][0], aData[i][1]) && aY.Between(aData[i][2], aData[i][3]))
					return true;
		}
		else
			return aX.Between(aData[0], aData[1]) && aY.Between(aData[2], aData[3]);
	},
	Tag: function(aObj, aTag, aFlag)
	{
		return aFlag ?
			aObj && aObj.nodeName && aObj.nodeName.toUpperCase() == aTag && aObj
			:
			CbOS.run.Recursion.a1(CbOS.is.Tag, aObj, aTag)
	},
	NotASPNet: function()
	{
		var text = /^(__){1}(VIEWSTATE_KEY|VIEWSTATE|EVENTVALIDATION|EVENTUPDATE|WPPS){1}$/i;
		return function(aName)
		{
			return (aName = String(aName)) && !text.test(aName);
		};
	}(),
	NotASPNetETA: function()
	{
		var text = /^(__){1}(EVENTTARGET|EVENTARGUMENT){1}$/i;
		return function(aName)
		{
			return (aName = String(aName)) && !text.test(aName);
		};
	}(),
	URL:function(o){return this._URL.test(String(o).toLowerCase())},
	_URL:new RegExp("^(http|https|ftp)\://{1}.*$"),
	PX:function(o){return this._PX.test(String(o).toLowerCase())},
	_PX:new RegExp("^[0-9]+(px|pt){1}$"),
	CheckBox:function(o){return o&&this._CheckBox.test(o.className)},
	_CheckBox:new RegExp("^clsCheckBox{1}.*$"),
	MSB:function(o){return o&&this._MSB.test(o.className)},
	_MSB:new RegExp("^msb{1}.*$"),
	ChTree:function(o){return o&&this._ChTree.test(o.className)},
	_ChTree:new RegExp("^chtr{1}.*$"),
	Link:function(o){return o&&this._Link.test(o.className)},
	_Link:new RegExp("^(toolBarBtn|clsRadioBox|btn|wbtn|tab|tabBtn|clsCheckBox){1}[0-9]+$"),
	RadioBox:function(o){return o&&this._RadioBox.test(o.className)},
	_RadioBox:new RegExp("^clsRadioBox{1}.*$"),
	Int:function(o){return this._Int.test(String(o))},
	_Int: /^-?\d{1,15}$/,
	Href:function(o){if(this._Href.test(o.href))o.href="javascript:void(0)";return o.href=="javascript:void(0)"},
	_Href:new RegExp("^.*#{1}$"),
	Tree:function(o){return this._Tree.test(o.parentNode.className)},
	_Tree:new RegExp("^tree_{1}.*$"),
	GTree:function(o){return this._GTree.test(o.className)},
	_GTree:new RegExp("^gtree{1}.*$"),
	GTreeNode:function(o){return this._GTreeNode.test(o.className)},
	_GTreeNode:new RegExp('^(gtreeNode|gtreeLNode){1}[0-1]?$'),
	Date:function(o){return this._Date.test(o) && o},
	_Date: /^((0?[1-9])|(1[012]))\/((0?[1-9])|([12][0-9])|(3[01]))\/(([0-9]{1,4}))$/,
	Time:function(o){return this._Time.test(o)},
	_Time:/^(((([01]?[0-9])|(2[0-3])):[012345]?[0-9] ?)|(((0?[0-9])|(1[012])):[012345]?[0-9] ?([ap]m)?))$/i,
	DTime:function(o){return this._DTime.test(o) && o},
	_DTime:/^((0?[1-9])|(1[012]))\/((0?[1-9])|([12][0-9])|(3[01]))\/(([0-9]{1,4})) (((([01]?[0-9])|(2[0-3])):[012345]?[0-9] ?)|(((0?[0-9])|(1[012])):[012345]?[0-9] ?([ap]m)?))$/i,
	Float:function(o){return this._Float.test(String(o))},
	_Float: /^-?\d{0,15}(\.\d{0,14})?$/,
	EQ:function(a,b,i){if(a.a&&b.a&&a.length==b.length){for(i=0;i<a.length;i++) if(!CbOS.is.EQ(a[i],b[i])) return; return true}; return a==b},
	Complete:function(o){return o&&(!o.readyState||o.readyState=="complete")},
	wBtn:function(o,e,i,k){with(CbOS)
		if(this.Tag(o,"LI")&&this.Cls(o,this._wBtn)){
			set.BgImg(o,[i=(_.H(o)<_.W(o)+get.Left(o)-get.X(e)?0:1),0].Prefix(get.Root(o)+"images/window/btn/bg").Suffix(".gif"),o.parentNode);
			if(i){
				k=get.bgImage(o).toArray("/");
				o.CbOSHint=_.Title[k[k.length-1]];
				Hint.Show(e,o)
			}else
				Hint.Hide()
		};
		return i
	},
	_wBtn:["Help","Close","Max","Min","Shade"].Prefix("win"),
	Obj:function(o){return o&&!this.Tag(o,"BODY")&&o!=CbOS.get.Doc(o)&&o!=CbOS.get.Win(o)},
	Win:function(aWin)
	{
		return (aWin = CbOS.get.Win(aWin)) && aWin != w && CbOS.wd.win[aWin.name]
	}
},navigator.userAgent.toLowerCase(),navigator.appName.toLowerCase(),[["safari","sf"],["opera","op"],["netscape","ns"],["msie","ie"],["mozilla","mz"]]);
/*set*/
CbOS.set={
	Access: function(aObj)
	{
		var k;
		while (!CbOS.is.Tag(aObj, "BODY"))
		{
			if ((k = aObj.getAttribute("setAccess")))
			{
				var c = aObj.getAttribute("accessCondition")
				if (!c || (new Function("aObj", "with (top.CbOS.get.Win(this)){"+c+"}")).apply(aObj))
					top.CbOS.btn.State(aObj, k, true);
			}
			if (aObj.getAttribute("noAccess") == "true")
				break;
			aObj = aObj.parentNode;
		}
	},
	Titles: function(aObj)
	{
		for (var i; aObj && aObj.getAttribute; aObj = aObj.parentNode)
			if ((i = aObj.getAttribute("hint")))
			{
				aObj.removeAttribute("hint")
				CbOS.Title(aObj, i);
			}
	},
	ValueWithoutExecute:function(aObj, aValue)
	{
		with (CbOS)
		{
			var execute = aObj.getAttribute("execute");
			if (execute)
			{
				aObj.removeAttribute("execute");
				execute = get.Win(aObj).CbOS.set.Event(execute)
			}
			else if((execute = aObj.Exec))
				aObj.Exec = null;
			var executeOnChange = aObj.getAttribute("executeOnChange");
			if (executeOnChange)
			{
				aObj.removeAttribute("executeOnChange");
				executeOnChange = get.Win(aObj).CbOS.set.Event(executeOnChange);
			}
			else if((executeOnChange = aObj.ExecOnChange))
				aObj.ExecOnChange = null;
			set.Value(aObj, aValue, null, true);
			if(execute)
				aObj.Exec = execute;
			if(executeOnChange)
				aObj.ExecOnChange = executeOnChange
		}
	},
	DisableAfterSubmit:function(aObj)
	{
		if (aObj.getAttribute && aObj.getAttribute("DisableAfterSubmit"))
			with (CbOS)
			{
				var list = [aObj.id], obj = get.node.Parent(aObj, "DIV", ["btnBoxC","btnBoxCT","btnBoxCB","btnBoxT","btnBoxB","toolBarMain","toolBarDmc"]);
				if (obj)
				{
					var a = obj.id.replace(/(_Bottom|_Top)$/,"");
					var id = a == obj.id ? [a] : [a + "_Bottom", a + "_Top"];
					for (var i = 0; i < id.length; ++i)
						if ((obj = get.Obj(id[i], aObj)))
						{
							a = obj.getElementsByTagName("A");
							for (var j = 0; j < a.length; ++j)
								if (a[j].getAttribute("DisableAfterSubmit"))
									list.push(a[j].id)
						};
				};
				btn.State(aObj, list)
			}
	},
	FormElementUpdate:function(aName, aValue, aObj)
	{
		with(CbOS)
		{
			if (aObj && !is.Tag(aObj, "FORM"))
				aObj = get.node.Child(aObj, "FORM") || get.node.Parent(aObj, "FORM");
			if (aObj)
				(aObj.elements[aName] || _.E("INPUT", aObj, null, aName, "hidden")).value = aValue;
		}
	},
	FormElementMirror: function(aIDs, aObj)
	{
		with (CbOS)
			for (var i = 0; i < aIDs.length; i = i + 2)
			{
				var input = get.Obj(aIDs[i], aObj), output = get.Obj(aIDs[i + 1], aObj);
				if (is.Tag(input, "UL"))
				{
					var inputObjects = input.getElementsByTagName("INPUT");
					var outputObjects = output.getElementsByTagName("INPUT");
					for (var k = 0; k < inputObjects.length; ++k)
						set.Value(outputObjects[k], get.Value(inputObjects[k]), true, true);
				}
				else
					set.Value(output, get.Value(input), true, true);
			}
	},
	Pass:function(o,i,k){
		if(!o.CbOSPass){
			if(o.type=='text')
				o.CbOSPass=true;
			o=o.parentNode.parentNode.parentNode.getElementsByTagName("INPUT")
			k=false
			for(i=0;i<o.length;i++)
			{
				if(o[i].type=='password'&&!o[i].CbOSPass)
				{
					if(k)
						with(o[i].parentNode.previousSibling||o[i].parentNode.parentNode.previousSibling)
							className="tblCCaptR";
					k=true;
					o[i].CbOSPass=true;
					o[i].setAttribute("secondEnter","true");
				}
			}
		}else if(o.type=='password' && o.getAttribute("secondEnter"))
		{
			if (o.getAttribute("clearDisable"))
				o.removeAttribute("clearDisable")
			else
				CbOS.set.Value(o, "", null, true)
			o.removeAttribute("secondEnter")
		}

	},
	EditedMode:function(c,i,o,f){
		with(CbOS)
			if(is.Tag(o=_.F(i||c,c),"FORM"))
				o.setAttribute("CbOSEditMode","1");
			else if((c=get.Ajax(o)))
				set._EditMode(_.T(o,"FORM"),c.o.id,'true');
			else if((o=_.T(o,"FORM")))
				o.setAttribute("CbOSEditMode","1")
	},
	_EditMode:function(f,i,q){
		with(CbOS)if(_.D(q)){
			if(!f._EditMode)
				f._EditMode=create.Obj(f);
			f._EditMode[i]=String(q)
		}else if(f._EditMode){
			del(f._EditMode,i);
			for(i in f._EditMode)
				return;
/*
			{
				if(w.DebugMode)
				{
					var s = [];
					for(i in f._EditMode)
						s.push(i, " = ", f._EditMode[i]);
					f._EditModeDebug = s.join("")
				}
				return;
			};
*/
			del(f,"_EditMode")
		}
/*
		if(w.DebugMode)
		{
			var s = [];
			if(f._EditMode)
				for(i in f._EditMode)
					s.push(i, " = ", f._EditMode[i]);
			f._EditModeDebug = s.join("")
		}
*/
	},
	EditMode:function(o,i,f,r,c){
		with(CbOS){
			r=is.RadioBox(o)
			if(i&&!r)_.S(o,_.r);
			if(!i){
				if(!r && !is.In(o.type, ["hidden", "checkbox", "radio"]))
					_.S(o,_.r,_.G(get.Doc(o).body,_.k[0]));
				if(is.EditMode(o)&&(f=_.T(o,"FORM")||(is.Obj(o)&&get.node.Child(o,"FORM"))||get.node.Child(get.Doc(o),"FORM"))&&f.getAttribute("EditMode")!="false"){
					if(!(c=get.Ajax(o)))
						f.setAttribute("CbOSEditMode","1");
					else if(is.EditMode(c.o))
						set._EditMode(f,c.o.id,'true')
				}
			}
		};
		return o
	},
	Within:function(e,o,k){
		with(CbOS){
			if(e.keyCode==9){
				if(get.Win(o=_.O(e))==w) k=_.T(o,"DIV",["winBody","menu3"]).getElementsByTagName('A');
				if(e.shiftKey&&o.id=="Within0")
					(k?k[k.length-1]:_.F("Within1",o)).focus();
				else if(!e.shiftKey&&o.id=="Within1")
					(k?k[0]:_.F("Within0",o)).focus();
			}
		}
	},
	ClearTitle:function(o,e){with(CbOS)while(CbOS.is.Obj(o=o.parentNode))if(o.title)del(o,"title")},
	DBLClick:function(o){if(!o.CbOSondblclick)CbOS._.M(o,"ondblclick","return top.CbOS.run.Event(event,this,'onclick')")},
	bgImage:function(o, n, i)
	{
		if(o)
			with(CbOS)
				if(i)
				{
					n = "" + _.N(n, "");
					if((i = get.bgImage(o, n.length)))
						_.S(o, _.b, get.iURL(i + n + ".gif"));
				}
				else
					run.Recursion.a4(set.bgImage, o, n)
	},
	HTMLEncode:function(t,b,c,r,i){
		with(CbOS){
			r="";
			t=_.N(t,"")
			if(t.a){
				for(i=0;i<t.length;i++)
					r+=(i?',':'')+set.HTMLEncode(t[i],b);
				return r
			};
			if(!t||b||!t.s) return String(t);
			t=String(t);
			for(i=0;i<t.length;i++)
				r+=_.D(b=get.Index(c=t.charAt(i),_.HTMLin))?_.HTMLout[b]:c;
			return r
		}
	},
	Navigator:function(f,l,o){
		with(CbOS) with(wd.taskbar) if((f=get.node.Next(_.F(PNS),"LI"))){
			if(_.G(l=_.F(Panel).lastChild.lastChild,_.d)=='none') _.S(l,_.d);
			o=_.F(Next);
			set.bgImage(o.firstChild,(o.disabled=(l==f)||(get.Left(l)+_.W(l))<get.sWidth())?0:1);
			o=_.F(Prev);
			set.bgImage(o.firstChild,(o.disabled=(l==f)||(_.G(f,"display")!='none'))?0:1)
		}
	},
	Position:function(o,k,P,L){
		with(CbOS)
			if(is.ie)
			{
				P=_.N(P,get.Position(o));
				o=o.createTextRange();
				o.collapse(true);
				o.moveStart('character',P.p);
				o.moveEnd('character',_.N(P.select, 1));
				o.select()
			}
			else
				Fcs(o)
	},
	Attr:function(a,o){for(var i=0;i<a.length;i++) if(CbOS._.D(a[i][0])&&CbOS._.D(a[i][1])) o.setAttribute(a[i][0],String(a[i][1])); return o},
	Param:function(a,o,i){
		o=o?o:{};
		if(a){
			if(a.a)
				for(i=0;i<a.length;i++) o[a[i].GV(0)]=a[i].a?a[i][1]:a[1+i++];
			else
				for(i in a)
					if(i=="Attributes"&&o[i]&&o[i].a)
						o[i]=o[i].concat(a[i])
					else
						o[i]=a[i];
		};
		return o},
	nParam:function(a,o,i){
		o=o?o:{};
		if(a){
			if(a.a){
				for(i=0;i<a.length;i++)
					if(CbOS._.D(a[i].a?a[i][1]:a[1+i]))
						o[a[i].GV(0)]=a[i].a?a[i][1]:a[1+i++];
			}else
				for(i in a)
					if(CbOS._.D(a[i]))
						o[i]=a[i];
		};
		return o},
	Event:new Function("s",CbOS.get.Event="return typeof s=='string'?new Function("+(top.CbOS.is.ie?'':"'event',")+"s):s"),
	CBubble:function(e,f){
		if(!e) return;
		if(CbOS._.D(e.cancelable)){
			if(e.preventDefault&&e.cancelable)
				e.preventDefault();
			if(e.stopPropagation)
				e.stopPropagation();
		}else
			if(e.keyCode!=17&&e.keyCode!=16){e.cancelBubble=true; try{e.keyCode=0}catch(f){} return e.returnValue=false}
	},
	Status:function(){w.status=w.defaultStatus; return true},
	DisableChilds:function(aObj,aEnable)
	{
		with(CbOS)
		{
			var oScope = aObj.parentNode.parentNode.childNodes;
			for (var i = 0; i < oScope.length; ++ i)
			{
				var chld = oScope.item(i);
				if (chld.className == 'tblCCheckbox2')
				{
					var ob = chld.firstChild;
					if (is.RadioBox(ob))
					{
						ob.disabled = ob.lastChild.disabled = !aEnable;
						ob.className = "clsRadioBox" + ob.lastChild.checked * 1 + aEnable * 1;
						if (aEnable&&ob.lastChild.checked || !aEnable)
						{
							set.DisableChilds(ob.lastChild, aEnable);
						}
						ob.cbosevent = aEnable;
					};
				};
			};
		};
	},
	Value:function(o,t,c, aIgnoreFocus, j,i){
		with(CbOS) if(o){
			SM.run.Event(o,o);
			if(is.Tag(o,"UL")){
				j=_.C(o,"INPUT",null,"text");
				if(is.Cls(o,"combof")) _.S(o.firstChild,_.b,get.iURL(get.Root(o)+t.GV(2)+"1.gif")); else set.Value(j,t.GV(0),c, aIgnoreFocus)
				if(is.Tag(i=o.firstChild.firstChild,"INPUT")&&i!=j) set.Value(i,t.GV(1),c, aIgnoreFocus)
				if (!aIgnoreFocus)
					set.Focus(j);
			}else if(is.Tag(o,"A")){
				if(is.CheckBox(o)&&o.lastChild.value!=String(t))
				{
					o.className="clsCheckBox"+(t=='undefined'?"":(String(t)=="true"?1:(o.getAttribute("allowX")?2:0)))+(_.I(o)?1:0);
					set.Value(o.lastChild,t,c, aIgnoreFocus);
					o.firstChild.innerHTML=t=='undefined'?"?":"";
					set.EditMode(o,c==2);
					if (!aIgnoreFocus)
						Fcs(o);
				}
				else
				if(is.RadioBox(o)&&!o.lastChild.checked)
				{
					var f=o.lastChild.form.elements[o.lastChild.name];
					if(!_.D(o.lastChild.CbOSValue)) for(i=0;i<f.length;i++) f[i].CbOSValue=f[i].checked;
					o.lastChild.checked=true;
					for(i=0;i<f.length;i++)
					{
						j=f[i]==o.lastChild;
						set.DisableChilds(f[i],j)
						f[i].checked=j;
						f[i].parentNode.className="clsRadioBox"+j*1+_.I(f[i])*1;
						run.Execute(f[i])
					}
					set.EditMode(o);
					if (!aIgnoreFocus)
						Fcs(o);
				}
			}else switch (o.type){
				case "text":
				case "password":
				case "hidden":
				case "textarea":
					if(c==2)o.CbOSignore=true;
					mask.Edit(o);
					i=o.CbOSValue;
					if(o.value != t)
					{
						o.value = t;
						if(i!=get.Value(o)&&!c){
							set.EditMode(o);
							if(!o.CbOSonpropertychangeCHANGE)
								mask.Change(o)
						}
					}
					if(c==2){_.S(o,_.r).CbOSValue=o.value;del(o,"CbOSignore")};
					break;
				case "radio":
				case "checkbox":
					if(o.checked!=(o.checked=t))
						run.Execute(set.EditMode(o));
					break;
			};
			return o
		}
	},
	iCache:function(u,i){
		with(CbOS)
			if(u.a)
				for(i=0;i<u.length;i++)
					set.iCache(u[i]);
			else
				with(CbOS[_.K()]=new Image()) src=get.Base(u)
	},
	CancelEnter:function(e,o){
		with(CbOS) if(e.keyCode==13&&is.Tag(o=_.O(e),"INPUT")){
			if(!run.Enter(o, e))
			{
				var err;
				try
				{
					o.blur();
					o.focus()
				}
				catch(err){}
			};
			_.B(e)
		}
	},
	Lock:function(o,e){
		if(e) CbOS._.B(e);
		return (o.L=(o.L||0)+1)==1
	},
	pStatus:function(o,s){
		with(CbOS)
			if((o=wd.win[get.Win(o).name])){
				if(o.Status)o.Status.innerHTML=s;
				_.S(o.ProgressBar,_.b,s?null:"none")
			}
	},
	wStatus:function(o,T,W){
		with(CbOS){
			W=get.Win(o);
			T=set.HTMLEncode(T||W.title||get.Doc(o).title);
			if(W==get.iWin(_.F(_.F("DESKTOP").F))) d.title=w.title=T;
			set.pStatus(o,"")
			if((o=wd.win[o.name])&&o.Caption&&o.A.Caption!=T){
				with(o.Caption)	Hint.Create(o.Caption,o.A.Caption=innerHTML=T);
				create.QLCaption(o);
				_.U(o)
			}
		}
	},
	Style: function(aObj, aStyle, aValue, e){
		with(CbOS){
			if (aStyle && aStyle.isArray)
				for (var i = 0; i < aStyle.length; ++i)
					set.Style(aObj, aStyle[i], aValue);
			else if (aObj && aObj.isArray)
				for (var i = 0; i < aObj.length; ++i)
					set.Style(aObj[i], aStyle, aValue);
			else if (aStyle && aObj)
			{
				var n = to.CamelCase(aStyle)
				if (!aObj.CbOSStyle)
					aObj.CbOSStyle = create.Obj(aObj);
				if (!aObj.CbOSStyle[n])
						aObj.CbOSStyle[n] = get.Style(aObj, aStyle);
				if ((aValue = String(_.N(aValue,aObj.CbOSStyle[n]))) != get.Style(aObj, aStyle))
				{
					try
					{
						aObj.style[n] = aValue
					}catch(e)
					{
						if(w.DebugMode)
							alert(n + "\n" + aValue + "\n" + aObj.outerHTML)
					}
				}
			}
		};
		return aObj
	},
	Size:function(o,W,H,i){if(o) with(CbOS) i?_.S(_.S(o,_.h,Math.max(H-(!is.ie?_.G(o,"border-top-width",1)+_.G(o,"border-bottom-width",1):0),1)),_.w,Math.max(W-(!is.ie?_.G(o,"border-left-width",1)+_.G(o,"border-right-width",1):0),1)):run.Recursion.a2(set.Size,o,W,H); return o},
	DelBgImg:function(o){
		with(CbOS)
			if(o.BgImg){
				del(get.Win(o).CbOS.BgImg,o.BgImg);
				del(BgImg,o.BgImg);
				del(o,"BgImg")
			}
	},
	Focus:function(o,e){
		with(CbOS) if(o){
			if(o.length)
			{
				if(o[0].type == "radio")
					for(var i = 0; i < o.length; ++i)
						if (o[i].checked)
						{
							o = o[i].parentNode;
							break;
						};
				if(o.length)
					o = o[0];
			};
			mask.Edit(o);
			Fcs(o);
			if(is.ie)
			try{
				o=o.createTextRange();
				o.collapse(false);
				o.moveStart('textedit',is.Cls(o,"empty")?1:-1);
				o.moveEnd('textedit',1);
				o.select()
			}catch(e){}
		}
	},
	FocusFrmScan: function(aObj)
	{
		with (CbOS)
		{
			var tmp;
			if (
				(
					get.Style(aObj, "display") == "none"
					||
					aObj.type == "hidden"
				)
				&&
				(
					is.Tag(tmp = aObj.parentNode, "A")
					||
					is.Tag(tmp =aObj.parentNode.parentNode, "A")
				)
			)
				aObj = tmp;
			if (set.__FocusFrm(aObj, is.Tag(aObj, "A")))
				return  true;
		}
	},
	__FocusFrm: function(aObj, aRun)
	{
		with (CbOS)
			if (is.Enabled(aObj))
			try
			{
				if (aRun)
					SM.run.Event(aObj, aObj);
				else
				{
					mask.Edit(aObj);
					aObj.setAttribute("clearDisable", "true");
				};
				SM.run.Event(aObj, aObj);
				aObj.focus();
				set.Focus(aObj);
				SM.run.LastActiveElement(aObj, true);
				return true
			} catch(e) {}
	},
	_FocusFrm: function(aObj, aList)
	{
		with(CbOS)
		{
			var objWin = get.Win(aObj);
			if (!objWin)
				return;
			if (objWin.name == "DESKTOP" && !wd.win.DESKTOP.A.Active)
			{
				var active = true;
				for (var i in wd.win)
					if (i != "DESKTOP" && wd.win[i].A.Active)
					{
						active = false;
						break;
					};
				wd.win.DESKTOP.A.Active = active;
			};
			var objDoc = get.Doc(aObj),
				docBody = objDoc.body,
				firstForm = get.node.Child(objDoc, "FORM");
			if ((aList = aList ? (aList.toArray ? aList.toArray() : [aList]) : [aObj]))
			{
				for (var obj, i = 0; i < aList.length; ++i)
				{
					if (!(obj = aList[i] = get.Obj(aList[i], aObj)) || !is.Enabled(obj))
						continue;
					if (
						is.Tag(obj, ["A", "INPUT", "TEXTAREA", "SELECT"])
						&&
						set.FocusFrmScan(obj)
					)
						return;
					var frm  = get.node.Child(obj, "FORM")
						||
						get.node.Parent(obj, "FORM")
						||
						firstForm;
					if (frm && (is.Child(frm, obj) || is.Child(obj, frm)))
					{
						frm = frm.elements;
						for (var i = 0; i < frm.length; ++i)
						{
							if (is.Child(frm[i], obj) && set.FocusFrmScan(frm[i]))
								return;
						}
					}
				};
				for (var obj, i = 0; i < aList.length; ++i)
					if ((obj = aList[i])
						&&
						obj.getElementsByTagName
					)
					{
						obj = obj.getElementsByTagName("A");
						for (var j = 0; j < obj.length; ++j)
							if (set.__FocusFrm(obj[j]), true)
								return;	
					}
			};
			if ((aObj = _.F("Within0", aObj)))
				set.__FocusFrm(aObj, true);
		}
	},
	FocusFrm: function(aObj, aId)
	{
		CbOS.get.Win(aObj).setTimeout(CbOS._.Security + "top.CbOS.set._FocusFrm(d" + (aId ? ",'" + aId + "'" : "") + ");", 100)
	},
	BgImg:function(o,u,b,i,W,e,a){
		with(CbOS){
			if(u){
				u=get.iURL(u);
				if((b=_.N(b,o)).a)
					for(i=0; i<b.length; i++)
						_.S(b[i],_.b,u[i]);
				else
					_.S(b,_.b,u[0]);
				i=o.a?o[0]:o;
				if(!BgImg[i.BgImg=_.K(i.BgImg)]){
					BgImg[i.BgImg]=(W=get.Win(i)).name;
					W.CbOS.BgImg[i.BgImg]={o:o,b:b,u:u.slice(Math.ceil(u.length/2))}
				}
			}else{
				for(i in BgImg){
					W=((W=BgImg[i])&&W.s)?get.iWin((W=wd.win[W])&&(W=_.F(W.F))):w
					try{
						if((b=W&&W.CbOS&&W.CbOS.BgImg[i])){
							if(!is.In(o,b.o)){
								if(b.o.a)
								{
									var obj = b.o[b.o.length-1];
									if(obj.CbOSStyle && obj.CbOSStyle.color)
										_.S(obj,"color")
								};
								if(b.b.a)
									for(a=0; a<b.b.length; a++)
									{
										_.S(b.b[a],_.b,b.u[a]);
										if(b.b[a].BgImgStyleRollBack)
											del(_.S(b.b[a],b.b[a].BgImgStyleRollBack),"BgImgStyleRollBack")
									}
								else
								{
									_.S(b.b,_.b,b.u[0]);
									if(b.b.BgImgStyleRollBack)
										del(_.S(b.b,b.b.BgImgStyleRollBack),"BgImgStyleRollBack")
								}
								set.DelBgImg(b.o.a?b.o[0]:b.o)
							}
						}else
							del(BgImg,i)
					}catch(e){del(BgImg,i)}
				}
			}
		}
	}
}
CbOS.Hint={
	Create:function(o,n){
		with(CbOS)if(n){
			if(!o.CbOSonmouseoverHINT) _.M(o,["onmousemove","onmouseover"],"top.CbOS.Hint.Show(event,this)","HINT")
			o.CbOSHint=n
		}
	},
	Show:function(e,o,m){
		with(CbOS)
		if((o || this).CbOSHint)
		{
			if((m = Hint.Obj != (o = o || this)))
				Hint.Hide();
			Hint.ObjInstigator = o;
			for (var j, i = o.parentNode; i && i.getAttribute; i = i.parentNode)
				if ((j = i.CbOSHint))
				{
					i.CbOSHintHidden = j;
					i.CbOSHint = null;
				}
			_.Q(Hint.Play,{o:o,x:get.eLeft(e)+(e.offsetX||e.layerX||0)+5,y:get.eTop(e)+(e.offsetY||e.layerY||0),i:Hint.iObj=_.K(),m:m},5)
		}
	},
	Hide:function(o){
		with(CbOS){
			if (Hint.ObjInstigator)
			{
				for (var j, i = Hint.ObjInstigator.parentNode; i && i.getAttribute; i = i.parentNode)
					if ((j = i.CbOSHintHidden))
					{
						i.CbOSHint = j;
						i.CbOSHintHidden = null;
					};
				Hint.ObjInstigator = null;
			};
			Hint.Obj=Hint.Obj?o:null;
			Hint.iObj=null;
			SM.set.XY(_.S(_.F(Hint.Box),_.w,10),-1000,-1000);
			_.S(_.F(Hint.Content),_.h,10)
		}
	},
	Play:function(a,b,H){
		with(CbOS){
			if(Hint.iObj != a.i || !a.o.CbOSHint) return true;
			if(a.m&&5==(b.k=(b.k||0)+1))
				with(_.F(Hint.Content)){
					className="hint0";
					innerHTML=a.o.CbOSHint
				}
			else if(a.m&&10==b.k){
				H=_.F(Hint.Content);
				_.S(_.S(_.F(Hint.Box),_.z,wd.zIndex+1),_.w,Math.min(H.scrollWidth+4,400));
				H.className="hint1"
			}else if(!a.m||20==b.k){
				Hint.Obj=a.o;
				b=_.F(Hint.Content);
				_.S(b,_.h,H=b.scrollHeight);
				b=_.F(Hint.Box);
				SM.set.XY(b,Math.max(Math.min(get.sWidth()-_.W(b),a.x),0),Math.max(a.y<get.sHeight()-H-22?a.y+22:a.y-9-H,0));
				return true
			}
		}
	}
}
CbOS.run={
	_Draw:function(a){
		if(a.i==a.o.i)CbOS._.S(a.o,"visibility","visible");
		return true
	},
	Draw:function(o,i){
		with(CbOS) if(!is.ie){
			_.S(o,"visibility","hidden");
			if(_.D(i))_.Q(run._Draw,{o:o,i:o.i=_.K()},5)
		}
		return o
	},
	DrawBorder:function(o){
		with(CbOS)
			if(_.I(o))
			{
				if(o.type!="hidden"&&o.type!="checkbox"&&o.type!="radio"&&!is.Cls(o,"empty"))
					_.S(o,_.k,_.G(get.Doc(o).body,"border-right-color"));
				if(!is.CheckBox(o))
					while(is.Tag(o=o.parentNode,["LI","UL"]))
						if(_.G(o,_.r)!="transparent")
							_.S(o,[_.r,_.k],_.G(get.Doc(o).body,"border-right-color"))
			}
	},
	RestoreBorder:function(o){
		with(CbOS){
			if(!is.In(o.type, ["hidden", "checkbox", "radio"]) && !is.Cls(o,"empty"))
				_.S(o,_.k);
			if(!is.CheckBox(o))
				while(is.Tag(o=o.parentNode,["LI","UL"]))
					_.S(o,[_.r,_.k])
		}
	},
	HoldValidate:function(aData, aParam)
	{
		var obj = aData.obj;
		if (!obj.getAttribute || (obj.getAttribute("timeHoldValidate") != aData.time))
			return true;
		var tmp, input = obj;
		if ((
				obj.getAttribute("service")
				||
				((tmp = obj.nextSibling) && tmp.getAttribute && tmp.getAttribute("service"))
				||
				((tmp = obj.previousSibling) && tmp.getAttribute && tmp.getAttribute("service"))
			)
			&&
			(
				obj.getAttribute("validate")
				||
				(
					(input = obj.previousSibling || obj.nextSibling)
					&&
					input.getAttribute
					&&
					input.getAttribute("validate")
				)
			)
		)
		{
			CbOS.get.Win(obj).CbOS.Validation.ErrorHide(input || obj);
			return true
		}
		if ((aParam.counter = (aParam.counter || 0) + 1) == 50)
		{
			CbOS.del(obj, "timeHoldValidate");
			CbOS.run.Validate(obj, null, true, CbOS.get.Obj(CbOS.get.Win(obj).CbOSlastActiveElement, obj) || obj != obj);
			/*
			var owin = CbOS.get.Win(obj),
				o = CbOS.get.Obj(owin.CbOSlastActiveElement, obj) || obj,
				diff = o != obj,
				pos;
			if (diff && CbOS.is.In(o.type, ["text", "textarea"]))
				pos = CbOS.get.Position(o);
			CbOS.run.Validate(obj, null, true, diff);
			if(diff)
			{
				if(pos)
					owin.CbOS.Validation.RestoreFocus(false, o, pos);
				else
					CbOS.Fcs(o);
			};
			*/
			return true
		}
	},
	Validate: function(aObj, aValidate, aSkip, aFocus, aNoService, aReValidate)
	{
		if (aObj.getAttribute && aObj.getAttribute("validate") && CbOS.is.Enabled(aObj))
		{
			if (!aValidate)
				return CbOS.get.Win(aObj).CbOS.Validation.ValueValidate(aObj, aSkip, aFocus, aNoService, aReValidate)
			else
				for (var i = 0; i < aValidate.length; ++i)
					if (aValidate[i] && CbOS.is.Child(aObj, aValidate[i]))
						return CbOS.get.Win(aObj).CbOS.Validation.ValueValidate(aObj, aSkip, aFocus, aNoService, aReValidate)
		}
	},
	Execute:function(o,i)
	{
		if(o&&!o.CbOSignore)with(CbOS){
			if(!i)
				set.Access(o)
			o.setAttribute("timeHoldValidate", i = get.PK());
			SM.set.Queue(run.HoldValidate, {obj: o, time: i}, 10);
			if((i=o.getAttribute("execute"))){
				o.removeAttribute("execute");
				o.Exec=get.Win(o).CbOS.set.Event(i);
			};
			if((i=o.getAttribute("executeOnChange"))){
				o.removeAttribute("executeOnChange");
				o.ExecOnChange=get.Win(o).CbOS.set.Event(i);
			};
			if(o.CbOSExec) o.CbOSExec();
			if(o.Exec) o.Exec();
			if(o.ExecOnChange) o.ExecOnChange()
		}
	},
	Enter:function(i){
		with(CbOS){
			var isSetEnter=true, k, cancelFocus;
			del(i, "timeHoldValidate");
			CbOS.run.Validate(i, null, true);
			while(!is.Tag(i,"BODY")){
				if(isSetEnter && (k=i.getAttribute("setEnter")) && _.I(k=_.F(k,i)))
				{
					if(k.type=='button') _.M(k,"onclick");
					run.Event(k,k,"onclick");
					isSetEnter=false
				};
				if((k=i.getAttribute("enter"))){
					i.removeAttribute("enter")
					i.Entr=get.Win(i).CbOS.set.Event(k);
				};
				if(i.Entr)
					cancelFocus = i.Entr(event) || cancelFocus;
				i=i.parentNode
			}
			return cancelFocus
		}
	},
	Event:function(e,o,m,b){with(CbOS.SM.run){Event(e||o,o,b);Event(e||o,o,m,b)}},
	__Click:function(o,c,a){
		if(c=='Yes')
		{
			var obj=CbOS.get.Win(o);
			CbOS.SM.on.DeSelect(o,true);
			obj.CbOSEditModeWarning=o.CbOSEditModeWarning || !a;
			o.onclick2();
			obj.CbOSEditModeWarning=null
		}
	},
	_Click:function(o,c){
		with(CbOS)
			if(c=='Yes'&&run.EditMode(o,run.__Click,o))
				run.__Click(o,"Yes",true)
	},
	Click:function(aEvent, aObj){
		with(CbOS)
		{
			if (_.I(aObj))
				if (
					!SM.Warning(aObj) &&
					aObj.onclick2 &&
					MsgBox.Show(aObj,
						aObj.getAttribute("Question"),
						null,
						['Yes','No'],
						'Question',
						1,
						run._Click,
						aObj
					)
				)
					run._Click(aObj,"Yes");
			return _.B(aEvent);
		}
	},
	_EditMode:function(o,f,i,m){
		with(CbOS)
			for(i in f)
				if(i!=o.id&&(m=_.F(i,o))&&is.EditMode(m)&&is.Child(m,o))
					return true
	},
	DmcEditMode:function(aObj, aCName){
		with (CbOS)
		{
			aObj.CbOSEditModeWarning=true;
			var obj=get.node.Parent(aObj, "DIV", "toolBarDmc");
			obj = get.node.Child(obj ? obj.parentNode : aObj.parentNode.parentNode, "TABLE", "dmc");
			var filters = get.node.Child(obj, "TR", "dmcFilter").getElementsByTagName("TH");
			var sort = get.node.Child(obj, "TR", "dmcSort");
			aCName = aCName.toArray();
			var err, scan;
			try
			{
				scan = eval(aCName.shift());
			}
			catch (err)
			{
				return true;
			};
			aObj.setAttribute("arg", "reset");
			for (var i = 0; i < filters.length; ++i)
			{
				var cell = filters[i].cellIndex;
				if (is.In(sort.cells[cell].getAttribute("cname"), aCName) && is.Modified(filters[i]))
				{
					if(scan)
					{
						for (var c, k = sort.rowIndex + 1; k < obj.rows.length; ++k)
							if (is.Modified(obj.rows[k].cells[cell]))
								return
					}
					else
						return
				}
			};
			del(aObj, "arg");
			return true
		}
	},
	EditMode:function(o,r,a,f,c,i){
		with(CbOS){
			return !is.EditMode(o)
			||
			!(f=_.T(o,"FORM")||(is.Obj(o)&&get.node.Child(o,"FORM"))||get.node.Child(get.Doc(o),"FORM"))
				||
			(
				(o.getAttribute && (i = o.getAttribute("dmcEditMode")))
				?
					run.DmcEditMode(o, i)
				:
					(
						!(
							(c=get.Ajax(o))
								?
							((i=f._EditMode)&&(i[c.o.id]=="true"||run._EditMode(c.o,i)))
								:
							(f.getAttribute("CbOSEditMode")||f._EditMode)
						)
					)
			)
				||
			MsgBox.Show(o,f.getAttribute("EditModeWarning")||_.l,null,['Yes','No'],'Warning',1,r,a)
		}
	},
	Recursion:{
		a1: function(aFunction, aData, aObj)
		{
			if (aObj && aObj.isArray)
			{
				for (var i = 0; i < aObj.length; ++i)
					if (this.a1(aFunction, aData, aObj[i]))
						return true;
			}else
				return aFunction(aData, aObj, true);
		},
		a2: function(aFunction, aObj0, aObj1, aObj2)
		{
			if (aObj0 && aObj0.isArray)
				for (var i = 0; i < aObj0.length; ++i)
					this.a2(aFunction, aObj0[i], aObj1, aObj2);
			else if (aObj1 && aObj1.isArray)
				for (var i = 0; i < aObj1.length; ++i)
					this.a2(aFunction, aObj0, aObj1[i], aObj2);
			else if (aObj2 && aObj2.isArray)
				for (var i = 0; i < aObj2.length; ++i)
					this.a2(aFunction, aObj0, aObj1, aObj2[i]);
			else
				aFunction(aObj0, aObj1, aObj2, true);
		},
		a3: function(aFunction, aObj)
		{
			if (aObj && aObj.isArray)
			{
				for (var i = 0; i < aObj.length; ++i)
					if (!this.a3(aFunction, aObj[i]))
						return;
				return true;
			}
			else
				return aFunction(aObj, true)
		},
		a4: function(aFunction, aObj0, aObj1){
			if (aObj0 && aObj0.isArray)
			{
				for (var i = 0; i < aObj0.length; ++i)
					this.a4(aFunction, aObj0[i], aObj1);
			}else if(aObj1 && aObj1.isArray){
				for (var i = 0; i < aObj1.length; ++i)
					this.a4(aFunction, aObj0, aObj1[i]);
			}else
				aFunction(aObj0, aObj1, true);
		}
	},
	Del: function(aObj, aParam, aIndex)
	{
		if (aObj && aObj[aIndex])
		{
			aObj[aIndex].Run(aParam);
			delete aObj[aIndex];
		}
	}
};
/*create*/
CbOS.create={
	Soap:function(n,a,s){with(CbOS)return '<?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><'+n+' xmlns="'+_.N(s,_.Soap)+'">'+to.Xml(a)+'</'+n+'></soap:Body></soap:Envelope>'},
	Obj:function(o){with(CbOS.get.Win(o||w)) return new Object()},
	Arr:function(o){with(CbOS.get.Win(o||w)) return new Array()},
	Xml:w.ActiveXObject?function(o){
		with(CbOS.get.Win(o||w)) return new ActiveXObject(top.CbOS.create.XmlHttpProgID())}:function(o){with(CbOS.get.Win(o||w)) return new XMLHttpRequest()},
	XmlHttpProgID:function(p,i,o,e){
		if(CbOS.create._XmlHttpProgID) return CbOS.create._XmlHttpProgID;
		p=["MSXML2.XMLHTTP.7.0","MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
		for(i=0;i<p.length;i++)
			try{
				o=new ActiveXObject(p[i]);
				return CbOS.create._XmlHttpProgID=p[i]
			}catch(e){}
    },
	CSS:function(d,n,i){with(CbOS)	if(jsROOT)d.write('<link type=text/css rel=stylesheet href="'+get.Root(d)+"css/"+(n||'')+(is.ie?"ie":(is.op9?"op":"nc"))+'.css">')},
	_Attach:function(o,l,i){
		with(CbOS)if(is.Complete(i=get.iDoc(_.F(o.F)))&&5==(l.k=(l.k||0)+1)){
			i=get.Win(i);
			i.noCbOSData=true;
			SM.Submit(i,o.u,o.a,null,{target:"_blank",unload:o.h});
			return true
		}
	},
	__Attach:function(k){
		with(CbOS)
			if(TEMP[k]){
				TEMP[k].a=TEMP[k].F=null;
				rem(TEMP[k]);
				del(TEMP,k)
			}
	},
	Attach:function(u,o,a,k,h){
		with(CbOS){
			k=_.K(k);
			_.M(get.Win(o),"onunload",h="top.CbOS.create.__Attach('"+k+"')");
			d.body.insertBefore(o=TEMP[k]=_.E("DIV"),d.body.firstChild);
			o.h=h;
			o.u=u;
			o.a=a;
			o.F=create.IFrame(o,"win",k).id=_.K();
		}
	},
	_SpaceBox:function(a,t,o){
		with(CbOS){
			o=_.F(wd.space);
			if(o.i!=a.i)
				return true;
			if((t.k=(t.k||0)+1)==2){
				if((o=o.firstChild))
					_.S(o,"visibility","visible");
				return true
			}
		}
	},
	SpaceBox:function(o){
		with(CbOS){
			o=_.E("DIV",_.S(_.S(rem(_.F(wd.space),1),_.b,_.x),_.z,wd.zIndex+1),"spaceBox");
			_.Q(create._SpaceBox,{i:_.F(wd.space).i=_.K()});
			return o
		}
	},
	Element:function(aNode, aParent, aClass, aId, aType, aValue)
	{
		if (!aParent)
			aParent = d.body;
		var obj;
		with(CbOS)
			if (aClass && aClass.isArray)
				for(var j = 0; j < aClass.length; ++j)
					obj = create.Element(aNode, aParent, aClass[j], aId, aType, aValue);
			else
				obj = aParent.appendChild(
						set.nParam([
							['type', aType],
							['id', aId],
							['name', aId],
							['value', aValue],
							['className', aClass]
						],
						get.Doc(aParent).createElement(aNode)
					)
				);
		return obj;
	},
	IFrame:function(p,c,i,u,e){/*parentNode,id,className*/
		c=c||"win";
		with(CbOS)
			if(is.ie)
				e=p.appendChild(get.Doc(p).createElement("<iframe class="+c+_.A(["name"],i)+" src='"+jsROOT+"html/iframe"+(u||'')+".html' frameborder=0>"))
			else{
				e=_.E('IFRAME',p,c,i);
				e.src=jsROOT+"html/iframe"+(u||'')+".html";
			}
		 return e
	},
	_Window:function(o,l){
		if(2==(l.k=(l.k||0)+1)){
			CbOS.SM.on.Complete(CbOS.wd.win[o]);
			return true
		}
	},
	Window:function(o,z,b,u,i,p){
		with(CbOS){
			if(wd.Stop)	return;
			i=wd.Template;
			with(set) o=Param(u,Param(b,Param(z,Param(o||i.Popup,Param(i.Base)))));
			if(o.Template=="Report"&&!is.AdobeReader)
				return MsgBox.Show(o,'Adobe Reader or Adobe Acrobat plugin is Not Installed.<br>See Adobe for instructions and install Acrobat from <a class="link" target="_blank" href="http://www.adobe.com/prodindex/acrobat/readstep.html">Adobe\'s Web site</a>.',null,'OK','Error');
			if(!o.Skin) o.Skin=(o.Opener&&wd.win[o.Opener]&&wd.win[o.Opener].A)?wd.win[o.Opener].A.Skin:Skin;
			u=o.Template=="Report"&&('pdf'+IE("ie","nc"));
			if(o.Height&&o.MinHeight) o.MinHeight=Math.min(o.Height,o.MinHeight);
			if(o.Width&&o.MinWidth) o.MinWidth=Math.min(o.Width,o.MinWidth);
			if((p=wd.win[o.ID=_.K(o.ID)])){
				ajax.Loading.Hide(o.ID);
				SM.on.Focus(p);
				if(p.A.Shaded)SM.on.Shade(p);
				i=_.E("DIV",_.F(p.Content)||p);
				i.appendChild(i.previousSibling);
				i.parentNode.removeChild(i);
				p.F=create.IFrame(_.F(p.Content)||p,"win",o.ID,u).id=_.K();
			}else{
				o.Created=o.Created||((new Date()*1).PadL(15)+(++wd.zIndex).PadL(7));
				var v=_.F(wd.wins);
				if(o.Modal){
					_.M(wd.modal[o.ID]=_.S(_.E('DIV',v,"space"),_.b,_.x),_.y,"CbOS.SM.on.Focus()").innerHTML=_.n;
					o.MinimizeIcon=o.Minimized=o.ShadeIcon=o.Shaded=null
				};
				z=_.E('DIV',v,"win",o.ID);
				z.A=o;
				run.Del(o,z,"onPreload");
				wd.win[o.ID]=z;
				i=get.Modal();
				with(wd.taskbar){
					var S,C;
					set.bgImage((S=_.F(ShowHide)).firstChild,i?0:1);
					set.bgImage((C=_.F(Cascade)).firstChild,i?0:1);
					S.disabled=C.disabled=!!i
				};
				if(o.URL)
					z.F=create.IFrame(_.F(z.Content)||z,"win",o.ID,u).id=_.K();
				else
					_.Q(create._Window,o.ID,5)
			}
		}
	},
	QL:function(o,q){
		with(CbOS){
			_.S(_.E("DIV",_.M(q=_.E("LI",_.C(_.F(wd.taskbar.Panel),"UL"),"qlTB",o.QL=_.K()),"onclick","return CbOS.SM.on.QL(event,this)")),_.b,_.G(_.C(o.firstChild.firstChild.firstChild,"DIV"),_.b));
			if(!_.QLc) _.QLc=[_.G(q,_.k[0]),_.G(q,_.k[1]),_.G(q.firstChild,_.k[0]),_.G(q.firstChild,_.k[1])];
			q.Win=o.id;
			this.QLCaption(o);
			SM.on.Resize()
		}
	},
	QLCaption:function(o,q){
		with(CbOS)if(o.QL){
			q=_.F(o.QL);
			Hint.Create(q,q.firstChild.innerHTML=o.A.Caption);
			run.Draw(q,10)
		}
	},
	Popup:function(o,i,j,E){
		with(CbOS){
			E=_.E;
			o.className="win0";
			_.M(i=E("DIV",j=E("DIV",E("DIV",o,"win1"),"win3"),"winATB"),["onmouseover","onmousemove"],"CbOS.is.wBtn(CbOS._.O(event),event)")
			if(o.A.CloseIcon) i=E("LI",E("UL",i),"winClose");
			if(o.A.MaximizeIcon) i=E("LI",E("UL",i),"winMax");
			if(o.A.MinimizeIcon) i=E("LI",E("UL",i),"winMin");
			if(o.A.ShadeIcon) i=E("LI",E("UL",i),"winShade");
			if(o.A.HelpIcon) i=E("LI",E("UL",i),"winHelp");
			with(o.Caption=_.M(E("DIV",i),"onmouseover","CbOS.set.ClearTitle(this)")){
				if(o.A.Icon){
					style.backgroundImage=get.iURL(o.A.Icon);
					style.paddingLeft=22;
				};
				Hint.Create(o.Caption,innerHTML=o.A.Caption)
			}
			E("DIV",j,"winBody",o.Content=_.K());
			if(o.A.StatusBar){
				i=E("DIV",j,"winStatus");
				if(o.A.ProgressBar) i=o.ProgressBar=E("LI",E("UL",E("DIV",i)),"winProgressBar");
				i=o.Status=E("DIV",E("LI",E("UL",E("DIV",i))),"winStatusText")
			};
			_.M(o, "onmouseup", "if(!CbOS.is.wBtn(CbOS._.O(event),event,event)) CbOS.SM.on.FocusLastActive(this)");
			if(_.M(o,["onkeydown","onmousedown"],"CbOS.SM.on.Focus(this)").A.Resizable)
				_.M(o,["onmouseover","onmousemove"],"CbOS.SM.on.BResize(event,this)").Resize=E("DIV",j,"winResize");
			if(o.A.TaskBarButton)
				create.QL(o)
		}
	},
	Empty:function(o,r){with(CbOS) return _.P(["readOnly",r,"hideFocus",true],_.E('INPUT',o,"empty"))}
};
(function(o){
	with(CbOS){
		with(set){
			o.S=Style;
			o.P=Param;
			o.B=CBubble
		};
		with(is){
			o.N=Null;
			o.D=Def;
			o.I=Enabled
		};
		o.E=create.Element;
		with(get){
			o.G=Style;
			o.W=Width;
			o.H=Height;
			o.T=node.Parent;
			o.C=node.Child;
			o.O=eObj;
			o.K=PK;
			o.x=iURL(get.Root(d)+"images/1x1.gif"),
			o.F=Obj
		};
	}
})(CbOS._={
	A:function(n,v,b,s,i){with(CbOS){
			if(!_.D(v)) return "";
			if(v&&v.a){
				v=set.HTMLEncode(v,b);
				b=true
			};
			if(n&&n.a){
				s="";
				for(i=0;i<n.length;i++)
					s+=_.A(n[i],v,b);
				return s
			};
			return ' '+n+'="'+set.HTMLEncode(v,b)+'"'
		}
	},
	Month:[["January",0],["February",1],["March",2],["April",3],["May",4],["June",5],["July",6],["August",7],["September",8],["October",9],["November",10],["December",11]],
	Week:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
	f:["menuDef","menuAdv","msbDef","msbAdv"],
	a:["btn0","btn1","wbtn0","wbtn1","tab0","tab1","tabBtn0","tabBtn1","fld0","fld1"],
	n:"&nbsp;",
	b:"background-image",
	r:"background-color",
	k:["border-top-color","border-right-color","border-bottom-color","border-left-color"],
	bw:["border-top-width","border-right-width","border-bottom-width","border-left-width"],
	pd:["padding-top","padding-right","padding-bottom","padding-left"],
	z:"z-index",
	d:"display",
	c:"cursor",
	w:"width",
	h:"height",
	y:["ondblclick","onclick"],
	s:"<a href=# onkeydown='top.CbOS.set.Within(event)' EditMode=false hidefocus=true id=Within",
	l:"Would you like to exit and lose your changes?",
	Soap:"http://services.framework/web/data",
	HTMLin:["&",'"',"<",">"],
	HTMLout:["&amp;","&quot;","&lt;","&gt;"],
	Title:{
		shade1:"Shade Window",
		shade0:"Unshade Window",
		min:"Minimize Window",
		max1:"Maximize Window",
		max0:"Restore Down Window",
		close:"Close Window",
		help:"Help"
	},
	Security:"if(window.top&&window!=top&&top.CbOS&&(top.CbOS.wd.win[window.name]||top.CbOS.TEMP[window.name]))"
});
CbOS.SM={
	Queue:{l:{},L:0,T:0},
	ETA:function(o,z,n){
		z=z?[].concat(z):[];
		if(o&&o.nodeName&&(n=o.getAttribute("name")||o.name)&&n.length){
			z.push(['__EVENTTARGET',n]);
			z.push(['__EVENTARGUMENT',o.getAttribute("arg")||''])
		};
		return z
	},
	Redirect:function(aObj, aUrl, aAttr, aData)
	{
		with(CbOS){
			var frm = is.Tag(aObj, "FORM") ? aObj :  get.node.Parent(aObj, "FORM");
			if (frm && is.EditMode(aObj) && (frm.getAttribute("CbOSEditMode") ||  frm._EditMode) && !aObj.CbOSEditModeWarning && !get.Win(aObj).CbOSEditModeWarning)
				return MsgBox.Show(aObj,  frm.getAttribute("EditModeWarning") || _.l, null, ['Yes', 'No'], 'Warning', 1, SM._Redirect, arguments);
			aAttr = SM.ETA(aObj, aAttr);
			if(!aUrl)
				get.VSAtr(frm, aAttr);
			SM.Submit(get.Win(aObj),aUrl || ajax.Url(aObj), aAttr, aData);
		}
	},
	_Redirect: function(aParam, aKey)
	{
		if (aKey == 'Yes')
		{
			var obj = CbOS.get.Win(aParam[0]);
			obj.CbOSEditModeWarning = aParam[0].CbOSEditModeWarning = true;
			CbOS.SM.Redirect.apply(w, aParam);
			obj.CbOSEditModeWarning = aParam[0].CbOSEditModeWarning = null
		}
	},
	Warning:function(o)
	{
		return (o = CbOS.get.Win(o).CbOSStop) ? true : o;
	},
	_GoTo:function(o,c){if(c=='Yes') CbOS.SM.Submit(o.o,null,o.i)},
	GoTo:function(o,i){with(CbOS)if(run.EditMode(o,SM._GoTo,i={i:i,o:o})) SM._GoTo(i,"Yes")},
	_Submit:function(m,a,o){
		with(CbOS){
			if((o=wd.win[m.n])&&(o=get.iWin(_.F(o.F)))&&o.CbOSStop2==m.p){
				if(100==(a.k=(a.k||0)+1)){
					o.CbOSStop=o.CbOSStop2=null;
					if(is.Complete(a=get.Doc(o))){
						a=a.getElementsByTagName("FORM")
						if(a.length){
							a=a[a.length-1].elements;
							for(m=0;m<a.length;m++)
								if(a[m].type=="file"&&a[m].value){
									MsgBox.Show(o,'Form submit action was canceled.<br>Please check if you typed File Name correctly.',null,'OK','Warning',0,Fcs,a[m]);
									set.pStatus(a[m],"")
									break
								}
						}
					}
					return true
				}
			}else
				return true
		}
	},
	__Submit:function(aObj, aEl)
	{
		with(CbOS)
		{
			aObj = _.F(aObj, aEl);
			if(!aObj.__EVENTTARGET)
			{
				if((aEl = aObj.__VIEWSTATE))
					aEl.disabled = true;
				if((aEl = aObj.__VIEWSTATE_KEY))
					aEl.disabled = true;
				if((aEl = aObj.__EVENTVALIDATION))
					aEl.disabled = true;
			};
			var curWin = get.Win(aObj);
			if(curWin == w)
				set.FormElementUpdate("TimeZoneInfo", TimeZoneInfo, aObj);
			if (aObj._EditMode)
			{
				var cntModifData = [];
				for (var i in aObj._EditMode)
				{
					var div = get.Obj(i, aObj);
					if(div)
					{
						var name = i, o;
						while ((o = get.Ajax(div.parentNode)))
							name = (div = o.o).id + ":" + name;
						cntModifData.push(name);
					};
				};
				if (cntModifData.length)
					set.FormElementUpdate("ContainersWithModifiedData", cntModifData.join(","), aObj);
			};
			try
			{
				aObj.submit();
				if (curWin.WaitWhileLoading)
					SM.set._Wait(curWin);
			} catch(aEl){}
		}
	},
	___Submit: function(aParam, aKey)
	{
		if (aKey == 'Yes')
		{
			var obj = CbOS.get.Win(aParam[0]);
			obj.CbOSEditModeWarning = aParam[0].CbOSEditModeWarning = true;
			CbOS.SM.Submit.apply(w, aParam);
			obj.CbOSEditModeWarning = aParam[0].CbOSEditModeWarning = null;
		}
	},
	Submit:function(o,u,z,m,g,f,t,W,i){
		with(CbOS)if(o){
			z=SM.ETA(o,z);
			set.DisableAfterSubmit(o);
			W=get.Win(o);
			if(W==w&&w.name!="CBOS")w.name="CBOS";
			if((f=is.Tag(o,"FORM")?o:_.T(o,"FORM"))){
				if (is.EditMode(o) && !get.Win(o).CbOSEditModeWarning && !o.CbOSEditModeWarning && (f.getAttribute("CbOSEditMode") || f._EditMode))
					return MsgBox.Show(o,  f.getAttribute("EditModeWarning") || _.l, null, ['Yes', 'No'], 'Warning', 1, SM.___Submit, arguments);
				if(o.getAttribute && o.getAttribute("validation") == "true")
				{
					var isError = false, validated = [];
					for (var j = 0; j < f.elements.length; ++j)
						if (!is.In(f.elements[j].name, validated))
						{
							validated.push(f.elements[j].name)
							if (run.Validate(f.elements[j], null, null, isError, true, true) && !isError)
								Fcs(f.elements[j], isError = true);
						}
					if (isError)
						return;
				};
				if(g){
					if(g.target)
						f.target=g.target;
					if(g.unload)
						_.M(get.Win(f),"onunload",g.unload)
				};
				if(SM.Warning(f)) return;
				W.CbOSStop=true;
				if (!u)
					u = ajax.Url(o);
				set.nParam([['method',m||"POST"],["action",u=u&&get.Base(u).toLowerCase()]],f);
				if(!u || !/^.*html{1}$/.test(u)){
					if(w != W && !W.noCbOSData)
						set.FormElementUpdate("CbOSData", "ID="+W.name, f);
					for(i in Session) set.FormElementUpdate(i, Session[i], f)
					for(t=0;z&&t<z.length;t++) set.FormElementUpdate(z[t][0], z[t][1], f);
				};

				if(!f.action) f.action=get.Url(W);
				_.Q(SM._Submit,{n:W.name,p:W.CbOSStop2=get.PK()},5);
				set.pStatus(f,"Loading...")
				W.setTimeout("try{top.CbOS.SM.__Submit('"+(f.id||(f.id=_.K()))+"',document)}catch(o){}",2)
			}else{
				o=get.Doc(o).body;
				if(W!=w&&W.CbOS){
					i=W.nodeName?W:W.CbOS.EVENTS;
					i.CbOSonload=create.Obj(o);
					i.CbOSonresize=create.Obj(o);
					i.CbOSonscroll=create.Obj(o);
					o.innerHTML="";
				}
				SM.Submit(_.S(_.E("FORM",o),_.d,"none"),u,z,m,g);
			}
		}
	},
	run:{
		Queue:function(g,e,i){
			with(CbOS.SM)with(Queue){
				if(T){w.clearTimeout(T); T=0};
				if(!L++){
					for(i in l){
						try{
							g=l[i].f(l[i].a,l[i])
						}catch(e){
							delete l[i];
							continue
						};
						if(g){
							delete l[i];
							if(g.n)	break
						}
					};
					for(i in l){
						if(T) w.clearTimeout(T);
						T=w.setTimeout("CbOS.SM.run.Queue()",10);
						break
					}
				};
				L--
			}
		},
		LastActiveElement: function(aObj, aWin)
		{
			CbOS.SM.set.Event(aObj, "onfocus", "window.CbOSlastActiveElement = this.id ||  (this.id = top.CbOS.get.PK())", "LASTACTIVEELEMENT");
			if (aWin)
				CbOS.SM.run.Event(aObj, aObj, "onfocus")
		},
		EventDebug: function(aOwner, aName, aEvent, aIsOnLoad, aObj, aEventName, aWin)
		{
			var result, eventName = "_" + aName;
			with (CbOS)
			{
				if (aOwner[eventName])
				{
					if (confirm("Do you want to run function?\n[" + eventName + "]\n\n" + aOwner[eventName]))
						result = aOwner[eventName].apply(aOwner, aEvent);
					if (aIsOnLoad)
						del(aOwner, eventName);
				};
				if (aIsOnLoad)
				{
					for(var p in aOwner[aName])
						if (aOwner[eventName = aName + p])
						{
							if (p == "FOCUSFRM" || !confirm("Do you want to run function?\n[" + eventName + "]\n\n" + aOwner[eventName]))
								continue;
							result = is.Null(aOwner[eventName].apply(aOwner, aEvent), result);
							del(aOwner, eventName);
							del(aOwner[aName], p);
						}
						else
							del(aOwner[aName], p)
				}
				else
					for(var p in aOwner[aName])
						if (!aOwner[eventName = aName + p])
							del(aOwner[aName], p);
						else if(confirm("Do you want to run function?\n[" + eventName + "]\n\n" + aOwner[eventName]))
							result = is.Null(aOwner[eventName].apply(aOwner, aEvent), result);
			};
			return result
		},
		EventNormal: function(aOwner, aName, aEvent, aIsOnLoad, aObj, aEventName, aWin)
		{
			var result, eventName = "_" + aName;
			with (CbOS)
			{
				if (aOwner[eventName])
				{
					result = aOwner[eventName].apply(aOwner, aEvent);
					if (aIsOnLoad)
						del(aOwner, eventName);
				};
				if (aIsOnLoad)
				{
					for(var p in aOwner[aName])
						if (aOwner[eventName = aName + p])
						{
							if (p == "FOCUSFRM")
								continue;
							result = is.Null(aOwner[eventName].apply(aOwner, aEvent), result);
							del(aOwner, eventName);
							del(aOwner[aName], p);
							if(aWin.CbOS)
							{
								aWin.CbOS.TEMP[p = get.PK()] = {obj: aObj, event: aEventName};
								aWin.setTimeout("if(window.CbOS){var o = CbOS.TEMP." + p +"; delete CbOS.TEMP." + p +"; top.CbOS.SM.run.Event(null, o.obj, o.event, o.debug)}", 3);
								return true;
							};
						}
						else
							del(aOwner[aName], p)
				}
				else
					for(var p in aOwner[aName])
						if (aOwner[eventName = aName + p])
							result = is.Null(aOwner[eventName].apply(aOwner, aEvent), result);
						else
							del(aOwner[aName], p);
			};
			return result
		},
		Event: function(event, o, m, aDebug, p,r,R,i,n,E,W,P,v)
		{
			with(CbOS){
				var aWin = W = get.Win(o)
				if(w != W && (!W || !(P = wd.win[W.name])))
					return;
				E=o.nodeName?o:W.CbOS.EVENTS
				if(m){
					var eventName,
						isOnLoad = (n = "CbOS" + m) == "CbOSonload";
					if(isOnLoad)
						W.CbOSLoadWindowComplete = true;
					var ev = [event];
					if (aDebug)
						r = SM.run.EventDebug(E, n, ev, isOnLoad, o, m, W);
					else
						r = SM.run.EventNormal(E, n, ev, isOnLoad, o, m, W);
					if(isOnLoad)
					{
						if (r) return;
						var ss = E.CbOSonloadFOCUSFRM
						if (E[eventName = "CbOSonloadFOCUSFRM"])
						{
							E[eventName].apply(E, ev);
							del(E, eventName);
						};
						del(E, n);
						i=get.Doc(o).getElementsByTagName("SCRIPT");
						for(var j=0;j<i.length;j++)
							if(i[j].getAttribute("cbos"))
								rem(i[j]);
						if(w!=W&&P.A&&P.A.AutoResize){
							delete P.A.AutoResize;
							i=get.Doc(W).body;
							if(i.scrollWidth>i.offsetWidth||i.scrollHeight>i.offsetHeight){
								v=_.F(wd.wins);
								SM.set.Size(P,E=Math.max(Math.min(_.G(v,_.w,1),i.scrollWidth+P.offsetWidth-i.offsetWidth),i.offsetWidth),i=Math.max(Math.min(_.G(v,_.h,1),i.scrollHeight+P.offsetHeight-i.offsetHeight),i.offsetHeight));
								if(P.A.Centered){
									P.A.Left=Math.max(0,Math.ceil((_.G(v,_.w,1)-E)/2));
									P.A.Top=Math.max(0,Math.ceil((_.G(v,_.h,1)-i)/2))
								}
							}
							SM.set.XY(P,P.A.Left,P.A.Top);
							if(P.A.Left+P.A.Width>_.W(v=_.F(wd.wins))||P.A.Top+P.A.Height>_.H(v)){
								v=P.A.MaximizeIcon;
								P.A.MaximizeIcon=true
								SM.on.Maximize(P,1)
								P.A.MaximizeIcon=v
							}
						}
					}
				};
				if(!(i=_.O(event)))
					return r;
				if(is.Tag(i,"LABEL")){
					if(!i.CbOSonclick) _.M(i,_.y,"top.CbOS.label(event,this)");
					if(i.htmlFor) i=_.F(i.htmlFor,i)
				}else if(m!="onpropertychange"&&is.Tag(i,["INPUT","TEXTAREA"])&&!i.CbOSonfocusBORDER){
					_.M(_.M(i,"onfocus","top.CbOS.run.DrawBorder(this)","BORDER"),"onblur","top.CbOS.run.RestoreBorder(this)");
					if(m=="onkeyup") SM.run.Event(event,i,"onfocus")
				}
				if(i&&!i.cbosevnt){
					i.cbosevnt = true;
					var obj = i;
					if(is.Tag(i,["INPUT","TEXTAREA"]))
					{
						if (is.ie && is.In(i.type, ["text", "textarea", "file", "password"]))
							_.M(i, "onkeydown", "if(event.keyCode == 45 && !(event.ctrlKey || event.shiftKey || event.altKey)) {event.keyCode = 0; top.CbOS.is.InsertKeyPressed = !top.CbOS.is.InsertKeyPressed}", "INSERTKEYPRESSED");
						SM.run.LastActiveElement(i, (m == "onkeyup" || m == "onfocus") && W);
						if (!i.getAttribute("RTV")) OperatedInput.ReadValidationInfo(i)
					}
					if(i&&(is.Tag(i,"A")||is.Cls(i,_.f)||is.Tag(i=i.parentNode,"A")||is.Cls(i,_.f)||is.Tag(i=i&&i.parentNode,"A")||is.Tag(i=i&&i.parentNode,"A"))&&!i.CbOSonmouseover){
						if(set.Lock(i)){
							if(!_.M(i,["onfocus","onmouseover"],"return top.CbOS.set.Status()","Status").CbOSonclick){
								if((E=is.Tag(i,"A")&&is.Href(i))) _.M(i,["onkeydown","onkeyup"]);
								if(is.CheckBox(i))
									_.M(_.M(_.M(i,[_.y,"onkeydown"],"top.CbOS.checkbox.Click(event,this)"),"onfocus","top.CbOS.run.DrawBorder(this)","BORDER"),"onblur","top.CbOS.run.RestoreBorder(this)").hideFocus=true;
								else if(is.RadioBox(i))
									_.M(i,[_.y,"onkeydown"],"top.CbOS.radiobox.Click(event,this)");
								else if(is.Tree(i))
									Title(_.M(_.M(_.M(i,_.y,"top.CbOS.Tree.Item(event,this)"),'onfocus','top.CbOS.Tree.Focus(event,this)'),'onblur','top.CbOS.Tree.Blur(event,this)'),i.innerHTML);
								else if(is.Cls(i,["menuDef","menuAdv"])&&i.getAttribute("N"))
								{
									_.M(_.M(_.M(i,_.y,"top.CbOS.menu.Click(event,this)"),["onfocus","onmouseover"],"top.CbOS.menu.Focus(this)"),"onmouseover","top.CbOS.menu.setFocus(this)");
									if(!is.Cls(i,["menuUp","menuDown"]))
										with(i.parentNode.parentNode.M.a[i.getAttribute("N")*1])Title(i,GV(3)||GV(0));
								}
								else if(is.Cls(i,["msbDef","msbAdv"])&&i.id)
									with(W.CbOS.TEMP[_.T(i,"DIV","msb").id].M[i.id])Title(_.M(_.M(i,_.y,"top.CbOS.msb.Click(event,this)"),"onfocus","top.CbOS.msb.Focus(this)"),GV(3)||GV(0));
								else if(is.ChTree(i))
									_.M(_.M(_.M(i,[_.y,"onkeydown"],"top.CbOS.chtree.lClick(event,this)"),"onfocus","top.CbOS.chtree.Focus(this)"),"onblur","top.CbOS.chtree.Blur(this)").hideFocus=true;
								else if(is.GTree(i.parentNode))
									_.M(_.M(_.M(i,[_.y,"onkeydown"],"top.CbOS.gtree.KDown(event,this)"),"onfocus","top.CbOS.gtree.Focus(this)"),"onblur","top.CbOS.gtree.Blur(this)").hideFocus=true;
								else{
									if(i.onclick){
										[i][0].onclick2=i.onclick;
										i.onclick=null
									};
									W=is.Cls(i,_.a);
									if((E&&W)||E||i.onclick2)
										_.M(i,_.y,"top.CbOS.run.Click(event,this)")
									if(CbOS.btn)
									{
										if(W)
											_.M(_.M(_.M(_.M(_.M(i,"onfocus","top.CbOS.btn.Focus(this)"),"onblur","top.CbOS.btn.Blur(this)"),"onmouseover","top.CbOS.btn.Over(this)"),"onmousedown","top.CbOS.btn.Down(this)"),"onmouseup","top.CbOS.btn.Up(this)")
										else if(is.Cls(i,["toolBarBtn0","toolBarBtn1"]))
											_.M(_.M(i,["onfocus","onmouseover"],"top.CbOS.btn.ToolBarOver(this,event)"), "onblur", "top.CbOS.btn.ToolBarBlur(this)")
									}
								}
							};
							SM.run.LastActiveElement(i);
							if(m){
								if(m=="onkeyup") SM.run.Event(event,i,"onfocus");
								SM.run.Event(event,i,m);
								if(m!="onmouseover"&&!is.Cls(i,_.a)) SM.run.Event(event,i,"onmouseover")
							}
						};
						i.L--
					};
					set.Titles(obj);
				}
				return r
			}
		}
	},
	set:{
		/*function,attributes,time*/
		Queue:CbOS._.Q=function(f,a,t,g,o){
			with(CbOS)with(SM.Queue){
				o={f:f,a:a};
				if(!t&&(g=o.f(a,o))){if(g.s&&w.DebugMode)alert(g);return};
				l[_.K()]=o;
				if(!L){
					if(T) w.clearTimeout(T);
					T=w.setTimeout("CbOS.SM.run.Queue()",t||10);
				}
			}
		},
		/*object,event,functionJS,pk,value*/
		Event:CbOS._.M=function(o,e,f,p,v,n,E,i,k,q,W){
			with(CbOS)
			if (is.support)
			{
				if(o.a)
				{
					for(i=0;i<o.length;++i)
						_.M(o[i],e,f,p);
					return o
				};
				if((W=get.Win(o))&&(q=W.CbOS))
				{
					if(e.a){for(i=0;i<e.length;++i) _.M(o,e[i],f,p); return o};
					p=_.K(p);
					E=o.nodeName?o:q.EVENTS
					if(!E[n="CbOS"+e]){
						E[n]=create.Obj(o);
						if(o[e]) E["_"+n]=o[e];
						if ((e == "onkeyup" || e == "onkeydown") && is.Tag(o, "A"))
							SM.set.Attach(o,e,q.set.Event("if(window.top&&top.CbOS&&top.CbOS.SM){var a = top.CbOS.SM.run.Event(event,this,'"+e+"');if(top.CbOS.is.In(event.keyCode,[32,37,38,39,40])) top.CbOS.set.CBubble(event); return a}"))
						else
							SM.set.Attach(o,e,q.set.Event("if(window.top&&top.CbOS&&top.CbOS.SM) return top.CbOS.SM.run.Event(event,this,'"+e+"')"))
					};
					if(f){
						E[n][p]=v;
						E[n+p]=q.set.Event(f)
					}else if(E[n+p]){
						del(E[n],p);
						del(E,n+p)
					};
					return o
				}
			}
		},
		Attach:function(o,e,f){
			if(o[e]||w.attachEvent)
				o[e]=f;
			else if(o.addEventListener)
				o.addEventListener(e.substring(2,e.length),f,false);
		},
		Init:function(o,m,e){
			with(CbOS){
				if(w.name!="CBOS"){
					wd.Stop=true;
					return _.M(o,"onload","CbOS.SM.Submit(top)")
				};
				if(o == w)
					_.M(o,"onload","CbOS.Boot.Init()");
				else {
					_.M(_.M(o,"onload","CbOS.LOAD()"),"onunload","top.CbOS.ajax.Loading.Hide(w);top.CbOS.Hint.Hide();top.CbOS.menu.Cache(w.name)").d.write('<base href="'+get.Base()+'"/>');
					create.CSS(o.d);
					_.Q(MsgBox.Close,TEMP[o.name],1);
					if(!get.node.Child(o.d,"SCRIPT").getAttribute("redirect")&&(e=wd.win[o.name])&&e.F&&_.G(_.F(e.F),"visibility")=="hidden"){
						_.S(_.F(e.Content)||e,_.b,"none");
						_.S(_.F(e.F),"visibility","visible")
					}
				};
				_.M(o.d,"onkeydown","top.CbOS.menu.Identity(event, 'onkeydown')");
				_.M(o.d,"onkeyup","top.CbOS.menu.Identity(event, 'onkeyup')");
				_.M(o.d,"onmousedown","top.CbOS.menu.Identity(event, 'onmousedown')");
				m=["MOver","MDown","MUp","Click","DClick","KDown","KUp"];
				e=["mouseover","mousedown","mouseup","click","dblclick","keydown","keyup"];
				for(var i=0;i<e.length;i++)
					_.M(o.d,"on"+e[i],"top.CbOS.SM.on."+m[i]+"(event)");
				_.M(o,is.op9?"onresize":["onscroll","onresize"],"top.CbOS.menu.Clear()", "MENUCLEAR");
				o.hideFocus=true;
				if(is.ie)
					_.M(o, "onload", "top.CbOS.SM.set.Event(d.body, 'ondragover', 'top.CbOS.mask.Edit(top.CbOS.get.eObj(event))')");
				else{
					_.M(o, "onload", "top.CbOS.SM.set.Event(d.body, 'ondragdrop', 'top.CbOS.mask.Change(this,event)')");
					if(o!=w)_.M(o,"onresize","top.CbOS.SM.set.Scroll(w,d)")
				}
			}
		},
		_Wait:function(o){
			with(CbOS)if((o=wd.win[o.name])){
				var obj = _.F(o.Content) || o;
				_.S(obj, "background-position", "50% 50%");
				_.S(obj, "background-repeat", "no-repeat");
				_.S(obj,_.b,get.iURL(get.Root(o)+"images/window/wait.gif"));
				_.S(_.F(o.F), "visibility", "hidden")
			}
		},
		Wait:function(aWin)
		{
			aWin = CbOS.get.Win(aWin);
			aWin.setTimeout("if (window.WaitWhileLoading=='" + (aWin.WaitWhileLoading = CbOS.get.PK()) + "') window.WaitWhileLoading=null;", 599);
		},
		_Scroll:function(a,t,o,i){
			with(CbOS){
				if((o=wd.win[a.n])&&(i=get.iWin(_.F(o.F)).CbOSScroll==a.i)&&(t.k=(t.k||0)+1)==3){
					_.S(get.iDoc(_.F(o.F)).body,"overflow","auto");
					return i
				}else
					return !i
			}
		},
		Scroll:function(W,D){
			with(CbOS) _.Q(SM.set._Scroll,{n:W.name,i:W.CbOSScroll=_.K()},5)
		},
		Size:function(o,W,H){
			with(CbOS){
				var wns=_.F(wd.wins)
				var j = get.Height(wns);
				if(j + 1 < Math.max(H,o.A.MinHeight))
					o.A.MinHeight = Math.min(H=o.A.Height=j, o.A.MinHeight);
				if((j = get.Width(wns)) < Math.max(W,o.A.MinWidth))
					o.A.MinWidth = Math.min(W=o.A.Width=j, o.A.MinWidth);
				if(!o.A.Maximized){
					o.A.Width=W;
					if(!o.A.Shaded) o.A.Height=H
				};
				if(o.A.Shaded)
					_.S(o,_.w,Math.max(W,o.A.MinWidth));
				else{
					var c=_.F(o.Content); 
					_.S(c, IE(_.h, "min-height" ), Math.max(H,o.A.MinHeight) - _.H(c.previousSibling) - (o.A.StatusBar ? _.H(c.nextSibling) : 0) - IE(3,5));
					_.S(c.nextSibling,_.d,"none");
					_.S(o, IE(_.w,"min-width"), Math.max(W, o.A.MinWidth));
					if(o.F) _.S(_.F(o.F),_.h,_.G(c,_.h,1)-IE(2,3));
					_.S(c.nextSibling,_.d)
				};
				return o
			}
		},
		XY:function(o,X,Y){
			if(o)with(CbOS){
				if(o.A&&!o.A.Maximized&&!o.A.Minimized){
					o.A.Left=X;
					o.A.Top=Y
				};
				return _.S(_.S(o,"left",X-_.G(o.firstChild,"left",1)*2),"top",Y-_.G(o.firstChild,"top",1)*2)
			}
		},
		Sort:function(a,f,k,i){
			with(CbOS) while((k=true)){
				for(i=0;i<a.length-1;i++)
					if(a[i].A.zIndex>a[i+1].A.zIndex){
						f=a[i];
						a[i]=a[i+1];
						a[i+1]=f;
						k=false
					}
				if(k) return a
			}
		},
		Width:function(o){
			with(CbOS) if(is.Tag(o=o.body.firstChild,'DIV')) _.S(_.S(o,_.w,'100%'),_.w,Math.max(o.parentNode.scrollWidth&&o.offsetWidth))
		},
		MaxLength: function(aObj, alength)
		{
			return aObj.maxLength = (aObj.getAttribute("maxlength") || alength || 250) * 1
		}
	},
	on:{
		WinsScroll:function(o,i,m){
			with(CbOS)
				for(i in wd.win){
					m=wd.win[i];
					if(m.A.Active){
						if(m.A.Left<1&&m.A.Top<1){
							i=m.A.MaximizeIcon;
							m.A.MaximizeIcon=true;
							this.Maximize(m);
							m.A.MaximizeIcon=i
						}else
							SM.set.XY(m,Math.max(0,m.A.Left-o.scrollLeft),Math.max(0,m.A.Top-o.scrollTop));
					}
				}
			if (o.scrollTop)  o.scrollTop = 0;
			if (o.scrollLeft) o.scrollLeft = 0;
		},
		QL:function(e,o,i,k,q){
			with(CbOS){
				q=_.F(o.Win);
				if(!(k=get.Modal())||k.A.Created<=q.A.Created){
					if(q.A.Active)
						SM.on.Minimize(q);
					else
						SM.on.Focus(q, true)
				}else
					SM.on.Focus(k, true);
				return _.B(e)
			}
		},
		ShowDesktop:function(e,m,g,j,k,i){
			with(CbOS){
				m=[];
				for(k in wd.win)
					if(is.Cls(i=wd.win[k],"win0")&&i.A.Hidden)
						m.push(i);
				m=SM.set.Sort(m);
				j=[];
				for(k in wd.win)
					if(is.Cls(i=wd.win[k],"win0")&&!i.A.AlwaysOnTop&&i.A.zIndex>0)
						j.push(i);
				j=SM.set.Sort(j);
				if(j.length){
					for(i=0;i<j.length&&(k=j[i]);i++){
						k.A.Hidden=k.A.Minimized=true;
						_.S(k,_.z,k.A.zIndex=-wd.zIndex++);
						_.U(k);
					};
					for(i=0;i<m.length;i++){
						del(m[i].A,"Hidden");
						_.U(m[i]);
					}
					SM.on.Focus(null, true)
				}else{
					for(i=m.length-1;i>=0&&(k=m[i]);i--){
						del(k.A,["Minimized","Hidden"]);
						_.S(k,_.z,k.A.zIndex=wd.zIndex++);
						_.U(k);
					};
					SM.on.Focus(m[0], true)
				};
				return _.B(e)
			}
		},
		CascadeWindows:function(e,j,k,i){
			with(CbOS){
				j=[];
				for(k in wd.win) if(is.Cls(i=wd.win[k],"win0")&&i.A.Movable) j.push(i);
				j=SM.set.Sort(j);
				for(i=0;i<j.length&&(k=j[i]);i++){
					del(k.A,"Hidden");
					_.S(k,_.z,k.A.zIndex=wd.zIndex++);
					if(k.A.Maximized) this.Maximize(k);	else if(k.A.Minimized) this.Minimize(k);
					SM.set.XY(k,i*10+10,i*23+10);
					_.U(k)
				};
				SM.on.Focus(j[(j.length||1)-1], true);
				return _.B(e)
			}
		},
		qlNext:function(e,o){
			with(CbOS){if(_.I(o)){
				o=_.F(wd.taskbar.PNS).nextSibling;
				while(o&&_.G(o,"display")=='none') o=o.nextSibling;
				_.S(o,"display",'none');
				set.Navigator()
			}; return _.B(e)}
		},
		qlPrev:function(e,o){
			with(CbOS){if(_.I(o)){
				o=_.F(wd.taskbar.Panel).lastChild.lastChild;
				while(o&&_.G(o,"display")!='none') o=o.previousSibling;
				_.S(o,"display");
				set.Navigator()
			}; return _.B(e)}
		},
		_Init:function(p,l,o){
			with(CbOS)
				if((o=wd.win[p.n])){
					if(5==(l.k=(l.k||0)+1)){
						o=get.iWin(_.S(_.F(o.F),"visibility","visible"))
						try
						{
							with(get.Obj("winActive",o))
							{
								focus();
								blur()
							}
						}
						catch(l){};
						SM.Submit(o,p.u,p.a,p.m);
						return true
					}
				}else return true
		},
		Init:function(o){
			with(CbOS){
				if(TEMP[o.name]&&!wd.win[o.name])
					_.Q(create._Attach,TEMP[o.name],5);
				else if((o=wd.win[o.name])){
					if(o.Status) o.Status.innerHTML="Loading...";
					_.Q(SM.on._Init,{n:o.name,m:o.A.Method,u:o.A.URL,a:[["CbOSData",exchange.Descr(o.A)]].concat(o.A.Attributes||[])},5);
					SM.on.Complete(o);
				}
			}
		},
		Complete:function(o,v,b){
			with(CbOS)if(o)with(o){
				run.Del(A,o,"onCreate");
				v=_.F(wd.wins);
				var j = get.Height(v);
				if(j < Math.max(A.Height,A.MinHeight))
					A.MinHeight = Math.min(A.Height=j, A.MinHeight);
				if((j = get.Width(v)) < Math.max(A.Width,A.MinWidth))
					A.MinWidth = Math.min(A.Width=j, A.MinWidth);
				if(A.Centered){
					A.Left=Math.max(0,Math.ceil((_.G(v,_.w,1)-Math.max(A.Width,A.MinWidth||0))/2));
					A.Top=Math.max(0,Math.ceil((_.G(v,_.h,1)-Math.max(A.Height,A.MinHeight||0))/2));
					del(A,"Cascaded")
				}else if((!_.D(A.Left)||!_.D(A.Top))){
					v=0;
					for(b in wd.win)
						with(wd.win[b])
							if(A.Cascaded&&A.Left&&is.Cls(wd.win[b],"win0"))
								v=Math.max(v,A.Left);
					A.Left=v+10
					A.Top=v?23*v/10+10:10
				};
				b=wd.modal[A.ID];
				_.S(wd.win[o.id],_.z,A.zIndex=A.zIndex||(wd.zIndex=(wd.zIndex+(b?1:2))));
				if(b) _.S(b,_.z,Math.abs(A.zIndex)-1);
				if(o!=_.F("DESKTOP")){
					SM.set.Size(o,A.Width,A.Height);
					if(A.Maximized)
						SM.on.Maximize(o,1);
					else{
						if(A.Left+A.Width>_.W(v=_.F(wd.wins))||A.Top+A.Height>_.H(v)){
							v=A.MaximizeIcon;
							A.MaximizeIcon=true
							SM.on.Maximize(o,1)
							A.MaximizeIcon=v
							A.AutoResize=false
						}else if(!A.AutoResize)
							SM.set.XY(o,A.Left,A.Top);
						else if(w.DebugMode)
						{
							var tmpLeft = o.A.Left, tmpTop = o.A.Top;
							SM.set.XY(o, 0, 0);
							o.A.Left = tmpLeft;
							o.A.Top = tmpTop;
						}
						if(A.Minimized) SM.on.Minimize(o,1);
						if(A.Shaded) SM.on.Shade(o,1);
					};
				}
				if(b) SM.on.Resize()
			}
		},
		MOver:function(e,o){
			with(CbOS) if((o=_.O(e))){
				mask.Edit(o);
				SM.on.DeSelect(o);
				if(wd.RZ&&!wd.RZ.c&&_.T(o.firstChild||o,"DIV","win0")!=wd.RZ){
					_.S(wd.RZ.o.Resize,_.d);
					_.M(d.body,"onmousemove",null,"MMOVE");
					del(wd,"RZ")
				};
				set.BgImg(o);
				Hint.Hide()
			}
		},
		MMove:function(e,o,j){
			with(CbOS)if((o=_.O(e))){
				SM.on.DeSelect(o);
				if((j=wd.MOVE)&&_.D(j.x)){
					with(j) SM.set.XY(j.k||(j.k=set.Size(create.SpaceBox(),_.W(o),_.H(o))),Math.min(Math.max(get.X(e),0),_.W(_.F(wd.wins))-1)-x,Math.min(Math.max(get.Y(e),0),_.H(_.F(wd.wins))-1)-y);
					_.B(e)
				}else if((j=wd.RZ)&&_.D(j.x))
					with(j){
						if(!j.k) j.k=SM.set.XY(create.SpaceBox(),x,y);
						j=[Math.min(Math.max(get.X(e)+X,0),_.W(_.F(wd.wins))-1),Math.min(Math.max(o.A.Shaded?y:get.Y(e)+Y,0),_.H(_.F(wd.wins))-1),o.A.MinWidth,o.A.Shaded?22:o.A.MinHeight];
						if(l&&t) set.Size(k,Math.max(j[2],j[0]-x),Math.max(j[3],j[1]-y)); else{
							if(!l) j[4]=Math.min(w+x-j[2],j[0]);
							if(!t) j[5]=Math.min(h+y-j[3],j[1]);
							if(l) _.S(set.Size(k,Math.max(j[2],j[0]-x),y+h-j[5]),"top",j[5]);
							else if(t) _.S(set.Size(k,x+w-j[4],Math.max(j[3],j[1]-y)),"left",j[4]);
							else _.S(_.S(set.Size(k,x+w-j[4],y+h-j[5]),"left",j[4]),"top",j[5]);
						};
						_.B(e)
					}
			}
		},
		MDown:function(e,o,i,j){
			with(CbOS) if((o=_.O(e))){
				for(i in wd.del)if(wd.del[i]++==4){
					rem(_.F(i));
					del(wd.del,i)
				}
				mask.Edit(o);
				if(!is.wBtn(o,e)&&(i=_.T(_.T(o.firstChild||o,"DIV","winATB"),"DIV","win0"))){
					if(i.A.Movable&&!i.A.Maximized&&!wd.MOVE){
						x=get.X(e)-get.Left(j=i.firstChild.firstChild);
						y=get.Y(e)-get.Top(j);
						if(x.Between(0,_.W(i))&&y.Between(0,_.H(i))){
							wd.MOVE={o:i,c:_.S([o,_.F(wd.space)],_.c,"move"),x:x,y:y}
							_.M(d.body,"onmousemove","top.CbOS.SM.on.MMove(event)","MMOVE");
						}
					}
				}else if((j=wd.RZ)&&!j.c){
						with(j){
							j=o.firstChild.firstChild;
							var x,X,y,Y,H,W;
							x=get.Left(j);
							X=get.X(e);
							y=get.Top(j);
							Y=get.Y(e);
							H=_.H(o);
							W=_.W(o);
							if((X-x).Between(0,W)&&(Y-y).Between(0,H)){
								with((wd.RZ=_.P(["o",o,"c",1,"x",x,"y",y,"X",X,"Y",Y,"w",W,"h",H],wd.RZ))){
									X=x-X+(l?w:0);
									Y=y-Y+(t?h:0)
								}
								_.M(d.body,"onmousemove","top.CbOS.SM.on.MMove(event)","MMOVE");
							}
						}
				}else if(get.Win(o)!=w)
					SM.on.Focus(get.Win(o).name);
				if((j=_.T(o,"DIV","menu3"))&&j.M&&j.M.c){
					menu.Clear(j.M.c);
					del(j.M,"c")
				};
				Hint.Hide()
			}
		},
		MUp:function(e,o,i,j){
			with(CbOS) if((o=_.O(e))){
				if(get.Win(o).CbOS.mnWin&&!is.Cls(o,[1,0].Prefix("mnFolder")))
					mn.Clear(o);
				mask.Edit(o);
				SM.on.DeSelect(o);
				if((i=wd.MOVE)){
					with(i){
						if(i.k){
							_.U(SM.set.XY(o,get.Left(k),get.Top(k)));
							del(o.A,["Cascaded","Centered"])
						};
						_.S([c,_.S(rem(_.F(wd.space),1),_.z)],_.c)
					};
					_.M(d.body,"onmousemove",null,"MMOVE");
					del(wd,"MOVE")
				}else if((i=wd.RZ)){
					with(i){
						if(i.k){
							_.U(SM.set.Size(SM.set.XY(o,get.Left(k),get.Top(k)),_.W(k),_.H(k)));
							del(o.A,"Cascaded")
						};
						_.S(rem(_.F(wd.space),1),[_.z,_.c]);
						i=o
					};
					_.M(d.body,"onmousemove",null,"MMOVE");
					del(wd,"RZ");
					SM.on.BResize(e,i)
				}
			}
		},
		Click:function(e,o,p,i){
			with(CbOS) if((o=_.O(e))&&is.wBtn(o,e)){
				p=_.T(o,"DIV","win0","LI");
				i=o.className;
				if(i=="winClose"){
					if(p.A.MsgBoxFunc)
						MsgBox.Click(_.F(p.Content).lastChild.previousSibling.lastChild);
					else if(!p.F||p.A.Template=="Report"||!(o=get.iWin(_.F(p.F)))||!o.CbOS||(!SM.Warning(o)&&run.EditMode(o,SM.on._Close,p)))
						this.Close(p,null,true)
				}else if(i=="winMax")
					this.Maximize(p);
				else if(i=="winMin")
					this.Minimize(p);
				else if(i=="winShade")
					this.Shade(p);
				else if(i=="winHelp")
					create.Window(wd.Template.Help,{Caption:'Help',URL:'modules/help/help.aspx'})
			}
		},
		DClick:function(e,o,i){
			with(CbOS) if((o=_.O(e))){
				if(is.wBtn(o,e))
					this.Click(e);
				else if((i=_.T(_.T(o.firstChild||o,"DIV","winATB"),"DIV","win0"))&&i.A.MaximizeIcon)
					SM.on.Maximize(i)
			}
		},
		KDown:function(e,o,i,m,k){
			with(CbOS) if((o=_.O(e))){
				if(get.Win(o).CbOS.mnWin)
					mn.Clear(o);
				if((m=is.Win(o))&&(k=get.Modal())&&k.A.Created>m.A.Created){if(w.focus)w.focus();return _.B(e)};
				if((i=e.keyCode)==27)
					_.B(e)
				else if(i==116){
					_.B(e)
					SM.Submit(top)
				}else if(i==13&&is.Tag(o,"INPUT"))
					run.Enter(o, e);
			}
		},
		KUp:function(e,o,m,k){
			with(CbOS) if((o=_.O(e))){
				if((m=is.Win(o))&&(k=get.Modal())&&k.A.Created>m.A.Created){if(w.focus)w.focus();return _.B(e)};
				mask.Edit(o);
			}
		},
		CloseChildWindows:function(aId)
		{
			with (CbOS)
				for (var i in wd.win)
					if (wd.win[i].A.Opener == aId)
						SM.on.Close(wd.win[wd.win[i].A.ID])
		},
		Reload:function(o,i){
			with(CbOS)if(o&&(o=wd.win[o])&&(i=_.F(o.F))) SM.Submit(get.node.Child(get.iDoc(i),"FORM")||get.iWin(o))
		},
		OnClosure:function(h,o,i){
			with(CbOS)if(o&&h&&(o=wd.win[o])&&(i=_.F(o.F))&&(h=_.F(h,get.iDoc(i)))&&_.I(h))
			{
				run.Execute(h,true);
				h.disabled=true
			}
		},
		Closure:function(o,a,e,i){
		    with(CbOS)if((i=wd.win[o.name])&&(o=wd.win[i.A.Opener])&&(o=_.F(o.F))&&(o=_.F(i.A.OnClosure,get.iDoc(o)))){
		    	o.disabled=false;
		    	if(e){
		    	    o.Exec=null;
		    	    o.setAttribute("execute",e);
		    	}
				if(a)
					for(e=o.form.elements,o=o.parentNode,i=0;i<a.length;i=i+2)
						(e[a[i]]||_.E("INPUT",o,null,a[i],"hidden")).value=a[i+1];
		    }
		},
		_Close:function(o,c){if(c=='Yes') CbOS.SM.on.Close(o)},
		Close:function(o,p,n,i,j,m){
			with(CbOS)if(o){
				if(o.A.Template=="Screen")return location.replace(get.Base("default.aspx"));
				del(TEMP,o.A.TEMP);
				if(w.focus)
					w.focus();
				menu.Cache(o.A.ID);
				for(i in BgImg)if(BgImg[i]==o.name)del(BgImg,i);
				if(_.S(o,"top",-99999).QL){
					i=_.F(o.QL);
					i.parentNode.removeChild(i)
				};
				SM.on.OnClosure(o.A.OnClosure,o.A.Opener);
				SM.on.Reload(o.A.Reload);
				if(o.A.CloseChildWindows)
					SM.on.CloseChildWindows(o.A.ID);
				i=o.A.ID;
				m=o.A.Template!="MsgBox"?"CbOSData="+escape("Deleted="+i+"&Created="+o.A.Created+(o.A.WizardID?"&WizardID="+escape(o.A.WizardID):"")):0;
				del(wd,["RZ","MOVE","LU"]);
				del(wd.win,i);
				if(wd.modal[i]){
					rem(wd.modal[i]);
					del(wd.modal,i);
					if(!get.Modal())with(wd.taskbar){
						set.bgImage((j=_.F(ShowHide)).firstChild,1);
						set.bgImage((i=_.F(Cascade)).firstChild,1);
						j.disabled=i.disabled=false
					};
				};
				o.A.Active=false
				ajax.Loading.Hide(o.A.ID);
				if(n||o.A.Template=="Report")
					rem(_.F(o.id));
				else
					wd.del[o.id=_.K()]=0;
				if(!p){
					o=null;
					for(i in wd.win) with(j=wd.win[i]) if(className=="win0"&&_.G(o||_.F("DESKTOP"),_.z,1)<_.G(j,_.z,1)) o=j;
					SM.on.Focus(o, true);
					SM.on.Resize()
				};
				if(m)exchange.Post(m)
			}
		},
		Resize:function(i,W,H,f,D,F){
			with(CbOS){
				i=_.F(wd.taskbar.PNS).nextSibling;
				if(!is.ie){
					if(i&&!wd.sep)
						wd.sep=_.S(_.E("IFRAME",0,"win"),_.z,-99);
					else if(wd.sep&&!i){
						d.body.removeChild(wd.sep)
						del(wd,"sep")
					}
				};
				set.Size([_.F(wd.space),wd.sep,F=_.F((D=_.F("DESKTOP")).F)],W=get.sWidth(),H=get.sHeight());
				set.Size([_.F(wd.wins),D],W,H-(i?24:0));
				set.Size(F,W-2,H-(i?24:0)-1);
				_.S(_.F(wd.taskbar.Panel),"top",(i?H:0)-24);
				for(f in wd.modal) set.Size(wd.modal[f],W,H-(i?24:0));
				for(i in wd.win) with(W=wd.win[i]) if(className=="win0"&&A.Maximized) SM.on.Maximize(W,1);
				set.Navigator();
				menu.Clear()
			}
		},
		BResize:function(e,o,x,y,l,t,v,i,W,H,R,f,k){
			with(CbOS){
				if(wd.RZ&&wd.RZ.c) return;
				W=_.W(o);
				H=_.H(o);
				R=o.Resize;
				i=is.InXY;
				if(wd.RZ&&o!=wd.RZ.o) _.S(wd.RZ.o.Resize,_.d);
				f=o.firstChild.firstChild;
				if(!o.A.Maximized&&i(x=get.X(e)-get.Left(f),y=get.Y(e)-get.Top(f),v=[[0,3,0,10],[0,10,0,3],[W-2,W,0,10],[W-10,W,0,3],[W-2,W,H-10,H],[W-10,W,H-2,H],[0,3,H-10,H],[0,10,H-2,H]])){
					_.S(_.S(_.S(_.S(R,"border-width",""+(i(x,y,[v[0],v[1],v[2],v[3]])?2:0)+"px "+(i(x,y,[v[2],v[3],v[4],v[5]])?2:0)+"px "+(i(x,y,[v[4],v[5],v[6],v[7]])?2:0)+"px "+(i(x,y,[v[6],v[7],v[0],v[1]])?2:0)+"px"),"left",(l=i(x,y,[v[0],v[1],v[6],v[7]])?0:(W-IE(10,12)))-1),"top",(t=i(x,y,[v[0],v[1],v[2],v[3]])?0:(H-IE(10,12)))-1),_.d,"block");
					wd.RZ={o:o,l:l,t:t};
					_.S([R,k=_.F(wd.space)],_.c,(o.A.Shaded?"e":(((l||t)&&!(l&&t))?"ne":"nw"))+"-resize");
					rem(k,1);
					_.B(e)
				}else{
					_.S(R,_.d);
					del(wd,"RZ")
				}
			}
		},
		Minimize:function(o,i,j){
			with(CbOS)if(o.A.MinimizeIcon){
				del(o.A,"Hidden");
				if(o.A.Minimized&&!i){
					_.S(_.S(o,"visibility"),_.z,o.A.zIndex=wd.zIndex++);
					if(o.A.Template=="Report")SM.set.XY(o,o.A.Maximized?0:o.A.Left,o.A.Maximized?0:o.A.Top);
					del(o.A,"Minimized");
				}else{
					o.A.Minimized=true;
					_.S(_.S(o,"visibility","hidden"),_.z,o.A.zIndex=-wd.zIndex++);
					if(o.A.Template=="Report")SM.set.XY(o,-99999,-99999);
					_.U(o);
					o=null;
					for(i in wd.win) with(j=wd.win[i]) if(className=="win0"&&_.G(o||_.F("DESKTOP"),_.z,1)<_.G(j,_.z,1)&&!A.Minimized) o=j;
				}
				SM.on.Focus(o, true);
				_.U(o)
			}
		},
		Maximize:function(o,i){
			if(o.A.MaximizeIcon||o.A.Template=="Report")
			with(CbOS)
			{
				if(o.A.Maximized&&!i){
					SM.set.Size(SM.set.XY(o,o.A.Left,o.A.Top),o.A.Width,o.A.Height)
					del(o.A,"Maximized");
				}else{
					if(o.A.Shaded) this.Shade(o);
					o.A.Maximized=true;
					SM.set.Size(o,_.W(o.parentNode),_.H(o.parentNode)+1)
					SM.set.XY(o,0,0);
				}
				if (!o.A.Minimized)
					SM.on.Focus(o, true);
				set.bgImage(_.C(o,"LI","winMax"),o.A.Maximized?0:1);
				_.U(o);
			}
		},
		Shade:function(o,i,c,f){
			with(CbOS)if(o.A.ShadeIcon){
				c=_.F(o.Content);
				f=c.nextSibling;
				if(o.A.Shaded&&!i){
					del(o.A,"Shaded");
					_.S(f,["display","overflow"]);
					_.S(_.S(_.S(c,["display","position","overflow",_.h]),_.w,"auto"),["left","top"],0);
					if(o.F){
						del(_.F(o.F),"CbOSStyle");
						SM.set.Size(o,o.A.Width,o.A.Height)
					}
				}else{
					if(o.A.Maximized) this.Maximize(o);
					o.A.Shaded=true;
					del(f,"CbOSStyle");
					_.S(f,"display","none");
					_.S(_.S(_.S(c,"overflow","hidden"),"position","absolute"),["left","top",_.w,_.h],2)
				};
				set.bgImage(_.C(o,"LI","winShade"),o.A.Shaded?0:1);
				_.U(o);
			}
		},
		Load:function(o){
			with(CbOS) with(SM.on)
				if(_.D(o.A.zIndex)){
					wd.zIndex=Math.max(wd.zIndex,Math.abs(o.A.zIndex));
					if(o.A.Active) Focus(o)
				}else if(o.A.Minimized)
					Minimize(o,del(o.A,"Minimized"));
				else
					Focus(o)
		},
		Focus:function(o, aFcs, l,v,i,D){
			with(CbOS){
				if(o&&o.s) o=wd.win[o];
				D=_.F("DESKTOP");
				if (!o)
					o = D;
				if(!o) return;
				if(D==o&&(v=get.Modal()))
					SM.on.Focus(v, true);
				else if(wd.LU!=o){
					if((v = get.Modal(o)))
						o = v;
					if((l=wd.LU)&&l!=o){
						l.A.Active=false;
						v=l;
						if((l=l.QL))_.S(_.S(_.S(_.S(_.F(l),[_.k[0],_.k[3]],_.QLc[0]),[_.k[1],_.k[2]],_.QLc[1]).firstChild,[_.k[0],_.k[3]],_.QLc[2]),[_.k[1],_.k[2]],_.QLc[3]);
						if((l=is.Tag(wd.LU.firstChild,"DIV"))) l.className="win1";
						del(wd,"LU");
					};
					wd.LU=o;
					if(o!=D){
						_.S(wd.win[o.id],_.z,o.A.zIndex=wd.zIndex++);
						if((l=wd.LU.QL) && (l=_.F(l)))
							_.S(_.S(_.S(_.S(l,[_.k[0],_.k[3]],_.QLc[1]),[_.k[1],_.k[2]],_.QLc[0]).firstChild,[_.k[0],_.k[3]],_.QLc[3]),[_.k[1],_.k[2]],_.QLc[2]);
						if((l=is.Tag(o.firstChild,"DIV"))){
							l.className="win2";
							if(o.A.Minimized) SM.on.Minimize(o);
							else _.S(o,_.z,o.A.zIndex=wd.zIndex++)
						};
					}
					o.A.Active=true;
					if(o.A.Template!="Screen") for(l in wd.win) if(is.Cls(i=wd.win[l],"win0")&&i!=o&&i.A.Template=="Report") SM.on.Minimize(i,1);
					_.U(o);
					_.U(v)
					if (aFcs)
						SM.on.FocusLastActive(o);
				}
			}
		},
		FocusLastActive: function(aObj)
		{
			with (CbOS)
				if (aObj.A.Template != "Report" && !aObj.A.Minimized && !aObj.A.Shaded && (aObj = get.iWin(_.F(aObj.F))))
					set._FocusFrm(aObj, aObj.CbOSlastActiveElement)
		},
		DeSelect:function(e,s,o,D,n){
			with(CbOS)
				try{
					if(!is.Complete(e=e&&get.Win(e))||!is.Complete(D=get.Doc(e))||(e!=w&&!s)) return
					else if(e.getSelection||(e=D).getSelection){
						e.getSelection().removeAllRanges();
					}else if(D.selection&&(o=D.selection.createRange())&&o.text.length&&(s||!is.Tag(D.activeElement,["INPUT","TEXTAREA"])))
						D.selection.empty()
				}catch(n){}
		}
	}
}
CbOS.exchange={
	RQ:{},
	oQ:{},
	_Queue:function(o,l){
		if(o.i!=CbOS.exchange.iQ) return true;
		if(100==(l.k=(l.k||0)+1)) return CbOS.exchange.Run();
	},
	Queue:CbOS._.U=function(o,i,t){
		if(o) with(CbOS){
			del(t=exchange,"iQ");
			if(o.a) for(i=0;i<o.length;i++) t.oQ[o[i].A.ID]=true;
			else t.oQ[o.A.ID]=true;
			_.Q(t._Queue,{i:t.iQ=_.K()},5)
		}
	},
	Run:function(i,n,m,o){
		with(CbOS){
			i=0;
			m="";
			for(n in this.oQ){
				if((o=wd.win[n])&&o.A.Template!="MsgBox")
					m+=(m.length?"&":"")+"CbOSData"+(i++)+"="+escape(this.Descr(o.A,1));
				del(this.oQ,n)
			};
			if(m) exchange.Post(m)
			return true
		}
	},
	XML:function(s,u,c,f,n){
		with(CbOS){
			n=_.K();
			return this.RQ[n]={
				n:n,
				XML:create.Xml(w),
				URL:u,
				data:s,
				obj:f,
				c:_.N(c,1)
			}
		}
	},
	Post:function(s,u,c,f,o,i){
		with(CbOS){
			o=this.XML(s,u=get.Base(u||"cbos\/default.aspx"),c,f);
			o.XML.open("POST",u,true);
			o.XML.onreadystatechange=Function("CbOS.exchange.Complete('"+o.n+"')");
			o.XML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			s=s||"";
			for(i in Session) s+=(s.length?"&":"")+i+"="+escape(Session[i]);
			o.XML.send(s);
		}
	},
	Complete:function(n,f,o,e,k){
		with(CbOS)
			if((f=this.RQ[n])&&(o=f.XML)&&o.readyState==4){
				if(o.status==200||o.status==500)
					try{
						k=new Function("o","f","e","with(CbOS)try{"+o.responseText+"}catch(e){}")
						k(o,f)
					}catch(e){}
				else if(f.c<2)
					this.Post(f.data,f.URL,f.c+1,f.obj);
				del(this.RQ,n)
			}
	},
	rDescr:["ID","Template","Created","Active","Stamp","Minimized","Maximized","Shaded","Centered","Cascaded","AlwaysOnTop","Top","Left","Width","Height","Hidden","zIndex","Caption"],
	sDescr:["ID","Template","Active","Stamp"],
	iDescr:["onPreload","onCreate","Attributes","URL","AutoResize"],
	Descr:function(o,a,s,n,i,t,r){
		with(CbOS){
			s=n="";
			o.Stamp=1*new Date();
			r=o.Template=="Screen"?this.sDescr:this.rDescr;
			for(i=0;i<r.length;i++){
				if(_.D(o[t=r[i]]))
					s+=(s.length?"&":"")+t+"="+escape(String(o[t]));
				else
					n+=(n.length?",":"")+t
			}
			if(!a) for(i in o)
				if(!is.In(i,this.iDescr)&&!is.In(i,r)){
					if(_.D(o[i]))
						s+=(s.length?"&":"")+i+"="+escape(String(o[i]));
					else
						n+=(n.length?",":"")+i
				}
			return s+(n?"&Nulls="+n:"")
		}
	}
};
CbOS.btn={
	ToolBarBlur:function(aObj){
		this.ToolBarOver(aObj);
		CbOS.set.BgImg(d.body)
	},
	ToolBarOver:function(o, aEvent){
		with(CbOS)
			if(_.I(o)&&!o.BgImg)
			{
				_.S(o,_.bw,1)
				_.S(o,"padding-top",((o.pb||(o.pt=_.G(o,"padding-top",1)))-1)+"px");
				_.S(o,"padding-right",((o.pr||(o.pr=_.G(o,"padding-right",1)))-1)+"px");
				_.S(o,"padding-bottom",((o.pb||(o.pb=_.G(o,"padding-bottom",1)))-1)+"px");
				_.S(o,"padding-left",((o.pl||(o.pl=_.G(o,"padding-left",1)))-1)+"px");
				set.BgImg([o,o.firstChild],[get.Root(o)+"images/dmc/toolbar/over.gif",get.Root(o)+"images/1x1.gif"],[o])
				if (!aEvent || aEvent.type != 'keyup')
					o.BgImgStyleRollBack=_.bw.concat(_.pd);
				else
					set.DelBgImg(o)
			}
	},
	Over:function(o){
		with(CbOS)
			if(_.I(o)&&!o.BgImg&&_.G(o,_.b)!='none')
				set.BgImg([o,_.C(o,"UL"),_.C(o,"LI"),_.C(o,"DIV")],["over0","over1","over2","up0","up1","up2"].Prefix(get.bgImage(o).replace(/\/{1}[0-9a-zA-Z]*$/,"")+"/").Suffix(".gif"),[o,_.C(o,"UL"),_.C(o,"LI")])
	},
	Down:function(o){
		with(CbOS){
			set.DelBgImg(o);
			if(_.I(o)&&_.C(o,"UL")&&_.G(o,_.b)!='none')
				set.BgImg([o,_.C(o,"UL"),_.C(o,"LI"),_.S(_.C(o,"DIV"),"color",_.G(o,_.k[0]))],["down0","down1","down2","up0","up1","up2"].Prefix(get.bgImage(o).replace(/\/{1}[0-9a-zA-Z]*$/,"")+"/").Suffix(".gif"),[o,_.C(o,"UL"),_.C(o,"LI")]);
		}
	},
	Blur:function(o,p){
		with(CbOS)
		{
			if (is.ie)
				_.S(_.S(o=_.C(o,"DIV"),"border-width",0),"padding",""+(o.pb||(o.pt=_.G(o,"padding-top",1)))+"px "+(o.pr||(o.pr=_.G(o,"padding-right",1)))+"px "+(o.pb||(o.pb=_.G(o,"padding-top",1)))+"px "+(o.pl||(o.pl=_.G(o,"padding-left",1)))+"px")
			else
			{
				_.S(o=_.C(o,"DIV"), _.bw, 0);
				_.S(o,"padding-top",((o.pb||(o.pt=_.G(o,"padding-top",1))))+"px");
				_.S(o,"padding-right",((o.pr||(o.pr=_.G(o,"padding-right",1))))+"px");
				_.S(o,"padding-bottom",((o.pb||(o.pb=_.G(o,"padding-bottom",1))))+"px");
				_.S(o,"padding-left",((o.pl||(o.pl=_.G(o,"padding-left",1))))+"px");
				_.S(o,"background-position", _.G(o,"z-index")+"px 50%")
			}
		}
	},
	Focus:function(o,p){
		with(CbOS)if(_.I(o))
		{
			if (is.ie)
				_.S(_.S(o=_.C(o,"DIV"),"border-width",1),"padding",""+((o.pt||(o.pt=_.G(o,"padding-top",1)))-1)+"px "+((o.pr||(o.pr=_.G(o,"padding-right",1)))-1)+"px "+((o.pb||(o.pb=_.G(o,"padding-top",1)))-1)+"px "+((o.pl||(o.pl=_.G(o,"padding-left",1)))-1)+"px")
			else
			{
				_.S(o=_.C(o,"DIV"),_.bw,1)
				_.S(o,"padding-top",((o.pb||(o.pt=_.G(o,"padding-top",1)))-1)+"px");
				_.S(o,"padding-right",((o.pr||(o.pr=_.G(o,"padding-right",1)))-1)+"px");
				_.S(o,"padding-bottom",((o.pb||(o.pb=_.G(o,"padding-bottom",1)))-1)+"px");
				_.S(o,"padding-left",((o.pl||(o.pl=_.G(o,"padding-left",1)))-1)+"px");
				_.S(o,"background-position", _.G(o,"z-index")-1 +"px 50%")
			}
		}
	},
	Position:function(o,i){
		with(CbOS)
			_.S(_.S(_.S(o,"position",i?"relative":"absolute"),"visibility",i?"visible":"hidden"),["left","top"],i?_.G(o.firstChild,"top",true)*-2:-99999)
	},
	Cnt:function(o,i,j){
		with(CbOS){
			i=_.C(o,"DIV")
			with(_.T(o,"DIV").parentNode){
				j=_.G(childNodes[1],"position")=="absolute"
				childNodes[1].className=j?"cnt20":"cnt2";
				set.bgImage(i,j*1);
				set.Value(o.nextSibling,j, null, true)
			};
			o=get.Win(o);
			SM.run.Event(o,o,"onresize")
		}
	},
	Tab:function(o,i,j,n,O){
		with(CbOS) with(_.T(o,"DIV","cnt1")){
			i=firstChild;
			if(i.value!=o.id) {
				j=_.F("_"+o.id,o);
				if(j){
					o.blur()
					set.DelBgImg(o);
					n=get.Name(o);
					O=_.F(i.value,o);
					O.className=n+1;
					if(_.G(O,_.b)!='none')
						set.BgImg([O,_.C(O,"UL"),_.C(O,"LI"),_.C(O,"DIV")],[0,1,2,0,1,2].Prefix(get.bgImage(o).replace(/\/{1}[0-9a-zA-Z]*$/,"")+"/up").Suffix(".gif"),[O,_.C(O,"UL"),_.C(O,"LI")]);
					O.href=''
					btn.Position(_.F("_"+i.value,i));
					o.href="javascript:void(0)";
					o.hideFocus=true;
					o.className=n+2
					if(_.G(o,_.b)!='none')
						set.BgImg([o,_.C(o,"UL"),_.C(o,"LI"),_.C(o,"DIV")],[0,1,2,0,1,2].Prefix(get.Root(o)+"images/"+n+"/sel").Suffix(".gif"),[o,_.C(o,"UL"),_.C(o,"LI")]);
					i.value=o.id
					btn.Position(j,1);
					o=get.Win(o);
					SM.run.Event(o,o,"onresize")
				}else{
					i.value=o.id;
					SM.Submit(i)
				}
			}
		}
	},
	State:function(p,l,t,i,o,k){
		with(CbOS)if(l){
			l=l.toArray()
			t=!t;
			for(i=0;i<l.length;i++)
				if((o=_.F(l[i],p))&&_.I(o)==t){
					if (t)
					{
						run.Event(o,o,"onblur");
						o.href= "javascript:void(0)";
					}
					else
						o.removeAttribute("href");
					o.className=o.className.replace((t?"1":"0"),(t?"0":"1"));
					var div = _.C(o,"DIV");
					if(_.C(o,"UL")&&_.G(o,_.b)!='none')
					{
						set.BgImg([o,_.C(o,"UL"),_.C(o,"LI"),div],[0,1,2,0,1,2].Prefix(get.bgImage(o).replace(/\/{1}[0-9a-zA-Z]*$/,"")+(t?"/ds":"/up")).Suffix(".gif"),[o,_.C(o,"UL"),_.C(o,"LI")]);
						set.DelBgImg(o);
						if(div.CbOSStyle && div.CbOSStyle.color)
							_.S(div,"color", _.G(div.parentNode, "color"))
					}
					set.bgImage(div,t?0:1);
				}
		}
	},
	Create:function(f,c,E,W)
	{
		return CbOS.IE(
			"<div class='btnBoxCB2'><a onclick='"+f+"' href=# class=btn"+(E?1:0)+" hidefocus=true><ul><li"+(W?" style='width:"+W+"px'":"")+"><div"+(W?" style='width:100%'":"")+">"+c+"</div></li></ul></a></div>",
			"<div class='btnBoxCB2'><a onclick='"+f+"' href=# class=btn"+(E?1:0)+" hidefocus=true><ul><li><div"+(W?" style='min-width:"+W+"px'":"")+">"+c+"</div></li></ul></a></div>"
		)
	},
	Up:function(o){
		with(top.CbOS){
			set.DelBgImg(o);
			SM.run.Event(o,o,'onmouseover')
		}
	}
};
CbOS.radiobox={
	State:function(p,l,t,i,o,c){
		with(CbOS){
			if(l.toArray)l=l.toArray();
			for(i=0;i<l.length;i++)
				if(is.RadioBox(o=get.Obj(l[i],p))&&is.Enabled(o)!=t){
					c=o.className;
					o.className=c.substring(0,c.length-1)+t*1;
					o.lastChild.disabled=!t;
				}
		}
	},
	Click:function(e,o,s){
		with(CbOS){
			if(e.keyCode==13)
				run.Enter(o, e);
			else if(_.I(o)&&(!e.keyCode||e.keyCode==32)&&!o.readOnly&&!o.checked)
				set.Value(o)
			if(!e.keyCode||e.keyCode==13)
				return _.B(e)
		}
	},
	Required:function(o,s,i){
		with(CbOS){
			s=o.disabled=!s
			if(is.Cls(i=_.T(o,"DIV"),"tblCellColon"))
				i=i.parentNode;
			if(is.Cls(i=i.previousSibling,["tblCCaptR","tblCCaptD"]))
				i.className="tblCCapt"+(s?"D":"R")
			else if(is.Cls(i,["tblCCaptRBtn","tblCCaptDBtn"]))
				i.className="tblCCapt"+(s?"D":"R")+"Btn"
		}
	},
	Input:function(aObj, aChecked, aCurrent)
	{
		aObj = (aCurrent ? aObj : aObj.parentNode.parentNode.nextSibling).getElementsByTagName("INPUT");
		for (var i = 0; i < aObj.length; ++i)
			this.Required(aObj[i], aChecked);
	},
	NextInput:function(o,s,m,h,i,k){
		m=m||-1;
		for(o=h?o:o.parentNode.parentNode.parentNode.nextSibling;o;o=o.nextSibling){
			if(m--==0)return;
			k=o.getElementsByTagName("INPUT")
			for(i=0;i<k.length;i++)
				this.Required(k[i],s)
		}
	},
	Hide:function(o,t,i,k){
		k=o.checked
		t=o.parentNode.parentNode.parentNode.childNodes;
		with(CbOS)
			for(i=2;i<t.length;i++)
				_.S(_.S(_.S(t[i],"visibility",k?"hidden":"visible"),["left","top"],k?-9999:0),"position",k?"absolute":"relative");
	},

	ShowNext:function(o){with(CbOS)_.S(_.S(_.S(o.parentNode.parentNode.nextSibling,"visibility",o.checked?"visible":"hidden"),["left","top"],o.checked?0:-9999),"position",o.checked?"relative":"absolute")}

};
CbOS.gtree={
	Class:function(k,i,q){
		i=k.className;
		q=i.charAt(i.length-1)=='1'?0:1;
		k.className=i.substring(0,i.length-1)+q;
		return q
	},
	Click:function(e,o,i,k,m,h,b){
		with(CbOS){
			if(is.GTreeNode(k=_.O(e))&&(e.offsetY||e.layerY||0).Between(3,17)&&(e.offsetX||e.layerX||0).Between(0,14)){
				m=o.previousSibling;
				b=k.firstChild.firstChild.getAttribute('pk');
				if(gtree.Class(k)){
					b="("+b+"){1}";
					eval("m.value=m.value.replace(\/(^"+b+"$)|(^"+b+",)|(,"+b+"$)\/,'').replace(\/,"+b+",\/,',')")
				}else
					m.value+=(m.value?',':'')+b;
				m=[];
				while(is.Tag(b=k.parentNode.parentNode,"DIV")){
					h=0;
					while((k=k.previousSibling))
						h++
					m[m.length]=h
					k=b
				}
				for(k=1;k<b.cells.length;k++){
					e=b.cells[k].firstChild;
					for(i=m.length-1;i>=0;i--)
						e=e.childNodes[m[i]];
					gtree.Class(e)
				}

			}
		}
	},
	Focus:function(e,o){
	},
	Blur:function(e,o){
	},
	KDown:function(e,o){

	}
};
CbOS.chtree={
    Click:function(e,t){
		with(CbOS)
			if(is.Tag(t=_.O(e),"DIV")&&is.ChTree(t)&&is.Tag(t.firstChild,"A")&&is.ChTree(t.firstChild)&&(e.offsetY||e.layerY||0).Between(3,17)&&(e.offsetX||e.layerX||0).Between(0,14))
				this.dClick(t)
    },
	Focus:function(t,i,m){
		with(CbOS){
			m=get.bgImage(t=t.parentNode);
			i=m.toArray("/");
			set.bgImage(t,"1"+i[i.length-1].substring(1))
			t.setAttribute("cbosfocus","1")
		}
	},
	Blur:function(t){
		with(CbOS){
			m=get.bgImage(t=t.parentNode);
			i=m.toArray("/");
			set.bgImage(t,"0"+i[i.length-1].substring(1))
			del(t,"cbosfocus")
		}
	},
	lClick:function(e,o){
		with(CbOS){
			if(_.I(o)&&(!e||!e.keyCode||e.keyCode==32)&&is.Href(o))
				this.dClick(o.parentNode,!e)
			if(e&&(!e.keyCode||e.keyCode==13)){
				if(e.keyCode==13)
					run.Enter(o, e);
				return _.B(e)
			}
		}
	},
	Img:function(o,l,K){
		with(CbOS){
			K=get.bgImage(o).toArray("/");
			K[K.length-1]=(o.getAttribute("cbosfocus")||"0")+(l==0?"":(l==1?11:12));
			return _.S(o,_.b,get.iURL(K.join("/")+".gif"))
		}
	},
	updateGenCheck: function(aObj, aClassName, aValue, aContName)
	{
		with(CbOS)
		{
			var topcont = CbOS.get.Obj(aContName, aObj);
			if (topcont)
				for(var ll = topcont.getElementsByTagName("DIV"), j = 0; j < ll.length; ++j)
					if (ll[j].innerText == aObj.innerText)
					{
						chtree.Img(ll[j], aClassName.charAt(5)).className = aClassName;
						var check  = _.C(ll[j], "INPUT");
						if (check)
							set.Value(check, aValue, null, true);
						break
					}
		}
	},
	updateGen: function(aCont, aValue, aObj){
		var topcont = aCont.getAttribute("chtrGeneralizedID"), K = aValue * 1;
		with(CbOS)
			if(topcont)
			{
				var checkedCount = 0, checksCount = 0,
				l = aCont.getElementsByTagName("DIV");
					for(var i = 0; i < l.length; ++i)
					if(is.Cls(l[i], ["chtr10","chtr11","chtr12"]) && l[i].innerText == aObj.innerText)
					{
						if ((l[i].className.charAt(5) * 1 != 0)  && l[i]!=aObj)
								++checkedCount;
						++checksCount;
					}
				if (!K && !checkedCount)
					this.updateGenCheck(aObj, "chtr10", false, topcont)
				else if (K && (checksCount == checkedCount+1))
					this.updateGenCheck(aObj, "chtr11", true, topcont)
				else if ((K && !checkedCount) || (!K &&(checksCount == checkedCount+1)))
					this.updateGenCheck(aObj, "chtr12", true, topcont)
			}
	},
	dClick:function(o,e,c,k,l,i,n,j,O,K,J,m,v){
		with(CbOS){
			m=_.T(o,"DIV","chtr0")
			if(set.Lock(m=_.T(o,"DIV","chtr0"))){
				if(!e)
					Fcs(v=o.firstChild);
				c=o.className;
				k=!(c.charAt(5)*1);
				v=o.firstChild;
				K=k*1;
				n=chtree.Img(o,K).className="chtr1"+K;
				l=o.getElementsByTagName("A");
				for(i=0;i<l.length;i++) if(is.ChTree(l[i])){
					chtree.Img(l[i].parentNode,K).className=n;
					if((j=_.C(l[i],"INPUT")))
					{
						set.Value(j, k, null, true);
						if (!m.getAttribute("chtrDetailedID"))
						this.updateGen(m, k, l[i].parentNode);
					}
				};
				l=o.getElementsByTagName("INPUT");
				for(i=0;i<l.length;i++)
					if(!is.ChTree(O=l[i].parentNode)){
						if(is.RadioBox(O))
							radiobox.State(O,O.id,k);
						else if(is.CheckBox(O))
							checkbox.State(O,O.id,k);
						else if(is.MSB(O))
							msb.State(O,_.T(l[i],"DIV","msb").id,k);
						else
							l[i].disabled=!k
					};
				l=o.getElementsByTagName("TEXTAREA");
				for(i=0;i<l.length;i++)
					l[i].disabled=!k
				j=[0,1,2].Prefix("chtr1");
				while((O=_.T(o,"DIV",j))){
					if(K<2)
					{
						var obj=O.getElementsByTagName("DIV");
						for(i=0;i<obj.length;++i)
							if(is.Cls(obj[i],j) && obj[i].className.charAt(5)*1!=K)
							{
								K=2;
								break
							}
					};
					chtree.Img(O,K).className="chtr1"+K
					if((J=_.C(l[i],"INPUT")))
						set.Value(j, k, null, true);
					o=O
				}
				if(!m.getAttribute("chtrLock")&&((o=_.F(n=m.getAttribute("chtrDetailedID"),m))||(o=_.F(m.getAttribute("chtrGeneralizedID"),m)))){
					m.setAttribute("chtrLock","true")
					o.setAttribute("chtrLock","true")
					if(n){
						n=o.getElementsByTagName("A")
						j=v.innerText;
						l=v.firstChild.value;
						for(i=0;i<n.length;++i)
							if(n[i].innerText==j&&n[i].firstChild.value!=l && ((K == 0 && n[i].firstChild.value == "true") || (K == 1 && n[i].firstChild.value == "false")))
								this.lClick(null,n[i])
					}
					m.removeAttribute("chtrLock")
					o.removeAttribute("chtrLock")
				};
				run.Execute(m)
			}
			m.L--
		}
	}
}
CbOS.checkbox={
	Click:function(e,o,aFocus){
		with(CbOS)
		{
			var c, i = (new Date())*1;
			if((!(c = w.CbOSLastTimeClick) || 3000 < (i - c)) && (!(c = o.CbOSLastTimeClick) || 50 < (i - c)))
			{
				o.CbOSLastTimeClick = i;
				if(e&&e.keyCode==13)
					run.Enter(o, e);
				else if(_.I(o)&&(!e||!e.keyCode||e.keyCode==32)&&!o.readOnly)
					set.Value(o,(is.Cls(o,["01",21].Prefix("clsCheckBox"))&&((o.getAttribute('allowUnknown')&&'undefined')||true))||o.className=="clsCheckBox1",null,aFocus)
				if(e&&(!e.keyCode||e.keyCode==13))
					return _.B(e)
			}
		}
	},
	State:function(p,l,t,i,o,c){
		with(CbOS){
			if(l.toArray)l=l.toArray();
			for(i=0;i<l.length;i++)
				if(is.CheckBox(o=_.F(l[i],p))&&_.I(o)!=t){
					c=o.className;
					o.className=c.substring(0,c.length-1)+t*1;
					o.disabled=o.lastChild.disabled=!t;
					o.href=t?"javascript:void(0)":""
				}
		}
	},
	Tree:function(e,o,k,i,t){
		with(CbOS)if((o=_.O(e))&&(o=_.T(o.firstChild||o,"A"))&&_.I(o)&&(!e.keyCode||e.keyCode==32)&&!o.readOnly){
			if(is.Cls(o.parentNode,"divTreeCheckBox")){
				k=o.parentNode.parentNode.getElementsByTagName("A");
				_.S(set.Value(k[0],t=get.Value(k[1]),0,1).firstChild,_.r,"transparent");
				for(i=2;i<k.length;i++)
					if(get.Value(k[i])!=t)
						return _.S(set.Value(k[0],true,0,1).firstChild,_.r,"#aeadad")
			}else{
				k=o.parentNode.getElementsByTagName("A");
				t=get.Value(o);
				_.S(o.firstChild,_.r,"transparent");
				for(i=1;i<k.length;i++)
					set.Value(k[i],t,0,1)
			}
		}
	}
};
CbOS.MsgBox={
	Btn:function(o,s,i){with(CbOS){s="";for(i=0;i<o.length;i++)s+=btn.Create("CbOS.MsgBox.Click(this)",o[i],1,65);return s}},
	Init:function(o,i){
		with(CbOS){
			i=_.F(o.Content).childNodes[1];
			o.A.Height=Math.min(get.sHeight(),i.offsetHeight<i.scrollHeight?i.scrollHeight+71:o.A.Height)
			_.S(i,_.h,o.A.Height-71)
			o.A.Width=Math.min(get.sWidth(),Math.max(o.A.MsgBoxBtn.length*77+24,i.offsetWidth<i.scrollWidth?o.offsetWidth+i.scrollWidth-i.offsetWidth+(is.op9?_.G(i,"padding-right",1):0):o.A.Width));
			_.S(i,"overflow","auto")
		}
	},
	Close: function(aName)
	{
		CbOS.SM.on.Close(CbOS.wd.win[aName]);
		return true
	},
	_Click:function(o,l){
		if(2==(l.k=(l.k||0)+1)){
			o.f(o.a,o.c);
			return true
		}
	},
	Click:function(o,m){
		with(CbOS)with(m=_.T(o,"DIV","win0")){
			if(A.MsgBoxFunc){
				_.Q(MsgBox._Click,{f:A.MsgBoxFunc,a:A.MsgBoxAttributes,c:_.C(o,"DIV").innerHTML});
				del(A,"MsgBoxFunc")
			};
			SM.on.Close(m)
		}
	},
	Show: function(aObj, aText, aCaption, aBtns, aIcon, aSel, aOnClick, aParam)
	{
		if (!aText)
			return true;
		with(CbOS)
		{
			SM.set.Event(aObj = get.Win(aObj), "onload", null, "FOCUSFRM");
			var name = aObj.name;
			if (TEMP[name])
				MsgBox.Close(TEMP[name]);
			create.Window(
				wd.Template.MsgBox,
				{
					ID: TEMP[name] = get.PK(),
					TEMP: name,
					MsgBoxText: aText,
					Caption: is.Null(aCaption, ProjectName),
					MsgBoxBtn: aBtns.toArray(),
					MsgBoxIcon: aIcon,
					MsgBoxSelected: aSel || 0,
					MsgBoxFunc: aOnClick,
					MsgBoxAttributes: aParam
				}
			)
		}
	}
}
/*window*/

CbOS.wd={
	win:{},
	Cache:[],
	zIndex:10,
	_MsgBox:function(o,l){if(3==(l.k=(l.k||0)+1)){CbOS.Fcs(o);return true}},
	Template:{
		Base:{
			Active:false,
			Icon:CbOS.get.Root(d)+"images/window/icon/default.gif",
			Width:936,
			Height:650,
			MinWidth:100,
			MinHeight:100,
			TaskBarButton:false,
			onPreload:CbOS.create.Popup
		},
		Screen:{
			ID:"DESKTOP",
			Template:"Screen",
			Top:0,
			Left:0,
			zIndex:1,
			onPreload:null
		},
		MsgBox:{
			Template:"MsgBox",
			Icon:null,
			Modal:true,
			HelpIcon:false,
			Movable:true,
			Centered:true,
			CloseIcon:true,
			Width:155,
			Height:131,
			onPreload:function(o,i,k,g){
				with(CbOS){
					create.Popup(o);
					var btns = IE(MsgBox.Btn(o.A.MsgBoxBtn), "<div class = 'btnBoxCB1'>"+MsgBox.Btn(o.A.MsgBoxBtn) + "</div>")
					_.F(o.Content).innerHTML = _.s+"0>&nbsp;</a><div class=msg"+o.A.MsgBoxIcon+">"+o.A.MsgBoxText+"</div><div class=btnBoxCB>"+btns+"</div>"+_.s+"1>&nbsp;</a>"
				}
			},
			onCreate:function(o){with(CbOS){MsgBox.Init(o);SM.on.Load(o);_.Q(wd._MsgBox,_.F(o.Content).lastChild.previousSibling.childNodes[o.A.MsgBoxSelected],5)}}
		},
		Popup:{
			Template:"Popup",
			ShadeIcon:true,
			MinimizeIcon:true,
			MaximizeIcon:true,
			CloseIcon:true,
			ProgressBar:true,
			StatusBar:true,
			Resizable:true,
			Movable:true,
			Cascaded:true,
			TaskBarButton:true,
			onCreate:CbOS.SM.on.Load
		},
		Help:{
			ID:"CbOSHelp",
			Template:"Help",
			ShadeIcon:true,
			MinimizeIcon:true,
			MaximizeIcon:true,
			CloseIcon:true,
			Resizable:true,
			ProgressBar:true,
			StatusBar:true,
			Movable:true,
			Cascaded:true,
			MinWidth:500,
			MinHeight:350,
			TaskBarButton:true,
			onCreate:CbOS.SM.on.Load
		},
		Report:{
			Template:"Report",
			MinimizeIcon:true,
			CloseIcon:true,
			Maximized:true,
			TaskBarButton:true,
			onCreate:CbOS.SM.on.Load
		}
	}
};
CbOS.menu={
	cWidth:function(o,k,D,i,e){
		if(!o && !w.DebugMode)
			return;
		with(CbOS){
			if(o.getDoc)
				D=o.getDoc()
			else{
				D=get.Doc(o)
				o=[o]
			}
			e=0
			var frm = CbOS.get.node.Child(D, "FORM");
			for(i=0; i < o.length; ++i)
				if ((k=_.F(o[i],D) || frm[o[i]]))
				{

					o[i]=k=is.Tag(k,"UL")?_.C(k,"INPUT",null,"text"):(k.nextSibling||k);
					if(!k.CbOSw)
						k.CbOSw=_.W(k);
					else
						_.S(k,_.w,k.CbOSw)
					e=Math.max(e,k.scrollWidth)
				} else {
					if(w.DebugMode)
						alert('ERROR: CbOS.menu.cWidth - object with ID "' + o[i] + '" not found.')
					o[i] = null
				}
			for(i=0;i<o.length; ++i)
				if(o[i])
					_.S(o[i],_.w,e)
			if(o[0])
				dmc.Scroll(o[0])
		}
	},
	box:{},
	Identity:function(aEven, aMethod){
		with(CbOS)
		{
			var obj
			if(!(obj=_.O(aEven))||!_.T(obj.firstChild||obj,"DIV","menu3"))
			{
				if(obj&&obj.getAttribute("servicemethod")){
					var e=obj.parentNode.parentNode;
					if(!e.id)
						e.id=_.K();
					var o=menu.box;
					for(var i in o)
						if(!o[i].openers||!o[i].openers[e.id])
							this.Clear(o[i])
				}else
					this.Clear();
				dmc.ToolBarHide(obj)
			}
			if(obj && !obj.cbosevnt && is.Tag(obj, ["INPUT", "TEXTAREA"]))
			{
				mask.Edit(obj);
				SM.run.Event(obj, obj, aMethod);
				SM.run.LastActiveElement(obj, aMethod = ((aMethod == "onkeyup" || aMethod == "onfocus") && get.Win(obj)));
				if(aMethod)
				{
					var err;
					try
					{
						obj.blur()
						obj.focus()
						set.Position(obj, 0, {t: obj.value, select: obj.value.length, o: obj, p: 0})
					}
					catch(err){}
				}
			}
			if ((aEven && aEven.keyCode) == 8 && (!obj || !is.Tag(obj, ["INPUT", "TEXTAREA"])))
				set.CBubble(aEven)
		}
	},
	Clear:function(n,i,o){
		with(CbOS){
			o=menu.box;
			for(i in o){
				if((!n||n==o[i])&&o[i].m){
					run.Draw(SM.set.XY(run.Draw(o[i].m),-99999,-99999),0);
					if(o[i].m.W){
						if (o[i].o.scrollTop) o[i].o.scrollTop=0;
						if(o[i].o.S){
							_.S(o[i].o.S,_.b);
							del(o[i].o,"S")
						};
						menu.Restore(o[i].o.CbOSsel,o[i].o.CbOSsel);
						_.S(o[i].o,"overflow","hidden");
						_.S(o[i].m,_.w,o[i].m.W);
						_.S(_.S(o[i].o,_.h,o[i].m.H),"overflow","auto").previousSibling.childNodes[1].value="";
						o[i].m.firstChild.className="menu1";
					};
					del(o,i)
				}
			}
		}
	},
	Click:function(e,o,v,M,i,j,t,k){
		with(CbOS){
			M=o.parentNode.parentNode.M;
			v=M.a[o.getAttribute("N")*1]
			if(!is.Cls(o,["menuUp","menuDown"]))
				menu.Clear(M);
			if(is.Tag(M.p,"TD")&&is.Cls(M.p.parentNode,"dmcSort")){
				if(M.p.sortValue!=v[1]){
					t=_.T(M.p,'TABLE');
					i=t.getAttribute("name");
					k=t.getAttribute("containerID");
					j=i+":sort_"+M.p.getAttribute("cname");
					var attr;
					if(!M.p.getAttribute("EditMode")&&(attr=t.getAttribute("EditMode"))) M.p.setAttribute("EditMode",attr);
					if(!M.p.getAttribute("validation")&&(attr=t.getAttribute("validation"))) M.p.setAttribute("validation",attr);
					if(!k)
						SM.GoTo(M.p,[['__EVENTTARGET',i+':SORT'],['__EVENTARGUMENT',j],[j,v[1]]])
					else if(run.EditMode(M.p,ajax._Update,i={Obj:M.p,Id:{EVENTTARGET:i+':SORT',EVENTARGUMENT:j,CONTAINERID:k},Data:[j+"="+v[1]]}))
						ajax._Update(i,"Yes")
				}
			}else{
				t=_.C(M.p,"INPUT",null,'text');
				if(!is.Cls(o,["menuUp","menuDown"]))
				{
					if(t.getAttribute("servicemethod"))
						t.CbOSExec=null;
					set.Value(M.p,v)
					//run.Validate(_.C(M.p,"INPUT",null,'hidden'), null, true);
					var input = M.p.getElementsByTagName("INPUT");
					for (var n = 0; n < input.length; ++n)
						input[n].cbosServiceValue = input[n].value;
				}
				else if(e.type != "keyup")
					menu.Service(t, t.aPart, false, t.aPage + (is.Cls(o,"menuUp") ? -1 : 1), is.Cls(o,"menuUp") ? "menuUp" : "menuDown");
			}
			_.B(e)
		}
	},
	Restore:function(o,i){
		with(CbOS)
		if(o&&(i||((i=o.parentNode.CbOSsel)&&i!=o))){
			_.S(_.S(_.S(i,"padding",is.Cls(i,"menuDef")?"6px 5px 5px 26px":1),"border-width",0),_.r);
			if(!is.Cls(i,["menuUp","menuDown"]))
				_.S(i,"background-position","1px 1px")
			del(o.parentNode,"CbOSsel")
		}
	},
	Focus:function(o){
		with(CbOS){
			menu.Restore(o);
			_.S(_.S(_.S(o.parentNode.CbOSsel=o,"padding",is.Cls(o,"menuDef")?"5px 4px 4px 25px":0),"border-width",1),_.r,_.G(get.Doc(o).body,_.k[3]));
			if(!is.Cls(o,["menuUp","menuDown"]))
				_.S(o,"background-position","0px 0px")
			if(o.parentNode.firstChild==o && o.parentNode.parentNode.scrollTop) o.parentNode.parentNode.scrollTop=0;
			o.blur()
			Fcs(o.parentNode.previousSibling.childNodes[1]);
			if(is.Tag(o,"A"))
				o.href="";
			else
				o.tabIndex=-1
		}
	},
	Close:function(M){
		with(CbOS){
			del(M.o.previousSibling,"i");
			set.Focus(_.C(M.p,"INPUT",null,"text"));
			menu.Clear(M)
		}
	},
	KeyDown:function(e,o,M,i,j){
		M=o.M;
		o=o.lastChild;
		with(CbOS){
			if(is.In(i=e.keyCode,[27,37,39]))
				menu.Close(M);
			else if((j=o.CbOSsel)&&!e.altKey&&!e.ctrlKey){
				if(is.In(i,[33,34,35,36,38,40])){
					menu.setFocus(j.parentNode.childNodes[menu.Move(M.a,j.getAttribute("N")*1,i==38?-1:(i==40?1:(i==33?-6:(i==34?6:(i==36?-1:1)*M.a.length))))]);
					_.B(e)
				}else if(i==13)
					SM.run.Event(e,j,'onclick')
			}
		}
	},
	Search:function(a,v,i){for(i=0;i<a.length;i++)if(a[i].GV(1)==v) return i},
	Move:function(a,b,k,j,i){
		if(k<0){
			for(j=i=b;i>=0&&i>=b+k;i--)
				if(!CbOS._.D(a[i])) k--; else j=i;
		}else{
			for(j=i=b;i<a.length&&i<=b+k;i++)
				if(!CbOS._.D(a[i])) k++; else j=i;
		};
		return j
	},
	_Service:function(aWin, aXml, aData, aPart, aFocus, aUpDown)
	{
		with (CbOS)
		{
			if(aData.XML.status==200)
			{
				var pair = aXml.documentElement.firstChild.firstChild.lastChild.childNodes;
//				var pair = aXml.getElementsByTagName("soap:Body")[0].firstChild.lastChild.childNodes;
				var s = _.F(aData.id, aWin);
				if(!s)
					return ajax.Loading.Hide(aWin);
				s.cbosDataPart = null;
				var hidden = s.firstChild.firstChild, input = hidden.nextSibling;
				if(pair.length || !aPart)
				{
					var data = [];
					for(var obj,
							caption,
							value,
							v = input.value.toLowerCase(),
							i = 0; i < pair.length; ++i)
					{
						obj = to.XmlObj(pair[i]);
						data[i] = [caption = obj.Text, value = obj.Value, obj.Icon, obj.Hint];
						if(caption.toLowerCase() == v)
						{
							value = is.Null(value, caption);
							var execute;
							if (value == hidden.cbosServicePrevValue)
							{
								execute = hidden.getAttribute("execute");
								if (execute)
								{
									hidden.removeAttribute("execute");
									execute = get.Win(hidden).CbOS.set.Event(execute);
								} else if (hidden.Exec)
								{
									execute = hidden.Exec;
									hidden.Exec = null;
								};
							};
							set.Value(hidden, value, null, true);
							if (execute)
								hidden.Exec = execute;
						}
					};
					if (input.aPage > 1)
					{
						if(data.length)
							data.unshift(null);
						else
							return menu.Service(input, input.aPart, false, input.aPage - 1);
					};
//					if(aXml.getElementsByTagName("soap:Body")[0].firstChild.firstChild.text == 'true')
					if(get.XmlText(aXml.documentElement.firstChild.firstChild.firstChild) == 'true')
						data.push(null);
					if(aPart)
						s.cbosDataPart=data;
					else
						s.cbosDataAll=data;
					if((!aPart || data.length != 1 || String(data[0].GV(1)) != hidden.value) && _.D(s.cbosX) && _.D(s.cbosY))
					{
						if (!data.length)
							data.push(null);
						Fcs(input);
						var m = input.parentNode.parentNode.M;
						if(m){
							var c = menu[aWin.name];
							for(var i in c)
								if(c[i].a == m.a && !c[i].A)
									menu._Cache(c,i);
						};
						menu.Show(s.cbosX = get.eLeft(input),
							s.cbosY = get.eTop(input),
							menu.cCombo(data, s.id, aWin),
							hidden.value,
							aFocus,
							aUpDown
						)
					};
					del(hidden, "timeHoldValidate");
					run.Validate(hidden, null, true);
				}
				else if(run.Validate(hidden))
					Fcs(input);
			}
			else if (w.DebugMode)
				alert(Messages.InternalError);
			ajax.Loading.Hide(aWin);
		}
	},
	Service:function(aObj, aPart, aFocus, aPage, aUpDown){
		with(CbOS)
		{
			aObj.tmpkey = _.K();
			var obj = aObj.parentNode.parentNode, hidden = aObj.previousSibling, winobj = get.Win(aObj);
			aObj.aPart = aPart;
			if (!aPage && ((aPart && obj.cbosDataPart && aObj.cbosServiceValue == aObj.value) || (!aPart && obj.cbosDataAll)))
			{
				if(obj.M){
					del(obj.M, "p");
					del(obj, "M")
				};
				if(!aPart || obj.cbosDataPart.length != 1 || String(obj.cbosDataPart[0].GV(1)) != hidden.value)
					menu.Show(obj.cbosX,
						obj.cbosY,
						menu.cCombo(aPart ? obj.cbosDataPart : obj.cbosDataAll, obj.id, winobj),
						hidden.value,
						aFocus,
						aUpDown
					);
				return
			};
			var sm = aObj.getAttribute("serviceMethod"), ul = aObj.parentNode.parentNode;
			aObj.cbosServiceValue = aObj.value;
			if(!aObj.id)
				aObj.id = _.K();
			if(!ul.id)
				ul.id = _.K();
			if(!aPage)
			{
				var m = aObj.parentNode.parentNode.M;
				if(m){
					var c = menu[winobj.name];
					for(var i in c)
						if(c[i].a == m.a && !c[i].A)
							menu._Cache(c,i);
				}
			};
			ajax.Post(aObj,
				aObj.getAttribute("service"),
				{
					id:ul.id,
					ContentType:'text/xml; charset=utf-8',
					SOAPAction:_.Soap+'/'+sm,
					run:winobj.CbOS.set.Event("top.CbOS.menu._Service(arguments[0],arguments[1],arguments[2],"+aPart+","+aFocus+(aUpDown?",'"+aUpDown+"'":"")+")")
				},
				create.Soap(sm,
					{
						aPrefix:aPart ? aObj.value : "",
						aCount:aObj.getAttribute("rowsCount"),
						aPage:aObj.aPage = Math.max(1, aPage || 1),
						aSID:Session.sid,
						aPairKey:aObj.getAttribute("pairKey")
					}
				)
			);
		}
	},
	_ServiceWait:function(aObj, aAttr)
	{
		if (aObj.tmpkey != aObj.Obj.tmpkey)
			return true;
		if ((aAttr.k = (aAttr.k || 0) + 1) == 30)
		{
			CbOS.menu.Service(aObj.Obj, true, true);
			return true
		}
	},
	ServiceClearValue:function(aObj, aNewValue){
		with(CbOS)
		{
			var execute = aObj.getAttribute("execute");
			if (execute)
			{
				aObj.removeAttribute("execute");
				aObj.Exec = get.Win(aObj).CbOS.set.Event(execute);
				execute = null;
			};
			if(aNewValue != aObj.value)
			{
				if (aObj.Exec)
				{
					execute = aObj.Exec;
					aObj.Exec = null;
				}
				aObj.cbosServicePrevValue = aObj.value;
				set.Value(aObj, aNewValue, null, true);
				if (execute)
					aObj.Exec = execute;
			}
		}
	},
	ServiceWait:function(aObj)
	{
		with(CbOS)
		{
			_.Q(menu._ServiceWait,
				{
					Obj:aObj,
					tmpkey:aObj.tmpkey = _.K()
				},
				5
			);
			var hidden = aObj.previousSibling, emptyValue = hidden.getAttribute("EmptyValue") || "";
			aObj.parentNode.parentNode.cbosDataAll=null;
			this.ServiceClearValue(hidden, (!aObj.parentNode.parentNode.cbosDataPart || aObj.cbosServiceValue != aObj.value) ? emptyValue : is.Null(hidden.cbosServicePrevValue, emptyValue));
			if (!aObj.value)
				run.Execute(hidden)
		}
	},
	KDown:function(e,o,p,i,j){
		with(CbOS)
			if(_.I(o=_.O(e))&&(i=e.keyCode)!=9&&(p=_.T(o,"UL"))&&!p.readOnly){
				if(o.getAttribute("servicemethod")){
					if(!o.CbOSExec)
						o.CbOSExec=get.Win(o).CbOS.set.Event("top.CbOS.menu.ServiceWait(this)");
					p.cbosX=get.eLeft(e);
					p.cbosY=get.eTop(e);
					if(is.In(i,[38,40]))
						menu.Service(o, i!=40 || !e.altKey, false)
					return
				};
				if(!p.M) SM.run.Event(e,_.M(p,"onclick"),'onclick');
				if(i==40&&e.altKey&&!is.Cls(o.parentNode.parentNode,"combos")){
					SM.run.Event(e,_.M(p,"onclick"),'onclick')
				}else if(!e.altKey&&!e.ctrlKey){
					if(o.readOnly){
						if(p.M&&p.M.a&&is.In(i,[33,34,35,36,38,40])){
							if(!_.D(o.CbOSsel)||p.M.a[o.CbOSsel].GV(1)!=get.Value(p))o.CbOSsel=menu.Search(p.M.a,get.Value(p));
							if(!_.D(o.CbOSsel))set.Value(p,p.M.a[o.CbOSsel=0]);else if(_.D(j=menu.Move(p.M.a,o.CbOSsel,i==38?-1:(i==40?1:(i==33?-6:(i==34?6:(i==36?-1:1)*p.M.a.length)))))&&o.CbOSsel!=j) set.Value(p,p.M.a[o.CbOSsel=j]);
							_.B(e)
						};
						set.Focus(o);
					}else if(is.In(i,[38,40])&&is.Cls(o.parentNode,["combos","combom"])){
						var newValue = to.Float(o.value)+(i==38?1:-1)
						mask.Edit(o);
						if (top.CbOS.OperatedInput.ValidateValue(o, newValue.toString()))
							set.Value(o, newValue);
						else if (o.validationInfo && is.Def(o.validationInfo.MaxValue) && is.Def(o.validationInfo.MinValue))
							set.Value(o, i == 38 ? o.validationInfo.MaxValue : o.validationInfo.MinValue);
						set.Focus(o);
					}
				}
			}
	},
	_Cache:function(o,i,k){
		with(CbOS){
			if(o[i].o&&o[i].o.S){
				del(o[i].o.S.parentNode,"M");
				del(o[i].o,"S")
			};
			del(o[i],"E")
			k=o[i].m;
			del(o[i],"m");
			rem(k);
			k=null;
			if(o[i].p)
				del(o[i].p,"M");
			del(o[i],"a");
			del(o[i],"p");
			del(o,i)
		}
	},
	Cache:function(n,m,o,i,f,k){
		with(CbOS){
			if(!m)
				menu.Clear()
			if(menu.calendar&&menu.calendar.p)
				with(menu.calendar){
					if(p.M)
						p.M=null
					p=null
				}
			if((o=menu[n])){
				if(m)
					f=_.F(m,get.iDoc(wd.win[n]));
				for(i in o)
					if(!m)
						menu._Cache(o,i);
					else if(f){
						for(k in o[i].openers)
							if(is.Child(_.F(k,f),f)){
								delete o[i].openers[k];
								k=null;
								for(k in o[i].openers)
									break;
								if(!k){
									menu.Clear(o[i]);
									menu._Cache(o,i)
								};
								break
							}
					}
				if(!m)
					del(menu,n)
			}
		}
	},
	_QSearch:function(a,t,M){
		with(CbOS)with(a){
			if(i!=o.i||!o.value) return true;
			if((t.k=(t.k||0)+1)==20){
				M=o.parentNode.parentNode.M;
				t=o.parentNode.nextSibling.CbOSsel
				while(o.value){
					for(i=t;i;i=i.nextSibling)
						if(M.a[i.getAttribute("N")*1].GV(0).toLowerCase().indexOf(o.value.toLowerCase())==0){
							Fcs(i);
							o.value="";
							return true
						};
					for(i=t.parentNode.firstChild;i!=t;i=i.nextSibling)
						if(M.a[i.getAttribute("N")*1].GV(0).toLowerCase().indexOf(o.value.toLowerCase())==0){
							Fcs(i);
							o.value="";
							return true
						};
					o.value=o.value.substring(0,o.value.length-1)
				};
				return true
			}
		}
	},
	QSearch:function(o,e){
		with(CbOS)
			if(is.In(e.keyCode,[27,13])){
				menu.KeyDown(e,o.parentNode.parentNode);
				_.B(e)
			}else if(o.parentNode.nextSibling.CbOSsel){
				if(e.keyCode.Between(33,40)) o.value="";
				if(is.ie){
					o.blur();
					o.readOnly=true;
					Fcs(o)
				};
				o.i=null;
				if(o.value) _.Q(menu._QSearch,{o:o,i:o.i=_.K()},5)
			}
	},
	cCombo:function(a,p,o,i,k,n,j,c,E,S){
		if(p)
		with(CbOS){
			if(p.s){
				if(!(p=_.F(p,o)))
					return
				if(set.Lock(p))
					menu.cCombo(a,p);
				p.L--
			}else if(!p.M){
				if(!p.id)p.id=_.K();
				i=get.Win(p).name;
				c=menu[i]=menu[i]||{};
				for(i in c)if(c[i].a==a&&!c[i].A){
					c[i].openers[p.id]=true;
					return p.M=_.P(["p",p],c[i])
				};
				set.DBLClick(p);
				_.M(p,_.y);
				with(_.M(create.Empty(k=_.E('DIV',o=_.E('DIV',_.M(_.E('FORM',_.E('DIV',m=_.E('DIV',0,"menu0"),"menu1")),"onkeydown","CbOS.set.CancelEnter(event)"),"menu3"),"empty"),true),"onfocus","CbOS.menu.Close(this.parentNode.parentNode.M)").form)
				{
					setAttribute("autocomplete","off");
					setAttribute("EditMode","false")
				};
				_.M(E=create.Empty(k,is.ie),"onkeyup","CbOS.menu.QSearch(this,event)");
				if(is.ie)
					_.M(_.M(E,"onkeydown","if(this.parentNode.parentNode.M.a){this.blur(); this.readOnly=event.altKey; top.CbOS.Fcs(this)}"),"onblur","this.readOnly=true");
				_.M(_.M(_.M(E=create.Empty(k,is.ie),"onkeydown",IE("if(this.parentNode.parentNode.M.a){this.blur(); this.readOnly=event.altKey; top.CbOS.Fcs(this)}")),"onkeyup","CbOS.menu.QSearch(this,event)"),"onblur",IE("this.readOnly=true"));
				_.M(create.Empty(k,true),"onfocus","CbOS.menu.Close(this.parentNode.parentNode.M)");
				o=_.E('DIV',_.M(o,"onkeydown","CbOS.menu.KeyDown(event,this)"),"menu4");
				var begin = IE("<div", "<a");
					end = IE("div>", "a>");
				o.innerHTML = a ? menu.GenerateHtml(a, begin, end, 0) : (begin + " class=menuDef>&nbsp;</" + end);
				_.S(m,_.w,m.W=Math.min(o.scrollWidth+4,300));
				m.firstChild.className="menu2";
				m.H=_.H(m)-IE(4,3);
				c[_.K()]=p.M=o.parentNode.M={m:m,o:o,a:a,E:E,openers:{}};
				p.M.openers[p.id]=true
				m.firstChild.className="menu1";
			};
			if((c=_.T(p,"DIV","menu3"))) c.M.c=p.M;
			return p.M&&_.P(["p",p],p.M)
		}
	},
	GenerateHtml2: function(aData, aBegin, aEnd, aSpace)
	{
		if (!aSpace)
		{
			aData = [
				{
					GroupName: 'Group Name',
					Items: [
						['...expression...','Like','images/dmc/filter/like'],
						['expression...','LikeLeft','images/dmc/filter/likeleft'],
						{
							GroupName: 'Group Name',
							Items: [
								['...expression...','Like','images/dmc/filter/like'],
								['expression...','LikeLeft','images/dmc/filter/likeleft'],
								['...expression','LikeRight','images/dmc/filter/likeright'],
								{
									GroupName: 'Group Name',
									Items: [
										['...expression...','Like','images/dmc/filter/like'],
										['expression...','LikeLeft','images/dmc/filter/likeleft'],
										['...expression','LikeRight','images/dmc/filter/likeright']
									]
								}
							]
						},
						['...expression','LikeRight','images/dmc/filter/likeright']
					]
				},
				['equal','Equal','images/dmc/filter/equal'],
				['not equal','NotEqual','images/dmc/filter/notequal']
			]
		}
		var code = [];
		with (CbOS)
			for(var i = 0; i < aData.length; ++i)
				if (is.Def(aData[i]) && !aData[i].isEmptyValue)
				{
					if (aData[i].GroupName)
					{
						code.push(aBegin, " class=menuDef>", set.HTMLEncode(aData[i].GroupName), "</", aEnd);
						code.push(this.GenerateHtml(aData[i].Items, aBegin, aEnd, aSpace + 15));
					}
					else
						code.push(menu.Item(aData[i], i, aBegin, aEnd, aSpace));
				}
				else if(aData.length == 1)
					code.push(aBegin, " class=menuDef>&nbsp;</", aEnd);
				else
				{
					aData[i] = new String();
					aData[i].isEmptyValue = true;
					code.push(aBegin , " N=", i, " class='menuDef menu", i ? "Down" : "Up", "'>&nbsp</", aEnd);
				}
		return code.join("");
	},
	GenerateHtml: function(aData, aBegin, aEnd, aSpace)
	{
		var code = [];
		with (CbOS)
			for(var i = 0; i < aData.length; ++i)
				if (is.Def(aData[i]) && !aData[i].isEmptyValue)
				{
					if (aData[i].GroupName)
					{
						code.push(aBegin, " class=menuDef>", set.HTMLEncode(aData[i].GroupName), "</", aEnd);
						code.push(this.GenerateHtml(aData[i].Items, aBegin, aEnd, aSpace + 15));
					}
					else
						code.push(menu.Item(aData[i], i, aBegin, aEnd, aSpace));
				}
				else if(aData.length == 1)
					code.push(aBegin, " class=menuDef>&nbsp;</", aEnd);
				else
				{
					aData[i] = new String();
					aData[i].isEmptyValue = true;
					code.push(aBegin , " N=", i, " class='menuDef menu", i ? "Down" : "Up", "'>&nbsp</", aEnd);
				}
		return code.join("");
	},
	Item:function(a,i, aBegin, aEnd, aSpace)
	{
		with(CbOS)
			return aBegin +
			" N=" + i +
			(
				(a.a && is.Def(a[3]))
				?
				' hint="' + a[3].replace(/"/g, "&quot;") + '"'
				:
				''
			)
			+
			" class=menu" +
			(
				(a.a && a[2])
				?
				'Adv><div style="' + (aSpace ? 'padding-left:' + (26 + aSpace) +'px;' : '') + 'background-image:' + get.iURL(get.Root(d) + a[2] + '1.gif') + '">'
				:
				('Def' + (aSpace ? ' style="padding-left:' + (26 + aSpace) +'px;"' : '') + '>')
			) +
			(
				a.GV(0).length
				?
				set.HTMLEncode(a.GV(0))
				:
				_.n
			) +
			(
				(a.a && a[2])
				?
				"</div>"
				:
				""
			) + "</" + aEnd
	},
	Show:function(l,t,q,v,f,aUpDown,H,k,i,V){
		if(q) with(CbOS) with(q){
			menu.box[_.K()]=p.M;
			p.M.E.value="";
			H=m.H;
			if((i=p.getAttribute('DropDownRows'))) H=Math.min(H,i=i*21+1);
			q=_.H(p);
			if(!(W=(i=get.sHeight())>t+q+H+5)&&t<H+5){
				H=Math.max((V=Math.max(i-t-q,t))-5,22);
				W=V!=t
			}
			k=m.W;
			if(m.className!=(i="menu0"+(W?"":0))) m.className=i;
			if((i=o.offsetWidth-o.scrollWidth)) _.S(m,_.w,k=Math.min(Math.max(300,_.W(p)),k+i));
			m.firstChild.className="menu1";
			_.S(o,_.h,Math.min(_.H(_.S(o,[_.h,"overflow"],"auto")),H+IE(0,1)));
			i=_.T(p,"TR","dmcFilter");
			if(!_.T(p,"TR","dmcSort"))
				_.S(m,_.w,k=Math.max(m.W,Math.max(k,_.W(p)))+IE(0,25));
			if(o.scrollTop) o.scrollTop=0;
			_.S(m,_.w,_.W(m))
			while(o.clientWidth<o.scrollWidth)_.S(m,_.w,++k);
			m.firstChild.className="menu2";
			run.Draw(SM.set.XY(run.Draw(m),Math.max(0,Math.min(i?l+_.W(p)-k:l,get.sWidth()-k)),Math.max(0,(W?t+q-1:(t-_.H(m)+1)))),0);
			if(!a||!a.length) return Fcs(o.previousSibling.childNodes[1]);
			V=v.Trim();
			for(i=0;i<a.length;i++)if(_.D(a[i])&&is.In(String(a[i].GV(1,1)),[V,v]))break;
			i=o.S=o.childNodes[(V=i<a.length)?i:0];
			v=_.C(p,"INPUT",null,"text");
			run.Event(v,v,"onblur");
			V=(V&&!is.Cls(i, ["menuUp", "menuDown"]))?_.S(i,_.b,get.iURL(get.Root(o)+"images/menu/"+(_.C(i,"DIV")?"sel":"tick")+"1.gif")):i;
			if(!f)
			{
				v=V.parentNode.lastChild;
				if(aUpDown && ((is.Cls(v, aUpDown)) || (!is.Cls(V, "menuUp") && is.Cls(v, "menuDown"))))
					V=v;
				menu.setFocus(V)
			}
		}
	},
	setFocus:function(o){
		with(CbOS){
			if(is.Tag(o,"A"))
				o.href="javascript:void(0)";
			else
				o.tabIndex=0;
			o.hideFocus=true;
			Fcs(o)
		}
	},
	Combo:function(e,o,a,l,t,c,p,i){
		with(CbOS){
			set.DBLClick(o);
			if((l=_.O(e))&&_.I(t=_.C(o,"INPUT",null,"text"))&&!t.parentNode.parentNode.readOnly&&(e.keyCode||((l==t&&t.parentNode.parentNode==o&&t.readOnly)||((l==o||l.parentNode==o)&&(t.readOnly||_.W(t)<(e.offsetX||e.layerX||0)))))){
				if(t.parentNode.parentNode==o&&t.getAttribute("servicemethod")){
					o=t.parentNode.parentNode;
					o.cbosX=get.eLeft(e);
					o.cbosY=get.eTop(e);
					return top.CbOS.menu.Service(t,false,false)
				};
				if(set.Lock(o,(c=e.keyCode&&!o.M)?null:e)){
					if(c)
						menu.cCombo(a,o);
					else{
						if((c=o.className)=="combom") c=is.Tag(l,"LI")?"combos":"combo";
						if(c=="combos"){
							mask.Edit(t)
							if(t.readOnly){
								p=_.T(o.firstChild||o,"UL");
								if(!p.M){
									e.keyCode=40;
									o.L--;
									SM.run.Event(e,_.M(p,"onclick"),'onclick');
									o.L++
								};
								if(p.M&&p.M.a){
									if(!_.D(o.CbOSsel)||p.M.a[o.CbOSsel].GV(1)!=get.Value(p))o.CbOSsel=menu.Search(p.M.a,get.Value(p));
									if(!_.D(o.CbOSsel))set.Value(p,p.M.a[o.CbOSsel=0]);else if(_.D(j=menu.Move(p.M.a,o.CbOSsel,(e.offsetY||e.layerY||0)<10?-1:1))&&o.CbOSsel!=j)set.Value(p,p.M.a[o.CbOSsel=j])
								}
							}else
							{
								var up = (e.offsetY||e.layerY||0)<10,
									newValue = to.Float(t.value)+(up?1:-1)
								mask.Edit(t);
								if (top.CbOS.OperatedInput.ValidateValue(t, newValue.toString()))
									set.Value(t, newValue);
								else
									if (t.validationInfo && is.Def(t.validationInfo.MaxValue) && is.Def(t.validationInfo.MinValue))
										set.Value(t, up ? t.validationInfo.MaxValue :t.validationInfo.MinValue);
							}
							set.Focus(t);
						}else if(is.In(c,["combo","combof"])) menu.Show(get.eLeft(e),get.eTop(e),menu.cCombo(a||'',o),get.Value(o));
						else if(c=="comboc") DTime.Show(e,o,t);
						else if(c=="combop") CbOS.Path.Show(o)
					}
				};
				o.L--
			}
		}
	},
	Create:function(o,c,v,a,r,W,i,j){
		with(CbOS){
			i=_.E('LI',_.M(j=_.E('UL',o,c),_.y,"top.CbOS.menu.Combo(event,this,this.data)"),c)
			j.data=a;
			if(c=="combof"||r) _.E('INPUT',i,null,null,"hidden",v&&v.GV(1,1));
			_.S(_.M(_.E('INPUT',i,"clsText",null,"text",v&&v.GV(0)),"onkeydown","top.CbOS.menu.KDown(event)"),_.w,W).readOnly=r||false;
			return j
		}
	}
};
with(CbOS){_.M(w,"onresize","top.CbOS.menu.Clear()","MENUCLEAR")};
CbOS.Path={
	Show:function(o,i){with(CbOS){_.M(_.E("INPUT",_.S(i=_.E("FORM",get.Doc(o).body),_.d,"none"),null,null,'file'),"onchange","top.CbOS.Path.Update(this,'"+(o.id||(o.id=_.K()))+"')").click();rem(i)}},
	Update:function(o,n){with(CbOS)set.Value(_.F(n,o),o.value.substring(0,o.value.lastIndexOf("\\")+1))}
}
CbOS.DTime={
	Today:function(o,i,k){
		i=o.parentNode.nextSibling.nextSibling;
		with(CbOS){
			k=_.C(o.parentNode.parentNode.nextSibling.firstChild,"INPUT");
			if((k.disabled=!(i.disabled=o.value=="false"))){
				set.Value(i,o=(new Date()).DateFormat());
				set.Value(k,o)
			}
		}
	},
	MOver:function(t,k,o,i){
		with(CbOS){
			if(is.Tag(t=_.O(t),["UL","LI"])) return;
			while(t.firstChild&&is.Tag(t.firstChild,"DIV")) t=t.firstChild;
			if(t.innerHTML){
				t=t.parentNode;
				if((i=(o=_.T(t,"DIV","menu3")).CbOSsel)&&i!=t){
					if(o.M.c){
						menu.Clear(o.M.c)
						del(o.M,"c")
					};
					_.S([i,i.firstChild],[_.r,_.k]);
					del(o,"CbOSsel")
				};
				_.S(_.S([t.firstChild,o.CbOSsel=t],_.r,DTime.COLOR[3])[0],_.k,_.G(get.Doc(t).body,_.k[1]))
				if(k) Fcs(o.day)
			}
		}
	},
	KDown:function(e,o,i,t,j,M){
		i=e.keyCode;
		with(CbOS) if(i==27) DTime.Clear(o);
		else if(i==13&&!is.Tag(_.O(e),"INPUT"))
			DTime.Enter(o.day)
		else if(i.Between(35,40)&&!is.In(_.O(e).parentNode.parentNode,[o.year,o.month])&&(j=o.CbOSsel)){
			if(i==38){
				if((e=j.parentNode.previousSibling)) j=e.childNodes[j.getAttribute("i")*1];
			}else if(i==40){
				if((e=j.parentNode.nextSibling)) j=e.childNodes[j.getAttribute("i")*1];
			}else if(i==37){
				j=j.previousSibling;
			}else if(i==39)
				j=j.nextSibling;
			else if(i==36)
				j=j.parentNode.parentNode.firstChild.firstChild;
			else if(i==35){
				j=j.parentNode.parentNode.lastChild;
				while(_.G(j,"display")=="none") j=j.previousSibling;
				j=j.lastChild;
			};
			if(e&&is.In(i,[38,36,40,35])) while(j&&!j.firstChild.innerHTML) j=(i==40||i==35)?j.previousSibling:j.nextSibling;
			if(j) this.MOver(j);
		}
	},
	Init:function(t,M){
		with(CbOS){
			var str = t.value.Trim().split(" ")[0]
			M.n=get.Date(str)||new Date();
			M.f=new Date(M.n);
			M.f.setDate(1);
			set.Value(M.o.year,M.n.getFullYear().PadL(4),2)
			del(_.C(M.o.month,"INPUT",null,"text"),"CbOSsel")
			set.Value(M.o.month,_.Month[M.n.getMonth()],2)
			return this.Set(M)
		}
	},
	Month:function(o,M){
		M=CbOS.menu.calendar;
		M.f.setMonth(o.value*1)
		this.Set(M)
		if(M.d.parentNode.CbOSsel) this.MOver(M.d.parentNode.CbOSsel);
	},
	Year:function(o,M){
		M=CbOS.menu.calendar;
		M.f.setYear(o.value*1)
		this.Set(M)
		if(M.d.parentNode.CbOSsel) this.MOver(M.d.parentNode.CbOSsel);
	},
	Set:function(M,t,i,j,s,m,n,r,v){
		with(CbOS){
			if(M.c){
				menu.Clear(M.c)
				del(M,"c")
			};
			M.l=new Date(M.f);
			M.l.setDate(1);
			M.l.setMonth(M.l.getMonth()+1);
			M.l.setDate(0);
			t=new Date();
			del(M.d.parentNode,"CbOSsel");
			s="";
			M.d.parentNode.CbOSsel=null;
			for(i=0;i<6;i++){
				for(j=1;j<8;j++){
					m=t.getFullYear()==M.f.getFullYear()&&t.getMonth()==M.f.getMonth()&&t.getDate()==i*7+j-M.f.getDay();
					r=(n=M.n.getFullYear()==M.f.getFullYear()&&M.n.getMonth()==M.f.getMonth()&&M.n.getDate()==i*7+j-M.f.getDay())?M.d.parentNode.CbOSsel=_.K():null;
					if(i==0&&i*7+j-1<M.f.getDay()){
						v="";
					}else if(i*7+j-1-M.f.getDay()<M.l.getDate()){
						if(!M.d.parentNode.CbOSsel)
							r=M.d.parentNode.CbOSsel=_.K()
						v=i*7+j-M.f.getDay();
						k=true;
					}else{
						if(i==5&&j==1) break;
						v="";
					}
					s+=(j>1?"":"<LI>")+"<div"+_.A("id",r)+_.A("i",j-1)+"><div"+_.A("class",j>1?null:"calSunday")+" style='border-color:"+(m?DTime.COLOR[0]:(n?DTime.COLOR[1]:DTime.COLOR[2]))+"'>"+v+"</div></div>"+(j<7?"":"</LI>")
				}
			};
			M.d.innerHTML=s
			if((r=M.d.parentNode.CbOSsel))
				M.d.parentNode.CbOSsel=_.F(r)
			return M
		}
	},
	Show:function(e,o,M,t,l,W){
		with(CbOS){
			menu.box[_.K()]=M=this.Init(M,DTime.Create(o))
			l=get.eLeft(e);
			if(M.m.className!=(i="menu0"+((W=get.sHeight()>=(_.H(M.m)+(t=get.eTop(e))+(q=_.H(M.p))-1))?"":0))) M.m.className=i;
			run.Draw(SM.set.XY(run.Draw(M.m),Math.max(0,l+_.W(M.p)-_.W(M.m)),Math.max(0,W?t+q-1:(t-_.H(M.m)+1))),0);
			l=_.C(o,"INPUT",null,"text");
			run.Event(l,l,"onblur");
			Fcs(_.C(M.d.parentNode.month,"INPUT",null,"text"))
			if((t=M.d.parentNode.CbOSsel)) this.MOver(t);
		}
	},
	Clear:function(o){
		with(CbOS){
			Fcs(_.C(_.T(o.firstChild||o,"DIV","menu3").M.p,"INPUT",null,"text"));
			menu.Clear();
		}
	},
	Create:function(p,o,m,k,i,a,j,D,s){
		with(CbOS){
			if((o=menu.calendar)){o.p=p;return p.M=o};
			with (_.M(create.Empty(_.M(o=_.E('DIV',_.M(_.E('FORM',_.E('DIV',_.S(m=_.E('DIV',0,"menu0 calSetting"),_.w,189),"menu1")),"onkeydown","CbOS.set.CancelEnter(event)"),"menu3"),"onkeydown","CbOS.DTime.KDown(event,this)"),true),"onfocus","CbOS.DTime.Clear(this)").form)
			{
				setAttribute("autocomplete","off");
				setAttribute("EditMode","false")
			};
			if(!DTime.COLOR) DTime.COLOR=[_.G(m,_.k[0]),_.G(m,_.k[1]),_.G(m,_.k[2]),_.G(m,_.k[3])];
			with(_.C(o.month=menu.Create(k=_.E("DIV",o,"calLine"),"combom",null,_.Month,true,96),"INPUT",null,"text")){
				previousSibling.setAttribute("execute","CbOS.DTime.Month(this)");
				setAttribute("enter","CbOS.DTime.Enter(this)")
			};
			with(_.C(o.year=_.S(menu.Create(k,"combos",'',null,false,40),"left",1),"INPUT",null,"text")){
				var obj = (obj = o.year.getElementsByTagName("INPUT")) && obj.length && obj[0];
				obj.validationInfo = {DataType: "Integer", MinValue: "0"};
				obj.setAttribute("maxLength", "4");
				obj.setAttribute("RTV", "true");
				setAttribute("execute","CbOS.DTime.Year(this)");
				setAttribute("enter","CbOS.DTime.Enter(this)");
				OperatedInput.SetEventsHandlers(obj);
			};
			(o.day=create.Empty(i=_.E('DIV',o,"empty"),true)).setAttribute("enter","CbOS.DTime.Enter(this)");
			_.M(create.Empty(i,true),"onfocus","CbOS.DTime.Clear(this)");
			k=_.M(_.E("DIV",o,"calWeek"),_.y,"CbOS.Fcs(this.parentNode.day)");
			a=["S","M","T","W","T","F","S"];
			s="";
			for(i=0;i<7;i++) s+="<div"+_.A("class",i?null:"calSunday")+">"+a[i]+"</div>";
			k.innerHTML=s;
			_.M(_.M(D=_.E("UL",o,"calDays"),_.y,"CbOS.DTime.Click(event,this)"),"onmouseover","CbOS.DTime.MOver(event,this)");
			return menu.calendar=p.M=o.M={m:m,o:o,p:p,A:true,d:D}
		}
	},
	Click:function(e,o,k){
		with(CbOS){
			if((k=_.O(e))!=o){
				while(k.firstChild&&is.Tag(k.firstChild,"DIV")) k=k.firstChild;
				if(k.innerHTML) return DTime.Enter(k);
			};
			CbOS.Fcs(_.T(o,"DIV","menu3").day)
		}
	},
	Enter:function(o){
		with(CbOS)
		if ((is.Tag(o,"INPUT")||o.innerHTML)&&(o=_.T(o,"DIV","menu3")).CbOSsel){
			var i = get.Value(o.M.p).Trim();
			if (is.DTime(i))
			{
				i = i.split(" ");
				i[0] = "";
				i = i.join(" ");
			}
			else if (is.Time(i))
				i = " " + i;
			else
				i = "";
			set.Value(o.M.p,(get.Value(o.month)*1+1).PadL(2)+"/"+o.CbOSsel.firstChild.innerHTML.PadL(2)+"/"+get.Value(o.year).PadL(4)+i,null,true);
			set.FocusFrm(o.M.p, o.M.p.id || (o.M.p.id = get.PK()));
			menu.Clear()
		}
	}
}
CbOS.dmc={
	RestoreValidation: function(aObj, aValidate)
	{
		var input = aObj.form[aObj.name.substr(0, aObj.name.length-11)];
		if (CbOS.is.In(aObj.value, ["Equal", "NotEqual"]))
		{
			var atr = input.getAttribute('tmpValidate');
			if (atr)
			{
				input.removeAttribute('tmpValidate');
				input.setAttribute('validate', atr);
			};
			if (aValidate)
				return input.getAttribute('validate');
			CbOS.run.Validate(input);
		}
		else
		{
			CbOS.get.Win(input).CbOS.Validation.ErrorHide(input);
			var atr = input.getAttribute('validate')
			if (atr)
			{
				input.removeAttribute("validate");
				input.setAttribute("tmpValidate", atr);
			}
		}
	},
	GridResize:{
		MOver: function(aEvent, aObj)
		{
			with (CbOS)
			{
				var obj = get.eObj(aEvent);
				if (is.Tag(obj, "DIV"))
					obj = obj.parentNode;
				if (is.Cls(obj, "dmcResize") && !obj.CbOSonmousemoveGridResize)
					run.Event(
						aEvent,
						_.M(
							_.M(
								_.M(
									obj,
									"onmousedown",
									"top.CbOS.dmc.GridResize.MDown(event, this)"
								),
								"ondblclick",
								"top.CbOS.dmc.GridResize.DblClick(event, this)"
							),
							"onmousemove",
							"top.CbOS.dmc.GridResize.MMove(event, this)",
							"GridResize"
						),
						"onmousemove"
					);
			}
		},
		MMove: function(aEvent, aObj)
		{
			CbOS.set.Style(aObj, "cursor", this.AllowResize(aEvent, aObj) ? "w-resize" : null);
		},
		DblClick: function(aEvent, aObj)
		{
			if (this.AllowResize(aEvent, aObj))
				this.SetWidth(aObj)
		},
		SetWidth: function(aObj, aWidth){
			with (CbOS){
				var table, obj = get.node.Child(table = get.node.Parent(aObj,"TABLE"),"COLGROUP").getElementsByTagName("COL")[aObj.cellIndex], width = get.Width(obj);
				if (width != (aWidth || (obj.CbOSStyle && to.Int(obj.CbOSStyle["width"] || 0)) || width))
				{
					set.Style(table, "visibility", "hidden")
					set.Style(obj, "width", aWidth);
					set.Style(table, "width", get.Width(table) + aWidth - width)
					dmc.Scroll(aObj);
					obj=get.node.Parent(aObj, "TABLE").getElementsByTagName("TABLE");
					for (var i = 0; i < obj.length; ++i)
						if (get.Width(obj[i]))
							dmc.Scroll(obj[i].firstChild);
					set.Style(table, "visibility")
				}
			}
		},
		MDown: function(aEvent, aObj)
		{
			if (this.AllowResize(aEvent, aObj))
			{
				with (CbOS)
				{
					var table = get.node.Parent(aObj, "TABLE"), border = get.Style(aObj, "border-right-width", true);
					this.RESIZE = {
						obj: aObj,
						space: set.Style(_.F(wd.space), "cursor", "w-resize"),
						xMin: get.eLeft(aEvent),
						widthMin: 20,
						x: get.eLeft(aEvent) + get.Width(aObj) - border,
						y: get.eTop(aEvent),
						width: border,
						height: get.Height(table) - 2
					}
					for (var i=0; i< aObj.parentNode.rowIndex; ++i){
						var obj = table.rows[i].cells[aObj.cellIndex];
						this.RESIZE.y -= get.Height(obj) +1;
						if((obj = get.node.Child(obj, "INPUT", null, "text")))
						{
							this.RESIZE.widthMin = 24;
							do
								this.RESIZE.widthMin += get.Style(obj.parentNode, "padding-right", true) +  get.Style(obj.parentNode, "border-right-width", true) +  get.Style(obj.parentNode.parentNode, "padding-right", true) +  get.Style(obj.parentNode.parentNode, "border-right-width", true);
							while (is.Tag(obj = obj.parentNode.parentNode, "UL"));
						}
					}
					_.M(_.M([d.body, get.Doc(aObj).body], "onmouseup", "top.CbOS.dmc.GridResize.MUp(event)","MMOVE"), "onmousemove", "top.CbOS.dmc.GridResize.Resize(event)","MMOVE");
				}
			}
		},
		MUp: function(){
			with (CbOS) with (this.RESIZE)
			{
				_.M([d.body, get.Doc(obj).body], ["onmousemove", "onmouseup"], null,"MMOVE");
				if(this.RESIZE.line)
				{
					this.SetWidth(obj, get.Left(line) - xMin + width);
					set.Style([
							obj,
							set.Style(rem(get.Obj(wd.space), true), "z-index")
						],
						"cursor"
					);
					del(this, "RESIZE")
				}
			}
		},
		Resize: function(aEvent)
		{
			if (this.RESIZE)
				with (CbOS) with (this.RESIZE)
				{
					if(this.RESIZE.line)
						set.Style(line, "left", Math.min(Math.max(get.X(aEvent), xMin + widthMin)));
					else
						SM.set.XY(this.RESIZE.line = set.Size(create.SpaceBox(), width, height), x, y);
				}
		},
		AllowResize: function(aEvent, aObj)
		{
			return CbOS.is.Cls(aObj, "dmcResize") && (aEvent.offsetX||aEvent.layerX||0) >= CbOS.get.Width(aObj) - CbOS.get.Style(aObj, "border-right-width", true)
		}
	},
	Scroll:function(o,i,e){
		with(CbOS)
		{
			e=_.T(o,"TABLE");
			if((i=_.T(o,"DIV","dmcBox"))&&_.C(i,"TABLE")==e){
				_.S(i,"background-color")
				_.S(i,_.w,"100%")
				if((i=_.T(e,"DIV","dmcScroll")))
					i.style.overflowX=i.style.overflowY="hidden";
			};
			dmc.iFilter(e)
		}
	},
	ImgResize:function(o,w,h,W,H,a,b,p,q){
		w=o.width;
		h=o.height;
		o.style.display="none";
		q=CbOS._.G(p=o.parentNode,"border-top-width",1)*2;
		W=p.offsetWidth-q;
		H=p.offsetHeight-q;
		a=(W-w>H-h)?h/H:w/W;
		w=w/a;
		h=h/a;
		o.parentNode.innerHTML='<img src="'+o.src+'" style="border:0px;width:'+Math.min(W,Math.ceil(w))+'px;height:'+Math.min(H,Math.ceil(h))+'px;top:'+Math.ceil((H-h)/2)+'px;left:'+Math.ceil((W-w)/2)+'px">'
	},
	__MQ:function(o){
		with(CbOS)
			if(o.u)
				create.Window(null,o.u,{Attributes:o.a})
			else
				SM.Submit(o.o,null,o.a);
	},
	_MQ:function(o,c){
		if(c=='Yes'||c=='OK')
			CbOS.dmc.__MQ(o);
	},
	MQ:function(o,m,a,u,q,i,t,s){
		with(CbOS) if(_.I(i=o)&&!SM.Warning(o)){
			if(q)u=set.Param(u,q);
			if(a&&a.URL){u=a;a=null};
			while((i=_.T(i,"DIV")))
				if(i.getAttribute("RowID")){
					t=_.T(i,"DIV","tscTbl");
					if(MsgBox.Show(o,(s=t.getAttribute("question"+m))&&eval(s),null,['Yes','No'],'Question',1,dmc._MQ,u={o:o,a:[['__EVENTTARGET',t.getAttribute("name")+":ROWCOMMAND:"+m],['__EVENTARGUMENT',i.getAttribute("RowID")]],u:u})&&MsgBox.Show(o,(s=t.getAttribute("message"+m))&&eval(s),null,'OK','Info',1,dmc._MQ,u))
					   dmc.__MQ(u);
					return
				}
		}
	},
	_Alignment:function(o,D,i,k,m){
		with(CbOS)
		for(i=0;i<o.length;i++){
			m=0;
			for(k=0;k<o[i].length;k++)
				m=Math.max(m,_.F(o[i][k],D).offsetHeight)
			for(k=0;k<o[i].length;k++)
				_.S(_.F(o[i][k],D),_.h,m)
		}
	},
	Alignment:function(o,W,e){
		with(CbOS){
			W=(o.getDoc&&get.Win(o.getDoc()))||w;
			e=W.nodeName?W:W.CbOS.EVENTS;
			if(!e.CbOSonloadDMCAlignment){
				W.CbOS.TEMP.DMCAlignment=create.Arr();
				_.M(W,"onload","top.CbOS.dmc._Alignment(CbOS.TEMP.DMCAlignment,d)","DMCAlignment")
			};
			W.CbOS.TEMP.DMCAlignment[W.CbOS.TEMP.DMCAlignment.length]=o;
		}
	},
	CheckAll:function(t,o,b,i,c,j,m){
		with(CbOS){
			b=_.T(o=_.T(t,["TD","TH"]),"TABLE");
			if((m=b.getAttribute("counterBox"))){
				m=m.toArray();
				c=_.F(m[0],t)
			}
			j=(c&&(c.innerHTML*1))||0;
			n=_.F(b.getAttribute("btnMove"),t)
			for(i=o.parentNode.rowIndex+1;i<b.rows.length;i++)
				if(is.CheckBox(k=b.rows[i].cells[o.cellIndex].firstChild)&&get.Value(k)!=t.value){
					j+=t.value=="true"?1:-1
					set.Value(k,t.value=="true",null,true)
				}
			for(i=0;m&&i<m.length;i++)
				if((c=_.F(m[i],t)))
					c.innerHTML=j;
			btn.State(t,b.getAttribute("btnMove"),j)
		}
	},
	Check:function(t,i,b,c,j,m){
		with(CbOS){
			b=_.T(t,"TABLE");
			if((m=b.getAttribute("counterBox"))){
				m=m.toArray();
				c=_.F(m[0],t)
			}
			j=(c&&(c.innerHTML*1))||0;
			j+=t.value=="true"?1:-1
			for(i=0;m&&i<m.length;i++)
				if((c=_.F(m[i],t)))
					c.innerHTML=j;
			btn.State(t,b.getAttribute("btnMove"),j)
		}
	},
	PS:function(e,p,r,i,c,k,o,M,l,W,t,q,f,F){
		with(CbOS){
			if(set.Lock(p)){
				F=_.T(p,"FORM").elements

				if(r.captions.s) r.captions=[r.captions];
				if(!r.buttons) r.buttons=['Ok','Cancel'];
				if(!p.M){
					set.DBLClick(p);
					_.M(p,_.y);
					i=get.Win(p).name;
					_.S(o=_.E('DIV',_.M(f=_.E('FORM',_.E('DIV',m=_.S(_.E('DIV',0,"menu0"),_.w,200),"menu1")),"onkeydown","CbOS.set.CancelEnter(event)"),"menu3 menu3PS"),"padding",5);
					f.setAttribute("autocomplete","off")
					f.setAttribute("setAccess",c=_.K());
					f.setAttribute("setEnter",c);
					f.setAttribute("EditMode","false");
					t=[];

					for(i=0;i<r.captions.length;i++){
						q=_.K();
						t[t.length]='<div class=tblCCheckbox2><a id='+q+' href=# tabindex=0 class=cls'+(r.type=='Check'?'CheckBox01><div></div><input type=hidden value=false':('RadioBox01><div></div><input type=radio value="'+r.values[i]+'"'))+' name="'+r.names.GV(i)+'"></a><label for='+q+'>'+r.captions.GV(i)+'</label></div>';
					};
					var tmp=get.node.Parent(p,"DIV","toolBarDmc")
					if (tmp)
						tmp = tmp.parentNode;
					else
					{
						if(get.Ajax(p))
							p.parentNode.setAttribute("ajax","true")
						tmp = p.parentNode.parentNode
					}
					tmp=get.node.Child(tmp, "TABLE", "dmc");
					tmp=get.node.Child(tmp ? tmp.parentNode : p.parentNode.parentNode, "TABLE", "dmc");
					o.innerHTML=_.s+"0>&nbsp;</a>"+t.join("")+"<DIV class=btnBoxCB><A class=btn0 id="+c+(p.getAttribute("validation")?" validation=true":"")+" hidefocus=true onclick=CbOS.dmc.PSSave(this,'"+(tmp.getAttribute("name")||tmp.name)+"'"+(r.fileExport?",'Export'":"")+") href=#><UL><LI style='WIDTH: 65px'><DIV>"+r.buttons[0]+"</DIV></LI></UL></A><A class=btn1 hidefocus=true onclick=CbOS.dmc.PSClose(this) href=#><UL><LI style='WIDTH: 65px'><DIV>"+r.buttons[1]+"</DIV></LI></UL></A></DIV>"+_.s+"1>&nbsp;</a>";
					q=menu[i]=menu[i]||{};
					q[_.K()]=p.M=m.M={m:m,f:f,n:c,p:p}
				}
				M=menu.box[_.K()]=p.M
				l=get.eLeft(e);
				t=get.eTop(e);
				if(M.m.className!=(i="menu0"+((W=get.sHeight()>=(_.H(M.m)+t+(q=_.H(M.p))+2))?"":0))) M.m.className=i;
				run.Draw(SM.set.XY(run.Draw(M.m),Math.max(0,l+_.W(M.p)-_.W(M.m)),Math.max(0,W?t+q+2:(t-_.H(M.m)-2))),0);
				o=M.m.getElementsByTagName("A");
				_.Q(wd._MsgBox,o[o.length-2],5);
				for(i=0;i<p.M.f.elements.length;i++){
					o=p.M.f.elements[i];
					if(r.type=="Check"){
						if(F.elements[o.name].value!=o.value) set.Value(o.parentNode,o.value=="false", null, true);
						_.S(o.parentNode,_.r);
					}
					else
						if(F.elements[o.name].value==o.value)
							set.Value(o.parentNode)
				}
				btn.State(p.M.f,p.M.n,r.btnEnabled);
			};
			p.L--
		}
	},
	PSClose:function(o){
		with(CbOS){
			_.Q(wd._MsgBox,_.T(o,"DIV",['menu0','menu00']).M.p,5)
			menu.Clear();
		}
	},
	PSSave:function(o,aDmc, e,f,i,j,p,m,a,u){
		with(CbOS){
			menu.Clear();
			f=_.T(o,"FORM")
			var validation = o.getAttribute("validation") == "true";
			if((a=get.Ajax(p=f.parentNode.parentNode.M.p)))
				u=[]
			m=_.T(p,"FORM");
			o=m.elements;
			f=f.elements;
			if(e=="Export"){
				_.Q(wd._MsgBox,p,5)
				j=[["__EVENTTARGET",p.getAttribute("name") || p.name],["__EVENTARGUMENT",""],["CbOSData","ID="+get.Win(p).name]]
				if(validation)
				{
					var isError = false;
					for(i=0;i<o.length;i++)
						if(!o[i].disabled && is.NotASPNetETA(o[i].name))
						{
							if (run.Validate(o[i]) && !isError)
								Fcs(o[i], isError = true);
							else if(!isError)
								j[j.length]=[o[i].name,o[i].value];
						}
					if (isError)
						return;
				}
				else
					for(i=0;i<o.length;i++)
						if(!o[i].disabled && is.NotASPNetETA(o[i].name))
							j[j.length]=[o[i].name,o[i].value];
				for(i=0;i<f.length;i++)
					with(f[i])if(type=="radio"&&checked){
						o[name].value=value
						j[j.length]=[name,value];
					}
				create.Attach(ajax.Url(o.id,p), p, j);
				return;
			}
			for(i=0;i<f.length;i++)
				with(f[i])if(type=="hidden"||(type=="radio"&&checked)){
					o[name].value=value
					if(a)
						u[u.length]=escape(name)+"="+escape(value)
				}
			if(a)
			{
				u[u.length]=escape(a.o.id + ":" + "RenderRequire") + "=false";
				ajax.Update(a.o,{EVENTTARGET:p.name,CONTAINERID:a.o.id},null,u,{onload:"top.CbOS.ajax.Loading.Hide(w)"});
			}
			else{
				m.name=p.name;
				SM.Submit(m);
			}
		}
	},
	MOver:function(e,t,o){
		with(CbOS)if((o=dmc.Access(e,t))&&is.Tag(o,"TH")&&is.Cls(o.parentNode,["dmc1","dmc0"])&&!is.Cls(o,["dmcRCDrag","dmcRC"])){
			if(!o.CbOSonmouseout) _.M(o,"onmouseout","top.CbOS._.S(this,top.CbOS._.k)");
			_.S(o,_.k,_.G(get.Doc(o).body,_.k[1]))
		}
	},
	MDown:function(e,t,o,m,i,c,n,k,B){
		with(CbOS)if((o=dmc.Access(e,t))&&is.Tag(o,"TH")&&!is.Cls(o,["dmcRCDrag","dmcRC"])&&is.Cls(o.parentNode,["dmc1","dmc0"])&&_.S(o,_.k)&&is.Cls(_.S(_.S(o,[_.k[0],_.k[3]],o.CbOSStyle.borderRightColor),[_.k[1],_.k[2]],o.CbOSStyle.borderTopColor),"dmcRCDrag")&&(B=get.Doc(t))&&!B.getElementById('dmcDrag')){
			m=k="";
			c=o.parentNode.cells;
			for(i=0;i<c.length;i++){
				n=c[i];
				m+="<"+n.nodeName+(n.className?" class='"+n.className+"'":"")+" style='text-align:"+_.G(n,"text-align")+"'>"+n.innerHTML+"</"+n.nodeName+">"
				k+="<td style='padding:0px;'><div style='width:"+_.W(n)+"px'></div></td>"
			};
			_.S(_.S(_.E("DIV",B=B.body,null,'dmcDrag'),_.w,_.W(t)),_.h,_.H(o)+2).innerHTML="<TABLE class=dmc cellspacing=1 cellpadding=0><TR class="+o.parentNode.className+">"+m+"</TR><TR>"+k+"</TR></TABLE>"
			_.M(_.M(B,"onmousemove", "top.CbOS.dmc.DDMMove(event,this)","DragDrop"),"top.CbOS.dmc.DDMUp(event,this)","DragDrop")
		}
	},
	DDMMove:function(e,t,i,B,L,T){
		with(CbOS){
			B=get.Doc(t);
			if((i=B.getElementById('dmcDrag'))){
				L=B.documentElement.scrollLeft+B.body.scrollLeft;
				T=B.documentElement.scrollTop+B.body.scrollTop;
				SM.set.XY(i,Math.min(e.clientX+L,B.body.scrollWidth-i.offsetWidth),Math.min(e.clientY+T+10,B.body.scrollHeight-i.offsetHeight))
				B.selection.empty()
			}
		}
	},
	DDMUp:function(e,t){
	},
	MUp:function(e,t,o){
		with(CbOS) if((o=dmc.Access(e,t))){
			if((is.Tag(o,"TH")||is.Tag(o=o.parentNode,"TH"))&&is.Cls(o.parentNode,["dmc1","dmc0"])) _.S(o,_.k);
		}
	},
	aSort:[['None','none','images/dmc/sort/none'],['Ascending','asc','images/dmc/sort/asc'],['Descending','desc','images/dmc/sort/desc']],
	Question:function(o,i,c,t,k){
		with(CbOS){
			t=_.C(_.T(o,"TABLE"),"TR","dmcSort").cells;
			for(k=0;k<t.length;k++)
				if(t[k].getAttribute("cname")==i){
					o=_.T(o,"TR").cells[k];
					if(c) return o;
					var obj = get.node.Child(o,"INPUT");
					if(obj)
						return obj.value
					if(is.Tag(o.firstChild,"A"))o=o.firstChild;
					return o.innerHTML
				}
			return ""
		}
	},
	Access:function(e,t,o){
		with(CbOS) if((o=_.O(e))&&t!=o&&t==_.T(o,"TABLE")){
			if(!t.CbOSonclick) dmc.Events(t);
			while(is.Tag(o,"DIV")) o=o.parentNode;
			return o
		}
	},
	AjaxExpand: function(aTable, aUpdate, aBtn)
	{
		var div, rowIds = [];
		with (CbOS.get.node)
			for (var i = 0; i < aUpdate.length; ++i)
			{
				aUpdate[i] = aUpdate[i].parentNode;
				if (!i)
					rowIds.push(aUpdate[i].getAttribute("RowID"));
				aUpdate[i] = Child(aTable.rows[aUpdate[i].rowIndex + 1], "TD", "dmcDMC").lastChild;
				aUpdate[i].innerHTML = "&nbsp;Loading...";
				if (!i)
					div = aUpdate[i];
				aUpdate[i] = aUpdate[i].id;
			};
		CbOS.ajax.Update(div,
			{
				CONTAINERID: aUpdate.join(","),
				EVENTTARGET: aTable.getAttribute("name") + (aBtn ? ":btnExpandAll" : ":ROWCOMMAND:Expand"),
				EVENTARGUMENT: aBtn ? "" : rowIds[0]
			}
		)
	},
	ExpandCollapse:function(aTable, aCommand, aTh, aObj)
	{
		with(CbOS)
		{
			var  clsList = ["dmc0", "dmc1"],
				expand = is.In(aCommand, ["Expand", "AjaxExpand"]),
				command = expand ? ["dmcRCExpand", "dmcRCAjaxExpand"] : ["dmcRCCollapse", "dmcRCAjaxCollapse"],
				isBtn = aTh.isString;
			if (isBtn)
			{
				if ((aTable = get.Obj(aTable, aObj)))
					for(var i = 0, cell = _.C(aTable, "TR", "dmcSort").cells; i < cell.length; ++i)
						if(cell[i].getAttribute("cname") == aTh)
						{
							aTh = [];
							for (var k = 1; k < aTable.rows.length; ++k)
								if (is.Cls(cell = aTable.rows[k], clsList) && is.Tag(cell = cell.cells[i], "TH") && is.Cls(cell, command))
									aTh.push(cell);
							break
						};
				if (aTh.isString)
					return
			}
			else
				aTh = [aTh];
			var update = [],
			cellDisplayStyle = expand ? IE("block", "table-cell") : "none",
			rowDisplayStyle = expand ? IE("block", "table-row") : "none";
			for (var i = 0; i < aTh.length; ++i)
			{
				if (is.Cls(aTh[i], "dmcRCAjaxExpand"))
					update.push(aTh[i])
				aTh[i].className = expand ? "dmcRCCollapse" : "dmcRCExpand";
				var tr = aTh[i].parentNode;
				var obj = aTable.rows[tr.rowIndex + 1];
				obj.cells[0].style.display = obj.cells[1].style.display = cellDisplayStyle;
				obj.style.display = rowDisplayStyle;
				if(aTh.length - 1 == i && !is.Cls(aTable,"dmcFixed")) dmc.Scroll(aTh[i]);
				obj = obj.getElementsByTagName("TABLE");
				for (var j = 0; j < obj.length; ++j)
					if (is.Cls(obj[j], "dmc"))
						dmc.iFilter(obj[j]);
				var e = _.F(aTable.id.replace(/(_tblMain)?$/, '') + "_childNodesState", aTable);
				if (e)
				{
					obj = tr.getAttribute("RowID");
					obj = [obj + ":true", obj + ":false"];
					var s = [obj[expand ? 0 : 1]];
					if (e.value)
						for(var j = 0, g = e.value.toArray(); j < g.length; ++j)
							if(!is.In(g[j], obj))
								s.push(g[j]);
					set.Value(e, s.join(","));
				}
			};
			if (update.length)
				dmc.AjaxExpand(aTable, update, isBtn);
			if(aTh.length)
			{
				var obj = get.node.Child(aTable, "TR", "dmcSort").cells[aTh[0].cellIndex];
				if (obj.getAttribute("btnCollapse"))
				{
					var collapse = expand = true, i = aTh[0].cellIndex;
					for (var k = 1; (collapse || expand) && k < aTable.rows.length; ++k)
						if (is.Cls(cell = aTable.rows[k], clsList) && is.Tag(cell = cell.cells[i], "TH"))
							if (is.Cls(cell, "dmcRCCollapse"))
								collapse = false;
							else if (is.Cls(cell, ["dmcRCExpand","dmcRCAjaxExpand"]))
								expand = false;
					btn.State(aTh[0], obj.getAttribute("btnCollapse"), !collapse);
					btn.State(aTh[0], obj.getAttribute("btnExpand"), !expand)
				}
			}
		}
	},
	_MClick1:function(a,c){
		if(a.drn){
			if(CbOS.is.In(c,a.drv))
				CbOS.SM.Submit(a.o,null,a.a.push([a.drn,c])&&a.a)
		}else if(c=='Yes') CbOS.SM.Submit(a.o,null,a.a)},
	_MClick2:function(a,c){if(c=='Yes') CbOS.create.Window(null,a)},
	_MClick3:function(a,c){
		if(a.drn){
			if(CbOS.is.In(c,a.drv))
			{
				var m = [[a.drn,c]];
				if(a.pageId)
					m = m.concat(a.pageID);
				CbOS.ajax.Update(a.t,{EVENTTARGET:a.e[0][1],EVENTARGUMENT:a.e[1][1],CONTAINERID:a.k},null,m)
			}
		}else if(c=='Yes')
			CbOS.ajax.Update(a.t,{EVENTTARGET:a.e[0][1],EVENTARGUMENT:a.e[1][1],CONTAINERID:a.k}, null, a.pageID)
	},
	_MClickSelectOrder: function(aAttrib, aCommand)
	{

		if (CbOS.is.In(aCommand, aAttrib.btn))
			CbOS.dmc.MClick(aAttrib.obj, aAttrib.table, aCommand)
	},
	MClick:function(aEvent,t,aCommand){
		var o, err;
		with(CbOS) if((o=dmc.Access(aEvent,t))){
			var i,g,j,s,p,k,m,h,e;
			if(is.Tag(o,"TH")&&is.Cls(o.parentNode,["dmc1","dmc0"])&&(e=_.C(t,"TR","dmcSort"))){
				if((s=o.className.substring(5)))
				{
					var choice = o.getAttribute("ProcedureChoice");
					if(choice)
					{
						try
						{
							choice = eval("get.Win(o)."+choice);
						}
						catch (err)
						{
							return;
						};
						var btns = choice.btn;
						if (aCommand)
						{
							if (choice.value)
							{
								for (i = 0; i < btns.length; ++i)
									if (aCommand == btns[i])
									{
										aCommand = [[choice.name, choice.value[i]]];
										break;
									};
							}
							else
								aCommand = [[choice.name, aCommand]];
						}
						else
						{
							if (!is.In("Cancel", btns))
								btns = btns.concat(["Cancel"])
							return MsgBox.Show(t, choice.question, null, btns, 'Question', choice.selected, dmc._MClickSelectOrder, {obj: o, table: t, btn: choice.btn});
						};
					};
					var thCellGPA = o.getAttribute("CellGPA")
					if (thCellGPA)
					{
						if (!is.Def(thCellGPA = get.Gpa(o, thCellGPA)))
							return;
						if (aCommand)
							thCellGPA = thCellGPA.concat(aCommand);
					}
					else
						thCellGPA = aCommand;
					h=e.getElementsByTagName("TD");
					if(!h.length) h=_.C(t=_.C(_.T(t,"DIV","dmcBox"),"TABLE","dmc"),"TR","dmcSort").getElementsByTagName("TD");
					var td=h[o.cellIndex];
					if(td){
						p=o.parentNode.getAttribute("RowID");
						var pageID = td.getAttribute("PageID") || t.getAttribute("PageID");
						if (pageID)
							pageID = [["PageID", pageID]];
						if((i=td.getAttribute("question"+s)||td.getAttribute("question")))
							i=eval(i)
						if((g=td.getAttribute("CellGPA"))){
							if (!is.Def(e = get.Gpa(td, g)))
								return;
							e=set.Param({Attributes:[['ID',p]]},set.Param(e));
							if (pageID)
								e=set.Param({Attributes:pageID},e);
							if(thCellGPA)
								e=set.Param({Attributes:thCellGPA},e);
							if(!e.Opener) e.Opener=get.Win(t).name;
							if(MsgBox.Show(t,i,null,['Yes','No'],'Question',1,dmc._MClick2,e)){
								var tmpl=td.getAttribute("Template");
								if(tmpl=="Download")
									create.Attach(e.URL, t, e.Attributes);
								else
									create.Window(tmpl&&wd.Template[tmpl],e)
							}
						}else if((g=td.getAttribute("jsFunction")))
							eval("get.Win(e)."+g+"s,p,o,thCellGPA)");
						else if(is.In(s,["Expand","Collapse","AjaxExpand","AjaxCollapse"]))
							dmc.ExpandCollapse(t, s, o);
						else if(s=="Drag"){

						}else if((s=="Up"||s=="Down")&&is.Cls(o.parentNode.cells[0],"dmcRCDrag")){
							e=_.T(o,"TR");
							if((s=="Up"&&is.Cls(t.rows[e.rowIndex-1],["dmc0","dmc1"]))||(s=="Down"&&t.rows.length>e.rowIndex+1))
								dmc.Move(t,e.rowIndex,e.rowIndex+(s=="Up"?-1:1),s=="Up");
						}else{
							e=[['__EVENTTARGET',t.getAttribute("name")+":ROWCOMMAND:"+s],['__EVENTARGUMENT',p||'']];
							if(thCellGPA)
								e=e.concat(thCellGPA);
							h=td.getAttribute("dialogresult");
							var ha = h ? h.toArray() : ['Yes', 'No'];
							if(h) h=(h+",Cancel").toArray();
							var sel=(td.getAttribute("questionBtnDefault")||(h ? ha.length : 1))*1


							if((k=t.getAttribute("containerID"))){
								if(thCellGPA)
									pageID = pageID ? pageID.concat(thCellGPA) : thCellGPA;
								if((j=td.getAttribute("relatedContainerIDs")))
									k+=","+j;
								if(i&&h)
									MsgBox.Show(t,i,null,h,'Question',sel,dmc._MClick3,{t:t,k:k,e:e,drn:t.getAttribute("name")+":ROWCOMMAND:DIALOGRESULT",drv:ha,pageId:pageID});
								else if(MsgBox.Show(t,i,null,ha,'Question',sel,dmc._MClick3,{t:t,k:k,e:e,pageId:pageID}))
									ajax.Update(t,{EVENTTARGET:e[0][1],EVENTARGUMENT:e[1][1],CONTAINERID:k}, null, pageID)
							}
							else
							{
								if (pageID)
									e = e.concat(pageID);
								if(i&&h)
									MsgBox.Show(t,i,null,h,'Question',sel,dmc._MClick1,{o:o,a:e,drn:t.getAttribute("name")+":ROWCOMMAND:DIALOGRESULT", drv:ha});
								else if(MsgBox.Show(t,i,null,ha,'Question',sel,dmc._MClick1,{o:o,a:e}))
										SM.Submit(o,null,e);
							}
						}
					}
				}
			}else if(is.Cls(o.parentNode,"dmcSort") && !dmc.GridResize.AllowResize(aEvent, o) && is.In((i=o.className.split(" ")[0]),[0,1,2].Prefix("dmcSort")))
			{
				h=_.O(aEvent);
				menu.Show(get.eLeft(aEvent),get.eTop(aEvent)-(o==h?0:((_.H(o)-_.H(h))/2)),menu.cCombo(dmc.aSort,o),o.sortValue=dmc.aSort[i.charAt(i.length-1)*1][1])
			}
		}
	},
	Move:function(t,e,i,j,l,k,m,o){
		with(CbOS){
			run.Execute(t);
			l=t.rows[t.rows.length-1].cells[0].innerHTML*1;
			for(k=0;k<t.rows[i].cells.length;k++)
				if(is.Cls(t.rows[i].cells[k],["dmcRCUp","dmcRCDown"])){
					o=t.rows[i].cells[k]
					o.insertAdjacentElement("beforeBegin",t.rows[e].cells[k])
					o.insertAdjacentElement("beforeBegin",t.rows[e].cells[k])
					t.rows[e].cells[k].insertAdjacentElement("beforeBegin",t.rows[i].cells[o.cellIndex+1])
					t.rows[e].cells[k].insertAdjacentElement("beforeBegin",o)
					break
				}
			t.rows[i].insertAdjacentElement(j?"beforeBegin":"afterEnd",t.rows[e]);
			j="";
			for(e=t.rows.length-1;is.Cls(t.rows[e],["dmc0","dmc1"]);e--){
				j=t.rows[e].getAttribute("RowID")+(j?",":"")+j;
				t.rows[e].cells[0].innerHTML=l;
				t.rows[e].className="dmc"+--l%2
			};
			set.EditMode((e=_.T(t,"FORM")).elements[i=t.getAttribute("name")+":SortedRows"]||_.E("INPUT",t.parentNode,null,i,"hidden")).value=j
		}
	},
	Events:function(o){
		with(CbOS) if(!o.CbOSonclick){
			set.DBLClick(o);
			_.M(_.M(_.M(o,[_.y,"onmouseover"]),"onmousedown","top.CbOS.dmc.MDown(event,this)"),"onmouseup","top.CbOS.dmc.MUp(event,this)")
		}
	},
	iFilter:function(aTable)
	{
		with(CbOS)
			if(aTable && get.Width(aTable))
			{
				var filter = get.node.Child(aTable, "TR", "dmcFilter");
				if (filter && get.node.Parent(filter, "TABLE") == aTable)
				{
					for (var th = filter.getElementsByTagName("TH"),
							i = 0; i < th.length; ++i)
					{
						var input = get.node.Child(th[i], "INPUT", null, "text");
						if (!input)
							with(create.Element("IMG", rem(th[i], 1)).style)
							{
								width = height = 1;
								borderWidth = 0;
								visibility = "hidden"
							}
						else if (!th[i].W)
							th[i].W = get.Style(input, "width") == "100%" ? 27 : get.Width(input);
					};
					dmc.eFilter(filter);
				}else
					dmc.bFilter(aTable);
			}
	},
	bFilter:function(t,i,o,m){
		if(t)
			with(CbOS)
			{
				if((m=(i=_.T(t,"DIV","dmcBox"))&&_.C(i,"TABLE")==t&&_.W(t))&&m-2<_.W(i)-(o=_.G(i,"border-left-width",1)*2))
					_.S(i,_.w,m+o);
				if((o=_.T(t,"DIV","dmcScroll"))&&_.C(o,"TABLE")==t){
					if (is.ie)
					{
						o.style.overflowX = o.clientWidth < o.scrollWidth ? "scroll" : "visible";
						o.style.overflowY = o.clientHeight < o.scrollHeight ? "scroll" : "visible";
					} else if(is.mz5 || is.ns6)
					{
						if ((o.clientWidth < t.scrollWidth - 2) && (o.clientHeight < t.scrollHeight - 1))
						{
							o.style.overflow = "scroll"
						} else if (o.clientWidth < t.scrollWidth - 2)
						{
							o.style.overflow = "-moz-scrollbars-horizontal"
						} else if (o.clientHeight < t.scrollHeight - 1)
						{
							o.style.overflow = "-moz-scrollbars-vertical"
						} else
							o.style.overflow = "visible"
					} else
					{
						if ((o.clientWidth < o.scrollWidth) || (o.clientHeight < o.scrollHeight))
							o.style.overflow = "scroll"
						else
							o.style.overflow = "visible"
					}
				};
				if(m&&!is.Cls(t,"dmcScroll0"))
				{
					t.className+=" dmcScroll0";
					i.className+=" dmcScroll1"
				};
				dmc.ToolBarShow(m ? _.S(i,"background-color",_.G(i,"border-top-color")) : t)
			}
	},
	ToolBarShow:function(aObj, aDoc)
	{
		with(CbOS)
		if((aObj = get.Obj(aObj, aDoc)))
		{
			var obj = is.Cls(aObj, "toolBarMain") ? aObj : aObj.previousSibling;
			if (obj && is.Cls(obj, ["toolBarDmc", "toolBarMain"]))
			{
				var o = get.Width(aObj);
				if (!o) return;
				if (is.Cls(obj, "toolBarDmc")) _.S(obj, _.w, o);
				var cnt = get.node.Child(obj, "DIV", "toolBar");
				_.S(cnt, "padding-left");
				o = obj.lastChild;
				if (o != obj.firstChild)
				{
					var cnt = obj.firstChild.firstChild;
					do
						cnt.appendChild(o.firstChild);
					while (o.firstChild);
					rem(o)
				};
				var wdth = 0;
				for (var j = 0; j < cnt.childNodes.length; ++j)
				{
					var o = cnt.childNodes[j];
					if (is.Cls(o, "toolBarItem"))
					{
						var k=0;
						for (var i = 0; i < o.childNodes.length; ++i)
							if (o.childNodes[i].type != "hidden")
								k += get.Width(o.childNodes[i]);
						set.Style(o, "width", k)
					};
					if (o.type != "hidden")
						wdth += get.Width(o);
				};
				var o = cnt.parentNode;
				var isScroll = cnt.scrollHeight > get.Height(cnt);
				var align = _.G(cnt, "text-align");
				if (align != "left")
				{
					cntW = get.Width(cnt);
					var cntL = _.G(cnt, "padding-left", true);
					var cntR = _.G(cnt, "padding-right", true);
					if (wdth < cntW + cntL + cntR)
						_.S(cnt, "padding-left", align == "center" ? Math.ceil((cntW - wdth)/2) + cntL : (wdth - cntL - wdth))
				};
				_.S([obj, cnt], "visibility", "visible");

				_.M(
					_.M(
						_.M(_.S(cnt = cnt.parentNode, _.b, isScroll ? get.iURL(get.Root(cnt) + "images/dmc/toolbar/scroll0.gif") : "none"),
							["onmouseover", "onmousemove"],
							isScroll ? "top.CbOS.dmc.ToolBarOver(this,event)" : null,
							"TOOLBAR"
						),
						"onmouseout",
						isScroll ? "top.CbOS.dmc.ToolBarOver(this)" : null,
						"TOOLBAR"
					),
					["onclick", "ondblclick"],
					isScroll ? "top.CbOS.dmc.ToolBarClick(this,event)" : null,
					"TOOLBAR"
				)
				if (isScroll)
					dmc.ToolBarClick(cnt)

			}
		}
	},
	ToolBarHide:function(aObj)
	{
		with (CbOS)
			if(dmc.TOOLBAR)
			{
				var o
				o=(o=wd.win[dmc.TOOLBAR.win])&&(o=_.F(o.F))&&_.F(dmc.TOOLBAR.id, get.iDoc(o));
				if (!o || !aObj || !is.Child(aObj, o))
				{
					if(o) set.Style(o, ["visibility", "left"]);
					delete dmc.TOOLBAR
				}
			}
	},
	IsToolBarScroll:function(aObj, aEvent)
	{
		with (CbOS)
			return aEvent && get.eObj(aEvent) == aObj && get.Width(aObj) - get.Style(aObj, "border-left-width", true) * 2 - (aEvent.offsetX || aEvent.layerX || 0) <= get.Style(aObj, "padding-right", true)
	},
	ToolBarClick:function(aObj, aEvent)
	{
		with (CbOS)
		{
			dmc.ToolBarHide();
			if (!aEvent || dmc.IsToolBarScroll(aObj, aEvent))
			{
				var cnt = aObj.nextSibling || create.Element("DIV", aObj.parentNode, "toolBarMenu", get.PK());
				if (!cnt.firstChild)
				{
					var wdth = get.Style(cnt, "border-left-width", true) * 2 + get.Style(cnt, "padding-left", true)*2;
					var obj = aObj.firstChild;
					var hgt = get.Height(obj);
					do
					{
						var o = obj.lastChild;
						if (o.type != "hidden")
							set.Style(cnt, "width", (wdth += get.Width(o)))
						if (cnt.firstChild)
							cnt.insertBefore(o, cnt.firstChild)
						else
							cnt.appendChild(o);
					}
					while (obj.scrollHeight > hgt);
				};
				if (!aEvent)
					return;
				var i = get.Width(aObj) - get.Style(aObj, "border-left-width", true) - get.Style(aObj, "padding-right", true),
					bd = get.Doc(aObj).body,
					j = get.eLeft(aEvent) + get.sLeft(aObj) + i + get.Width(cnt);
				set.Style(cnt, "visibility", "visible");
				cnt.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)"
				set.Style(cnt, "left",
					Math.max(0,
						i + Math.min(0, Math.max(bd.scrollWidth, bd.offsetWidth) + get.Left(_.F(is.Win(aObj).F)) - j) -
						Math.max(0, j - Math.max(d.body.scrollWidth, d.body.offsetWidth))
					)
				);
				dmc.TOOLBAR={
					id: cnt.id,
					win: get.Win(cnt).name
				}
			}
		}
	},
	ToolBarOver:function(aObj, aEvent)
	{
		with(CbOS)
			set.Style(aObj,
				"background-image",
				get.iURL(get.Root(aObj) + "images/dmc/toolbar/scroll" + (dmc.IsToolBarScroll(aObj, aEvent) ? 1 : 0) + ".gif"))
	},
	Clone:function(t,n,i,o,r,c,s,R,N,C,m){
		with(CbOS){
			i=_.T(t,"DIV","dmcBox")
			o=get.Doc(t).createElement("DIV");
			o.className='dmcClone'
			i.insertBefore(o,i.firstChild);
			_.S(_.S(o,_.w,get.Width(t.rows[0].cells[0])+1),_.h,get.Height(t)-2)
			s='<table class=dmc cellspacing=1 cellpadding=0 onMouseOver="_.dMO(event,this)" onClick="_.dMC(event,this)" name="'+t.getAttribute("name")+'">'
			for(r=0;r<t.rows.length;r++){
				R=t.rows[r]
				s+="<tr"
				if((m=R.className))
					s+=' class="'+m+'"';
				if((m=R.getAttribute("RowID")))
					s+=' RowID='+m;
				s+=">"
				for(c=0;c<n;c++){
					C=R.cells[c]
					N=C.nodeName;
					s+="<"+N
					if((m=C.className))
						s+=' class="'+m+'"';
					if((m=C.getAttribute("cname")))
						s+=' cname='+m;
					s+=" style='height:"+get.Height(C)+"px'>"+C.innerHTML+"</"+N+">"
				}
				s+="</tr>"
			}
			o.innerHTML=s+'</table>'
		}
	},
	Width:function(t,o,i,k,v,h){with(CbOS){
			if((o=t&&_.C(h=_.T(t,"DIV","dmcHeader0").nextSibling,"TR","dmcSort"))){
				o=o.getElementsByTagName("TH")
				k=t.rows[t.rows.length-1].cells;
				v=[];
				for(i=0;i<o.length;i++){
					with((o[i].dmcI=_.E("IMG",rem(o[i],1))).style){
							width=height=1;
							borderWidth=0;
							visibility="hidden"
						};
					v[i]=Math.max(_.W(k[i]),_.W(o[i]))-2
				}
				for(i=0;i<o.length;i++){
					_.S(o[i].dmcI,_.w,v[i]);
					_.S(k[i],_.w,v[i]-_.G(k[i],"padding-left",1)-_.G(k[i],"padding-right",1));
				}
				o=h.firstChild;
				if(!(t.CbOSHeight=_.N(t.CbOSHeight,_.G(o,_.h,1)))){
					while(o.clientHeight<o.scrollHeight) _.S(o,_.h,_.H(o)+1);
				}else if(o.clientHeight<o.scrollHeight)
					_.S(_.S(h.previousSibling,"padding-right",o.offsetWidth-o.clientWidth-3).firstChild,"border-right-width",1)
				o.CbOSdmcHeader=_.C(h.previousSibling,"DIV","dmcHeader2")
				_.M(o,"onscroll","this.CbOSdmcHeader.scrollLeft=this.scrollLeft")
			};
			dmc.iFilter(t)
		}
	},
	_eFilter:function(a,l){
		if(a.i!=a.o.i)
			return true;
		if(5==(l.k=(l.k||0)+1))
		{
			CbOS.dmc.rFilter(a.o);
			return true
		}
	},
	eFilter:function(o,i){with(CbOS) if(o){_.Q(dmc._eFilter,{o:o,i:o.i=_.K()},5)}},
	rFilter:function(aTr, j,u,k,m){
		with(CbOS)
		{
			var th = aTr.getElementsByTagName("TH"), table = get.node.Parent(aTr, 'TABLE');
			var dmcHasNoBox = get.node.Child(get.node.Parent(table, "DIV", "dmcBox"), "TABLE") != table;
			if(_.W(table))
			{
				var obj = [], count = 0, widths = [], flag;
				for(var i = 0; i < th.length; ++i)
					set.Style(obj[i] = get.node.Child(th[i], "INPUT", null, "text") || get.node.Child(th[i], "IMG"), "width", "100%");
				do
				{
					flag = false;
					for(var i = 0; i < th.length; ++i)
						widths[i] = obj[i].type == "text" ? Math.max(th[i].W, get.Width(obj[i].parentNode) - get.Style(obj[i].parentNode, "padding-right", true) - get.Style(obj[i].parentNode, "border-right", true)+get.Width(th[i])-get.Width(th[i].firstChild)) : get.Width(th[i]);
					for(var i = 0; i < th.length; ++i)
						if (get.Width(obj[i]) != widths[i] || _.G(obj[i],_.w) != widths[i] + "px")
							flag = set.Style(obj[i], "width", widths[i]);
				}
				while (flag && 100 > ++count);
				if (count < 100)
				{
					var colgroup = get.node.Child(table, "COLGROUP");
					if(colgroup && get.node.Parent(colgroup, 'TABLE') == table)
					{
						var cel = colgroup.getElementsByTagName("COL");
						for(i = 0; i < th.length; ++i)
						{
							th[i].W = 27;
							cel[th[i].cellIndex].width = get.Width(th[i].firstChild)
						}
					}
				};
			}
			dmc.bFilter(table);
		}
	},
	PClick:function(e,o,p,i,k,f){
		with(CbOS){
			p=o.parentNode;
			if((k=p.getAttribute("containerID")))
				ajax.Update(p,{EVENTTARGET:p.getAttribute("arg"),EVENTARGUMENT:o.getAttribute("arg")||o.innerHTML,CONTAINERID:k})
			else
				SM.GoTo(o,[["__EVENTTARGET",p.getAttribute("arg")],["__EVENTARGUMENT",o.getAttribute("arg")||o.innerHTML]])
			return _.B(e)
		}
	},
	PMOver:function(e,o){with(CbOS) _.S(_.S(_.S(o,_.r,_.G(get.Doc(o).body,_.k[2])),"border","1px solid "+_.G(get.Doc(o).body,_.k[1])),"padding","0px 3px 0px 3px")},
	PMOut:function(e,o){with(CbOS) _.S(_.S(_.S(o,_.r),"border","0px"),"padding","1px 4px 1px 4px")},
	Paging:function(e,o,j,m){
		if(o.onmouseover) with(CbOS){
			o.onmouseover=o.onkeyup=null;
			e=_.O(e);
			m=o.getAttribute("EditMode")
			for(j=o.firstChild;j;j=j.nextSibling)
				if(is.Tag(j,"A")){
					if(is.Href(j)){
						_.M(_.M(_.M(j,["onmouseover","onfocus"],"top.CbOS.dmc.PMOver(event,this)"),["onmouseout","onblur"],"top.CbOS.dmc.PMOut(event,this)"),_.y,"top.CbOS.dmc.PClick(event,this)").hideFocus=true;
						if(m) j.setAttribute("EditMode",m);
						if(j==e) run.Event(j,j,"onmouseover");
					}else
						j.style.fontWeight="bold"
				}
		}
	}
}
CbOS.ajax={
	Loading:{
		Wins:{},
		Show:function(o,l){
			with(CbOS){
				if(!wd.winLoading)
					_.E('DIV',0,'winLoading',wd.winLoading=_.K()).innerHTML="<div>Loading...</div>";
				_.S(_.S(_.F(wd.winLoading),_.z,wd.zIndex+1000),_.d);
				ajax.Loading.Wins[get.Win(o).name]=true
			}
		},
		Hide:function(o){
			with(CbOS)
			{
				Hint.Hide()
				del(ajax.Loading.Wins, typeof o == "string" ? o : get.Win(o).name);
				for(o in ajax.Loading.Wins) return;
				_.S(_.F(wd.winLoading),_.d,"none")
			}
		}
	},
	Data:function(m,o,z,aViewState,aValidate,i,k,a,q,s,e,u,r){
		with(CbOS){
			z=z||[];
			s=[];
			var isError = false,
				noFile = true;
				validateRequire = o.getAttribute && o.getAttribute("validation") == "true";
			if(validateRequire && aValidate)
				for (i = 0; i < aValidate.length; ++i)
					aValidate[i]=get.Obj(aValidate[i], o);
			for(i=0;i<z.length;i++)
				s[s.length]=z[i].a?escape(z[i][0])+"="+escape(_.N(z[i][1],'')):z[i];
			if((o=is.Tag(o,"FORM")?o:_.T(o,"FORM"))){
				if(!aViewState && (q=o.__VIEWSTATE)){
					s[s.length]=q.name+"="+escape(q.value).replace(/\+/g,'%2b');
					if((q=o.__VIEWSTATE_KEY))
						s[s.length]=q.name+"="+escape(q.value).replace(/\+/g,'%2b');
					if((q=o.__EVENTVALIDATION))
						s[s.length]=q.name+"="+escape(q.value).replace(/\+/g,'%2b');
				}
				a=["SELECT","TEXTAREA","INPUT"];
				m = get.Unique(m.toArray(), o);
				for (i = 0; i < m.length; ++i)
					if ((k = _.F(m[i], o)))
						for (q = 0; q < a.length; ++q)
						{
							var M = is.Tag(k,a);
							z = M ? [k] : k.getElementsByTagName(a[q]);
							for (r = 0; r < z.length; ++r)
								if (_.I(u = z[r]) && is.NotASPNet(e = u.name))
								{
									if (u.type == "radio")
									{
										var l = u.form.elements[e];
										if (!l.length)
											l = [l];
										for(var j = 0; j < l.length; ++j)
										{
											var obj = l[j];
											if(obj.checked)
											{
												if(!is.In(j = escape(e) + "=" + escape(obj.value).replace(/\+/g,'%2b'), s))
												{
													if (validateRequire && run.Validate(obj, aValidate, null, isError, true, true) && !isError)
														Fcs(obj, isError = true);
													if (noFile)
														s.push(j);
												}
												break;
											}
										}
									}
									else
									{
										if (validateRequire && run.Validate(u, aValidate, null, isError, true, true) && !isError)
											Fcs(u, isError = true);
										if(noFile)
										{
											if(u.type=="checkbox")
												s.push(escape(e)+"="+escape(u.value&&u.checked?u.value:get.Value(u)).replace(/\+/g,'%2b'));
											else if(u.type != 'file')
												s.push(escape(e)+"="+escape(u.value&&get.Value(u)).replace(/\+/g,'%2b'));
											else if(u.value)
												noFile = false;
										}
									}
								}
							if(M)
								break
						}
			}
			if (!isError)
				return noFile && s.join("&");
		}
	},
	Rollback:function(o){
		with(CbOS)
		if(o){
			if (o.getAttribute("backgroundWait"))
				_.S(o, "background-image", "none").removeAttribute("backgroundWait");
			_.S(o,'overflow','visible')
			if (is.ie)
				_.S(o,_.h,(o.CbOSStyle && o.CbOSStyle.height)=="100%"?"100%":0)
			ajax.Loading.Hide(o)
		}
	},
	InnerXml:function(aWin, aXml, aData)
	{
		with(CbOS)
		{
			if(aData.XML.getResponseHeader('Content-type').indexOf("xml")<0){
				menu.Cache(aWin.name, aData.id);
				return ajax.InnerHtml(aWin, aData.XML.responseText, aData);
			};
			var id, obj, code = [], objects = [], divs = aXml.getElementsByTagName('CONTAINER');
			for (var i = 0; i < divs.length; ++i)
				if ((obj = objects[i] = _.F(id = divs[i].getAttribute("id"), aWin)))
				{
					if (obj.getAttribute("backgroundWait"))
						_.S(obj, "background-image", "none").removeAttribute("backgroundWait");
					menu.Cache(aWin.name, id);
					code.push("ajax.Rollback(_.F('" + id + "',d));");
					if (is.ie)
						_.S(obj,_.h, _.H(obj))
					_.S(obj, "overflow", "hidden")
					obj.innerHTML = "";
					ajax.GPACleaner(id, aWin);
				};
			_.Q(ajax.InnerXmlStep2,
				{
					aWin:aWin,
					divs:divs,
					objects:objects,
					code:code,
					wait:((obj = aXml.getElementsByTagName('LINKER')[0])) && ajax.CSSParser(ajax.JSParser(get.XmlText(obj), aWin), aWin)
				}
			)
		}
	},
	InnerXmlStep2:function(a,t)
	{
		if(!a.wait || (t.k=(t.k||0)+1)== 3){
			with(CbOS) with(a)
			{
				var e, objList = [];
				for (var i = 0; i < divs.length; ++i)
					if(objects[i])
						try
						{
							ajax.CSSParser(objects[i].innerHTML = ajax.JSParser(get.XmlText(divs[i]), aWin), aWin);
							objList.push(objects[i].id);
						}
						catch (e)
						{
							ajax.Rollback(objects[i]);
							alert(Messages.InternalError);
						}
				ajax.SetFocusOnLoad(aWin, objList);
				aWin.setTimeout("with(top.CbOS){"+code.join("\n")+"\nrun.Event(w,w,'onload')}", 2);
				if(!divs.length)
					ajax.Loading.Hide(aWin);
			};
			return true
		}
	},
	InnerHtml:function(aWin, aHtml, aData)
	{
		with(CbOS)
		{
			var obj = _.F(aData.id, aWin), isError = aData.XML.status == 500;
			if (obj.getAttribute("backgroundWait"))
				_.S(obj, "background-image", "none").removeAttribute("backgroundWait");
			try{
				var code = (!aHtml && isError) ? "<div class=error>" + Messages.InternalError + "</div>" : ajax.JSParser(aHtml , aWin).Trim();
				if(code)
				{
					obj.innerHTML = "";
					ajax.GPACleaner(aData.id, aWin);
					ajax.CSSParser(obj.innerHTML = code, aWin)
					if (aData.ids && isError)
						for(var i = 1; i < aData.ids.length; ++i)
							if ((obj = _.F(aData.ids[i], aWin)))
								obj.innerHTML = code
				};
				ajax.SetFocusOnLoad(aWin, aData.id);
				aWin.setTimeout("with(top.CbOS){ajax.Rollback(_.F('"+aData.id+"',d));run.Event(w,w,'onload')}",2);
				if (isError)
					ajax.Loading.Hide(aWin);
			}catch(e){
				ajax.Rollback(obj);
				ajax.Loading.Hide(aWin);
				alert(Messages.InternalError);
			}
		}
	},
	SetFocusOnLoad: function(aWin, aId)
	{
		var e = aWin.nodeName ? aWin : aWin.CbOS.EVENTS;
		if (!e.CbOSonloadFOCUSFRM)
			CbOS._.M(aWin, "onload","top.CbOS.set.FocusFrm(d,\'" + aId + "\')","FOCUSFRM");
	},
	GPACleaner:function(aId, aWin)
	{
		if (aId && aWin.gpa)
		with (CbOS)
		{
			var o, obj = get.Obj(aId, aWin);
			aWin.gpa[aId] = '';
			/*
			for(var i in aWin.gpa)
				if(!(o = get.Obj(i, aWin)) || is.Child(o, obj))
					del(aWin.gpa, i)
			*/
		}
	},
	CSSParser:function(aHtm, aWin)
	{
		aHtm = aHtm.replace(/\<STYLE/g, "<style").replace(/<\/STYLE/g, "<\/style").split("<style");
		for (var i = 0; i < aHtm.length; ++i)
		{
			var source = aHtm[i].split("<\/style>");
			if (source.length > 1)
				aHtm[i] = source[0].replace(/^((>{1})|(.*>{1}))/, "");
			else
				aHtm[i] = "";
		};
		if (aHtm.length > 1 && aWin.CbOS.TEMP.styleSheets != (aHtm = aHtm.join("")))
		{
			aWin.CbOS.TEMP.styleSheets = aHtm;
			var doc = CbOS.get.Doc(aWin), ruleLines = aHtm.split('}'), css = [];
			for (var j = 0; j < ruleLines.length-1; ++j)
			{
				var rule = ruleLines[j].split('{');
				if(rule.length == 2 && (rule[0] = rule[0].Trim()) && (rule[1] = rule[1].Trim()))
					css.push(rule[0], rule[1])
			};
			if (css.length)
			{
				doc = doc.styleSheets[doc.styleSheets.length-1];
				for (var j = 0; j < css.length-1; j+=2)
					if(CbOS.is.ie)
						doc.addRule(css[j], css[j + 1]);
					else
						doc.insertRule(css[j]+"{" +css[j + 1]+"}", doc.cssRules.length);
				return true
			}
		}
	},
	JSParser:function(aHtm, aWin)
	{
		aHtm = aHtm.replace(/\<SCRIPT/g, "<script").replace(/<\/SCRIPT/g, "<\/script").split("<script");
		for (var i = 0; i < aHtm.length; ++i)
		{
			var source = aHtm[i].split("<\/script>");
			if (source.length > 1)
			{
				var txt;
				if ((txt = source[0].replace(/^((>{1}(\n|\r)*(<!--){1})|(>{1}(\n|\r)*)|(>{1})|(.*>{1}(\n|\r)*(<!--){1})|(.*>{1}(\n|\r)*)|(.*>{1}))/, "")))
					aHtm[i] = (aWin.CbOS.set.Event(txt).Run() || "") + source[1];
				else
				{
					aHtm[i] = source[1];
					txt = source[0].toLowerCase().toArray(".js");
					if(txt.length != 1)
					{
						txt=txt[0].toArray("/");
						with (CbOS)
							if (!is.In(txt = txt[txt.length-1],["page", "common"]))
							{
								var name = txt + "_AjaxJSFile", doc = get.Doc(aWin);
								rem(_.F(name, doc));
								doc.getElementsByTagName('HEAD').item(0).appendChild(
									_.P(
										[
											"src", jsROOT+"js/"+txt+'.js',
											"id", name,
											"type", "text/javascript",
											"defer", true
										],
										doc.createElement('SCRIPT')
									)
								);
							};
					};
				};
			};
		};
		return aHtm.join("")
	},
	Url:function(aID, aObj, r)
	{
		with(CbOS)
			return get.ValueByAttr(
					r = _.F(aID, aObj),
					"ajaxPostURL"
				)
				||
				(
					(r = _.T(r.firstChild || r, "FORM"))
					&&
					r.action
				)
				||
				get.Url(aObj || aID);
	},
	_Post:function(a,c){if(c=='Yes')CbOS.ajax.Post(a.o,a.u,a.p,a.s)},
	Post:function(o,u,p,s,m,t,e,k,r){
		with(CbOS)if(MsgBox.Show(o,m,null,['Yes','No'],'Question',1,ajax._Post,{o:o,u:u,p:p,s:s})){
			ajax.Loading.Show(o=get.Win(o));
			t=o.CbOS;
			if(!t.ajax){t.ajax=create.Obj(o);if(!t.ajax.RQ)t.ajax.RQ=create.Obj(o)};
			t=t.ajax.RQ;
			if(t[p.id])
				try{t[p.id].abort()}catch(e){};
			t=t[p.id]=set.Param(create.Obj(o),p);
			k=t.XML=create.Xml(o);
			k.open("POST",get.Base(u||ajax.Url(p.id,o)),true);
			k.onreadystatechange=o.CbOS.set.Event("top.CbOS.ajax.Complete(w,'"+t.id+"')");
			k.setRequestHeader("Content-Type",p.ContentType||"application/x-www-form-urlencoded");
			if(p.SOAPAction)
				k.setRequestHeader("SOAPAction",p.SOAPAction);
			if(p.ContentType)
				k.send(s||"")
			else{
				if ((s = s || ""))
				{
					for(var i in Session)
						s += (s.length ? "&" : "") + i + "=" + escape(Session[i]);
					s = s.replace(/(^(=&)+)|((&=)+$)/g, "").replace(/(&=)+&/g, "&");
				};
				k.send(s + (s ? "&" : "") + "CbOSData=ID%3D" + escape(o.name))
			}
		}
	},
	PageManager:function(o,g,i,a,n,m,k){
		with(CbOS){
			a=o.parentNode.getElementsByTagName("A");
			n=o.className.substring(0,o.className.length-1)
			m=_.F(g.ID,o);
			for(i=0;i<a.length;i++)
				if(a[i]!=o&&a[i].className.charAt(n.length)=="2"){
					a[i].className=n+1;
					if((k=_.F(a[i].id+"_Page",o)))
						_.S(k,"display","none")
				}
			o.className=n+2;
			if(!(k=_.F(o.id+"_Page",o)))
				k=_.E("DIV",m,null,o.id+"_Page")
			k.innerHTML=""
			_.S(k,"display","block")
			m=""
			if((n=g.Attributes))
				for(i=0;i<n.length;i++)
					m+=(m&&"&")+escape(n[i][0])+"="+escape(String(n[i][1]))
			ajax.Post(k,g.URL,{
				id:k.id,
				pk:k.id,
				run:get.Win(o).CbOS.set.Event("top.CbOS.ajax.InnerXml(arguments[0],arguments[1],arguments[2])")
			},m)
		}
	},
	Complete:function(o,p,m,t){
		if((m=o.CbOS)&&(m=m.ajax)&&(m=m.RQ)&&(m=m[p])&&(t=m.XML)&&t.readyState==4)with(CbOS){
			del(o.CbOS.ajax.RQ,p);
			if(t.status==200||(w.DebugMode&&t.status==500))
				return m.run(o,t.responseXML,m);
			ajax.Loading.Hide(o)
			if(t.status==500)
				alert(Messages.InternalError)
		}
	},
	Redirect:function(o,k,u,m){CbOS.ajax.Update(o,k,u,m,{redirect:true})},
	_Update:function(a,c){
		with(CbOS)
		{
			var o = a.Obj;
			if (c == 'Yes')
				ajax.Update(o, a.Id, a.Url, a.Data, a.Pram);
			else if(is.Tag(o, "INPUT") && is.Cls(o.parentNode, ["combo", "combom", "combof", "combos", "comboc"]))
				for (o = o.parentNode.firstChild; o; o = o.nextSibling)
					if (is.Tag(o, "INPUT"))
					{
						set.ValueWithoutExecute(o, o.defaultValue);
						if (o.type == "text")
							Fcs(o)
					}
		}
	},
	_UpdateChoice: function(aData, aCommand)
	{
		var btns = aData.choice.btn;
		if (CbOS.is.In(aCommand, btns))
		{
			var data = aData.data;
			data = data ? CbOS.create.Arr(aData.obj).concat(data) : CbOS.create.Arr(aData.obj);
			if (aData.choice.value)
			{
				for (var i = 0; i < btns.length; ++i)
					if (aCommand == btns[i])
					{
						data = data.concat([[aData.choice.name, aData.choice.value[i]]]);
						break;
					};
			}
			else
				data = data.concat([[aData.choice.name, aCommand]]);
			CbOS.ajax.Update(aData.obj, aData.param, aData.url, data, aData.attrib);
		};
	},
	Update:function(aObj, aParam, aUrl, aData, r, t,a,i,j,e,c,h){
		with(CbOS){
			var editModeWarning, validateList, notRefresh, aId, choice;
			if(aParam.s)
				aId = aParam.toArray();
			else
			{
				aParam = set.Param(create.Obj(aObj), aParam)
				editModeWarning = is.Def(aParam.EditModeWarning) && !get.Win(aObj).CbOSEditModeWarning && aParam.EditModeWarning.toArray();
				t=aParam.EVENTTARGET;
				a=aParam.EVENTARGUMENT;
				h=aParam.AJAXIDS;
				validateList=is.Def(aParam.Validate)&&aParam.Validate.toArray();
				notRefresh=aParam.NotRefresh&&aParam.NotRefresh.toArray();
				aId=aParam.CONTAINERID.toArray();
				choice = aParam.PROCEDURECHOICE;
			};
			if(!aParam.EDITMODE && editModeWarning && !is.EditMode(aObj))
			{
				editModeWarning = null;
				delete aParam.EditModeWarning;
			}
			var obj = _.F(aId[0], aObj);
			if(obj){
				var frm = _.T(obj, "FORM")||_.C(obj, "FORM")
				if (frm && editModeWarning && frm._EditMode)
				{
					for (i = 0; i < editModeWarning.length; ++i)
						editModeWarning[i] = _.F(editModeWarning[i], obj);
					for (j = 0; j < editModeWarning.length; ++j)
						if(editModeWarning[j])
							for(i in frm._EditMode)
								if(is.Child(_.F(i, obj), editModeWarning[j])){
										var question = aParam.QUESTION;
										del(aParam,["QUESTION","EditModeWarning","EDITMODE"]);
										return MsgBox.Show(aObj, question || frm.getAttribute("EditModeWarning") || _.l,null,aParam.BNTS || ['Yes','No'],'Warning',1,ajax._Update,{
											Obj:aObj,
											Id:aParam,
											Url:aUrl,
											Data:aData,
											Pram:r
										})
								}
				};
				if(choice)
				{
					var btns = choice.btn;
					if (!is.In("Cancel", btns))
						btns = btns.concat(["Cancel"]);
					del(aParam, "PROCEDURECHOICE");
					return MsgBox.Show(aObj, choice.question, null, btns, 'Question', choice.selected, ajax._UpdateChoice, {obj: aObj, param: aParam, url: aUrl, data: aData, attrib: r, choice: choice});
				};
				aData = aData?create.Arr(aObj).concat(aData):create.Arr(aObj);
				if(!t){
					c=SM.ETA(aObj);
					t=c[0]&&c[0][1];
					a=c[1]&&c[1][1]
				};
				c=get.Win(aObj);
				if(r&&r.redirect)
					i=[];
				else
				{
					i = (h || []).toArray().concat(aId);
					var pk = get.PK(), listBox = [];
					for (var k = 0; k < aId.length; ++k)
					{
						if((h = _.F(aId[k], aObj)) && (h = h.getAttribute("ajaxIDs")))
							i = i.concat(h.toArray());
						for (var n, m = _.F(aId[k], aObj); is.Obj(m); m = m.parentNode)
							if ((n = m.getAttribute("ajaxEditedIDs")) && !is.In(m.id, listBox))
							{
								n = get.Unique(n.toArray(), aObj);
								listBox.push(m.id);
								m.setAttribute("ajaxEditedKey", pk);
								aData.push([m.id + '_reloadKey',pk],[m.id + '_reloadContainerIDs', n.join(",")])
								i = i.concat(n);
							}
					}
				};
				var evUpdate = get.Unique(aId, aObj);
				aData.push(["__EVENTUPDATE",String(evUpdate)]);
				if(t)
					aData.push(['__EVENTTARGET',t],['__EVENTARGUMENT',a]);
				i.push(aObj);
				if (notRefresh)
				{
					h=[];
					for (var n = 0; n < i.length; ++n)
						if(is.In(j = i[n].s ? i[n] : i[n].id, notRefresh) && !is.In(j, h))
						{
							h.push(j);
							aData.push([j+":RenderRequire", 'false'])
						}
				};
				if (_.D(aData=ajax.Data(i, aObj, aData, !t&&r&&r.redirect, validateList)))
				{
					if (aData == false)
						return SM.Submit(aObj, aUrl);
					if(frm && frm._EditMode)
					{
						var cntModifData = [];
						for(i in frm._EditMode)
						{
							var div = get.Obj(i, aObj);
							if(div)
							{
								var name = i, o
								while ((o = get.Ajax(div.parentNode)))
									name = (div = o.o).id + ":" + name;
								cntModifData.push(name);
							};
						};
						evUpdate.push(obj);
						evUpdate = get.Unique(evUpdate, aObj);
						for(var k=0; k<evUpdate.length; ++k)
						{
							evUpdate[k] = _.F(evUpdate[k], obj);
							for(i in frm._EditMode)
								if(is.Child(_.F(i, obj), evUpdate[k]))
									set._EditMode(frm,i);
						}
						if (cntModifData.length)
							aData += (aData.length ? "&" : "" ) + "ContainersWithModifiedData=" + escape(cntModifData.join(","));
					};
					if(aParam.WAIT)
					{
						var o;
						for(i = 0; i< obj.childNodes.length; ++i){
							if(_.G(o = obj.childNodes[i], "position") == "relative")
								_.S(o,["top","left"],"-99999px")
							_.S(o,"visibility","hidden")
						}
						_.S(_.S(_.S(obj, "background-repeat", "no-repeat"), "background-position", "50% 50%"), _.b, get.iURL(get.Root(obj)+"images/window/wait.gif")).setAttribute("backgroundWait","true");
					};
					set.DisableAfterSubmit(aObj);
					ajax.Post(aObj,
						aUrl,
						{
							id:aId[0],
							ids:aId,
							run:c.CbOS.set.Event((r&&r.onload)||"top.CbOS.ajax.InnerXml(arguments[0],arguments[1],arguments[2])")
						},
						aData
					);
				}
			}
		}
	},
	Setting:function(p,aId,a,o,f,m){
		with(CbOS)
		{
			if (aId.isSring)
				aId = aId.toArray();
			else if (!aId.isArray)
				aId = [aId];
			for (var i = 0; i < aId.length; ++i)
				if((o=_.F(aId[i], p))&&(f=_.T(o.firstChild||o,"FORM")||get.node.Child(get.Doc(o),"FORM")))
				{
					if(_.D(m=a.NavBarEditMode))
					{
						var obj = o.firstChild.getElementsByTagName("A");
						m = String(m);
						for (var j = 0; j < obj.length; ++j)
							obj[j].setAttribute("EditMode",m);
					};
					if(_.D(m=a.EditMode))
						o.setAttribute("EditMode",String(m));
					if(a.CbOSEditMode)
						set.EditedMode(f, aId[i]);
					if((m=a.ajaxPostURL))
						o.setAttribute("ajaxPostURL",m);
					if((m=a.formPostURL))
						f.action=m;
					if((m=a.formEditMode))
						f.setAttribute("EditMode",m);
					if(a.formCbOSEditMode)
						set.EditedMode(f);
					if((m=a.ajaxIDs))
						o.setAttribute("ajaxIDs",String(m))
				}
		}
	}
}
CbOS.mask={
	Edit:function(o){
		with(CbOS)
		{
			if(is.Tag(o,"LABEL")&&is.Cls(o,"clsRadio"))
				o=_.F(o.htmlFor,o);
			if(is.Tag(o,["INPUT","TEXTAREA"]) && !_.D(o.CbOSValue))
			{
				o.CbOSPreviousValue=o.CbOSValue=get.Value(o);
				_.M(o,IE("onpropertychange",["onkeyup","onmouseup","ondragdrop","oninput"]),"top.CbOS.mask.Change(this,event)","CHANGE");
			}
		}
	},
	_Change:function(o){if(3==o.i++){CbOS.mask.Change(o.e); return true}},
	Change:function(o,e)
	{
		with(CbOS)
		{
			if (o.CbOSValue != get.Value(o))
				mask.BGColor(o);
			if (!is.ie && e && (e = e.relatedTarget) && e != o)
			{
				mask.Edit(e);
				_.Q(mask._Change,{e:e, i:0},5)
			}
		}
	},
	BGColor:function(o){
		with(CbOS)
			if(o.CbOSValue!=(o.CbOSValue=get.Value(o))){
				if(o.type=="textarea"&&(m=o.getAttribute("maxlength"))&&o.value.length>m*1)
					o.value=o.value.substring(0,m)
				else
					run.Execute(o.type=="hidden"?o:set.EditMode(o))
			}
	}
}
CbOS.cookie={
	get:function(n,a,i,k){a=d.cookie.split("; "); for(i=0;i<a.length;i++){k=a[i].split("="); if(n==k[0]) return unescape(k[1])}},
	set:function(n,v,p,m,s){d.cookie=n+"="+escape(v)+"; expires="+escape(new Date()+14)+(p?"; path="+p:"")+(m?"; domain="+m:"")+(s?"; secure":"")},
	del:function(n,p,m){if(CbOS.cookie.get(n)) d.cookie=n+"="+(p?"; path="+p:"")+(m?"; domain="+m:"")+"; expires="+escape(new Date()-10)}
};
CbOS.tbl={
	Caption:function(D,O){
		with(CbOS){
			O = O.toArray();
			var o, i, j, n, k = 0, m = [];
			for(j=0;j<O.length;j++)
				if ((o = _.F(O[j],D)) && (o=get.node.First(o,"DIV")))
					while(o)
					{
						if(is.Cls(i=get.node.First(o,"DIV"),["","R","D","Btn","RBtn","DBtn"].Prefix("tblCCapt")) && (n = _.W(i)))
						{
							m.push(i);
							k=Math.max(k,n);
						};
						o=get.node.Next(o,"DIV");
					};
			for(i=0;i<m.length;i++) _.S(m[i],_.w,k)
		}
	}
}
CbOS.msb={
	State:function(o,n,b,O,i,m){
		with(CbOS){
			O=get.Win(o).CbOS.TEMP[n];
			o=_.F(n,o);
			if(!O.A.disabled==!b){
				O.A.disabled=!b;
				m=o.getElementsByTagName('INPUT')
				for(i=0;i<m.length;i++)m[i].disabled=!b;
				m=[];
				for(i in O.M) m[m.length]=O.M[i];
				o.lastChild.className="msb"+b*1;
				o.lastChild.lastChild.innerHTML=msb.Item(msb.Sort(O,m),O,b*1)
				msb.Ready(O,o);
			}
		}
	},
	_QSearch:function(a,t,p,i,v){
		if(a.i!=a.o.i||!a.o.value) return true;
		if((t.k=(t.k||0)+1)==20) with(CbOS){
			v=a.o.value.toLowerCase();
			a.o.value="";
			p=get.Win(a.o).CbOS.TEMP[a.o.parentNode.id];
			while(v){
				for(i=p.Sel;i;i=i.nextSibling)
					if(p.M[i.id].GV(0).toLowerCase().indexOf(v)==0){
						p.Sel=msb.Select(msb.Restore(i,p),p,1);
						msb.Value(a.o.parentNode);
						return true
					};
				for(i=p.Sel.parentNode.firstChild;i!=p.Sel;i=i.nextSibling)
					if(p.M[i.id].GV(0).toLowerCase().indexOf(v)==0){
						p.Sel=msb.Select(msb.Restore(i,p),p,1);
						msb.Value(a.o.parentNode);
						return true
					};
				v=v.substring(0,v.length-1);
			};
			return true
		}
	},
	QSearch:function(o,e,p){
		with(CbOS) if((p=get.Win(o).CbOS.TEMP[o.parentNode.id])&&!p.A.readonly&&(p.Sel||(p.Sel=o.nextSibling.lastChild.firstChild))){
			if(e.keyCode.Between(33,40)) o.value="";
			if(is.ie){
				o.blur();
				o.readOnly=true;
				Fcs(o)
			};
			_.Q(msb._QSearch,{o:o,i:o.i=_.K()},5)
		}
	},
	Create:function(D,N,W,H,a,s,A,S,t,z,E,m,o){
		with(CbOS){
			A=_.P(A);
			t=A.id=_.K(A.id);
			o=get.Win(D);
			A=o.CbOS.TEMP[t]={A:A,S:s};
			S=msb.Item(a,A,E=A.A.disabled?0:1);
			z=E?'':" disabled=disabled";
			m=_.N(A.A.EditMode,true)?"":" EditMode=false";
			m='<div'+m+' onkeyup="top.CbOS.SM.on.DeSelect(this,1)" onmouseup="with(top.CbOS){Fcs(this.firstChild);SM.on.DeSelect(this,1)}"'+_.A("id",t)+' class=msb style="width:'+(W-2)+'px" onkeydown="top.CbOS.msb.KDown(event,this)"><input onfocus="top.CbOS.msb.onFocus(this)" '+m+' onkeyup="top.CbOS.msb.QSearch(this,event)" '+IE(' onkeydown="this.blur(); this.readOnly=event.altKey; top.CbOS.Fcs(this)" readonly')+z+' onblur="top.CbOS.msb.onBlur(this)" type=text hidefocus=true class=empty><div class=msb'+E+' style="width:'+(W-4)+'px; height:'+(H-4)+'px">'+(A.P?'<INPUT'+m+' type=hidden'+_.A("execute",A.A.execute,1)+'>':'')+'<INPUT'+m+' type=hidden'+(A.P?'':_.A("execute",A.A.execute,1))+z+_.A("name",N)+_.A("value",A.P||A.S)+'><div class=msb2>'+S+'</div></div></div>'
			del(A,["P","S"]);
			return m
		}
	},
	Item:function(b,A,E,a,k,s,S,i){
		with(CbOS){
			S="";
			A.M={};
			A.V={};
			if(A.A.SendAll) A.P=[];
			for(i=0;b&&i<b.length;i++){
				A.M[t=_.K()]=a=b[i];
				if(A.A.SendAll)
					A.P[A.P.length]=a.GV(1);
				if((k=is.In(a.GV(1),A.S))){
					if(!_.D(A.Scroll))A.Scroll=i;
					A.V[t]=a
				};
				s=a.a&&a[2];
				S+="<div id="+t+(k?' style="padding:'+(s?0:'5px 4px 4px 25')+'px; border-width:1px; background:'+get.iURL(get.Root(d)+"images/msb/"+(s?"sel":"tick")+E+".gif")+' 0px 0px '+_.G(d.body,_.k[3])+' no-repeat;" ':"")+" class=msb"+(s?'Adv><div style="background-image:'+get.iURL(get.Root(d)+s+E+'.gif')+'">':"Def>")+ (a.GV(0).length?set.HTMLEncode(a.GV(0)):_.n)+(s?"</div></div>":"</div>")
			};
			return S
		}
	},
	Sort:function(o,a,i,k,b){
		if(o.A.sorted) do{
			k=false;
			for(i=1;i<a.length;i++)
				if(String(a[i].GV(0)).toLowerCase()<String(a[i-1].GV(0)).toLowerCase()){
					k=true;
					b=a[i];
					a[i]=a[i-1];
					a[i-1]=b
				}
		}while(k);
		return a
	},
	Move:function(a,b,W,m,s,A,B,I,U,i,o,D,j,k){
		with(CbOS)if((A=_.F(a,W))&&(B=_.F(b,W))){
			I=W.CbOS.TEMP[a];
			U=W.CbOS.TEMP[b];
			o=[];
			D=[];
			k=0;
			for(i=A.lastChild.lastChild.firstChild;i;i=i.nextSibling){
				j=I.M[i.id];
				if(m||I.V[i.id]){
					if(I.A.locked&&j.a&&j[2]&&is.In(j[2],I.A.locked)){
						k++;
						D[D.length]=j;
					}else
						o[o.length]=j
				}else
					D[D.length]=j;
			};
			if(o.length){
				for(i=B.lastChild.lastChild.firstChild;i;i=i.nextSibling)o.unshift(U.M[i.id]);
				I.S=A.lastChild.firstChild.value.toArray();
				A.lastChild.lastChild.innerHTML=msb.Item(msb.Sort(I,D),I,I.A.disabled?0:1);
				msb.Ready(I,A);
				U.S=B.lastChild.firstChild.value.toArray();
				B.lastChild.lastChild.innerHTML=msb.Item(msb.Sort(U,o),U,U.A.disabled?0:1);
				msb.Ready(U,B)
				btn.State(W,s,true)
				set.EditedMode(B)
			};
			if(k)
				MsgBox.Show(w,(k>1?"Some i":"I")+"tem"+(k>1?"s are":" is")+" locked and cannot be removed",null,'Ok','Warning')
		}
	},
	Ready:function(U,B){
		with(CbOS){
			del(U,["P","S","Sel"]);
			U.C=true;
			msb.Value(B);
			msb.SendAll(B);
			if(_.S(B.lastChild.lastChild,_.w).firstChild) _.Q(msb._Resize,B,5);
			run.Execute(B.lastChild.firstChild)
		}
	},
	onFocus:function(o){
		with(CbOS) del(_.S(o.parentNode,_.k,_.G(get.Doc(o).body,_.k[1])),"i")
	},
	_onBlur:function(a,t){
		if(a.i==a.o.i) CbOS._.S(a.o,CbOS._.k);
		return true
	},
	onBlur:function(o){
		with(CbOS){
			o.readOnly=is.ie;
			o=o.parentNode;
			_.Q(msb._onBlur,{o:o,i:o.i=_.K()},5)
		}
	},
	Restore:function(o,p,m,n,i){
		with(CbOS){
			if(n){
				i=_.F(n,o);
				if(!m&&o==i) return
				_.S(_.S(_.S(_.S(_.S(i,"padding",is.Cls(i,"msbDef")?"6px 5px 5px 26px":1),"border-width",0),"background-position","1px 1px"),_.r,"transparent"),_.b,"none");
				del(p.V,n)
				p.C=true
			}else for(n in p.V)
				msb.Restore(o,p,m,n);
			return o
		}
	},
	Select:function(o,p,i){
		with(CbOS){
			if(!_.D(p.V[o.id])){
				p.C=true
				p.V[o.id]=p.M[o.id];
				_.S(_.S(_.S(_.S(_.S(o,"padding",is.Cls(o,"msbDef")?"5px 4px 4px 25px":0),"border-width",1),"background-position","0px 0px"),_.r,_.G(get.Doc(o).body,_.k[3])),_.b,get.iURL(get.Root(d)+"images/msb/"+(is.Cls(o,"msbDef")?"tick":"sel")+"1.gif"));
			};
			if(i){
				o.tabIndex=0;
				Fcs(o)
			};
			return o
		}
	},
	_Resize:function(o,t){if((t.k=(t.k||0)+1)==3){CbOS.msb.Resize(o,o.id);return true}},
	Resize:function(D,n,i,o,A){
		with(CbOS) if((i=_.W(o=_.F(n,D).lastChild.lastChild))){
			A=get.Win(_.S(o,_.w,i)).CbOS.TEMP[n];
			if(_.D(A.Scroll)){
				A.Sel=o.childNodes[A.Scroll];
				o.parentNode.scrollTop=A.Sel.offsetTop+1;
				del(A,"Scroll")
			};
		}
	},
	KDown:function(e,o,i,p,k){
		with(CbOS) if(is.In(i=e.keyCode,[33,34,35,36,38,40])&&_.I(o.firstChild)){
			p=get.Win(o).CbOS.TEMP[o.id];
			if(!p.A.readonly&&(p.Sel||(p.Sel=o.lastChild.lastChild.firstChild))){
				k=_.F(p.Sel,o)
				if(!_.D(p.V[k.id]))
					msb.Select(k,p,1);
				else{
					if(p.A.multiple&&e.shiftKey) k=p.U||k;
					k=i==35?k.parentNode.lastChild:(i==36?k.parentNode.firstChild:get.node.Sibling(k,i==38?-1:(i==40?1:(i==34?6:-6))));
					if(p.A.multiple&&e.shiftKey){
						msb.MSelect(p,k);
						p.U=k
					}else{
						p.Sel=msb.Select(msb.Restore(k,p,0),p,1);
						del(p,"U")
					}
				}
				msb.Value(o)
			}
			_.B(e)
		}
	},
	Value:function(t,p,v){
		with(CbOS){
			p=get.Win(t).CbOS.TEMP[t.id];
			if(p.C){
				set.EditMode(t);
				v=[];
				for(n in p.V) v.push(p.V[n].GV(1));
				set.Value(t.lastChild.firstChild,v);
				del(p,"C")
			}
		}
	},
	Click:function(e,o,t,p){
		with(CbOS){
			if(set.Lock(t=_.T(o,"DIV","msb"))&&_.I(h=t.firstChild)){
				p=get.Win(t).CbOS.TEMP[t.id];
				if(p.A.readonly)
					Fcs(h);
				else if(p.Sel||(p.Sel=t.lastChild.lastChild.firstChild)){
					del(p,"U");
					if(p.A.multiple&&e.shiftKey)
						msb.MSelect(p,p.U=o);
					else if(p.A.multiple&&e.ctrlKey){
						if(_.D(p.V[o.id]))
							p.Sel=msb.Restore(o,p,1,o.id);
						else
							p.Sel=msb.Select(o,p,1);
					}else
						p.Sel=msb.Select(msb.Restore(o,p),p,1);
					msb.Value(t)
				}
			};
			t.L--
		}
	},
	MSelect:function(p,o,s,i,j){
		with(CbOS){
			msb.Restore(o,p,1);
			if((s=_.F(p.Sel,o))!=o){
				j=0
				for(i=o.parentNode.firstChild;i;i=i.nextSibling){
					if(i==s||i==o) j++;
					if(j) msb.Select(i,p);
					if(j==2) break;
				}
			}
			msb.Select(o,p,1);
		}
	},
	Focus:function(o,t){
		with(CbOS)
			if(_.I(t=_.T(o,"DIV","msb").firstChild)){
				Fcs(o);
				if(o.parentNode.firstChild==o && o.parentNode.parentNode.scrollTop) o.parentNode.parentNode.scrollTop=0;
				set.Focus(t);
				o.tabIndex=-1
			}
	},
	Del:function(o,D,i,j){
		with(CbOS){
			o=_.F(o,D);
			del(D=get.Win(o).CbOS.TEMP[o.id],"Sel");
			for(i in D.V){
				del(D.V,i);
				del(D.M,i);
				j=_.F(i,o);
				rem(j)
			};
			msb.Ready(D,o)
		}
	},
	SendAll:function(o,t,s){
		with(CbOS){
			t=get.Win(o).CbOS.TEMP[o.id];
			if(t.A.SendAll){
				s="";
				for(i=o.lastChild.lastChild.firstChild;i;i=i.nextSibling) s+=(s?",":"")+t.M[i.id].GV(1);
				o.lastChild.lastChild.previousSibling.value=s;
			}
		}
	}
};

(function(t,o){
	t.onload=(w.XSLTProcessor&&(o=new XSLTProcessor())&&o.importStylesheet)?function(n,p,r){
		with(CbOS.Tree)with(Trash[n])if(i++){
			p=new XSLTProcessor();
			p.importStylesheet(s);
			r=new XMLSerializer();
			(r=r.serializeToString(p.transformToDocument(x)))==''?jsTrans(n):Update(n,r)
		}
	}:((w.ActiveXObject)?function(n,k){with(CbOS.Tree)with((k=Trash[n]))
		if(k.x&&k.s&&(x.readyState.s||x.readyState==4)&&s.readyState==4)
			Update(n,x.transformNode(s))
	}:t.jsTrans)
})(CbOS.Tree={
	Trash:{},
	Create:function(o){with(CbOS) Tree.Load(_.E("DIV",o,"tree"))},
	jsTrans:function(n,k,i){
		with(CbOS)with(Tree)with((k=Trash[n]))
			if(k.x&&((_.D(x.readyState)&&(x.readyState.s||x.readyState==4))||!_.D(x.readyState))){
				if(k.o.previousSibling) k=x.firstChild;
				else k=x.documentElement;
				i=Items(k);
				if(i){
					i=Source(i,k.getAttribute("expanded"));
					Trash[n].o.parentNode.nextSibling.value=i.a;
					Update(n,i.s)
				}
			}
	},
	Source:function(o,e,p,i,c,s,b,a){
		s=a='';
		for(i=0;i<o.length;i++){
			c=this.Items(o[i]);
			s+="<div class=tree"+(i<o.length-1?"":"L")+"Node"+(b=(o[i].getAttribute('xmlTree')&&1)||(c&&(o[i].getAttribute('expanded')||e))||2)+">"
			if(c){
				c=this.Source(c,e,o[i]);
				if(b=="0"){
					if(a) a+=",";
					a+="'"+o[i].getAttribute("pk")+"'";
					if(c.a) a+=",["+c.a+"]"
				};
				s+=c.s
			}else
				s+=this.Attr(o[i]);
			s+="</div>"
		};
		if(p) s=this.Attr(p,a,e)+s;
		return {s:'<div class=treeVLine>'+s+"</div>",a:a}
	},
	Items:function(o,a,i){
		for(o=o.firstChild;o;o=o.nextSibling){
			if(o.nodeName=="ITEM"){
				if(!a) a=new Array();
				a[a.length]=o
			}
		};
		return a
	},
	Attr:function(o,a,e,t){t=o.getAttribute('xmlTree'); with(CbOS) return "<div class=tree_"+((t&&1)||o.getAttribute('expanded')||e||"")+"><a href='javascript:void(0)'"+_.A("title",o.getAttribute("title"))+_.A("pk",o.getAttribute("pk"))+_.A("CbOSsel",a||null)+_.A("js",o.getAttribute("js"))+_.A("key",o.getAttribute("key"))+_.A("xmlTree",t)+">"+set.HTMLEncode(o.getAttribute("name"))+"</a></div>"},
	Click:function(e,o,i){
		with(CbOS)with(Tree) if((i=_.O(e))&&i!=o){
			if(Test(e,i,"_Root",[0,8,4,12]))
				Root(i);
			else if(Test(e,i,"_Item",[0,14,2,15]))
				Item(e,_.C(i,'A'));
			else if(Test(e,i,"_Group",[0,14,2,15]))
				Item(e,_.C(i,'A'))
			_.B(e)
		}
	},
	Focus:function(e,o,t){
		with(CbOS){
			t=Tree.Tree(o);
			if((e=Tree.Search(t,t.previousSibling.value))&&e!=o){
				set.bgImage([o.parentNode,(t=Tree.Group(o.parentNode,_.T))&&(t=_.C(t,"A"))!=o&&t.parentNode],0);
				_.S(_.S(o,_.k,'#dcdcdc'),_.r,'#dcdcdc');
			}
	}},
	Blur:function(e,o,i){with(CbOS)with(Tree){
		e=Tree(o);
		if((e=Search(e,e.previousSibling.value))&&e!=o){
			_.S(o,[_.k,_.r])
			if((e=Group(e.parentNode,_.T)))
				e=_.C(e,"A");
			if(e!=o)
				set.bgImage(o.parentNode,1);
			if((i=Group(o.parentNode,_.T))&&(i=_.C(i,"A"))!=e&&i!=o)
				set.bgImage(i.parentNode,1);
		}
	}},
	Item:function(e,o,j,k,x){
		with(CbOS)with(Tree){
			Fcs(o);
			if((j=o.getAttribute("js"))){
			}
			if((k=o.getAttribute("pk"))){
			}
			if((x=o.getAttribute("xmlTree"))){
				if(w.DebugMode)
					alert('Downloading tree...')
			}
			if(j||k||x)
				Active(o);
			else if(Test(e,o.parentNode,"_Group")){ Root(Group(o,_.T)); }
		}
	},
	Root:function(o,i,k,j,l,e){
		with(CbOS)with(Tree)if(o){
			l=o.className;
			o.className=l.substring(0,l.length-1)+CbOS._.N(i,(!(l.charAt(l.length-1)*1))*1);
			o=o.firstChild.firstChild;
			if(!o.className){
				return
			}
			l=o.className.toArray("_");
			o.className=l[0]+"_"+(j=CbOS._.N(i,(!(l[1].charAt(0)*1))*1))+l[1].substring(1,l[1].length);
			if(!_.D(i)||k){
				set.bgImage(_.C(o,"A").parentNode,""+j+0);
				Fcs(_.C(o,"A"))
			};
			while((e=Group(o,_.T))) o=e;
			e=UpdPath(o);
			if(e) _.C(o,"A").setAttribute('CbOSsel',e); else _.C(o,"A").removeAttribute('CbOSsel');
			OpItems(o)
		}
	},
	UpdPath:function(o,l,e,s,a){
		with(CbOS)with(Tree){
			s='';
			l=o.className;
			if(!(l.charAt(l.length-1)*1)) for(e=Group(o,_.C);e;e=e.nextSibling){
				l=e.className;
				if(l.charAt(l.length-1)*1){_.C(e,"A").removeAttribute('CbOSsel'); continue};
				if(s) s+=",";
				s+="'"+_.C(e,"A").getAttribute('pk')+"'";
				if((a=UpdPath(e))){
					_.C(e,"A").setAttribute('CbOSsel',a);
					s+=",["+a+"]"
				}else _.C(e,"A").removeAttribute('CbOSsel')
			};
			return s
		}
	},
	_Update:function(a,t,o){
		if((t.k=(t.k||0)+1)==20) with(CbOS.Tree){
			o=Tree(a);
			if(!o.previousSibling.CbOSDone){
				m=o.getElementsByTagName("A");
				for(i=0;i<m.length;i++){
					if(m[i].getAttribute('pk')==o.previousSibling.value){
						Expand(m[i]);
						Active(m[i]);
						break
					}
				}
			};
			return true
		}
	},
	Update:function(n,q){
		with(CbOS)with(this.Trash[n]){
			o.innerHTML=q;
			_.Q(Tree._Update,o,5);
			if(x==o.previousSibling)
				o.parentNode.removeChild(x)
			del(this.Trash,n)
		}
	},
	OpItems:function(o,e,s,a,c){
		with(CbOS)with(Tree){
			o=Tree(o);
			s='';
			for(e=Node(o,_.C);e;e=e.nextSibling){
				c=e.className;
				if(c.charAt(c.length-1)*1) continue;
				a=_.C(e,"A");
				if(s) s+=",";
				s+="'"+a.getAttribute("pk")+"'";
				if((c=a.getAttribute("CbOSsel"))) s+=",["+c+"]"
			};
			o.nextSibling.value=s
		}
	},
	Tree:function(o,j){o=o.firstChild; do j=o; while((o=CbOS._.T(j,"DIV","tree")));return j.parentNode},
	Expand:function(o){with(CbOS) while(o) Tree.Root(o=Tree.Group(o,_.T),0)},
	Search:function(o,s,i){
		with(CbOS){
			if(s){
				s=s.toArray(".")
				for(i=0;i<s.length;i++){
					o=Tree.Node(o,_.C);
					while(o&&_.C(o,'A').getAttribute('pk')!=s[i])
						o=o.nextSibling;
					if(!o) return
				};
			}
			return _.C(o,'A')
		}
	},
	Active:function(o,T,t,h,i){
		with(CbOS)if(!o.getAttribute("nopage"))with(Tree){
			T=Tree(o);
			h=T.previousSibling;
			h.CbOSDone=true;
			_.S((t=Search(T,h.value)),[_.k,_.r]);
			if(t)
				set.bgImage([t.parentNode,(i=Group(t.parentNode,_.T))&&(i=_.C(i,"A"))!=t&&i.parentNode],1);

			set.bgImage([o.parentNode,(i=Group(o.parentNode,_.T))&&(i=_.C(i,"A"))!=o&&i.parentNode],0);
			_.S(_.S(o,_.k,'#c7cedf'),_.r,'#c7cedf');
			exchange.Post("ID="+o.getAttribute("pk")+"&CbOSData="+escape(exchange.Descr(wd.win[get.Win(h).name].A)),_.C(T,"DIV","treeVLine").getAttribute("url"),null,o);
			t="";
			while((o=Node(o,_.T)))
				t=_.C(o,"A").getAttribute("pk")+(t?".":"")+t;
			h.value=t;
		}
	},
	Test:function(e,o,n,a){return this[n].test(o.className)&&(!a||CbOS.is.InXY(e.offsetX||e.layerX||0,e.offsetY||e.layerY||0,a))},
	_Group:new RegExp("^tree_[0,1]{1}[a-zA-Z]*$"),
	_Item:new RegExp("^tree_{1}[a-zA-Z]*$"),
	_Root:new RegExp("^tree{1}L?Node{1}[0,1]{1}$"),

	Group:function(o,f){return f(o,"DIV",["LNode0","LNode1","Node0","Node1"].Prefix("tree"))},
	Node:function(o,f){return f(o,"DIV",["LNode0","LNode1","LNode2","Node0","Node1","Node2",].Prefix("tree"))},
	KDown:function(e,t,o,i){
		with(CbOS)with(Tree){
			o=_.O(e);
			if(!is.Tag(o,"A")) o=_.T(o,"A");
			if(o&&is.In(i=e.keyCode,[32,33,34,35,36,38,40,37,39,109,107])){
				if(is.In(i,[107,109,32])&&Test(e,o.parentNode,"_Group")){
					t=(o=Node(o,_.T)).className;
					t=t.charAt(t.length-1)*1;
					if(i==32||(t&&i==107)||(!t&&i==109))
						Root(o,(!t)*1,1)
				}else if(i==0){/*pdown,pup,home,end*/
				}else{
					o=Node(o,_.T);
					o=(i==38?Up(e,o):(i==40?Down(e,o):(i==37?Group(o,_.T)||o.parentNode:(i==39?Right(e,o):o))));
					if(o) Fcs(_.C(o,"A"))
				};
				_.B(e)
			};

		}
	},
	Right:function(e,o,i){
		with(CbOS)with(Tree)if(Test(e,o,"_Root")){
			c=o.className;
			if((i=c.charAt(c.length-1))=='1')Root(o,0);
			if(i=='0'||i=='1')return Node(o,_.C)
		};
		return o.nextSibling
	},
	Up:function(e,o,c){
		with(CbOS)with(Tree)
			if((o=o.previousSibling)){
				c=o.className;
				if(Test(e,o,"_Root")&&c.charAt(c.length-1)=='0'){
					while(e=Node(o,_.C)){
						o=e;
						while(e=o.nextSibling)o=e;
						c=o.className;
						if(Test(e,o,"_Root")&&c.charAt(c.length-1)=='1') return o
					}
				}
				return o
			}
	},
	Down:function(e,o,c){
		with(CbOS)with(Tree){
			c=o.className;
			if(Test(e,o,"_Root")&&c.charAt(c.length-1)=='0') return Node(o,_.C);
			if(!(e=o.nextSibling))
				while((o=Group(o,_.T))) if((o.nextSibling)) return o.nextSibling;
			return e
		}
	},
	Load:function(o,n){
		with(CbOS)with(Tree){
			if(is.Cls(o,"tree"))
				_.M(_.M(o,_.y,'top.CbOS.Tree.Click(event,this)'),"onkeydown",'top.CbOS.Tree.KDown(event,this)');
			else if(w.DebugMode)
				alert("create loading...")
			n=_.K();
			n=Trash[n]={n:n,i:0,o:o}
			if((n.x=o.previousSibling)){
				n.i++;
				if(onload==jsTrans) onload(n.n)
			}else Download(n,o.parentNode.getAttribute("xmlTree"));
			if(onload!=jsTrans) Download(n)
		}
	},
	Download:(w.ActiveXObject?function(o,u,k){
			k=o[u?"x":"s"]= new ActiveXObject("Microsoft.XMLDOM");
			k.async=true;
			k.onreadystatechange=Function("CbOS.Tree.onload('"+o.n+"')");
			k.load(CbOS.get.Base(CbOS.jsROOT+"xsl/"+(u||"tree.xsl")));
			return o
		}:function(o,u,k){
			k=o[u?"x":"s"]=d.implementation.createDocument("",u?"x":"s",null);
			eval("k.addEventListener('load',function(){CbOS.Tree.onload('"+o.n+"')},false)");
			k.load(CbOS.get.Base(CbOS.jsROOT+"xsl/"+(u||"tree.xsl")));
			return o
		}
	)
});
if((function(u,i,n,q){
		with(CbOS){
			u=u.toLowerCase().toArray("?")
			if(i||(n=u[0].indexOf(get.Base())!=0)||(q=(u[0].substring(u[0].length-5)!=".aspx"))){
				location.replace((n?get.Base("default.aspx"):(u[0]+(q?(u[0].charAt(u[0].length-1)!="/"?"/":"")+"default.aspx":"")))+(u[1]?"?"+u[1]:""));
				return is.support=false
			}
			if(is.support) create.CSS(d); else alert('Please use IE5.5+, Netscape 7+, Mozilla 1+, Firefox 1+ or Opera 9+');
			return true
		}
	})(location.href,w.top!=w)) CbOS.SM.set.Init(w);
onbeforeunload = function()
{
	CbOSStop = null;
	var err;
	try
	{
		for(var i = d.body.firstChild; i; i = i.nextSibling)
			if(CbOS.is.Tag(i, "DIV"))
				CbOS.rem(i);
	}
	catch(err)
	{};
	onresize = onbeforeunload = onload = null;
};
CbOS.OperatedInput = {
	Rules:
	{
		Color:
		{
			RExp: /^[0-9a-f]{0,6}$/i,
			DoneExp: /^[0-9a-f]{6}$/i
		},
		Phone:
		{
			RExp: /^((\()?\d{0,3}(\))?)?(-| )?\d{0,3}(-| )?\d{0,4}$/,
			DoneExp: /^((((\(\d{3}\))|(\d{3}))?(-| )?\d{3})(-| )?\d{4}|(\d{7})|(\d{10}))$/,
			Template: [[/^\(\d{3}$/, ") "]]
		},
		Integer:
		{
			RExp:
			[
				/^\d{0,1}$/,
				/^\d{0,2}$/,
				/^\d{0,3}$/,
				/^\d{0,4}$/,
				/^\d{0,5}$/,
				/^\d{0,6}$/,
				/^\d{0,7}$/,
				/^\d{0,8}$/,
				/^\d{0,9}$/,
				/^\d{0,10}$/,
				/^\d{0,11}$/,
				/^\d{0,12}$/,
				/^\d{0,13}$/,
				/^\d{0,14}$/,
				/^\d{0,15}$/,
				/^-?\d{0,1}$/,
				/^-?\d{0,2}$/,
				/^-?\d{0,3}$/,
				/^-?\d{0,4}$/,
				/^-?\d{0,5}$/,
				/^-?\d{0,6}$/,
				/^-?\d{0,7}$/,
				/^-?\d{0,8}$/,
				/^-?\d{0,9}$/,
				/^-?\d{0,10}$/,
				/^-?\d{0,11}$/,
				/^-?\d{0,12}$/,
				/^-?\d{0,13}$/,
				/^-?\d{0,14}$/,
				/^-?\d{0,15}$/
			],
			DoneExp: /^(\+|-)?\d{0,10}$/,
			ResultTest: function(aObj, aValue)
			{
				CbOS.OperatedInput.Rules.Integer.Init(aObj)
				if (this.DoneExp.test(aValue))
					return parseFloat(aValue, 10).Between(aObj.validationInfo.MinValue, aObj.validationInfo.MaxValue);
			},
			Init: function(aObj, aMinLength)
			{
				with (CbOS)
				{
					var obj = aObj.validationInfo
					if (!is.Def(obj.RExpIndex))
					{
						var min = is.Def(obj.MinValue) ? to.Float(obj.MinValue) : -Infinity,
						max = is.Def(obj.MaxValue) ? to.Float(obj.MaxValue) : Infinity,
						minus = (min < 0) * 1,
						maxLength = Math.min(15 + minus, (aObj.maxLength || (aObj.maxLength = 15 + minus))) - minus,
						num = (obj.DataType == "Integer" ? 9 : 9.99).PadL(maxLength, 9);
						min = obj.MinValue = Math.max(min, -1 * num);
						max = obj.MaxValue = Math.min(max, 1 * num);
						minus = (min < 0) * 1;
						obj.RExpIndex = minus * 15 + Math.max(Math.min(15 + minus, (aObj.maxLength || (aObj.maxLength = 15 + minus))) - (aMinLength || 1) - minus, 0);
					};
				}
			},
			RealTime: function(aObj, aValue, aMinLength)
			{
				CbOS.OperatedInput.Rules.Integer.Init(aObj, aMinLength)
				return this.Validate(aObj, aValue, this.RExp[aObj.validationInfo.RExpIndex]);
			},
			ClientVal: function(aObj, aValue)
			{
				return this.Validate(aObj, aValue, this.DoneExp);
			},
			Validate: function(aObj, aValue, aRegExp)
			{
				return this.Between(aValue, aObj.validationInfo.MinValue, aObj.validationInfo.MaxValue) && aRegExp.test(aValue)
			},
			Between: function(aValue, aMin, aMax)
			{
				if (aMin >= 0 && aMax >= 0)
					return aValue >= 0 && aValue <= aMax;
				if (aMin <= 0 && aMax <= 0)
					return Math.abs(aValue) <= -aMin;
				if (aMin <= 0 && aMax >= 0)
					return Math.abs(aValue) <= Math.max(-aMin, aMax);
				return true
			}
		},
		Decimal:
		{
			RExp:
			[
				/^\d{0,3}(\.\d{0,2})?$/,
				/^\d{0,4}(\.\d{0,2})?$/,
				/^\d{0,5}(\.\d{0,2})?$/,
				/^\d{0,6}(\.\d{0,2})?$/,
				/^\d{0,7}(\.\d{0,2})?$/,
				/^\d{0,8}(\.\d{0,2})?$/,
				/^\d{0,9}(\.\d{0,2})?$/,
				/^\d{0,10}(\.\d{0,2})?$/,
				/^\d{0,11}(\.\d{0,2})?$/,
				/^\d{0,12}(\.\d{0,2})?$/,
				/^\d{0,13}(\.\d{0,2})?$/,
				/^\d{0,14}(\.\d{0,2})?$/,
				/^-?\d{0,3}(\.\d{0,2})?$/,
				/^-?\d{0,4}(\.\d{0,2})?$/,
				/^-?\d{0,5}(\.\d{0,2})?$/,
				/^-?\d{0,6}(\.\d{0,2})?$/,
				/^-?\d{0,7}(\.\d{0,2})?$/,
				/^-?\d{0,8}(\.\d{0,2})?$/,
				/^-?\d{0,9}(\.\d{0,2})?$/,
				/^-?\d{0,10}(\.\d{0,2})?$/,
				/^-?\d{0,11}(\.\d{0,2})?$/,
				/^-?\d{0,12}(\.\d{0,2})?$/,
				/^-?\d{0,13}(\.\d{0,2})?$/,
				/^-?\d{0,14}(\.\d{0,2})?$/
			],
			DoneExp: /^-?\d*(\.\d{0,2})?$/,
			Validate: function(aObj, aValue, aRegExp)
			{
				var k = aValue.match(/\./) ? 1 : 100;
				return (aValue == "." || CbOS.OperatedInput.Rules.Integer.Between(aValue, k * aObj.validationInfo.MinValue, k * aObj.validationInfo.MaxValue)) && aRegExp.test(aValue)
			},
			RealTime: function(aObj, aValue)
			{
				return  CbOS.OperatedInput.Rules.Integer.RealTime.apply(this, [aObj, aValue, 4])
			}
		},
		SSN:
		{
			RExp: /^\d{0,3}-?\d{0,2}-?\d{0,4}$/,
			DoneExp: /^\d{3}-?\d{2}-?\d{4}$/,
			Template: [[/^\d{3}$/,"-"],[/^\d{3}-\d{2}$/,"-"]]
		},
		Email:
		{
			RExp: /^[\w\s;.\[\]\-'@]*$/i
		},
		Custom:
		{
			RealTime: function(aObj, aValue)
			{
				return (aObj = aObj.validationInfo.RealTimeExp) && aObj.test(aValue);
			}
		},
		Time:
		{
			RExp: /^((((([01]?[0-9])|(2[0-3]))?)(:|(:[012345]?[0-9]))?) ?|(((0|(0?[1-9])|(1[012]))?)(:|(:([012345]?[0-9])? ?([ap]|[ap]m|m)?))?))$/i,
			DoneExp: /^(((([01]?[0-9])|(2[0-3])):[012345]?[0-9] ?)|(((0?[1-9])|(1[012])):[012345]?[0-9] ?([ap]m)?))$/i,
			Template: [[/^((\d{2})|[3-9])$/, ":"], [/^\d{1,2}:.{1,2} *[ap]$/, "m"], [/^.{1,2}:.{1,2} *[AP]$/, "M"]]
		},
		Date:
		{
			RExp: /^(0?|(0?[1-9])|(1[012]))(\/|\/((0?[1-9])|([12]?[0-9])|(3[01]))?((\/)|(\/[0-9]{0,4}))?)?$/,
			DoneExp: /^((0?[1-9])|(1[012]))\/((0?[1-9])|([12][0-9])|(3[01]))\/(([0-9]{1,2})|([0-9]{4}))$/,
			Template: [[/^((\d{2})|[2-9])$/, "/"], [/^\d{1,2}\/((\d{2})|([4-9]))$/,"/"]],
			RealTime: function(aObj, aValue)
			{
				return this.Validate(aObj, aValue, "RExp");
			},
			ClientVal: function(aObj, aValue)
			{
				return this.Validate(aObj, aValue, "DoneExp");
			},
			Validate: function(aObj, aValue, aValType)
			{
				return this[aValType].test(aValue)
			}
		},
		DateTime:
		{
			RExp: /^((((0?|(0?[1-9])|(1[012]))(\/|\/((0?[1-9])|([12]?[0-9])|(3[01]))?((\/)|(\/[0-9]{0,4}))?)?)?( ((((([01]?[0-9])|(2[0-3]))?)(:|(:[012345]?[0-9]))?) ?|(((0|(0?[1-9])|(1[012]))?)(:|(:([012345]?[0-9])? ?([ap]|[ap]m|m)?))?)))?)|((((([01]?[0-9])|(2[0-3]))?)(:|(:[012345]?[0-9]))?) ?|(((0|(0?[1-9])|(1[012]))?)(:|(:([012345]?[0-9])? ?([ap]|[ap]m|m)?))?)))$/i,
			DoneExp: /^((0?[1-9])|(1[012]))\/((0?[1-9])|([12][0-9])|(3[01]))\/(([0-9]{1,4}))( (((([01]?[0-9])|(2[0-3])):[012345]?[0-9] ?)|(((0?[1-9])|(1[012])):[012345]?[0-9] ?([ap]m)?)))?$/i,
			Template: [
						[/^((\d{2})|[2-9])$/, "/"],
						[/^\d{1,2}\/((\d{2})|([4-9]))$/,"/"],
						[/^.{1,2}\/.{1,2}\/\d{4}$/, " "],
						[/^.{1,2}\/.{1,2}\/.{2,4} ((\d{2})|[3-9])$/, ":"],
						[/^.{1,2}\/.{1,2}\/.{2,4} .{1,2}:.{1,2} *[ap]$/, "m"],
						[/^.{1,2}\/.{1,2}\/.{2,4} .{1,2}:.{1,2} *[AP]$/, "M"],
						[/^\d{1,2}:.{1,2} *[ap]$/, "m"],
						[/^.{1,2}:.{1,2} *[AP]$/, "M"]
				]
		}
	},
	GetCaretPos: function (aObj)
	{
		if (aObj.selectionStart)
			return aObj.selectionStart;
		if (document.selection)
		{
			var doc = CbOS.get.Doc(aObj);
			var t = false;
			var oldElem = doc.activeElement;
			if (oldElem != aObj)
			{
				aObj.focus();
				t = true;
			};
			var sel = doc.selection.createRange();
			if (aObj.type == 'textarea')
			{
				var clone = sel.duplicate();
				sel.collapse(true);
				clone.moveToElementText(aObj);
				clone.setEndPoint('EndToEnd', sel);
				if (t)
					oldElem.focus();
				return clone.text.length;
			}
			else
			{
				sel.collapse(true);
				sel.moveStart("textedit", -1);
				if (t)
					oldElem.focus();
				return sel.text.length;
			}
		};
		return 0;
	},
	GetSelectedText: function(aObj)
	{
		if(aObj.selectionStart)
			return aObj.value.substring(aObj.selectionStart, aObj.selectionEnd);
		if (document.selection)
			return CbOS.get.Doc(aObj).selection.createRange().text;
		return "";
	},
	InsertString: function(aString, aChar, aPos)
	{
		return aString.substr(0, aPos) + aChar + aString.substr(aPos);
	},
	DeleteString: function(aString, aPos, aDirection, aSelLen)
	{
		if (aDirection > 0 || aSelLen) /*delete*/
		{
			if (aSelLen == 0)
				aSelLen = 1;
			return aString.substr(0, aPos) + aString.substr(aPos + aSelLen);
		}
		return  aString.substr(0, aPos - 1) + aString.substr(aPos);
	},
	AllowType: function (aObj, aEvent)
	{
		var keyCode = aEvent.keyCode;
		if (
			aEvent.preventDefault && aEvent.charCode == 0
			&&
			(
				!(keyCode == 46 || keyCode == 8)
				||
				(keyCode == 46 && aEvent.type == "keypress")
			)
		)
			return;
		with(CbOS)
			if(keyCode == 13)
				CbOS.run.Enter(aObj, aEvent);
		var newValue,
			selLen = this.GetSelectedText(aObj).length
			if (selLen == 0 && CbOS.is.InsertKeyPressed)
				selLen = 1
			caretPos = this.GetCaretPos(aObj);
		this.SetOIParameters(aObj, "autocomplit", true);
		if ((keyCode = aEvent.charCode || keyCode) == 8)
		{
			newValue = this.DeleteString(aObj.value, caretPos, -1, selLen);
			this.SetOIParameters(aObj, "autocomplit", false);
		}
		else if (keyCode == 46 && aEvent.type == "keydown")
		{
			newValue = this.DeleteString(aObj.value, caretPos, 1, selLen);
			this.SetOIParameters(aObj, "autocomplit", false);
		}
		else
		{
			newValue = aObj.value;
			if (selLen > 0)
				newValue = this.DeleteString(newValue, caretPos, 1, selLen);
			newValue = this.InsertString(newValue, String.fromCharCode(keyCode), caretPos);
		};
		if  (newValue.length != 0 && !this.TestData(aObj, newValue))
			CbOS.set.CBubble(aEvent);
	},
	HandleBS: function(aEvent)
	{
		if (aEvent.keyCode == 8 || aEvent.keyCode == 46)
			this.AllowType(aEvent.srcElement || aEvent.target, aEvent);
	},
	SetOIParameters: function(aObj, aParamName, aValue)
	{
		if (!aObj.OIParam)
			aObj.OIParam = {};
		aObj.OIParam[aParamName] = aValue;
	},
	AllowPaste: function(aObj, aEvent)
	{
		with (CbOS.get.Win(aObj))
		{
			var cbValue = oldCBValue = clipboardData.getData('Text'),
				objValue = aObj.value,
				selLen = this.GetSelectedText(aObj).length,
				caretPos = this.GetCaretPos(aObj);
			this.SetOIParameters(aObj, "OldCBValue", oldCBValue);
			if (selLen > 0)
				objValue = this.DeleteString(objValue, caretPos, 1, selLen);
			for (var i = Math.min(cbValue.length, aObj.maxLength || CbOS.set.MaxLength(aObj)) ; i >= 0; --i)
				if (this.TestData(
						aObj,
						this.InsertString(
							objValue,
							cbValue = cbValue.substr(0, i),
							caretPos
						)
					)
				)
					break;
			if (cbValue.length == 0)
			{
				aEvent.returnValue = false;
				clipboardData.setData('Text', oldCBValue);
			}
			else
			{
				clipboardData.setData('Text', cbValue);
				setTimeout("if (window.top && top.CbOS) top.CbOS.OperatedInput.RestoreCBValue('" + (aObj.id || (aObj.id = top.CbOS.get.PK())) + "', window)", 10);
			};
		}
	},
	RestoreCBValue: function(aObj, aWin)
	{
		if (
			(aObj = CbOS.get.Obj(aObj, aWin))
			&&
			(aObj = aObj.OIParam)
		)
			aWin.clipboardData.setData('Text', aObj.OldCBValue || "");
	},
	AllowDrop: function(aObj, aEvent)
	{
		var cbValue = aEvent.dataTransfer.getData('Text');
		caretPos = this.GetCaretPos(aObj);
		for (var i = Math.min(cbValue.length, aObj.maxLength || CbOS.set.MaxLength(aObj)); i >= 0; --i)
			if (this.TestData(aObj, this.InsertString(aObj.value, (cbValue = cbValue.substr(0, i)), caretPos)))
				break;
		aEvent.dataTransfer.setData('Text', cbValue);
	},
	TestData: function(aObj, aNewValue)
	{
		var prmObj = aObj.OIParam
		if (prmObj && prmObj.timerID)
			return false;
		var res = true, lRegExp = null, mask = null,
			maskId = aObj.validationInfo && (aObj.validationInfo.ValidationType || aObj.validationInfo.DataType),
			afterEventCommand = "";
		var condition;
		if (aObj.validationInfo.typeConditions)
			for ( var i = 0; i < aObj.validationInfo.typeConditions.length; ++i )
				if
				(
					(
						(typeof(condition = aObj.validationInfo.typeConditions[i][0]) == "object"
							&& typeof(condition.test) == "function" && condition.test(aNewValue))
						||
						(typeof(condition) == "function" && condition.apply(aObj, aNewValue))
					)
					&&
						!aObj.validationInfo.typeConditions[i][1].apply(aObj)
				)
					return false;
		var temlArray;
		if
		(
			(mask = this.Rules[maskId])
			&&
			!(res = mask.RealTime ? mask.RealTime(aObj, aNewValue) : (lRegExp = mask.RExp).test(aNewValue))
			&&
			prmObj && prmObj.autocomplit
			&&
			(!CbOS.is.Def(aObj.validationInfo.UseTemplate) || aObj.validationInfo.UseTemplate == "true")
			&&
			(temlArray = aObj.validationInfo.Template || mask.Template)
		)
			for (var i = 0; i < temlArray.length; ++i )
			{
				var posibleValue = aNewValue.substr(0, aNewValue.length - 1) + temlArray[i][1] + aNewValue.substr(aNewValue.length - 1, 1);
				if (res = mask.RealTime ? mask.RealTime(aObj, posibleValue) : lRegExp.test(posibleValue))
				{
					CbOS.OperatedInput.AddTemplateCharacters(CbOS.get.Doc(aObj), aObj.id || (aObj.id = top.CbOS.get.PK()) , temlArray[i][1]);
					aNewValue = posibleValue;
					break;
				};
			};
		if (!res) return false;
		var ml;
		if (
			CbOS.is.Tag(aObj, "TEXTAREA")
			&& (ml = aObj.maxLength || CbOS.set.MaxLength(aObj))
			&& !(res = (aNewValue.length <= ml))
		    )
			return false;
		if (CbOS.is.Def(mask) && prmObj && prmObj.autocomplit && aObj.validationInfo.UseTemplate == "true" && mask.Template)
			for ( var temlArray = mask.Template, i = 0; i < temlArray.length; ++i )
				if (!(temlArray[i][0].test(aNewValue.substr(0, aNewValue.length - 2)) &&
					aNewValue.substr(aNewValue.length - 1, 1) == aNewValue.substr(aNewValue.length - 2, 1))&& temlArray[i][0].test(aNewValue))
				{
					afterEventCommand += "top.CbOS.OperatedInput.AddTemplateCharacters(d, '" + (aObj.id || (aObj.id = top.CbOS.get.PK())) + "', '" + temlArray[i][1]+"');";
					aNewValue += temlArray[i][1];
					break;
				};
		if (afterEventCommand && res)
		{
			win = CbOS.get.Win(aObj);
			if (prmObj && prmObj.timerID)
				win.clearTimeout(prmObj.timerID);
			this.SetOIParameters(aObj,
				'timerID',
 				win.setTimeout("if(window.top && top.CbOS){" +afterEventCommand + "var o = d.getElementById('" + (aObj.id || (aObj.id = CbOS.get.PK()))+"'); if (o) top.CbOS.OperatedInput.SetOIParameters(o, 'timerID', null);}", 10));
		}
		return res
	},
	AddTemplateCharacters: function(aDoc, aObjId, aStr)
	{
		var obj = aDoc.getElementById(aObjId);
		if (obj)
			if (aDoc.selection)
			{
				var r = obj.createTextRange();
				r.collapse(false);
				r.text = aStr;
				r = obj.createTextRange();
				r.moveStart("textedit",1);
				r.select();
			} else if (obj.selectionStart)
			{
				var scrollTop = obj.scrollTop, scrollLeft = obj.scrollLeft;
				obj.value += aStr;
				obj.scrollTop = scrollTop;
				obj.scrollLeft = scrollLeft;
			}
	},
	ValidateValue: function(aObj, aNewValue)
	{
		if (CbOS.get.Win(aObj).CbOS.Validation)
			CbOS.get.Win(aObj).CbOS.Validation.ErrorHide(aObj);
		var res, maskId = aObj.validationInfo && (aObj.validationInfo.ValidationType || aObj.validationInfo.DataType);
		if (maskId) res = this.Rules[maskId].ResultTest(aObj, aNewValue);
		return  res
	},
	timerID: null,
	InsertRem: function(aDoc, aObjId, aNewValue, aFullValue)
	{
		var s
		if (aDoc.selection && (s = aDoc.getElementById(aObjId)) && s.OIParam && s.OIParam.autocomplit)
		{
			var r = s.createTextRange(),
				newText = aFullValue.substr(aNewValue.length);
			r.collapse(false);
			r.text = newText;
			r = s.createTextRange();
			r.moveStart("character", aFullValue.length - newText.length);
			r.select();
		};
	},
	FindStr: function(aStr, aArray)
	{
		var specialCharacters = /([\\\^\$\*\+\?\.\|\(\)\[\]\{\}])/ig;
		return function()
		{
			var r, re = new RegExp().compile("^" + aStr.replace(specialCharacters, "\\$1"), "i");
			for (var i = 0; i < aArray.length; ++i )
				if ((aStr = aArray[i][0]) && aStr.match(re))
					return i;
			return false
		}(aStr, aArray)
	},
	SetEventsHandlers: function(aObj)
	{
		with(CbOS.SM.set)
		{
			Event(aObj, "onkeydown",	"top.CbOS.OperatedInput.HandleBS(event)");
			Event(aObj, "onkeypress",	"top.CbOS.OperatedInput.AllowType(this, event)");
			Event(aObj, "onpaste",		"top.CbOS.OperatedInput.AllowPaste(this, event)");
			Event(aObj, "ondrop",		"top.CbOS.OperatedInput.AllowDrop(this, event)");
		}
	},
	ReadValidationInfo: function()
	{
		var dateExp = /^[09]{2}\/[09]{2}\/[09]{4}$/,
			timeExp = /^[09]{2}:[09]{2} \[AP\]M$/,
			dateTimeExp = /^[09]{2}\/[09]{2}\/[09]{4} [09]{2}:[09]{2} \[AP\]M$/,
			card = /^.+_filter_Number$/,
			cardRealTimeExp = /^\d{0,4}-?\d{0,4}-?\d{0,4}-?\d{0,4}$/,
			cardProcent = /%/g,
			intExp = /^[09]+$/,
			digits = /^\\d\{\d\}$/,
			supportedTypes = ["Phone", "Integer", "Currency", "Decimal", "Decimal", "Time", "Date", "SSN", "Custom", "DateTime", "Color", "Email"];
		return function(aObj)
		{
			var validationInfo = aObj.getAttribute("validate");
			if (validationInfo && !CbOS.is.Def(validationInfo = CbOS.get.Gpa(aObj, validationInfo)))
				return;
			var aMask;
			if (validationInfo && (aMask = validationInfo.ValidationType || validationInfo.DataType) && CbOS.is.In(aMask, supportedTypes))
			{
				var obj = aObj.validationInfo = CbOS.set.Param(validationInfo, CbOS.create.Obj(aObj));
				if (aMask == "Currency")
					obj.DataType = "Decimal";
				else if (aMask == "Custom")
				{
					var conditions;
					if (obj.typeConditions)
					{
						var setEv = CbOS.get.Win(aObj).CbOS.set.Event;
						obj.typeConditions = setEv("return " + obj.typeConditions).apply();
						for (var i = 0; i < obj.typeConditions.length; ++i)
							if (typeof(obj.typeConditions[i][1]) != "function")
								obj.typeConditions[i][1] = setEv(obj.typeConditions[i][1]);
					}
					if (validationInfo.RealTimeExp)
						obj.RealTimeExp = new RegExp(validationInfo.RealTimeExp);
					else
					{
						if (digits.test(validationInfo.RegExp))
						{
							digits.exec(validationInfo.RegExp)
							obj.RealTimeExp = new RegExp( "^\\d{0," + RegExp.$1 + "}$");
						}
						else if (!obj.typeConditions)
						{
							aObj.setAttribute("RTV", "false");
							return false;
						}
					}
				};
				aObj.setAttribute("RTV", "true");
				if (!obj.UseTemplate)
					obj.UseTemplate = "true";
				CbOS.OperatedInput.SetEventsHandlers(aObj);
				return obj;
			};
			aObj.setAttribute("RTV", "false");
		}
	}(),
	WriteText: function (aText) {d.getElementById("tmp").innerHTML += aText + "\n<br>";},
	ReWriteText: function (aText) {d.getElementById("tmp").innerHTML = aText;}
};
CbOS.Messages.Validaton = {
	Get: function(aName)
	{
		aName = CbOS.Messages.Validaton[aName];
		for (var i = 1; i < arguments.length; ++i)
			aName = aName.replace(new RegExp("\\{" + i + "\\}", "g"),arguments[i])
		return aName
	},
	Custom: 'Wrong Value.',
	Email: 'Wrong email address.',
	CheckNumber: 'Wrong check number. Check number should consists only from digits <br /> and have exactly 16 digits long.',
	Phone: 'Wrong phone number. Phone/fax should be exactly 7 or 10 (with area code) digits long.<BR>Ex.: (232) 344-8984 or 232-344-8984',
	SSN: 'Wrong social security number. Social security number should be exactly 9 digits long. Ex.: 111-22-3333',
	Color: 'Wrong color value. Color number should consists<br> of 6 hexadecimal digits.',
	URL: 'Invalid URL.',
	Password: 'Incorrect password. Password must have at least 6 characters and contain at least 1 number or punctuation character.',
	Integer: 'Must be Integer.',
	Decimal: 'Must be Decimal.',
	Currency: 'Must be Currency.',
	Date: 'Must be Date.',
	Time: 'Must be Time.',
	DateTime: 'Must be Date and Time.',
	DateAndOrTime: 'Must be Date and/or Time.',
	BusinessObject: 'Item does not exist.',
	Mandatory: 'Field is mandatory.',
	Unique: 'Must be unique.',
	Between: 'Value should be between {1} and {2}.',
	Less: 'Value should be equal or less than {1}.',
	Greater: 'Value should be equal or greater than {1}.'
}