
function doLoad() {
    JsHttpRequest.query(
        't_simple_loader.php',
        { q: document.getElementById('text').value },
        function(responseJS, responseText) {
            // This function is called on data ready (readyState=4).
            // Write result to page element ($_RESULT become responseJS).
            document.getElementById('result').innerHTML =
                '<b>MD5("'+responseJS.q+'")</b> = ' +
                '"' + responseJS.md5 + '"<br> ';
            // Write debug information too (output become responseText).
            document.getElementById('debug').innerHTML = responseText;
        },
        true // true = disable caching
    );
}

function clearSelect(oSelect) {
	oSelect.innerHTML = '';
}

function addToSelect(oSelect, name, value) {
	if(!oSelect.options) {
		oSelect = document.getElementById(oSelect);
	}

	if(oSelect.options) {
		var oOption = document.createElement("OPTION");
		oSelect.options.add(oOption);
		oOption.innerHTML = name;
		oOption.value = value;
	}
}

function fillSelect(oSelect, data) {
	var item;
	if(oSelect&&data) {
		var m = data.split('\n');
		for(i=0;i<m.length;i++) {
			item = m[i].split('\t');
			if(item.length==2) addToSelect(oSelect, item[0], item[1]);
		}
	}
}

function mod(elementid, mod, place, param) {
	var e = document.getElementById(elementid);
    e.innerHTML = 'подождите...';

	JsHttpRequest.query(
        'ajax/mod.php',
        { mod: mod, place: place, param: param },
        function(responseJS, responseText) {
        	var e = document.getElementById(elementid);
        	if(responseText) alert(responseText);
            e.innerHTML = responseJS.data;
        },
        true
    );
}

function hidemain() {
	document.getElementById('mainplace').style.visibility='hidden';
}

function getFormField(form, m_post) {
	var e = null;

	if(form)
	for(var i=0;i<form.childNodes.length;i++) {
		e = form.childNodes[i];

		if(e.getAttribute && e.name) {
			if(e.type == 'checkbox') {
				if(e.checked) m_post[e.name] = e.value;
			} else
			if(e.type == 'radio') {
				if(e.checked) m_post[e.name] = e.value;
			} else 
			if(e.type == 'file') {
				if(!m_post['fileinputs']) m_post['fileinputs'] = { };
				m_post['fileinputs'][e.name] = e;
			} else {
				m_post[e.name] = e.value;
			}
		}
		m_post = getFormField(e, m_post);
	}

	return m_post;
}

function ajaxSendPopupForm(form) {
	if(testForm(form)) {
		showPopup();
		return ajaxSendForm(form, 'popupcontent');
	}
	return false;
}

