function inputSerialize(input) {
	switch (input.type.toLowerCase()) {
    case 'hidden':
    	return input.name + "=" + input.value;
    case 'password':
    	return input.name + "=" + input.value;
    case 'text':
    	return input.name + "=" + input.value;
    case 'checkbox':
    	if ( input.checked ) {
    		return input.name + "=1";
    	} else {
    		return input.name + "=0";
    	}
    case 'radio':
    	return input.name + "=" + input.value;
  }
}

function formSerialize(formId) {
	form = document.getElementById(formId);
	
  var queryComponents = new Array();

  // inputok
  inputs = form.getElementsByTagName('input');
  for (var i=0; i<inputs.length; i++) {
    var queryComponent = inputSerialize(inputs[i]);
    if (queryComponent) {
    	queryComponents.push(queryComponent);
    }
  }
  
  return queryComponents.join('&');
}

function encodeParams(param) {
	if ( param.length <= 0 ) {
		return ""
	} else {
		var res = new Array();
		var params = param.split("&");
		for ( var i=0; i<params.length; i++ ) {
			var param_items = params[i].split("=");
			res.push(param_items[0] + "=" + encodeURIComponent(param_items[1]));
		}
		return res.join("&");
	}
}

function createAjaxRequest() {
	if (window.XMLHttpRequest) {
	  return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function show_element(elementId) {
	element = document.getElementById(elementId);
	element.style.visibility = "visible";
	element.style.display = "block";
	return true;
}


function hide_element(elementId) {
	element = document.getElementById(elementId);
	element.style.visibility = "hidden";
	element.style.display = "none";
	return true;
}

function ajaxRequest(filename, params, div) {
	show_element("ajax_indicator");
	
	var request = createAjaxRequest();
	params = encodeParams(params);
	request.open('get', "ajax.php?page="+filename+"&"+params);
	request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	//request.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
	request.onreadystatechange = requestResult;
	request.send('');
	
	function requestResult() {
		if (request.readyState == 4) {
	    if (request.status == 200) {
	    	res = request.responseText;
	    	//alert(res);
	      document.getElementById(div).innerHTML = res;
	      	
	      //ha a visszaadott érték tartalmazza az '<!--%alert%-->' sztringet, akkor az utánna lévő szöveget alerteljük
				if ( res.indexOf("<!--%alert%-->") >= 0 ) {
					baseIndex = res.indexOf("<!--%alert%-->");
					mes = res.substring(baseIndex+18);
					mes = mes.substring(0, mes.indexOf('-->'));
					alert(mes);
				}
				//ha a visszaadott érték tartalmazza a '<!--%blink%-->' sztringet, akkor a visszatérési div-et villogtatjuk
				if ( res.indexOf("<!--%blink%-->") >= 0 ) {
					blink(div);
				}      
				//ha a visszaadott érték tartalmazza a '<!--%reload%-->' sztringet, akkor frissítjük az oldalt
				if ( res.indexOf('<!--%reload%-->') >= 0 ) {
					document.location.reload();
				}
				//ha a visszaadott érték tartalmazza a '<!--%location%-->' sztringet, akkor az utánna lévő címre ugrunk
				if ( res.indexOf("<!--%location%-->") >= 0 ) {
					baseIndex = res.indexOf("<!--%location%-->");
					loc = res.substring(baseIndex+21);
					loc = loc.substring(0, loc.indexOf('-->'));
					document.location.href = loc;
				}
				
				if ( res.indexOf("<!--%ajax%-->") >= 0 ) {
					baseIndex = res.indexOf("<!--%ajax%-->");
					
					filename2 = res.substring(baseIndex+17);
					filename2 = filename2.substring(0, filename2.indexOf('-->'));
					
					params2   = res.substring(baseIndex+filename2.length+24);
					params2   = params2.substring(0, params2.indexOf('-->'));
					
					div2      = res.substring(baseIndex+filename2.length+31+params2.length);
					div2      = div2.substring(0, div2.indexOf('-->'));
					
					ajaxRequest(filename2, params2, div2);
				}				
				//ha a visszaadott érték tartalmazza a '<!--%closewin%-->' sztringet, akkor bezárjuk az ablakot
				if ( res.indexOf('<!--%closewin%-->') >= 0 ) {
					window.close();
				}
				if (res.indexOf('<!--%editor_page_data%-->') >= 0)
				{
					editorRrequestResult();
				}
				
	  		hide_element("ajax_indicator");
	    } else {
	  		hide_element("ajax_indicator");
	      alert("Ajax hiba: " + request.statusText);
	    }
	  }
	}
}

function ajaxRequestForm(filename, form, div) {
	ajaxRequest(filename, formSerialize(form), div);
}

function ajaxRequestPost(filename, params, div) {
	show_element("ajax_indicator");
	
	var request = createAjaxRequest();
	params = encodeParams(params);
	request.open('POST', "ajax.php?page="+filename);
	request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	request.setRequestHeader("Content-length", params.length);
	request.setRequestHeader("Connection", "close");
	request.onreadystatechange = requestResult;
	request.send(params);
	
	function requestResult()
	{
		if (request.readyState == 4)
		{
		    if (request.status == 200)
		    {
		    	res = request.responseText;
		    	document.getElementById(div).innerHTML = res;
		      	
		        //ha a visszaadott érték tartalmazza az '<!--%alert%-->' sztringet, akkor az utánna lévő szöveget alerteljük
				if ( res.indexOf("<!--%alert%-->") >= 0 )
				{
					baseIndex = res.indexOf("<!--%alert%-->");
					mes = res.substring(baseIndex+18);
					mes = mes.substring(0, mes.indexOf('-->'));
					alert(mes);
				}
				//ha a visszaadott érték tartalmazza a '<!--%blink%-->' sztringet, akkor a visszatérési div-et villogtatjuk
				if ( res.indexOf("<!--%blink%-->") >= 0 ) {
					blink(div);
				}
				//ha a visszaadott érték tartalmazza a '<!--%location%-->' sztringet, akkor az utánna lévő címre ugrunk
				if ( res.indexOf("<!--%location%-->") >= 0 ) {
					baseIndex = res.indexOf("<!--%location%-->");
					loc = res.substring(baseIndex+21);
					loc = loc.substring(0, loc.indexOf('-->'));
					document.location.href = loc;
				}
		  		hide_element("ajax_indicator");
		    }
		    else
		    {
		    	hide_element("ajax_indicator");
		        alert("Ajax hiba: " + request.statusText);
		    }
		}
	}
}