   var http_request = false;
   var htmlId;
   var _param1;
   var _param2;
   var cmdret;

window.onload = function() {
    var _progress=document.getElementById("progress");
    if(_progress!=null) {
	_progress.style.visibility = "hidden";
    }
}

function panel2edit(objString) {

}

var ajaxUserOrderToSellCommitCallback =
{
  success: function(o) {
    //alert(o.argument[0]);
    //result = o.responseText;
    //$('ajaxarea1').innerHTML = o.responseText;
    alert("commited");
  },
  failure: function(o) {alert("Error 200")},
  timeout: 7000,
  argument: ['null']
}

function ajaxUserOrderToSellCommit(form) {
    items=form.getElements();
//    checkboxes = $('orderItems').getElementsByTagName('input');
    var rslt='';
    for (i=0; i<items.length; i++) {
	//alert(items[i].getValue());
        if(items[i].type=='checkbox') {
    	    rslt=rslt+items[i].name+'='+items[i].checked;
    	    if(i<items.length-1) rslt=rslt+"&";
	    continue;
	}
        //if(inputs[i].value=='') continue;
        rslt=rslt+items[i].name+'='+items[i].value;
        if(i<items.length-1) rslt=rslt+"&";
        //if(i!=inputs.length-1) rslt=rslt+"\n";
    }
//    for (i=0; i<checkboxes.length; i++) {
//	alert(checkboxes[i].getValue());
        //rslt=rslt+items[i].name+'='+items[i].value;
        //if(i<items.length-1) rslt=rslt+"&";
//    }

//alert(rslt);
    var _data='<stdin><module>Site</module><function>ajaxBasketOrderToSellCommit</function><arg1>'+items[1].value+'</arg1><post><![CDATA['+rslt+']]></post></stdin>';
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/", ajaxUserOrderToSellCommitCallback ,_data);
}


var ajaxUserOrdersListCallback =
{
  success: function(o) {
    //alert(o.argument[0]);
    //result = o.responseText;
    $('ajaxarea1').innerHTML = o.responseText;
  },
  failure: function(o) {alert("Error 200")},
  timeout: 7000,
  argument: ['null']
}

function ajaxUserOrdersList() {
    var _data='<stdin><module>Site</module><function>ajaxUserOrdersList</function></stdin>';
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/", ajaxUserOrdersListCallback ,_data);
}


//core interface

   function makeCMDRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 //alert('Mozilla');
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            //http_request.overrideMimeType('text/html;charset=UTF-8');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = CMDReturn;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function CMDReturn() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
		    //alert(http_request.responseText);
	            result = http_request.responseText;
		    cmdret=result;
		    //alert(cmdret);
	            //document.getElementById(htmlId).innerHTML = result;
		  objPlugIn.XMLDataLoadObject.String=cmdret;
		  objPlugIn.StartEditing();
	} else {
	    alert('There was a problem with the request. '+http_request.status+' '+http_request.responseText);
	}
      }
	delete http_request;
   }