function ajaxSendForm(form, containerid) {
	if(!containerid) containerid = 'content';
	
	if(testForm(form)) {
		var url = form.getAttribute('action');
		var m_post = getFormField(form, { });
		
		var m_param = {url: url, post: m_post};
		
		if(m_post['fileinputs']) {
			for(var name in m_post['fileinputs']) {
			 	m_param[name] = m_post['fileinputs'][name];
			}
		}
		
		showHider();
		
		JsHttpRequest.query(
		    'index.php',
		    m_param,
		    function(responseJS, responseText) {
		        if(responseText) {
		        	alert(responseText);
		        	return 0;
		        }

		        var html = responseJS.html;
		        if(html) {
		        	var content = $('#'+containerid,'<div>'+html+'</div>').html();
					if(content) E(containerid).innerHTML = html;
					else E(containerid).innerHTML = html;
					
					return;
				}

				var place = responseJS.place;
				if(place) {
					for (var key in place) {
						var val = place[key];
						if(val instanceof Function) continue;
						var element = document.getElementById(key);
						if(element) {
							//saveContainer(key);
							if($('#'+key, '<div>'+val+'</div>').html()) {
								var html = val;
								html = html.replace(/\<script/g, '<ajaxscript');
								html = html.replace(/\/script\>/g, '/ajaxscript>');
								
								html = html.replace(/\/\*\<\!\[CDATA\[\*\//g, '');
								html = html.replace(/\/\*\]\]\>\*\//g, '');
								
								html = $('#'+key, '<div>'+html+'</div>').html();
								
								html = html.replace(/\<ajaxscript/g, '<script');
								html = html.replace(/\/ajaxscript\>/g, '/script>');
								
								element.innerHTML = html;
							}
							else element.innerHTML = val;
						}
					}
				}
				
				shadow();

				var ajaxeval = responseJS.ajaxeval;
				if(ajaxeval) {
					for (var key in ajaxeval) {
						var val = ajaxeval[key];
						if(val instanceof Function) continue;
						eval(val);
					}
				}
				
				if(place && place instanceof Object) {
					for (var key in place) {
						var val = place[key];
						if(val instanceof Function) continue;
						var ee = document.getElementById(key);
						if(!ee) continue;
						var m_elem = ee.getElementsByTagName('script');
						if(m_elem) {
							for(var i in m_elem) {
								if(m_elem[i] && m_elem[i].getAttribute && m_elem[i].innerHTML) {
									eval(m_elem[i].innerHTML);
								}
							}
						}
					}
				}
				
				hideHider();
		    },
		    true
		);

		return false;
	}
	
	return false;
}

function ajaxgo(url, m_post, containerid) {
	if(!containerid) containerid = 'content';
	
	var m_param = {url: url};
	
	if(m_post) m_param['post'] = m_post;
	
	showHider();
	
    JsHttpRequest.query(
        'index.php',
        m_param,
        function(responseJS, responseText) {
        	if(responseText) {
        		alert(responseText);
        		return 0;
        	}

            var html = responseJS.html;
			if(html) {
				var content = $('#'+containerid,'<div>'+html+'</div>').html();
				if(content) E(containerid).innerHTML = html;
				else E(containerid).innerHTML = html;
				
				return;
			}

			var place = responseJS.place;
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var element = document.getElementById(key);
					if(element) {
						saveContainer(key);
						if($('#'+key, '<div>'+val+'</div>').html()) {
							var html = val;
							html = html.replace(/\<script/g, '<ajaxscript');
							html = html.replace(/\/script\>/g, '/ajaxscript>');
							
							html = html.replace(/\/\*\<\!\[CDATA\[\*\//g, '');
							html = html.replace(/\/\*\]\]\>\*\//g, '');
							
							html = $('#'+key, '<div>'+html+'</div>').html();
							
							html = html.replace(/\<ajaxscript/g, '<script');
							html = html.replace(/\/ajaxscript\>/g, '/script>');
							
							element.innerHTML = html;
						}
						else element.innerHTML = val;
					}
				}
			}
			
			shadow();

			var ajaxeval = responseJS.ajaxeval;
			if(ajaxeval && ajaxeval instanceof Object) {
				for (var key in ajaxeval) {
					var val = ajaxeval[key];
					if(val instanceof Function) continue;
					eval(val);
				}
			}
			
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var ee = document.getElementById(key);
					if(!ee) continue;
					var m_elem = ee.getElementsByTagName('script');
					if(m_elem) {
						for(var i in m_elem) {
							if(m_elem[i] && m_elem[i].getAttribute && m_elem[i].innerHTML) {
								eval(m_elem[i].innerHTML);
							}
						}
					}
				}
			}
			hideHider();
        },
        true
    );
}

