var ajax_insertdiv='null';

function generateXML(module,mod_id){
	var request_str = 'makeAjaxRequest(\'ajax.php\', \''+module+'\','+mod_id+',';
	for(i=2; i<arguments.length; i++){
		
		attribute = arguments[i].split('=',2);
		
		request_str += '\''+arguments[i]+'\'';
		if( arguments[arguments.length-1] != arguments[i] )
		request_str += ',';
		
		if(attribute[0]=='INSERTDIV'){
			ajax_insertdiv=attribute[1];			
		}
	}
		//alert(ajax_insertdiv);
	
	request_str+=')';
	//alert(request_str);
	eval(request_str);
}

function generateInstanceXML(module,mod_id){
	var request_str = 'makeAjaxRequest(\'call_modules.php\', \''+module+'\','+mod_id+',';
	for(i=2; i<arguments.length; i++){
		request_str += '\''+arguments[i]+'\'';
		if( arguments[arguments.length-1] != arguments[i] )
		request_str += ',';
	}

	request_str+=')';
	eval(request_str);
}

function makeAjaxRequest(url, module, mod_id ) {
	this.url=url;
	var str='<\?xml version="1.0" encoding="utf-8" standalone="yes"\?>\n';
	str= str + '<module mod_name="' + module + '" mod_id="' + mod_id + '">\n';

	for(i=3; i<arguments.length; i++){
		var attribute = arguments[i].split('=',2);

		str = str + '<param name="' + attribute[0] + '"><![CDATA[' + unescape(attribute[1]) + ']]></param>\n';
		if(attribute[0]=='action') action=attribute[1];
	}
	str=str + "</module>\n";

	//str=unescape(str);

	//alert(ajax_insertdiv);

	if(window.ActiveXObject)
	request = new ActiveXObject("MSXML2.XMLHTTP");
	else if(window.XMLHttpRequest)
	request = new XMLHttpRequest();

	//alert(str)

	if(!(module=='content_manager' && (action=='save_page_meta' || action=='mark_as_index')))
	request.onreadystatechange = function(module){onResponse(module,ajax_insertdiv);}

	/*function(module){
		onResponse(module,ajax_insertdiv);
		if (request.readyState == 4){
			var response = request.responseText
			alert(response);
			//document.getElementById('news_line__0').innerHTML=response;//alert(response);
		}
	}*/
	//}
	request.open("POST", this.url, true);
	request.send(str);
}


function processForm(form_name,url) {
	var form = document.forms[form_name];
	if(!url) url='ajax.php';//url='call_modules.php'
	n=0;
	stroka = '';
	if( form != 'undefined' && form != null ) {
		var executeString = "makeAjaxRequest('" +url +"','" + form.mod_name.value + "','" + form.mod_id.value + "',";
		var inputs = form.getElementsByTagName('input');
		for( var i=0; i<inputs.length; i++ ) {
			if((inputs[i].name!='mod_name')&&(inputs[i].name!='mod_id')){
				if( inputs[i].name != "" ) {
					if((((inputs[i].type == 'checkbox' || inputs[i].type == 'radio') && inputs[i].checked ) ||
					(inputs[i].type != 'checkbox' && inputs[i].type != 'radio' && inputs[i].type != 'file')) && !inputs[i].disabled )
					{
						if(inputs[i].name != replace_string(inputs[i].name,"[]","")){
							inputs[i].name = replace_string(inputs[i].name,"[]","")
							stroka += inputs[i].value + '_;_';
							executeString += "'"+inputs[i].name+ "="+ stroka +"', ";
						}else
						executeString += "'"+inputs[i].name+ "="+inputs[i].value+"', ";
					} else if( !inputs[i].disabled && inputs[i].type == 'file' ) {
						executeString += "'"+createUploadNode(inputs[i])+"'";
					}
				}
			}
		}
		var selects = form.getElementsByTagName('select');
		for( var i=0; i<selects.length; i++ ) {
			if(selects[i].name != "" && !selects[i].disabled) {
				if( selects[i].name.indexOf('[]') == -1 ) {
					executeString += "'"+selects[i].name+"="+selects[i].value+"', ";
				} else {
					for(var j=0; j<selects[i].options.length; j++)
					if( selects[i].options[j].selected )
					executeString += "'"+selects[i].name+"="+selects[i].options[j].value+"', ";
				}
			}
		}

		var textAreas = form.getElementsByTagName('textarea');
		for( var i=0; i<textAreas.length; i++ ) {
			if(textAreas[i].name != "" && !textAreas[i].disabled) {
				executeString += "'"+textAreas[i].name+"="+textAreas[i].value+"', ";
			}
		}
		if( executeString.substr(executeString.length-2, executeString.length) == ', ' ) {
			executeString = executeString.substr(0, executeString.length-2);
		}
		executeString += ")";
		//alert(executeString);
		eval(executeString);
	}
}

function replace_string(txt,cut_str,paste_str){
	var f=0;
	var ht='';
	ht = ht + txt;
	f=ht.indexOf(cut_str);
	while (f!=-1){
		//���� ��� ��������� ���� ��������� ��������
		f=ht.indexOf(cut_str);
		if (f>0){
			ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
			n++;
		};
	};
	return ht
};

function onResponse(module,ins_div) {
	if(request.readyState == 4) {
		if(request.status == 200) {
			if(request.responseXML)	{
				if(navigator.appName == "Microsoft Internet Explorer"){
					request.responseXML.loadXML(request.responseText);
				}

				var response = request.responseXML.documentElement;
//				alert(response);

				if(response!=null){
					if( response.getElementsByTagName('module')[0].firstChild != null )
					var module = response.getElementsByTagName('module')[0].firstChild.data;
					else
					var module = "";

					if( response.getElementsByTagName('action')[0].firstChild != null )
					var mod_action = response.getElementsByTagName('action')[0].firstChild.data;
					else
					var mod_action = "";

					if( response.getElementsByTagName('mod_id')[0].firstChild != null )
					var mod_id = response.getElementsByTagName('mod_id')[0].firstChild.data;
					else
					var mod_id = "";


					//alert(mod_id);
					var mod_content = response.getElementsByTagName('content')[0].firstChild.data;
					var container = null;
					if(module=='content_manager' && mod_action=='load_admin_content')
					container = document.getElementById(__MYW_CMS_content_div);
					else{
							if(ins_div=='null')	container = document.getElementById(module + '__' + mod_id);
							else container=document.getElementById(ins_div);
					}
					
					//alert(container);
					
					container.innerHTML=mod_content;

					//__MYW_CMS_equalizeDivsRec(container);

					//alert(container.id);
					if(module=='tree') Sortable.create('pages_tree', {tree:true,scroll:window,onUpdate:updateOrder});
					
					//alert(ins_div);
					ajax_insertdiv='null';
				}
			} //else alert('yo');

		}
		else if(request.status == 404) {
			showMessage('Requested page not found');
		}
		else {
			showMessage("There was a problem retrieving the response");
		}
	}
}

function showMessage(msg) {
	var el = document.getElementById('message_log');
	if(el != 'undefined' && el != null) {
		el.innerHTML = msg;
		el.style.display = 'block';
	}
}

function hideMessage() {
	var el = document.getElementById('message_log');
	if(el != 'undefined' && el != null) {
		el.style.display = 'none';
	}
}