//==============


   function makePOSTRequest(url, parameters, zoneId) {
   //alert(url);
    var _progress=document.getElementById("progress");
    if(_progress!=null) {
	_progress.style.visibility = "visible";
    }

	//document.getElementById("progress").style.visibility = "visible";
      http_request = false;
      htmlId=zoneId;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 //alert('Mozilla');
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            //http_request.overrideMimeType('text/html;charset=UTF-8');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
//xml
	var xmldoc = http_request.responseXML;
	var _ct=http_request.getResponseHeader("Content-Type");
//		alert(_ct);
//alert(http_request.getAllResponseHeaders()+"\n"+_ct+"\n"+"parsed:"+xmldoc.parsed+"\n"+"parsed:"+xmldoc.parseError.reason);
//alert("text:"+http_request.responseXML.xml);
	//var xmldoc = (new DOMParser()).parseFromString(http_request.responseText, "text/xml");
	if(xmldoc!=null && _ct=="text/xml") {
		//alert("xmldoc ok\n"+xmldoc);
		var root = xmldoc.getElementsByTagName('result')[0];
		var items = root.getElementsByTagName("area");
		var row = root.getElementsByTagName("row")[0];
		var rowc = root.childNodes.length;
		//alert("items:"+items.length+" row:"+rowc);
		if(rowc>0) {
		    //alert(row.childNodes[0].text);
		    //alert(gbl_Marked.cells[6].innerHTML);
		    //row.childNodes[0];
		    gbl_Marked.cells[7].innerHTML=row.childNodes[0].xml;
		    //document.getElementById(_id).
		}

		if(items.length>0) {
		    for (var i = 0 ; i < items.length ; i++) {
			var item=items[i];
			var _id = item.getAttribute("id");
			//alert("id=" + _id);
			document.getElementById(_id).innerHTML = RicoUtil.getContentAsString(item);
    			//eval(RicoUtil.getContentAsString(item));
		    }
		}
//===
	} else {
			//alert(http_request.responseText);
	            result = http_request.responseText;
		    //alert(document.getElementById(htmlId));
		    //alert(document.getElementById(htmlId).innerHTML);
		    if(result=='') {}//result='<tr><td>no result</td></tr>';}
		    else document.getElementById(htmlId).innerHTML = result;
		    //eval(result);
	}
    var _progress=document.getElementById("progress");
    if(_progress!=null) {
	_progress.style.visibility = "hidden";
    }
	//document.getElementById("progress").style.visibility = "hidden";
	} else {
	    alert('There was a problem with the request. '+http_request.status+' '+http_request.responseText);
	}
      }
      //alert('free http request');
      //delete http_request;
   }
   
   function get1() {
      var poststr = 'action=testAjax';
      makePOSTRequest('/', poststr);
   }
   

//YAHOO.namespace("example.container");
var wait;
function popup(url,cmd) {

        var content = document.getElementById("ajaxarea1");
        content.innerHTML = "";

        if (!wait) {

            // Initialize the temporary Panel to display while waiting for external content to load

            wait = new YAHOO.widget.Panel("wait",  
                                                    { width: "240px", 
                                                      fixedcenter: true, 
                                                      close: false, 
                                                      draggable: false, 
                                                      modal: true,
						      zindex:4,
                                                      visible: false
                                                    } 
                                                );
    
            wait.setHeader("");
            wait.setBody('<img border="0" width="18px" src="/i/loading.gif"/>&#160;Загрузка...');
            wait.render(document.body);
	}

        // Define the callback object for Connection Manager that will set the body of our content area when the content has loaded
        var callback = {
            success : function(o) {
				var xmldoc = o.responseXML;
				var _ct=o.getResponseHeader["Content-Type"];
//alert(_ct);
	if(xmldoc!=null && _ct=="text/xml") {
		var root = xmldoc.getElementsByTagName('result')[0];
		var items = root.getElementsByTagName("area");
		var row = root.getElementsByTagName("row")[0];
		var rowc = root.childNodes.length;
		//alert("items:"+items.length+" row:"+rowc);
		if(rowc>0) {
		    //alert(row.childNodes[0].text);
		    //alert(gbl_Marked.cells[6].innerHTML);
		    //row.childNodes[0];
		    //gbl_Marked.cells[7].innerHTML=row.childNodes[0].xml;
		    //document.getElementById(_id).
		}

		if(items.length>0) {
		    for (var i = 0 ; i < items.length ; i++) {
			var item=items[i];
			var _id = item.getAttribute("id");
			//alert("id=" + _id);
			document.getElementById(_id).innerHTML = RicoUtil.getContentAsString(item);
    			//eval(RicoUtil.getContentAsString(item));
		    }
		}
//===
	} else {
		content.innerHTML = o.responseText;
	}

                //content.innerHTML = o.responseText;
                //content.style.visibility = "visible";
                wait.hide();
            },
            failure : function(o) {
                content.innerHTML = o.responseText;
                content.style.visibility = "visible";
                //content.innerHTML = "CONNECTION FAILED!";
                wait.hide();
            }
        }

        // Show the Panel
        wait.show();
        
        // Connect to our data source and load the data
         var conn = YAHOO.util.Connect.asyncRequest("POST", url, callback,cmd);
}

   function formData(uri,elemId,action,areaId) {
	   var form1=document.forms[elemId];
	   var inputs=form1.getElementsByTagName('input');
	   var selects=form1.getElementsByTagName('select');
	   var areas=form1.getElementsByTagName('textarea');
	   var rslt;
	   rslt=action;
	   if(inputs!=null) {
		for (i=0; i<inputs.length; i++) {
			if(inputs[i].type=='button') continue;
			if(inputs[i].value=='') continue;
			rslt=rslt+"&";
			rslt=rslt+inputs[i].name+'='+inputs[i].value;
			//if(i!=inputs.length-1) rslt=rslt+"\n";
		}
	   }
	   if(selects!=null) {
		for (i=0; i<selects.length; i++) {
			_options=selects[i].options;
			//if(_options.selectedIndex==0) continue;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'='+_options[_options.selectedIndex].text;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'Val='+_options[_options.selectedIndex].value;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'Index='+_options.selectedIndex;
				//if(i!=selects.length-1) rslt=rslt+"&";
		}
	   }
	   if(areas!=null) {
		for (i=0; i<areas.length; i++) {
			rslt=rslt+"&";
			rslt=rslt+areas[i].name+'='+areas[i].value;
		}
	   }
		//alert(rslt);
		//makePOSTRequest(uri, rslt,areaId);
		popup(uri,rslt);
   }