function ajaxSendField(url, fieldid) {
	m_post = {};
	m_post['param'] = E(fieldid).value;
	
    JsHttpRequest.query(
        '/index.php',
        { url: url, post: m_post },
        function(responseJS, responseText) {
        	if(responseText) {
        		alert(responseText);
        		return 0;
        	}

			var place = responseJS.place;
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var element = document.getElementById(key);
					if(element) {
						saveContainer(key);
						if($('#'+key, '<div>'+val+'</div>').html()) {
							var html = val;
							html = html.replace(/\<script/g, '<ajaxscript');
							html = html.replace(/\/script\>/g, '/ajaxscript>');
							
							html = html.replace(/\/\*\<\!\[CDATA\[\*\//g, '');
							html = html.replace(/\/\*\]\]\>\*\//g, '');
							
							html = $('#'+key, '<div>'+html+'</div>').html();
							
							html = html.replace(/\<ajaxscript/g, '<script');
							html = html.replace(/\/ajaxscript\>/g, '/script>');
							
							element.innerHTML = html;
						}
						else element.innerHTML = val;
					}
				}
			}
			
			shadow();

			var ajaxeval = responseJS.ajaxeval;
			if(ajaxeval && ajaxeval instanceof Object) {
				for (var key in ajaxeval) {
					var val = ajaxeval[key];
					if(val instanceof Function) continue;
					eval(val);
				}
			}
			
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var ee = document.getElementById(key);
					if(!ee) continue;
					var m_elem = ee.getElementsByTagName('script');
					if(m_elem) {
						for(var i in m_elem) {
							if(m_elem[i] && m_elem[i].getAttribute && m_elem[i].innerHTML) {
								eval(m_elem[i].innerHTML);
							}
						}
					}
				}
			}
        },
        true
    );
}

function ajaxPopup(url, m_post, containerid, classname) {
	if(!containerid) containerid = 'content';
	
	var m_param = {url: url};
	
	if(m_post) m_param['post'] = m_post;
	
	showPopup(classname);
	
    JsHttpRequest.query(
        'index.php',
        m_param,
        function(responseJS, responseText) {
        	if(responseText) {
        		alert(responseText);
        		return 0;
        	}

            var html = responseJS.html;
			if(html) {
				var content = $('#'+containerid,'<div>'+html+'</div>').html();
				if(content) E('popupcontent').innerHTML = content;
				else E('popupcontent').innerHTML = html;
				
				return;
			}

			var place = responseJS.place;
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var element = document.getElementById(key);
					if(element) {
						saveContainer(key);
						if($('#'+key, '<div>'+val+'</div>').html()) {
							var html = val;
							html = html.replace(/\<script/g, '<ajaxscript');
							html = html.replace(/\/script\>/g, '/ajaxscript>');
							
							html = html.replace(/\/\*\<\!\[CDATA\[\*\//g, '');
							html = html.replace(/\/\*\]\]\>\*\//g, '');
							
							html = $('#'+key, '<div>'+html+'</div>').html();
							
							html = html.replace(/\<ajaxscript/g, '<script');
							html = html.replace(/\/ajaxscript\>/g, '/script>');
							
							element.innerHTML = html;
						}
						else element.innerHTML = val;
					}
				}
			}
			
			shadow();

			var ajaxeval = responseJS.ajaxeval;
			if(ajaxeval && ajaxeval instanceof Object) {
				for (var key in ajaxeval) {
					var val = ajaxeval[key];
					if(val instanceof Function) continue;
					eval(val);
				}
			}
			
			if(place && place instanceof Object) {
				for (var key in place) {
					var val = place[key];
					if(val instanceof Function) continue;
					var ee = document.getElementById(key);
					if(!ee) continue;
					var m_elem = ee.getElementsByTagName('script');
					if(m_elem) {
						for(var i in m_elem) {
							if(m_elem[i] && m_elem[i].getAttribute && m_elem[i].innerHTML) {
								eval(m_elem[i].innerHTML);
							}
						}
					}
				}
			}
        },
        true
    );
}

function onEndSort(event, ui) {
	var m_pos = [];
	for(var i=0;i<$('.sortitem').length;i++) {
		var e = $('.sortitem').eq(i);
		var node_id = e.attr('nodeid');
		m_pos.push(node_id);
	}
	
	var cont = $('.sortitem').eq(0).parent();
	var backorder = cont.attr('backorder');
	
	if(m_pos.length > 0) {
		
		var ajaxhider = document.getElementById('ajaxhider');
		if(ajaxhider) {
			ajaxhider.style.display='';
		}
		
	 	JsHttpRequest.query(
	        '/ajax/setpos.php',
	        { m_pos: m_pos, backorder: backorder },
	        function(responseJS, responseText) {
	        	var ajaxhider = document.getElementById('ajaxhider');
				if(ajaxhider) {
					ajaxhider.style.display='none';
				}
	        	
	        	if(responseText) alert(responseText);
	            if(!responseJS.ok) alert('Ошибка установки позиции');
	        },
	        true
	    );
	}
}

