function makeRequest(url, func) {
	url = url+'&ajax=1';
	var winn = (arguments.length > 2) ? arguments[2] : "";
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  
  if (!http_request) return false;
  if (func) {
  	var param = "(http_request)";
	  if (winn) {
	  	param = "(http_request, '"+winn+"')";
	  }
	  http_request.onreadystatechange = function() { 
	  	if ((http_request.readyState == 4) && (http_request.status == 200)) 
	  		eval( func + param);
	  	};
  }
  http_request.open('GET', (url + "&tm=" + (new Date()).getTime()), true);
  http_request.send(null);
}

var btn_title = '';
var btn_click = '';
function res_btn() {
	if (btn_click && btn_title) {
		btn_click.value = btn_title; 
	}
}

function makePOSTRequest(form) {
	btn_click  = (arguments.length > 1) ? arguments[1] : null;
	obj  = (arguments.length > 2) ? arguments[2] : null;
	mode  = (arguments.length > 3) ? arguments[3] : "rewrite";
	if (btn_click) {
		btn_title = btn_click.value;
		//btn_click.value = wait_please; 
		setTimeout("res_btn()", 30000);
	}
	password = document.getElementById('password');
	if (password) {
		password2 = document.getElementById('password2');
		if (password.value != password2.value) {
			alert('Passwords does not match!');
			return;
		}
	}
//	try {
//		document.getElementById('modal').style.zIndex = '1000';
//	} catch(e) {}
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
  	http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    	// set type accordingly to anticipated content type
      http_request.overrideMimeType('text/html');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  if (!http_request) return false;
  http_request.onreadystatechange = function() { 
  	if ((http_request.readyState == 4) && (http_request.status == 200)) {
  		//alert(http_request.responseText);
  		try {	eval(http_request.responseText); } catch(e) {
  			//alert(http_request.responseText);
			if (obj){
			loc = document.getElementById( obj );
			if (loc)  {load (loc,http_request.responseText,mode);   //alert(http_request.responseText);
			}
			}
  		}
//  		try { document.getElementById('modal').style.zIndex = '10'; } catch(e) {} 
  	}
  };
  var parameters = getFormValues(form);
  http_request.open('POST', form.action, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function getFormValues(fobj) {
	var str = "ajax=1&";
	for (var i = 0;i < fobj.elements.length;i++) {
		switch (fobj.elements[i].type) {
		  case "text": 
		  case "textarea":
		  case "hidden":
		  case "password":
		  case "button":
				str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";
		  break;
		  case "select-one":
		  	if (fobj.elements[i].selectedIndex > -1) {
		  		str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
		  	}	
		  break;
		  case "select-multiple":
				for(j=0; j < fobj.elements[i].length; j++) {
					if (fobj.elements[i].options[j].selected) {
						str += fobj.elements[i].name + "=" + fobj.elements[i].options[j].value + "&";
					}	
				}
		  break;
		  case "checkbox":
				if (fobj.elements[i].checked) {
					var chk_val = fobj.elements[i].value;
					if (!chk_val) {
						chk_val = 1;
					} 
					str += fobj.elements[i].name + "=" + encodeURIComponent(chk_val) + "&";
				}
			break;	
		  case "radio":
				if (fobj.elements[i].checked) {
					var chk_val = fobj.elements[i].value;
					if (!chk_val) {
						chk_val = 1;
					} 
					str += fobj.elements[i].name + "=" + encodeURIComponent(chk_val) + "&";
				}
			break;	
//			default:
//				alert('Unknown element:'+fobj.elements[i].type);	
		}
	}
	
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		try{
			if ((str.indexOf("&filter1=",0) >= 0) && (str.indexOf("&filter2=",0) == -1)){
				vmid = document.getElementById('filter2');
				if (vmid)	str += 'filter2=' + vmid.value + "&";
			}
		} catch(e) {}
	}
	
	str = str.substr(0,(str.length - 1));
	return str;
}

var fill_div = '';
function _fillDIV(http_request) {
	if (fill_div.length < 2) return;
	var div = document.getElementById(fill_div);
	if (!div) {
//		alert('NOT found!: '+fill_div);
		return;
	}
	fill_div = '';
  div.innerHTML = http_request.responseText;
//  alert('IH:'+div.innerHTML);
  var x = div.getElementsByTagName("script"); 
  var bdy = document.body; 
  for (var i=0; i < x.length; i++) {
	  var scr = document.createElement('script');
	  scr.type = 'text/javascript';
	  scr.defer=true;
  	scr.text = x[i].text;
  	bdy.appendChild(scr);
  }	
}

function fillDIV(url, divid) {
	if (fill_div.length > 1) return;
	fill_div = divid;
	makeRequest(url, '_fillDIV');
}