function disableEnterKey(e)
{
     var key;
     
  if(window.event)
    key = window.event.keyCode;     //IE
     else
       key = e.which;     //firefox
   
    if(key == 13)
  return false;
   else
 return true;
}

   function formDataR(uri,elemId,action,areaId) {
	   var form1=document.forms[elemId];
	   var inputs=form1.getElementsByTagName('input');
	   var selects=form1.getElementsByTagName('select');
	   var areas=form1.getElementsByTagName('textarea');
	   var rslt;
	   rslt=action;
	   if(inputs!=null) {
		for (i=0; i<inputs.length; i++) {
			if(inputs[i].type=='button') continue;
			if(inputs[i].value=='') continue;
			rslt=rslt+"&";
			rslt=rslt+inputs[i].name+'='+inputs[i].value;
			//if(i!=inputs.length-1) rslt=rslt+"\n";
		}
	   }
	   if(selects!=null) {
		for (i=0; i<selects.length; i++) {
			_options=selects[i].options;
			//if(_options.selectedIndex==0) continue;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'='+_options[_options.selectedIndex].text;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'Val='+_options[_options.selectedIndex].value;
				rslt=rslt+"&"
				rslt=rslt+selects[i].name+'Index='+_options.selectedIndex;
				//if(i!=selects.length-1) rslt=rslt+"&";
		}
	   }
	   if(areas!=null) {
		for (i=0; i<areas.length; i++) {
			rslt=rslt+"&";
			rslt=rslt+areas[i].name+'='+areas[i].value;
		}
	   }
		//alert(rslt);
		makePOSTRequest(uri, rslt,areaId);
		//popup(uri,rslt);
   }


