// JavaScript Document
/*
Copyright DHTMLX LTD http://www.dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license*/
 
 
function dtmlXMLLoaderObject(funcObject, dhtmlObject,async,rSeed)
{
	this.xmlDoc="";
	if(arguments.length==2)
		this.async=true;
	else
 		this.async=async;
	this.onloadAction=funcObject||null;
	this.mainObject=dhtmlObject||null;
	this.waitCall=null;
	this.rSeed=rSeed||false;
	return this;
};

dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject)
{
	this.check=function ()
	{
		if ((dhtmlObject)&&(dhtmlObject.onloadAction!=null))
		{
			if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4))
			{
				dhtmlObject.onloadAction(dhtmlObject.mainObject,null,null,null,dhtmlObject);
				if (dhtmlObject.waitCall)
				{
					dhtmlObject.waitCall();
					dhtmlObject.waitCall=null;
				};
				dhtmlObject=null;
			};
		};
	};
	return this.check;
};

dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName)
{
	if (this.xmlDoc.responseXML)
	{
		var temp=this.xmlDoc.responseXML.getElementsByTagName(tagName);
		var z=temp[0];
	}
	else
 		var z=this.xmlDoc.documentElement;
	if (z)
	{
		this._retry=false;
		return z;
	};
	if ((_isIE)&&(!this._retry))
	{
		var xmlString=this.xmlDoc.responseText;
		this._retry=true;
		this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		this.xmlDoc.async=false;
		this.xmlDoc.loadXML(xmlString);
		return this.getXMLTopNode(tagName);
	};
	dhtmlxError.throwError("LoadXML","Incorrect XML",[this.xmlDoc,this.mainObject]);
	return document.createElement("DIV");
};

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.loadXML(xmlString);
	};
	this.onloadAction(this.mainObject,null,null,null,this);
	if (this.waitCall)
	{
		this.waitCall();
		this.waitCall=null;
	};
};

dtmlXMLLoaderObject.prototype.loadXML=function(filePath,postMode,postVars,rpc)
{
	this.filePath=filePath;
	if (this.rSeed)
		filePath+=((filePath.indexOf("?")!=-1)?"&":"?")+"a_dhx_rSeed="+(new Date()).valueOf();
	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");
	};
	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.onreadystatechange=new this.waitLoadFunction(this);
	this.xmlDoc.send(null||postVars);
};

dtmlXMLLoaderObject.prototype.destructor=function()
{
	this.onloadAction=null;
	this.mainObject=null;
	this.xmlDoc=null;
	return null;
};

function callerFunction(funcObject,dhtmlObject)
{
	this.handler=function(e)
	{
		if (!e)e=window.event;funcObject(e,dhtmlObject);
		return true;
	};
	return this.handler;
};

function getAbsoluteLeft(htmlObject)
{
	var xPos = htmlObject.offsetLeft;
	var temp = htmlObject.offsetParent;
	while (temp != null)
	{
		xPos += temp.offsetLeft;
		temp = temp.offsetParent;
	};
	return xPos;
};

function getAbsoluteTop(htmlObject)
{
	var yPos = htmlObject.offsetTop;
	var temp = htmlObject.offsetParent;
	while (temp != null)
	{
		yPos += temp.offsetTop;
		temp = temp.offsetParent;
	};
	return yPos;
};

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;
	};
};

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 (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;if ((e)&&(e.preventDefault)) {e.preventDefault();return false;};return false;};dhtmlDragAndDropObject.prototype.callDrag=function(e){if (!e)e=window.event;dragger=window.dhtmlDragAndDrop;if ((e.button==0)&&(_isIE)) return dragger.stopDrag();if (!dragger.dragNode){dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode,e);if (!dragger.dragNode)return dragger.stopDrag();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;grd.parentNode.removeChild(grd);var oldBody=dragger.dragNode.pWindow;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.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){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++)if ((window.frames[i]!=win)&&(window.frames[i].dhtmlDragAndDrop))
 window.frames[i].dhtmlDragAndDrop.stopFrameRoute(window);if ((parent.dhtmlDragAndDrop)&&(parent!=window)&&(parent!=win)) 
 parent.dhtmlDragAndDrop.stopFrameRoute(window);};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();};if ((parent.dhtmlDragAndDrop)&&(parent!=window)&&(parent!=win))
 parent.dhtmlDragAndDrop.initFrameRoute(window);for (var i=0;i<window.frames.length;i++)if ((window.frames[i]!=win)&&(window.frames[i].dhtmlDragAndDrop))
 window.frames[i].dhtmlDragAndDrop.initFrameRoute(window,((!win||mode)?1:0));};var _isFF=false;var _isIE=false;var _isOpera=false;var _isKHTML=false;var _isMacOS=false;if (navigator.userAgent.indexOf('Macintosh')!= -1) _isMacOS=true;if ((navigator.userAgent.indexOf('Safari')!= -1)||(navigator.userAgent.indexOf('Konqueror')!= -1))
 _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;else {_isFF=true;var _FFrv=parseFloat(navigator.userAgent.split("rv:")[1])
 };function isIE(){if(navigator.appName.indexOf("Microsoft")!=-1)
 if (navigator.userAgent.indexOf('Opera')== -1)
 return true;return false;};dtmlXMLLoaderObject.prototype.doXPath = function(xpathExp,docObj){if ((_isOpera)||(_isKHTML)) return this.doXPathOpera(xpathExp,docObj);if(_isIE){if(!docObj)if(!this.xmlDoc.nodeName)docObj = this.xmlDoc.responseXML
 else
 docObj = this.xmlDoc;return docObj.selectNodes(xpathExp);}else{var nodeObj = docObj;if(!docObj){if(!this.xmlDoc.nodeName){docObj = this.xmlDoc.responseXML
 }else{docObj = this.xmlDoc;};};if(docObj.nodeName.indexOf("document")!=-1){nodeObj = docObj;}else{nodeObj = docObj;docObj = docObj.ownerDocument;};var rowsCol = new Array();var col = docObj.evaluate(xpathExp, nodeObj, null, XPathResult.ANY_TYPE,null);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();dtmlXMLLoaderObject.prototype.doXPathOpera = function(xpathExp,docObj){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.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();for (var i=0;i<a.length;i++)for (var j=0;j<a[i].childNodes.length;j++)if (a[i].childNodes[j].tagName==b)c[c.length]=a[i].childNodes[j];return c;};function dhtmlXHeir(a,b){for (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);};