function showPopup(classname, onclose) {
	if (E('popuphider')) document.body.removeChild(E('popuphider'));
	if (E('popuphider_overlay')) document.body.removeChild(E('popuphider_overlay'));
	
	var div_overlay = document.createElement('div');
	div_overlay.className = 'fixed';
	div_overlay.id = 'popuphider_overlay';
	document.body.appendChild(div_overlay);
	
	var div = document.createElement('div');
	div.className = 'fixed';
	div.id = 'popuphider';
	div.innerHTML = '<table class="h'+(classname?' '+classname:'')+'"><tr><td valign="middle" align="center" id="close"><div class="popupwindow"><div class="popupclose"><a href="javascript:void(0)" id="close"><img id="close" src="img/close.png" border=0></a></div><div id="popupcontent" style="text-align:left"><div style="text-align:center"><img src="/img/preloader2.gif" border="0"></div></div></div></div></td></tr></table>';
	div = document.body.appendChild(div);
	
	div.onclick = function(e) {
		if(!document.all) {
			var target = e.target;
		} else {
			var target = event.srcElement;
		}
		
		if(target.id=='close') {
			hidePopup();
			
			if(onclose) {
				onclose();
			}
		}
	};
}

function hidePopup() {
	E('popupcontent').style.display = 'none';
	E('popuphider').style.display = 'none';
	E('popuphider_overlay').style.display = 'none';
}

var g_curhiderid = 0;

function showHider(time) {
	g_curhiderid++;
	
	if(time) {
		setTimeout("hideHider('" + g_curhiderid + "')", time);
	}
	
	if (E('ajaxhider')) document.body.removeChild(E('ajaxhider'));
	if (E('ajaxhider_overlay')) document.body.removeChild(E('ajaxhider_overlay'));
	
	var div_overlay = document.createElement('div');
	div_overlay.className = 'fixed';
	div_overlay.id = 'ajaxhider_overlay';
	document.body.appendChild(div_overlay);
	
	var div = document.createElement('div');
	div.className = 'fixed';
	div.id = 'ajaxhider';
	div.innerHTML = '<table class="h"><tr><td valign="middle" align="center"><img src="img/preloader2.gif" border="0"></td></tr></table>';
	div = document.body.appendChild(div);
}

function hideHider(id) {
	if(id == g_curhiderid || !id) {
		if (E('ajaxhider')) document.body.removeChild(E('ajaxhider'));
		if (E('ajaxhider_overlay')) document.body.removeChild(E('ajaxhider_overlay'));
	}
}

var m_savecontainer = {};

// сохраняет контейнер
function saveContainer(id) {
	var e = E(id);
	if(e) {
		m_savecontainer[id] = e.innerHTML;
	}
}

// восстанавливает, ранее сохраненный, контейнер
function restoreContainer(id) {
	if(m_savecontainer[id]) {
		var e = E(id);
		if(e) e.innerHTML = m_savecontainer[id];
	}
}

function confirmDialog(message, url) {
	var m = "<div>" + message + "</div><div style=\"text-align:center;margin-top:5px;\"><a href=\"#\" onclick=\"E('messagecont').style.display='none';ajaxgo('" + url + "');return false;\">YES</a></div>";
	showMessage(m);
}

function selectDialog(name, variant, action, headerhtml, footerhtml) {
	var m = "<h1>" + name + "</h1>";
	m += '<form name="selectdialogform" action="' + action + '" onsubmit="ajaxSendForm(this)" style="display:inline">';
	m += '<input type="hidden" name="variant" id="selectdialogvariant" value="0">';
	if(headerhtml) m += headerhtml;
	for (var key in variant) {
		var val = variant[key];
		m += "<div style=\"text-align:left;margin-top:5px;\"><a href=\"#\" onclick=\"E('selectdialogvariant').value='" + key + "';if(testForm(selectdialogform)) {E('messagecont').style.display='none';ajaxSendForm(selectdialogform);}return false;\">" + val + "</a></div>";
	}
	if(footerhtml) m += footerhtml;
	m += "</form>";
	showMessage(m);
}