var RicoUtil = {

   getElementsComputedStyle: function ( htmlElement, cssProperty, mozillaEquivalentCSS) {
      if ( arguments.length == 2 )
         mozillaEquivalentCSS = cssProperty;

      var el = $(htmlElement);
      if ( el.currentStyle )
         return el.currentStyle[cssProperty];
      else
         return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozillaEquivalentCSS);
   },

   createXmlDocument : function() {
      if (document.implementation && document.implementation.createDocument) {
         var doc = document.implementation.createDocument("", "", null);

         if (doc.readyState == null) {
            doc.readyState = 1;
            doc.addEventListener("load", function () {
               doc.readyState = 4;
               if (typeof doc.onreadystatechange == "function")
                  doc.onreadystatechange();
            }, false);
         }

         return doc;
      }

      if (window.ActiveXObject)
          return Try.these(
            function() { return new ActiveXObject('MSXML2.DomDocument')   },
            function() { return new ActiveXObject('Microsoft.DomDocument')},
            function() { return new ActiveXObject('MSXML.DomDocument')    },
            function() { return new ActiveXObject('MSXML3.DomDocument')   }
          ) || false;

      return null;
   },

   getContentAsString: function( parentNode ) {
      return parentNode.xml != undefined ? 
         this._getContentAsStringIE(parentNode) :
         this._getContentAsStringMozilla(parentNode);
   },

  _getContentAsStringIE: function(parentNode) {
     var contentStr = "";
     for ( var i = 0 ; i < parentNode.childNodes.length ; i++ ) {
         var n = parentNode.childNodes[i];
         if (n.nodeType == 4) {
             contentStr += n.nodeValue;
         }
         else {
           contentStr += n.xml;
       }
     }
     return contentStr;
  },

  _getContentAsStringMozilla: function(parentNode) {
     var xmlSerializer = new XMLSerializer();
     var contentStr = "";
     for ( var i = 0 ; i < parentNode.childNodes.length ; i++ ) {
          var n = parentNode.childNodes[i];
          if (n.nodeType == 4) { // CDATA node
              contentStr += n.nodeValue;
          }
          else {
            contentStr += xmlSerializer.serializeToString(n);
        }
     }
     return contentStr;
  },

   toViewportPosition: function(element) {
      return this._toAbsolute(element,true);
   },

   toDocumentPosition: function(element) {
      return this._toAbsolute(element,false);
   },

   /**
    *  Compute the elements position in terms of the window viewport
    *  so that it can be compared to the position of the mouse (dnd)
    *  This is additions of all the offsetTop,offsetLeft values up the
    *  offsetParent hierarchy, ...taking into account any scrollTop,
    *  scrollLeft values along the way...
    *
    * IE has a bug reporting a correct offsetLeft of elements within a
    * a relatively positioned parent!!!
    **/
   _toAbsolute: function(element,accountForDocScroll) {

      if ( navigator.userAgent.toLowerCase().indexOf("msie") == -1 )
         return this._toAbsoluteMozilla(element,accountForDocScroll);

      var x = 0;
      var y = 0;
      var parent = element;
      while ( parent ) {

         var borderXOffset = 0;
         var borderYOffset = 0;
         if ( parent != element ) {
            var borderXOffset = parseInt(this.getElementsComputedStyle(parent, "borderLeftWidth" ));
            var borderYOffset = parseInt(this.getElementsComputedStyle(parent, "borderTopWidth" ));
            borderXOffset = isNaN(borderXOffset) ? 0 : borderXOffset;
            borderYOffset = isNaN(borderYOffset) ? 0 : borderYOffset;
         }

         x += parent.offsetLeft - parent.scrollLeft + borderXOffset;
         y += parent.offsetTop - parent.scrollTop + borderYOffset;
         parent = parent.offsetParent;
      }

      if ( accountForDocScroll ) {
         x -= this.docScrollLeft();
         y -= this.docScrollTop();
      }

      return { x:x, y:y };
   },

   /**
    *  Mozilla did not report all of the parents up the hierarchy via the
    *  offsetParent property that IE did.  So for the calculation of the
    *  offsets we use the offsetParent property, but for the calculation of
    *  the scrollTop/scrollLeft adjustments we navigate up via the parentNode
    *  property instead so as to get the scroll offsets...
    *
    **/
   _toAbsoluteMozilla: function(element,accountForDocScroll) {
      var x = 0;
      var y = 0;
      var parent = element;
      while ( parent ) {
         x += parent.offsetLeft;
         y += parent.offsetTop;
         parent = parent.offsetParent;
      }

      parent = element;
      while ( parent &&
              parent != document.body &&
              parent != document.documentElement ) {
         if ( parent.scrollLeft  )
            x -= parent.scrollLeft;
         if ( parent.scrollTop )
            y -= parent.scrollTop;
         parent = parent.parentNode;
      }

      if ( accountForDocScroll ) {
         x -= this.docScrollLeft();
         y -= this.docScrollTop();
      }

      return { x:x, y:y };
   },

   docScrollLeft: function() {
      if ( window.pageXOffset )
         return window.pageXOffset;
      else if ( document.documentElement && document.documentElement.scrollLeft )
         return document.documentElement.scrollLeft;
      else if ( document.body )
         return document.body.scrollLeft;
      else
         return 0;
   },

   docScrollTop: function() {
      if ( window.pageYOffset )
         return window.pageYOffset;
      else if ( document.documentElement && document.documentElement.scrollTop )
         return document.documentElement.scrollTop;
      else if ( document.body )
         return document.body.scrollTop;
      else
         return 0;
   }

};
