
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 ajaxSendForm(form) {
	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];
			}
		}
		
		var mainplace = document.getElementById('mainplace');
		if(mainplace) mainplace.style.visibility='hidden';
		
		showHider();
		
		JsHttpRequest.query(
		    'index.php',
		    m_param,
		    function(responseJS, responseText) {
		        if(responseText) {
		        	eval(responseText);
		        	return 0;
		        }

		        var html = responseJS.html;
				if(html) {
					var mainplace = document.getElementById('mainplace');
					if(mainplace) {
						mainplace.innerHTML = html;
						mainplace.style.visibility='';
					} else {
				 		alert('No mainplace');
					}
				}

				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);
							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, preloader) {
	var mainplace = document.getElementById('mainplace');
	if(mainplace) mainplace.style.visibility='hidden';
	
	var m_param = {url: url};
	
	if(m_post) m_param['post'] = m_post;
	showHider(null, preloader);
    JsHttpRequest.query(
        'index.php',
        m_param,
        function(responseJS, responseText) {
        	if(responseText) {
        		alert(responseText);
        		return 0;
        	}

            var html = responseJS.html;
			if(html) {
				var mainplace = document.getElementById('mainplace');
				if(mainplace) {
					mainplace.innerHTML = html;
					mainplace.style.visibility='';
				} else {
				 	alert('No mainplace');
				}
			}

			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);
						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(null, preloader);
        },
        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);
						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(url, title, popupclass) {
	if(E('popupwindow')) {
		E('popupwindow').style.top = 40 + (self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop)) + 'px';
		
		ajaxgo(url);
	    
	    if(E('popupwindowcont')) E('popupwindowcont').innerHTML = '';
	    if(E('popupwindow')) E('popupwindow').className = 'popupwindow ' + popupclass;
	    if(E('titletext')) E('titletext').innerHTML = title;
		if(E('popuphider')) E('popuphider').style.display = '';
		if(E('popupwindow')) E('popupwindow').style.display = '';
	}
}

var g_curhiderid = 0;

function showHider(time, preloader) {
		if (!time) time = 10000;
	
		g_curhiderid++;

		setTimeout("hideHider('" + g_curhiderid + "')", time);
		if (E('ajaxhider')) document.body.removeChild(E('ajaxhider'));
		if (E('ajaxhider_overlay')) document.body.removeChild(E('ajaxhider_overlay'));
		
		if (preloader == 'fotogallery') {
			var div_overlay = $(document.createElement('div'))
				.css({
					 'width' : $('#fotogallery').width(),
					 'height' : $('#fotogallery').height(),
					 'background' : '#000',
					 'position' : 'absolute',
					 'top' : 0,
					 'opacity' : 0.3
				});
			$('#fotogallery').append(div_overlay);
		} else {
			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>';
			document.body.appendChild(div);
		}
		//div.style.width = '100px';
		//div.style.height = '100px';
		/*
		div.innerHTML = '<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="100%" valign="middle" align="center"><img src="../img/preloader.gif" width="64" height="64" border="0"></td></tr></table>';
		document.body.appendChild(div);
		*/
		
		//$(document.body).append('<div cass="fixed" id="ajaxhider"><table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="100%" valign="middle" align="center"><img src="../img/preloader.gif" width="64" height="64" border="0"></td></tr></table></div>');
		
		//ajaxhider.style.display='';
	
	/*
<div id="ajaxhider" style="display:none;top:0px;left:0px;background-color:#000000;width:100%;height:100%;z-index:200;-moz-opacity:.50 !important; opacity:.50 !important;filter:alpha(opacity=50);">
  
</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);
}
