		var changed_dd;
		var form_action;
		var form_target;
		var form_method;
		var buffer_loading = false;
		var buf='parent.';

        var buffer_check_interval = '';

        //Left only for compatibility with previous versions
		function free_check_buffer() {

        }

		function replace_quotes(str){
			while (str.indexOf("\"") > 0){
				str = str.substring(0,str.indexOf("\""))+"`"+str.substring(str.indexOf("\""),str.length-1);
			}
			return str;
		}

		function check_buffer() {
			if ((buffer_loading)) {
				if (confirm("Network problem occured!\nDo you want to reload this page?")){
					document.location.reload();
				} else {
					buffer_loading = false;
				}
			}

		}

		function is_buffer_loaded (){
			return !buffer_loading;
		}

		function start_update_buffer() {
			window.clearTimeout(buffer_check_interval);
			buffer_check_interval = '';
			buffer_loading = true;
			buffer_check_interval = window.setTimeout("check_buffer();", buffer_timeout);
		}


        function postProcessOption(opt) {
            if (opt.text.indexOf('|||') > 0) {
                opt['desc'] = opt.text.substring(opt.text.indexOf('|||') + 3);
                opt.text = opt.text.substring(0, opt.text.indexOf('|||'));
            }
        }

		function fill_dd(array,dd){
			var i;
			var old_selected;
			if (dd.selectedIndex >= 0){
				old_selected = dd.options[dd.selectedIndex].value;
			}
			var start_point = 0;
			if (save_top_values == 1){
				start_point = 1;
			}

//			alert ('to_fill='+dd.name+'\n start_point='+start_point+'\narray len='+array.length);
			if (dd && dd.options){
				dd.options.length=start_point+array.length;
				var end_point = start_point+array.length
				for(var i=start_point;i<end_point;i++){
					var dd_option = dd.options[i];
					var arr_elm = array[i-start_point];
					dd_option.value=arr_elm.ID;
					dd_option.text=arr_elm.NAME;
					if (dd_option.value==old_selected){
						dd_option.selected = true;
					}
                    postProcessOption(dd_option);
                }
			}

			dd.disabled=false;
		}


		function fill_chkb(array,chkb){
			var i;
			var flag = false;
			var tmp;

			if (chkb && chkb.value.length > 0){
				var len=array.length;
				for(var i=0;i<len;i++){
					if (chkb.value==array[i].ID) flag = true;
					if (chkb.value.indexOf("\"") > 0){
						tmp = replace_quotes(chkb.value);
						if (tmp==array[i].ID) flag = true;
					}
				}

				if (!flag && chkb.checked==false){
					chkb.disabled = true;
				}else{
					chkb.disabled = false;
				}
			}else{
				chkb.disabled = false;
			}
		}


		function fill_HTML(content, div){
             div.innerHTML =  content;
		}

		function update_dd (frame){
			var form=changed_dd.form;
			var tmp_buf=buf+frame+'.';
			form.target = form_target;
			form.action = form_action;
			form.method = form_method;
			var len=form.elements.length;
			for (var i=0;i<len;i++){
			//alert ('check='+eval(tmp_buf+form.elements[i].name)+'\n'+form.elements[i].name);
				var form_elm = form.elements[i];
				var arr_elm = (form.elements[i].name)?eval(tmp_buf+form.elements[i].name):null;
				if (form_elm && arr_elm){
					if (update_changed_dd != 0 || (form_elm.name != changed_dd.name) || ((form_elm.name == changed_dd.name) && changed_dd.value.length == 0)){
						if (form_elm.type == "select-one" || form_elm.type == "select-multiple"){
							fill_dd(arr_elm,form_elm);
						}else if (form_elm.type == "checkbox"){
							fill_chkb(arr_elm,form_elm);
						}
					}
				}else{
					//alert("val = "+form_elm.value+"\ndis = "+form_elm.disabled);
					form_elm.disabled=false;
				}
			}


			var div_id;
			var divs=document.getElementsByTagName("DIV")
			var len=divs.length;
			for (var i=0;i<len;i++){
				div_id = divs[i].id;
				if (divs[i].id && eval(tmp_buf+div_id)){
					fill_HTML(eval(tmp_buf+div_id), divs[i]);
				}
			}

			buffer_loading = false;
		}




		function refresh_buffer(dd,frame){
			if (buffer_loading) return false;
			if (!frame){frame='buffer';}

			var form=dd.form;
			changed_dd = dd;
			if (!url){
				url="header_merchant.jsp";
			}
			var query="?";

			if ((dd.type == 'checkbox' || dd.type == 'radio')){
				var len = document.getElementsByName(dd.name).length;
				var val;
				for (i=0;i<len;i++){
					if (document.getElementsByName(dd.name)[i].checked)
					val=document.getElementsByName(dd.name)[i].value;
				}

				if (val && val.length > 0)
					update_changed_dd = 0
				else
					update_changed_dd = 1;
			}else if ((dd.type == 'select-one' || dd.type == 'select-multiple') && dd.selectedIndex > 0 && dd.options[dd.selectedIndex].value > 0){
				update_changed_dd = 0;
			}else{
				update_changed_dd = 1;
			}

			form_target = dd.form.target;
			form_action = dd.form.action;
			form_method = dd.form.method;
			if (debug == 1){
//				dd.form.target = '_new';
//				dd.form.action = 'http://b2b.dev.evision.ru/debug/formtest.jsp';
				dd.form.method = 'GET';
				dd.form.action = url+'?CHANGED_DD='+dd.name;//+'&debug=yes'
				dd.form.target = frame;
			}else{
				dd.form.action = url+'?CHANGED_DD=';
				dd.form.method = 'POST';
				dd.form.target = frame;
			}

			dd.form.submit();

			var changed_dd_name = changed_dd.name;
			var selects = form.getElementsByTagName("SELECT")
			var len = selects.length;
			for (var i=0;i<len;i++){
				var elm=selects[i];
				if (elm.type == "select-one" && elm.name != changed_dd_name) {
					elm.disabled=true;
				}
			}

            start_update_buffer();

		}

