web: add dhtmlxcombo 2.6 (unminified version) to repo
This commit is contained in:
		
							parent
							
								
									eb2e3cbde0
								
							
						
					
					
						commit
						6dd1f74b30
					
				
							
								
								
									
										1359
									
								
								data/web/static/dhtmlxcombo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1359
									
								
								data/web/static/dhtmlxcombo.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										940
									
								
								data/web/static/dhtmlxcommon.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										940
									
								
								data/web/static/dhtmlxcommon.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,940 @@ | |||||||
|  | //v.2.6 build 100722
 | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  | Copyright DHTMLX LTD. http://www.dhtmlx.com
 | ||||||
|  | You allowed to use this component or parts of it under GPL terms | ||||||
|  | To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com | ||||||
|  | */ | ||||||
|  | dhtmlx=function(obj){ | ||||||
|  | 	for (var a in obj) dhtmlx[a]=obj[a]; | ||||||
|  | 	return dhtmlx; //simple singleton
 | ||||||
|  | }; | ||||||
|  | dhtmlx.extend_api=function(name,map,ext){ | ||||||
|  | 	var t = window[name]; | ||||||
|  | 	if (!t) return; //component not defined
 | ||||||
|  | 	window[name]=function(obj){ | ||||||
|  | 		if (obj && typeof obj == "object" && !obj.tagName){ | ||||||
|  | 			var that = t.apply(this,(map._init?map._init(obj):arguments)); | ||||||
|  | 			//global settings
 | ||||||
|  | 			for (var a in dhtmlx) | ||||||
|  | 				if (map[a]) this[map[a]](dhtmlx[a]);			 | ||||||
|  | 			//local settings
 | ||||||
|  | 			for (var a in obj){ | ||||||
|  | 				if (map[a]) this[map[a]](obj[a]); | ||||||
|  | 				else if (a.indexOf("on")==0){ | ||||||
|  | 					this.attachEvent(a,obj[a]); | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} else | ||||||
|  | 			var that = t.apply(this,arguments); | ||||||
|  | 		if (map._patch) map._patch(this); | ||||||
|  | 		return that||this; | ||||||
|  | 	}; | ||||||
|  | 	window[name].prototype=t.prototype; | ||||||
|  | 	if (ext) | ||||||
|  | 		dhtmlXHeir(window[name].prototype,ext); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | dhtmlxAjax={ | ||||||
|  | 	get:function(url,callback){ | ||||||
|  | 		var t=new dtmlXMLLoaderObject(true); | ||||||
|  | 		t.async=(arguments.length<3); | ||||||
|  | 		t.waitCall=callback; | ||||||
|  | 		t.loadXML(url) | ||||||
|  | 		return t; | ||||||
|  | 	}, | ||||||
|  | 	post:function(url,post,callback){ | ||||||
|  | 		var t=new dtmlXMLLoaderObject(true); | ||||||
|  | 		t.async=(arguments.length<4); | ||||||
|  | 		t.waitCall=callback; | ||||||
|  | 		t.loadXML(url,true,post) | ||||||
|  | 		return t; | ||||||
|  | 	}, | ||||||
|  | 	getSync:function(url){ | ||||||
|  | 		return this.get(url,null,true) | ||||||
|  | 	}, | ||||||
|  | 	postSync:function(url,post){ | ||||||
|  | 		return this.post(url,post,null,true);		 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |   *     @desc: xmlLoader object | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: funcObject - xml parser function | ||||||
|  |   *     @param: object - jsControl object | ||||||
|  |   *     @param: async - sync/async mode (async by default) | ||||||
|  |   *     @param: rSeed - enable/disable random seed ( prevent IE caching) | ||||||
|  |   *     @topic: 0 | ||||||
|  |   */ | ||||||
|  | function dtmlXMLLoaderObject(funcObject, dhtmlObject, async, rSeed){ | ||||||
|  | 	this.xmlDoc=""; | ||||||
|  | 
 | ||||||
|  | 	if (typeof (async) != "undefined") | ||||||
|  | 		this.async=async; | ||||||
|  | 	else | ||||||
|  | 		this.async=true; | ||||||
|  | 
 | ||||||
|  | 	this.onloadAction=funcObject||null; | ||||||
|  | 	this.mainObject=dhtmlObject||null; | ||||||
|  | 	this.waitCall=null; | ||||||
|  | 	this.rSeed=rSeed||false; | ||||||
|  | 	return this; | ||||||
|  | }; | ||||||
|  | /** | ||||||
|  |   *     @desc: xml loading handler | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: dtmlObject - xmlLoader object | ||||||
|  |   *     @topic: 0 | ||||||
|  |   */ | ||||||
|  | dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ | ||||||
|  | 	var once = true; | ||||||
|  | 	this.check=function (){ | ||||||
|  | 		if ((dhtmlObject)&&(dhtmlObject.onloadAction != null)){ | ||||||
|  | 			if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ | ||||||
|  | 				if (!once) | ||||||
|  | 					return; | ||||||
|  | 
 | ||||||
|  | 				once=false; //IE 5 fix
 | ||||||
|  | 				if (typeof dhtmlObject.onloadAction == "function") | ||||||
|  | 					dhtmlObject.onloadAction(dhtmlObject.mainObject, null, null, null, dhtmlObject); | ||||||
|  | 
 | ||||||
|  | 				if (dhtmlObject.waitCall){ | ||||||
|  | 					dhtmlObject.waitCall.call(this,dhtmlObject); | ||||||
|  | 					dhtmlObject.waitCall=null; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	}; | ||||||
|  | 	return this.check; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |   *     @desc: return XML top node | ||||||
|  |   *     @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) | ||||||
|  |   *     @type: private | ||||||
|  |   *     @returns: top XML node | ||||||
|  |   *     @topic: 0   | ||||||
|  |   */ | ||||||
|  | dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName, oldObj){ | ||||||
|  | 	if (this.xmlDoc.responseXML){ | ||||||
|  | 		var temp = this.xmlDoc.responseXML.getElementsByTagName(tagName); | ||||||
|  | 		if(temp.length==0 && tagName.indexOf(":")!=-1) | ||||||
|  | 			var temp = this.xmlDoc.responseXML.getElementsByTagName((tagName.split(":"))[1]); | ||||||
|  | 		var z = temp[0]; | ||||||
|  | 	} else | ||||||
|  | 		var z = this.xmlDoc.documentElement; | ||||||
|  | 
 | ||||||
|  | 	if (z){ | ||||||
|  | 		this._retry=false; | ||||||
|  | 		return z; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if ((_isIE)&&(!this._retry)){ | ||||||
|  | 		//fall back to MS.XMLDOM
 | ||||||
|  | 		var xmlString = this.xmlDoc.responseText; | ||||||
|  | 		var oldObj = this.xmlDoc; | ||||||
|  | 		this._retry=true; | ||||||
|  | 		this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); | ||||||
|  | 		this.xmlDoc.async=false; | ||||||
|  | 		this.xmlDoc["loadXM"+"L"](xmlString); | ||||||
|  | 
 | ||||||
|  | 		return this.getXMLTopNode(tagName, oldObj); | ||||||
|  | 	} | ||||||
|  | 	dhtmlxError.throwError("LoadXML", "Incorrect XML", [ | ||||||
|  | 		(oldObj||this.xmlDoc), | ||||||
|  | 		this.mainObject | ||||||
|  | 	]); | ||||||
|  | 
 | ||||||
|  | 	return document.createElement("DIV"); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |   *     @desc: load XML from string | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: xmlString - xml string | ||||||
|  |   *     @topic: 0   | ||||||
|  |   */ | ||||||
|  | dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ | ||||||
|  | 	{ | ||||||
|  | 		try{ | ||||||
|  | 			var parser = new DOMParser(); | ||||||
|  | 			this.xmlDoc=parser.parseFromString(xmlString, "text/xml"); | ||||||
|  | 		} | ||||||
|  | 		catch (e){ | ||||||
|  | 			this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); | ||||||
|  | 			this.xmlDoc.async=this.async; | ||||||
|  | 			this.xmlDoc["loadXM"+"L"](xmlString); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	this.onloadAction(this.mainObject, null, null, null, this); | ||||||
|  | 
 | ||||||
|  | 	if (this.waitCall){ | ||||||
|  | 		this.waitCall(); | ||||||
|  | 		this.waitCall=null; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | /** | ||||||
|  |   *     @desc: load XML | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: filePath - xml file path | ||||||
|  |   *     @param: postMode - send POST request | ||||||
|  |   *     @param: postVars - list of vars for post request | ||||||
|  |   *     @topic: 0 | ||||||
|  |   */ | ||||||
|  | dtmlXMLLoaderObject.prototype.loadXML=function(filePath, postMode, postVars, rpc){ | ||||||
|  | 	if (this.rSeed) | ||||||
|  | 		filePath+=((filePath.indexOf("?") != -1) ? "&" : "?")+"a_dhx_rSeed="+(new Date()).valueOf(); | ||||||
|  | 	this.filePath=filePath; | ||||||
|  | 
 | ||||||
|  | 	if ((!_isIE)&&(window.XMLHttpRequest)) | ||||||
|  | 		this.xmlDoc=new XMLHttpRequest(); | ||||||
|  | 	else { | ||||||
|  | 		if (document.implementation&&document.implementation.createDocument){ | ||||||
|  | 			this.xmlDoc=document.implementation.createDocument("", "", null); | ||||||
|  | 			this.xmlDoc.onload=new this.waitLoadFunction(this); | ||||||
|  | 			this.xmlDoc.load(filePath); | ||||||
|  | 			return; | ||||||
|  | 		} else | ||||||
|  | 			this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP"); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (this.async) | ||||||
|  | 		this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); | ||||||
|  | 	this.xmlDoc.open(postMode ? "POST" : "GET", filePath, this.async); | ||||||
|  | 
 | ||||||
|  | 	if (rpc){ | ||||||
|  | 		this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 ("+navigator.userAgent+")"); | ||||||
|  | 		this.xmlDoc.setRequestHeader("Content-type", "text/xml"); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	else if (postMode) | ||||||
|  | 		this.xmlDoc.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); | ||||||
|  | 		 | ||||||
|  | 	this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"); | ||||||
|  | 	this.xmlDoc.send(null||postVars); | ||||||
|  | 
 | ||||||
|  | 	if (!this.async) | ||||||
|  | 		(new this.waitLoadFunction(this))(); | ||||||
|  | }; | ||||||
|  | /** | ||||||
|  |   *     @desc: destructor, cleans used memory | ||||||
|  |   *     @type: private | ||||||
|  |   *     @topic: 0 | ||||||
|  |   */ | ||||||
|  | dtmlXMLLoaderObject.prototype.destructor=function(){ | ||||||
|  | 	this._filterXPath = null; | ||||||
|  | 	this._getAllNamedChilds = null; | ||||||
|  | 	this._retry = null; | ||||||
|  | 	this.async = null; | ||||||
|  | 	this.rSeed = null; | ||||||
|  | 	this.filePath = null; | ||||||
|  | 	this.onloadAction = null; | ||||||
|  | 	this.mainObject = null; | ||||||
|  | 	this.xmlDoc = null; | ||||||
|  | 	this.doXPath = null; | ||||||
|  | 	this.doXPathOpera = null; | ||||||
|  | 	this.doXSLTransToObject = null; | ||||||
|  | 	this.doXSLTransToString = null; | ||||||
|  | 	this.loadXML = null; | ||||||
|  | 	this.loadXMLString = null; | ||||||
|  | 	// this.waitLoadFunction = null;
 | ||||||
|  | 	this.doSerialization = null; | ||||||
|  | 	this.xmlNodeToJSON = null; | ||||||
|  | 	this.getXMLTopNode = null; | ||||||
|  | 	this.setXSLParamValue = null; | ||||||
|  | 	return null; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dtmlXMLLoaderObject.prototype.xmlNodeToJSON = function(node){ | ||||||
|  |         var t={}; | ||||||
|  |         for (var i=0; i<node.attributes.length; i++) | ||||||
|  |             t[node.attributes[i].name]=node.attributes[i].value; | ||||||
|  |         t["_tagvalue"]=node.firstChild?node.firstChild.nodeValue:""; | ||||||
|  |         for (var i=0; i<node.childNodes.length; i++){ | ||||||
|  |             var name=node.childNodes[i].tagName; | ||||||
|  |             if (name){ | ||||||
|  |                 if (!t[name]) t[name]=[]; | ||||||
|  |                 t[name].push(this.xmlNodeToJSON(node.childNodes[i])); | ||||||
|  |             }             | ||||||
|  |         }         | ||||||
|  |         return t; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | /**   | ||||||
|  |   *     @desc: Call wrapper | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: funcObject - action handler | ||||||
|  |   *     @param: dhtmlObject - user data | ||||||
|  |   *     @returns: function handler | ||||||
|  |   *     @topic: 0   | ||||||
|  |   */ | ||||||
|  | function callerFunction(funcObject, dhtmlObject){ | ||||||
|  | 	this.handler=function(e){ | ||||||
|  | 		if (!e) | ||||||
|  | 			e=window.event; | ||||||
|  | 		funcObject(e, dhtmlObject); | ||||||
|  | 		return true; | ||||||
|  | 	}; | ||||||
|  | 	return this.handler; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /**   | ||||||
|  |   *     @desc: Calculate absolute position of html object | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: htmlObject - html object | ||||||
|  |   *     @topic: 0   | ||||||
|  |   */ | ||||||
|  | function getAbsoluteLeft(htmlObject){ | ||||||
|  | 	return getOffset(htmlObject).left; | ||||||
|  | } | ||||||
|  | /** | ||||||
|  |   *     @desc: Calculate absolute position of html object | ||||||
|  |   *     @type: private | ||||||
|  |   *     @param: htmlObject - html object | ||||||
|  |   *     @topic: 0   | ||||||
|  |   */ | ||||||
|  | function getAbsoluteTop(htmlObject){ | ||||||
|  | 	return getOffset(htmlObject).top; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function getOffsetSum(elem) { | ||||||
|  | 	var top=0, left=0; | ||||||
|  | 	while(elem) { | ||||||
|  | 		top = top + parseInt(elem.offsetTop); | ||||||
|  | 		left = left + parseInt(elem.offsetLeft); | ||||||
|  | 		elem = elem.offsetParent; | ||||||
|  | 	} | ||||||
|  | 	return {top: top, left: left}; | ||||||
|  | } | ||||||
|  | function getOffsetRect(elem) { | ||||||
|  | 	var box = elem.getBoundingClientRect(); | ||||||
|  | 	var body = document.body; | ||||||
|  | 	var docElem = document.documentElement; | ||||||
|  | 	var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop; | ||||||
|  | 	var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft; | ||||||
|  | 	var clientTop = docElem.clientTop || body.clientTop || 0; | ||||||
|  | 	var clientLeft = docElem.clientLeft || body.clientLeft || 0; | ||||||
|  | 	var top  = box.top +  scrollTop - clientTop; | ||||||
|  | 	var left = box.left + scrollLeft - clientLeft; | ||||||
|  | 	return { top: Math.round(top), left: Math.round(left) }; | ||||||
|  | } | ||||||
|  | function getOffset(elem) { | ||||||
|  | 	if (elem.getBoundingClientRect) { | ||||||
|  | 		return getOffsetRect(elem); | ||||||
|  | 	} else { | ||||||
|  | 		return getOffsetSum(elem); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /**   | ||||||
|  | *     @desc: Convert string to it boolean representation | ||||||
|  | *     @type: private | ||||||
|  | *     @param: inputString - string for covertion | ||||||
|  | *     @topic: 0 | ||||||
|  | */ | ||||||
|  | function convertStringToBoolean(inputString){ | ||||||
|  | 	if (typeof (inputString) == "string") | ||||||
|  | 		inputString=inputString.toLowerCase(); | ||||||
|  | 
 | ||||||
|  | 	switch (inputString){ | ||||||
|  | 		case "1": | ||||||
|  | 		case "true": | ||||||
|  | 		case "yes": | ||||||
|  | 		case "y": | ||||||
|  | 		case 1: | ||||||
|  | 		case true: | ||||||
|  | 			return true; | ||||||
|  | 			break; | ||||||
|  | 
 | ||||||
|  | 		default: return false; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /**   | ||||||
|  | *     @desc: find out what symbol to use as url param delimiters in further params | ||||||
|  | *     @type: private | ||||||
|  | *     @param: str - current url string | ||||||
|  | *     @topic: 0   | ||||||
|  | */ | ||||||
|  | function getUrlSymbol(str){ | ||||||
|  | 	if (str.indexOf("?") != -1) | ||||||
|  | 		return "&" | ||||||
|  | 	else | ||||||
|  | 		return "?" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function dhtmlDragAndDropObject(){ | ||||||
|  | 	if (window.dhtmlDragAndDrop) | ||||||
|  | 		return window.dhtmlDragAndDrop; | ||||||
|  | 
 | ||||||
|  | 	this.lastLanding=0; | ||||||
|  | 	this.dragNode=0; | ||||||
|  | 	this.dragStartNode=0; | ||||||
|  | 	this.dragStartObject=0; | ||||||
|  | 	this.tempDOMU=null; | ||||||
|  | 	this.tempDOMM=null; | ||||||
|  | 	this.waitDrag=0; | ||||||
|  | 	window.dhtmlDragAndDrop=this; | ||||||
|  | 
 | ||||||
|  | 	return this; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | dhtmlDragAndDropObject.prototype.removeDraggableItem=function(htmlNode){ | ||||||
|  | 	htmlNode.onmousedown=null; | ||||||
|  | 	htmlNode.dragStarter=null; | ||||||
|  | 	htmlNode.dragLanding=null; | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.addDraggableItem=function(htmlNode, dhtmlObject){ | ||||||
|  | 	htmlNode.onmousedown=this.preCreateDragCopy; | ||||||
|  | 	htmlNode.dragStarter=dhtmlObject; | ||||||
|  | 	this.addDragLanding(htmlNode, dhtmlObject); | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.addDragLanding=function(htmlNode, dhtmlObject){ | ||||||
|  | 	htmlNode.dragLanding=dhtmlObject; | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(e){ | ||||||
|  | 	if ((e||window.event) && (e||event).button == 2) | ||||||
|  | 		return; | ||||||
|  | 
 | ||||||
|  | 	if (window.dhtmlDragAndDrop.waitDrag){ | ||||||
|  | 		window.dhtmlDragAndDrop.waitDrag=0; | ||||||
|  | 		document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU; | ||||||
|  | 		document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM; | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	window.dhtmlDragAndDrop.waitDrag=1; | ||||||
|  | 	window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup; | ||||||
|  | 	window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove; | ||||||
|  | 	window.dhtmlDragAndDrop.dragStartNode=this; | ||||||
|  | 	window.dhtmlDragAndDrop.dragStartObject=this.dragStarter; | ||||||
|  | 	document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy; | ||||||
|  | 	document.body.onmousemove=window.dhtmlDragAndDrop.callDrag; | ||||||
|  | 	window.dhtmlDragAndDrop.downtime = new Date().valueOf(); | ||||||
|  | 	 | ||||||
|  | 
 | ||||||
|  | 	if ((e)&&(e.preventDefault)){ | ||||||
|  | 		e.preventDefault(); | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 	return false; | ||||||
|  | }; | ||||||
|  | dhtmlDragAndDropObject.prototype.callDrag=function(e){ | ||||||
|  | 	if (!e) | ||||||
|  | 		e=window.event; | ||||||
|  | 	dragger=window.dhtmlDragAndDrop; | ||||||
|  | 	if ((new Date()).valueOf()-dragger.downtime<100) return; | ||||||
|  | 
 | ||||||
|  | 	if ((e.button == 0)&&(_isIE)) | ||||||
|  | 		return dragger.stopDrag(); | ||||||
|  | 
 | ||||||
|  | 	if (!dragger.dragNode&&dragger.waitDrag){ | ||||||
|  | 		dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode, e); | ||||||
|  | 
 | ||||||
|  | 		if (!dragger.dragNode) | ||||||
|  | 			return dragger.stopDrag(); | ||||||
|  | 
 | ||||||
|  | 		dragger.dragNode.onselectstart=function(){return false;} | ||||||
|  | 		dragger.gldragNode=dragger.dragNode; | ||||||
|  | 		document.body.appendChild(dragger.dragNode); | ||||||
|  | 		document.body.onmouseup=dragger.stopDrag; | ||||||
|  | 		dragger.waitDrag=0; | ||||||
|  | 		dragger.dragNode.pWindow=window; | ||||||
|  | 		dragger.initFrameRoute(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (dragger.dragNode.parentNode != window.document.body){ | ||||||
|  | 		var grd = dragger.gldragNode; | ||||||
|  | 
 | ||||||
|  | 		if (dragger.gldragNode.old) | ||||||
|  | 			grd=dragger.gldragNode.old; | ||||||
|  | 
 | ||||||
|  | 		//if (!document.all) dragger.calculateFramePosition();
 | ||||||
|  | 		grd.parentNode.removeChild(grd); | ||||||
|  | 		var oldBody = dragger.dragNode.pWindow; | ||||||
|  | 
 | ||||||
|  | 		if (grd.pWindow &&	grd.pWindow.dhtmlDragAndDrop.lastLanding) | ||||||
|  | 			grd.pWindow.dhtmlDragAndDrop.lastLanding.dragLanding._dragOut(grd.pWindow.dhtmlDragAndDrop.lastLanding);	 | ||||||
|  | 			 | ||||||
|  | 		//		var oldp=dragger.dragNode.parentObject;
 | ||||||
|  | 		if (_isIE){ | ||||||
|  | 			var div = document.createElement("Div"); | ||||||
|  | 			div.innerHTML=dragger.dragNode.outerHTML; | ||||||
|  | 			dragger.dragNode=div.childNodes[0]; | ||||||
|  | 		} else | ||||||
|  | 			dragger.dragNode=dragger.dragNode.cloneNode(true); | ||||||
|  | 
 | ||||||
|  | 		dragger.dragNode.pWindow=window; | ||||||
|  | 		//		dragger.dragNode.parentObject=oldp;
 | ||||||
|  | 
 | ||||||
|  | 		dragger.gldragNode.old=dragger.dragNode; | ||||||
|  | 		document.body.appendChild(dragger.dragNode); | ||||||
|  | 		oldBody.dhtmlDragAndDrop.dragNode=dragger.dragNode; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	dragger.dragNode.style.left=e.clientX+15+(dragger.fx | ||||||
|  | 		? dragger.fx*(-1) | ||||||
|  | 		: 0) | ||||||
|  | 		+(document.body.scrollLeft||document.documentElement.scrollLeft)+"px"; | ||||||
|  | 	dragger.dragNode.style.top=e.clientY+3+(dragger.fy | ||||||
|  | 		? dragger.fy*(-1) | ||||||
|  | 		: 0) | ||||||
|  | 		+(document.body.scrollTop||document.documentElement.scrollTop)+"px"; | ||||||
|  | 
 | ||||||
|  | 	if (!e.srcElement) | ||||||
|  | 		var z = e.target; | ||||||
|  | 	else | ||||||
|  | 		z=e.srcElement; | ||||||
|  | 	dragger.checkLanding(z, e); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dhtmlDragAndDropObject.prototype.calculateFramePosition=function(n){ | ||||||
|  | 	//this.fx = 0, this.fy = 0;
 | ||||||
|  | 	if (window.name){ | ||||||
|  | 		var el = parent.frames[window.name].frameElement.offsetParent; | ||||||
|  | 		var fx = 0; | ||||||
|  | 		var fy = 0; | ||||||
|  | 
 | ||||||
|  | 		while (el){ | ||||||
|  | 			fx+=el.offsetLeft; | ||||||
|  | 			fy+=el.offsetTop; | ||||||
|  | 			el=el.offsetParent; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if ((parent.dhtmlDragAndDrop)){ | ||||||
|  | 			var ls = parent.dhtmlDragAndDrop.calculateFramePosition(1); | ||||||
|  | 			fx+=ls.split('_')[0]*1; | ||||||
|  | 			fy+=ls.split('_')[1]*1; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if (n) | ||||||
|  | 			return fx+"_"+fy; | ||||||
|  | 		else | ||||||
|  | 			this.fx=fx; | ||||||
|  | 		this.fy=fy; | ||||||
|  | 	} | ||||||
|  | 	return "0_0"; | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.checkLanding=function(htmlObject, e){ | ||||||
|  | 	if ((htmlObject)&&(htmlObject.dragLanding)){ | ||||||
|  | 		if (this.lastLanding) | ||||||
|  | 			this.lastLanding.dragLanding._dragOut(this.lastLanding); | ||||||
|  | 		this.lastLanding=htmlObject; | ||||||
|  | 		this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding, this.dragStartNode, e.clientX, | ||||||
|  | 			e.clientY, e); | ||||||
|  | 		this.lastLanding_scr=(_isIE ? e.srcElement : e.target); | ||||||
|  | 	} else { | ||||||
|  | 		if ((htmlObject)&&(htmlObject.tagName != "BODY")) | ||||||
|  | 			this.checkLanding(htmlObject.parentNode, e); | ||||||
|  | 		else { | ||||||
|  | 			if (this.lastLanding) | ||||||
|  | 				this.lastLanding.dragLanding._dragOut(this.lastLanding, e.clientX, e.clientY, e); | ||||||
|  | 			this.lastLanding=0; | ||||||
|  | 
 | ||||||
|  | 			if (this._onNotFound) | ||||||
|  | 				this._onNotFound(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.stopDrag=function(e, mode){ | ||||||
|  | 	dragger=window.dhtmlDragAndDrop; | ||||||
|  | 
 | ||||||
|  | 	if (!mode){ | ||||||
|  | 		dragger.stopFrameRoute(); | ||||||
|  | 		var temp = dragger.lastLanding; | ||||||
|  | 		dragger.lastLanding=null; | ||||||
|  | 
 | ||||||
|  | 		if (temp) | ||||||
|  | 			temp.dragLanding._drag(dragger.dragStartNode, dragger.dragStartObject, temp, (_isIE | ||||||
|  | 				? event.srcElement | ||||||
|  | 				: e.target)); | ||||||
|  | 	} | ||||||
|  | 	dragger.lastLanding=null; | ||||||
|  | 
 | ||||||
|  | 	if ((dragger.dragNode)&&(dragger.dragNode.parentNode == document.body)) | ||||||
|  | 		dragger.dragNode.parentNode.removeChild(dragger.dragNode); | ||||||
|  | 	dragger.dragNode=0; | ||||||
|  | 	dragger.gldragNode=0; | ||||||
|  | 	dragger.fx=0; | ||||||
|  | 	dragger.fy=0; | ||||||
|  | 	dragger.dragStartNode=0; | ||||||
|  | 	dragger.dragStartObject=0; | ||||||
|  | 	document.body.onmouseup=dragger.tempDOMU; | ||||||
|  | 	document.body.onmousemove=dragger.tempDOMM; | ||||||
|  | 	dragger.tempDOMU=null; | ||||||
|  | 	dragger.tempDOMM=null; | ||||||
|  | 	dragger.waitDrag=0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dhtmlDragAndDropObject.prototype.stopFrameRoute=function(win){ | ||||||
|  | 	if (win) | ||||||
|  | 		window.dhtmlDragAndDrop.stopDrag(1, 1); | ||||||
|  | 
 | ||||||
|  | 	for (var i = 0; i < window.frames.length; i++){ | ||||||
|  | 		try{ | ||||||
|  | 		if ((window.frames[i] != win)&&(window.frames[i].dhtmlDragAndDrop)) | ||||||
|  | 			window.frames[i].dhtmlDragAndDrop.stopFrameRoute(window); | ||||||
|  | 		} catch(e){} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	try{ | ||||||
|  | 	if ((parent.dhtmlDragAndDrop)&&(parent != window)&&(parent != win)) | ||||||
|  | 		parent.dhtmlDragAndDrop.stopFrameRoute(window); | ||||||
|  | 	} catch(e){} | ||||||
|  | } | ||||||
|  | dhtmlDragAndDropObject.prototype.initFrameRoute=function(win, mode){ | ||||||
|  | 	if (win){ | ||||||
|  | 		window.dhtmlDragAndDrop.preCreateDragCopy(); | ||||||
|  | 		window.dhtmlDragAndDrop.dragStartNode=win.dhtmlDragAndDrop.dragStartNode; | ||||||
|  | 		window.dhtmlDragAndDrop.dragStartObject=win.dhtmlDragAndDrop.dragStartObject; | ||||||
|  | 		window.dhtmlDragAndDrop.dragNode=win.dhtmlDragAndDrop.dragNode; | ||||||
|  | 		window.dhtmlDragAndDrop.gldragNode=win.dhtmlDragAndDrop.dragNode; | ||||||
|  | 		window.document.body.onmouseup=window.dhtmlDragAndDrop.stopDrag; | ||||||
|  | 		window.waitDrag=0; | ||||||
|  | 
 | ||||||
|  | 		if (((!_isIE)&&(mode))&&((!_isFF)||(_FFrv < 1.8))) | ||||||
|  | 			window.dhtmlDragAndDrop.calculateFramePosition(); | ||||||
|  | 	} | ||||||
|  | 	try{ | ||||||
|  | 	if ((parent.dhtmlDragAndDrop)&&(parent != window)&&(parent != win)) | ||||||
|  | 		parent.dhtmlDragAndDrop.initFrameRoute(window); | ||||||
|  | 	}catch(e){} | ||||||
|  | 
 | ||||||
|  | 	for (var i = 0; i < window.frames.length; i++){ | ||||||
|  | 		try{ | ||||||
|  | 		if ((window.frames[i] != win)&&(window.frames[i].dhtmlDragAndDrop)) | ||||||
|  | 			window.frames[i].dhtmlDragAndDrop.initFrameRoute(window, ((!win||mode) ? 1 : 0)); | ||||||
|  | 		} catch(e){} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var _isFF = false; | ||||||
|  | var _isIE = false; | ||||||
|  | var _isOpera = false; | ||||||
|  | var _isKHTML = false; | ||||||
|  | var _isMacOS = false; | ||||||
|  | var _isChrome = false; | ||||||
|  | 
 | ||||||
|  | if (navigator.userAgent.indexOf('Macintosh') != -1) | ||||||
|  | 	_isMacOS=true; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if (navigator.userAgent.toLowerCase().indexOf('chrome')>-1) | ||||||
|  | 	_isChrome=true; | ||||||
|  | 
 | ||||||
|  | if ((navigator.userAgent.indexOf('Safari') != -1)||(navigator.userAgent.indexOf('Konqueror') != -1)){ | ||||||
|  | 	var _KHTMLrv = parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Safari')+7, 5)); | ||||||
|  | 
 | ||||||
|  | 	if (_KHTMLrv > 525){ //mimic FF behavior for Safari 3.1+
 | ||||||
|  | 		_isFF=true; | ||||||
|  | 		var _FFrv = 1.9; | ||||||
|  | 	} else | ||||||
|  | 		_isKHTML=true; | ||||||
|  | } else if (navigator.userAgent.indexOf('Opera') != -1){ | ||||||
|  | 	_isOpera=true; | ||||||
|  | 	_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6, 3)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | else if (navigator.appName.indexOf("Microsoft") != -1){ | ||||||
|  | 	_isIE=true; | ||||||
|  | 	if (navigator.appVersion.indexOf("MSIE 8.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; | ||||||
|  | } else { | ||||||
|  | 	_isFF=true; | ||||||
|  | 	var _FFrv = parseFloat(navigator.userAgent.split("rv:")[1]) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | //multibrowser Xpath processor
 | ||||||
|  | dtmlXMLLoaderObject.prototype.doXPath=function(xpathExp, docObj, namespace, result_type){ | ||||||
|  | 	if (_isKHTML || (!_isIE && !window.XPathResult)) | ||||||
|  | 		return this.doXPathOpera(xpathExp, docObj); | ||||||
|  | 
 | ||||||
|  | 	if (_isIE){ //IE
 | ||||||
|  | 		if (!docObj) | ||||||
|  | 			if (!this.xmlDoc.nodeName) | ||||||
|  | 				docObj=this.xmlDoc.responseXML | ||||||
|  | 			else | ||||||
|  | 				docObj=this.xmlDoc; | ||||||
|  | 
 | ||||||
|  | 		if (!docObj) | ||||||
|  | 			dhtmlxError.throwError("LoadXML", "Incorrect XML", [ | ||||||
|  | 				(docObj||this.xmlDoc), | ||||||
|  | 				this.mainObject | ||||||
|  | 			]); | ||||||
|  | 
 | ||||||
|  | 		if (namespace != null) | ||||||
|  | 			docObj.setProperty("SelectionNamespaces", "xmlns:xsl='"+namespace+"'"); //
 | ||||||
|  | 
 | ||||||
|  | 		if (result_type == 'single'){ | ||||||
|  | 			return docObj.selectSingleNode(xpathExp); | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  | 			return docObj.selectNodes(xpathExp)||new Array(0); | ||||||
|  | 		} | ||||||
|  | 	} else { //Mozilla
 | ||||||
|  | 		var nodeObj = docObj; | ||||||
|  | 
 | ||||||
|  | 		if (!docObj){ | ||||||
|  | 			if (!this.xmlDoc.nodeName){ | ||||||
|  | 				docObj=this.xmlDoc.responseXML | ||||||
|  | 			} | ||||||
|  | 			else { | ||||||
|  | 				docObj=this.xmlDoc; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if (!docObj) | ||||||
|  | 			dhtmlxError.throwError("LoadXML", "Incorrect XML", [ | ||||||
|  | 				(docObj||this.xmlDoc), | ||||||
|  | 				this.mainObject | ||||||
|  | 			]); | ||||||
|  | 
 | ||||||
|  | 		if (docObj.nodeName.indexOf("document") != -1){ | ||||||
|  | 			nodeObj=docObj; | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  | 			nodeObj=docObj; | ||||||
|  | 			docObj=docObj.ownerDocument; | ||||||
|  | 		} | ||||||
|  | 		var retType = XPathResult.ANY_TYPE; | ||||||
|  | 
 | ||||||
|  | 		if (result_type == 'single') | ||||||
|  | 			retType=XPathResult.FIRST_ORDERED_NODE_TYPE | ||||||
|  | 		var rowsCol = new Array(); | ||||||
|  | 		var col = docObj.evaluate(xpathExp, nodeObj, function(pref){ | ||||||
|  | 			return namespace | ||||||
|  | 		}, retType, null); | ||||||
|  | 
 | ||||||
|  | 		if (retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ | ||||||
|  | 			return col.singleNodeValue; | ||||||
|  | 		} | ||||||
|  | 		var thisColMemb = col.iterateNext(); | ||||||
|  | 
 | ||||||
|  | 		while (thisColMemb){ | ||||||
|  | 			rowsCol[rowsCol.length]=thisColMemb; | ||||||
|  | 			thisColMemb=col.iterateNext(); | ||||||
|  | 		} | ||||||
|  | 		return rowsCol; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function _dhtmlxError(type, name, params){ | ||||||
|  | 	if (!this.catches) | ||||||
|  | 		this.catches=new Array(); | ||||||
|  | 
 | ||||||
|  | 	return this; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | _dhtmlxError.prototype.catchError=function(type, func_name){ | ||||||
|  | 	this.catches[type]=func_name; | ||||||
|  | } | ||||||
|  | _dhtmlxError.prototype.throwError=function(type, name, params){ | ||||||
|  | 	if (this.catches[type]) | ||||||
|  | 		return this.catches[type](type, name, params); | ||||||
|  | 
 | ||||||
|  | 	if (this.catches["ALL"]) | ||||||
|  | 		return this.catches["ALL"](type, name, params); | ||||||
|  | 
 | ||||||
|  | 	alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]); | ||||||
|  | 	return null; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window.dhtmlxError=new _dhtmlxError(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | //opera fake, while 9.0 not released
 | ||||||
|  | //multibrowser Xpath processor
 | ||||||
|  | dtmlXMLLoaderObject.prototype.doXPathOpera=function(xpathExp, docObj){ | ||||||
|  | 	//this is fake for Opera
 | ||||||
|  | 	var z = xpathExp.replace(/[\/]+/gi, "/").split('/'); | ||||||
|  | 	var obj = null; | ||||||
|  | 	var i = 1; | ||||||
|  | 
 | ||||||
|  | 	if (!z.length) | ||||||
|  | 		return []; | ||||||
|  | 
 | ||||||
|  | 	if (z[0] == ".") | ||||||
|  | 		obj=[docObj]; else if (z[0] == ""){ | ||||||
|  | 		obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g, "")); | ||||||
|  | 		i++; | ||||||
|  | 	} else | ||||||
|  | 		return []; | ||||||
|  | 
 | ||||||
|  | 	for (i; i < z.length; i++)obj=this._getAllNamedChilds(obj, z[i]); | ||||||
|  | 
 | ||||||
|  | 	if (z[i-1].indexOf("[") != -1) | ||||||
|  | 		obj=this._filterXPath(obj, z[i-1]); | ||||||
|  | 	return obj; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dtmlXMLLoaderObject.prototype._filterXPath=function(a, b){ | ||||||
|  | 	var c = new Array(); | ||||||
|  | 	var b = b.replace(/[^\[]*\[\@/g, "").replace(/[\[\]\@]*/g, ""); | ||||||
|  | 
 | ||||||
|  | 	for (var i = 0; i < a.length; i++) | ||||||
|  | 		if (a[i].getAttribute(b)) | ||||||
|  | 			c[c.length]=a[i]; | ||||||
|  | 
 | ||||||
|  | 	return c; | ||||||
|  | } | ||||||
|  | dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(a, b){ | ||||||
|  | 	var c = new Array(); | ||||||
|  | 
 | ||||||
|  | 	if (_isKHTML) | ||||||
|  | 		b=b.toUpperCase(); | ||||||
|  | 
 | ||||||
|  | 	for (var i = 0; i < a.length; i++)for (var j = 0; j < a[i].childNodes.length; j++){ | ||||||
|  | 		if (_isKHTML){ | ||||||
|  | 			if (a[i].childNodes[j].tagName&&a[i].childNodes[j].tagName.toUpperCase() == b) | ||||||
|  | 				c[c.length]=a[i].childNodes[j]; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		else if (a[i].childNodes[j].tagName == b) | ||||||
|  | 			c[c.length]=a[i].childNodes[j]; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return c; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function dhtmlXHeir(a, b){ | ||||||
|  | 	for (var c in b) | ||||||
|  | 		if (typeof (b[c]) == "function") | ||||||
|  | 			a[c]=b[c]; | ||||||
|  | 	return a; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function dhtmlxEvent(el, event, handler){ | ||||||
|  | 	if (el.addEventListener) | ||||||
|  | 		el.addEventListener(event, handler, false); | ||||||
|  | 
 | ||||||
|  | 	else if (el.attachEvent) | ||||||
|  | 		el.attachEvent("on"+event, handler); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | //============= XSL Extension ===================================
 | ||||||
|  | 
 | ||||||
|  | dtmlXMLLoaderObject.prototype.xslDoc=null; | ||||||
|  | dtmlXMLLoaderObject.prototype.setXSLParamValue=function(paramName, paramValue, xslDoc){ | ||||||
|  | 	if (!xslDoc) | ||||||
|  | 		xslDoc=this.xslDoc | ||||||
|  | 
 | ||||||
|  | 	if (xslDoc.responseXML) | ||||||
|  | 		xslDoc=xslDoc.responseXML; | ||||||
|  | 	var item = | ||||||
|  | 		this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+paramName+"']", xslDoc, | ||||||
|  | 			"http:/\/www.w3.org/1999/XSL/Transform", "single"); | ||||||
|  | 
 | ||||||
|  | 	if (item != null) | ||||||
|  | 		item.firstChild.nodeValue=paramValue | ||||||
|  | } | ||||||
|  | dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(xslDoc, xmlDoc){ | ||||||
|  | 	if (!xslDoc) | ||||||
|  | 		xslDoc=this.xslDoc; | ||||||
|  | 
 | ||||||
|  | 	if (xslDoc.responseXML) | ||||||
|  | 		xslDoc=xslDoc.responseXML | ||||||
|  | 
 | ||||||
|  | 	if (!xmlDoc) | ||||||
|  | 		xmlDoc=this.xmlDoc; | ||||||
|  | 
 | ||||||
|  | 	if (xmlDoc.responseXML) | ||||||
|  | 		xmlDoc=xmlDoc.responseXML | ||||||
|  | 
 | ||||||
|  | 	//MOzilla
 | ||||||
|  | 	if (!_isIE){ | ||||||
|  | 		if (!this.XSLProcessor){ | ||||||
|  | 			this.XSLProcessor=new XSLTProcessor(); | ||||||
|  | 			this.XSLProcessor.importStylesheet(xslDoc); | ||||||
|  | 		} | ||||||
|  | 		var result = this.XSLProcessor.transformToDocument(xmlDoc); | ||||||
|  | 	} else { | ||||||
|  | 		var result = new ActiveXObject("Msxml2.DOMDocument.3.0"); | ||||||
|  | 		try{ | ||||||
|  | 			xmlDoc.transformNodeToObject(xslDoc, result); | ||||||
|  | 		}catch(e){ | ||||||
|  | 			result = xmlDoc.transformNode(xslDoc); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return result; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dtmlXMLLoaderObject.prototype.doXSLTransToString=function(xslDoc, xmlDoc){ | ||||||
|  | 	var res = this.doXSLTransToObject(xslDoc, xmlDoc); | ||||||
|  | 	if(typeof(res)=="string") | ||||||
|  | 		return res; | ||||||
|  | 	return this.doSerialization(res); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dtmlXMLLoaderObject.prototype.doSerialization=function(xmlDoc){ | ||||||
|  | 	if (!xmlDoc) | ||||||
|  | 			xmlDoc=this.xmlDoc; | ||||||
|  | 	if (xmlDoc.responseXML) | ||||||
|  | 			xmlDoc=xmlDoc.responseXML | ||||||
|  | 	if (!_isIE){ | ||||||
|  | 		var xmlSerializer = new XMLSerializer(); | ||||||
|  | 		return xmlSerializer.serializeToString(xmlDoc); | ||||||
|  | 	} else | ||||||
|  | 		return xmlDoc.xml; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  | *   @desc:  | ||||||
|  | *   @type: private | ||||||
|  | */ | ||||||
|  | dhtmlxEventable=function(obj){ | ||||||
|  | 		obj.attachEvent=function(name, catcher, callObj){ | ||||||
|  | 			name='ev_'+name.toLowerCase(); | ||||||
|  | 			if (!this[name]) | ||||||
|  | 				this[name]=new this.eventCatcher(callObj||this); | ||||||
|  | 				 | ||||||
|  | 			return(name+':'+this[name].addEvent(catcher)); //return ID (event name & event ID)
 | ||||||
|  | 		} | ||||||
|  | 		obj.callEvent=function(name, arg0){  | ||||||
|  | 			name='ev_'+name.toLowerCase(); | ||||||
|  | 			if (this[name]) | ||||||
|  | 				return this[name].apply(this, arg0); | ||||||
|  | 			return true; | ||||||
|  | 		} | ||||||
|  | 		obj.checkEvent=function(name){ | ||||||
|  | 			return (!!this['ev_'+name.toLowerCase()]) | ||||||
|  | 		} | ||||||
|  | 		obj.eventCatcher=function(obj){ | ||||||
|  | 			var dhx_catch = []; | ||||||
|  | 			var z = function(){ | ||||||
|  | 				var res = true; | ||||||
|  | 				for (var i = 0; i < dhx_catch.length; i++){ | ||||||
|  | 					if (dhx_catch[i] != null){ | ||||||
|  | 						var zr = dhx_catch[i].apply(obj, arguments); | ||||||
|  | 						res=res&&zr; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				return res; | ||||||
|  | 			} | ||||||
|  | 			z.addEvent=function(ev){ | ||||||
|  | 				if (typeof (ev) != "function") | ||||||
|  | 					ev=eval(ev); | ||||||
|  | 				if (ev) | ||||||
|  | 					return dhx_catch.push(ev)-1; | ||||||
|  | 				return false; | ||||||
|  | 			} | ||||||
|  | 			z.removeEvent=function(id){ | ||||||
|  | 				dhx_catch[id]=null; | ||||||
|  | 			} | ||||||
|  | 			return z; | ||||||
|  | 		} | ||||||
|  | 		obj.detachEvent=function(id){ | ||||||
|  | 			if (id != false){ | ||||||
|  | 				var list = id.split(':');           //get EventName and ID
 | ||||||
|  | 				this[list[0]].removeEvent(list[1]); //remove event
 | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		obj.detachAllEvents = function(){ | ||||||
|  | 			for (var name in this){ | ||||||
|  | 				if (name.indexOf("ev_")==0)  | ||||||
|  | 					delete this[name]; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								data/web/static/images/combo_select.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								data/web/static/images/combo_select.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 309 B | 
		Loading…
	
		Reference in New Issue
	
	Block a user