    // etot parser texta vzjat s apple.com
    // retrieve text of an XML document element, including
    // elements using namespaces
    function getElementTextNS(prefix, local, parentElem, index)
    {
        var result = "";
        if (prefix && isIE)
        {
            // IE/Windows way of handling namespaces
            result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
        }
        else
        {
            // the namespace versions of this method
            // (getElementsByTagNameNS()) operate
            // differently in Safari and Mozilla, but both
            // return value with just local name, provided
            // there aren\'t conflicts with non-namespace element
            // names
            result = parentElem.getElementsByTagName(local)[index];
        }
        if (result)
        {
            // get text, accounting for possible
            // whitespace (carriage return) text nodes
            if (result.childNodes.length > 1)
            {
                return result.childNodes[1].nodeValue;
            }
            else
            {
                if (result.firstChild)
                {
            		return result.firstChild.nodeValue;
                }
                else
                {
                	return '';
                }

            }
        } else {
            return false;
            return "n/a";
        }
    }


	/**
		перебираем ветку xml и заполняем тем самым форму.
	*/
	function fetchXML2form2(xml, fnum)
	{
		var fields_branch = xml.getElementsByTagName("data");

		var child = fields_branch[0].firstChild;
		while (child)
		{
		    //console.log(child);
		    //debugO(getElementTextNS("", child.tagName, fields_branch[0], 0));
			if (child.nodeName!="#text")
			{
                //debugO(child.tagName);
                //debugO(getElementTextNS("", child.tagName, fields_branch[0], 0));
                //debugO(document.getElementById(child.tagName+fnum))
                var dEl = document.getElementById(child.tagName+fnum);
                if (dEl)
                {
                    dEl.value = getElementTextNS("", child.tagName, fields_branch[0], 0);
                }
			    //console.log(child.nodeName);
			    /*
					var tmp_o = document.getElementById(child.tagName);
					var value = getElementTextNS("", child.tagName, values_branch[0], 0);
					if (tmp_o)
					{
						elementSetValue(tmp_o, value);
					}
				*/
			}

			child = child.nextSibling;
		}
	}

	/**
	   получаем номер дня недели из даты в формате dd.mm.yyyy
	*/
	function determineWeekDay(datestr)
	{
	    var dd = datestr.substr(0, 2);
	    var mm = datestr.substr(3, 2);
	    var yyyy = datestr.substr(6, 4);

	    if (mm.substr(0,1)=='0') mm = mm.substr(1,1);
	    if (dd.substr(0,1)=='0') dd = dd.substr(1,1);

	    //console.log(dd);
	    //console.log(mm);
	    //console.log(yyyy);

	    var date = new Date();
	    //var date = new Date();
	    date.setYear(yyyy);
	    date.setMonth(mm-1);
	    date.setDate(dd);
	    var cdate = new Date();

	    //console.log(date.toGMTString());
	    //console.log(cdate.toGMTString());

	    return date.getDay();
	}


function attachOption(box, value, text, selected) {
	var o = document.createElement("OPTION");
	o.selected = selected;
	o.value = value;
	o.appendChild(document.createTextNode(text));
	box.appendChild(o);
}


	x_req = false;
	x_callback = false;
	function x_linkReq(lnk, callback) {
		x_callback = callback;
		if (window.XMLHttpRequest) {
			x_req = new XMLHttpRequest();
			x_req.onreadystatechange = x_response;
			x_req.open("GET", lnk, true);
			x_req.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");
			x_req.send(null);
		}
		// branch for IE/Windows ActiveX version
		else if (window.ActiveXObject) {
			x_req = new ActiveXObject("Microsoft.XMLHTTP");
			if (x_req) {
				x_req.onreadystatechange = x_response;
				x_req.open("GET", lnk, true);
				x_req.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");
				x_req.send(null);
			}
		}
	}

	x_response = function () {
		if (x_req.readyState == 4) {
			if (x_req.status == 200) {
				x_callback(x_req);
			}
		}
	}