//
// $Id: live_help.js 3816 2007-09-03 11:19:01Z zeke $
//

live_help = {

	// Int: inverval between the requests (milliseconds)
	request_interval: 3000,

	// Char: mode name [CSCART], set to "mode" for other
	mode_name: mode_name,

	// Char: action name [CSCART], set to "action" for other
	action_name: action_name,

	//
	// Request wrapper
	//
	request: function(data, method, onready)
	{
        var req = new JsHttpRequest();
		var obj = this;
        req.caching = false;
		req.silent = true;
		method = method || 'GET';
		data  = data || {};

		if (onready){
			req.onreadystatechange = function() {
				if (req.readyState == 4) {
					obj[onready](req.responseJS, req.responseText);
				}
			}
		}

        req.open(method, this.request_url, true);
        req.send(data);
	},

	start_timer: function(func)
	{
		if (this._timer) {
			clearInterval(this._timer);
		}
		this._timer = setTimeout(func, this.request_interval);
	},

	construct_popup_params: function(params)
	{
		var param_arr = [];
		for (param in params) {
			param_arr[param_arr.length] = param + '=' + params[param];
		}
		
		return param_arr.join(',');
	},

	get_popup_params: function(overload)
	{
		var params = {
			width: 600,
			height: 410,
			status: 'yes',
			resizable: 'yes',
			scrollbars: 'no'
		}
		params.screenX = (screen.width - params.width) / 2;
		params.screenY = (screen.height - params.height) / 2;
		// For Opera
		params.top = params.screenX - 30;
		params.left = params.screenY;
		
		if (overload != undefined) {
			for (var param in overload) {
				params[param] = overload[param];
			}
		}
		
		return this.construct_popup_params(params)
	},
	
	parse_xml: function(xml)
	{
		if (xml.length == 0) {
			return false;
		}

		var data = {};
		if (window.ActiveXObject) {
			data = new ActiveXObject("Microsoft.XMLDOM");
			data.async = 'false';
			data.loadXML(xml);
		} else {
			var parser = new DOMParser();
			data = parser.parseFromString(xml, "text/xml");
		}

		return data;
	},

	get_subnode_value: function(parent_node, subnode_name)
	{
		var value = '';
		try {
			var node = parent_node.getElementsByTagName(subnode_name)[0].firstChild
			if (node.nodeType == Node.TEXT_NODE) {
				value = node.nodeValue;
			} else {
				value = [node.tagName, node.firstChild.nodeValue];
			}
		} finally {
			return value;
		}
	}
}

if (!window.Node || !Node.ELEMENT_NODE) {
    Node = {
		ELEMENT_NODE: 1, 
		ATTRIBUTE_NODE: 2, 
		TEXT_NODE: 3, 
		CDATA_SECTION_NODE: 4, 
		ENTITY_REFERENCE_NODE: 5,  
		ENTITY_NODE: 6, 
		PROCESSING_INSTRUCTION_NODE: 7, 
		COMMENT_NODE: 8, 
		DOCUMENT_NODE: 9, 
		DOCUMENT_TYPE_NODE: 10, 
		DOCUMENT_FRAGMENT_NODE: 11, 
		NOTATION_NODE: 12
	}
}

/*cs_xml = {
	getValueByPath: function (path)
	{
		var a = path.split('/');
		var obj = this.childNodes;
		for (k in a) {
			if (obj.length)	{
				for (l in obj) {
					if (obj[l].tagName == a[k]) {
						if (obj[l].childNodes && a.length != (parseInt(k)+1))	{
							obj = obj[l].childNodes;
							break;
						}
						obj = obj[l].firstChild;
						break;
					}
				}
			}
		}

		return (obj.nodeValue != undefined) ? obj.nodeValue : '';
	}
}*/
