
	var refreshUrl = '';
	var refreshDiv = '';
	var refreshParam = '';


    function makeRequest(url,getvars,layer, method, refrUrl, refrDiv, refrParam) {
        var http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 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) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        
        
        http_request.onreadystatechange = function() { alertContents(http_request, layer); };
		
        if (method!='post'){
        	http_request.open('GET', url+getvars, true);
        	http_request.send(null);
        	
			if (refrUrl!=undefined){
				refreshUrl = refrUrl;
				refreshDiv = refrDiv;
				refreshParam = refrParam;

		      	timerID = setTimeout(refresh, 2000);
			}
        } else {
          parameters = getvars;
          http_request.open('POST', url, 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);

		  if (refreshUrl!=''){
	      	timerID = setTimeout(refresh, 2000);
		  }

        }
    }

    function refresh(){
    
    	if (refreshDiv=="_blank"){
    			
    		if (document.getElementById('type_submit').value!="save"){    			
    			
    			if (document.getElementById('errors').value!=1){    				    				
    				window.open(refreshUrl);
    			} else {	
    				document.getElementById('errors').value=0;
    				document.getElementById('save_form_top').innerHTML = document.getElementById('save_form').innerHTML;    			
    				document.getElementById('save_form_top').style.display='block';
    			}
    		} else {
    			
    			if (document.getElementById('errors').value!=1){	    				
    				//window.location=document.getElementById('redirect_after_submit').value;
    			} else {
    				document.getElementById('errors').value=0;
    				document.getElementById('save_form_top').innerHTML = document.getElementById('save_form').innerHTML;    			
    				document.getElementById('save_form_top').style.display='block';
    			}    		
    		}    	
    	} else {
    		makeRequest(refreshUrl, refreshParam, refreshDiv);
    	}
    }


    function alertContents(http_request, layer) {
    	
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                document.getElementById(layer).innerHTML=(http_request.responseText);
            } else {
                alert('There was a problem with the request.'+http_request.status);
            }
        }

    }

   function post(obj, url, getvars, layer, refrUrl, refrDiv, refrParam) {
		var poststr = '';
		var elem = obj.elements;
		
		refreshUrl = refrUrl;
		refreshDiv = refrDiv;
		refreshParam = refrParam;
	
		for(var i = 0; i < elem.length; i++){
			if (i>0) poststr+="&";
			if (elem[i].type == "checkbox") {
				if(elem[i].checked == true){
					poststr+= elem[i].name + "="+encodeURI( elem[i].value );
				} else {
					poststr+= elem[i].name + "=";
				}
			} else {
				poststr+= elem[i].name + "="+encodeURI( elem[i].value );
			}
		}	
		
		
		 makeRequest(url, poststr, layer, 'post');
   }
   
   function form_to_get(element){
	   	if (document.getElementById(element) != null) {
			return query_string = element + "=" + document.getElementById(element).value;
		} else {
			return "";
		}
   }

