var clicking      = false;
var show_loading  = false;
var http_request  = false;

function makeRequest(url, form_fields)
{
	//make sure there isn't another ajax request that hasn't finished yet
	try{
		if(http_request != false && http_request.readyState != 4){
			try{
				http_request.abort();
			}catch(error){
				http_request.onreadystatechange = function() { };
			}
		}
	}catch(e){

	}

    http_request = false;

    if(show_loading != false){
    	toggle_loading('on');
    }

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            //http_request.overrideMimeType('text/xml');
        }
    } 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() { update_page(http_request); };

    if(form_fields == null){
    	http_request.open('GET', url, true);
    	http_request.send(null);
    }else{
    	http_request.open('POST', url, true);
    	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	http_request.setRequestHeader("Content-length", form_fields.length);
    	http_request.setRequestHeader("Connection", "close");
    	http_request.send(form_fields);
    }
}

function update_page(http_request)
{
	try{
		if (http_request.readyState == 4) {
	        if (http_request.status == 200) {
				var response = http_request.responseText;
				var divs = response.split('*ajax_new_div*');

				for(var i = 1; i < divs.length; i++){
					var div_info = divs[i].split('*ajax_div_id*');
					var div_id = trim(div_info[0]);
					var div_data = div_info[1];

					if(div_id == 'update_error'){

					}else{
						update_div(div_id, div_data);
					}
				}

	        } else {

	        }

	        if(show_loading){
	    		toggle_loading('off');
	    		//show_loading = false;
	    	}

	    	recalc();
	    	document.recalc();
	    }
	}catch(error){
		//caught error from canceling ajax request
	}
}

function form_submit(form, submit_name, submit_value){
	post_fields = '';

	for(i = 0; i < form.elements.length; i++){
		if(i > 0){
			post_fields += "&";
		}

		if((form.elements[i].type != 'checkbox' || (form.elements[i].type == 'checkbox' && form.elements[i].checked)) && form.elements[i].type != 'submit'){
			post_fields += form.elements[i].name + "=" + encodeURI(form.elements[i].value);
		}
	}

	post_fields += "&" + submit_name + "=" + submit_value;

	return post_fields;
}

function hide(id){
	if(!clicking){
		document.getElementById(id).style.display = "none";
	}
}

function update_div(id, html){
	document.getElementById(id).innerHTML = html;
	document.getElementById(id).style.display = "block";
	document.getElementById(id).style.overflow = "auto";
}

function toggle_loading(new_status){
	load_element = document.getElementById('cover' + show_loading);

	if(load_element){
		if(new_status == 'on'){
			load_element.style.display = 'block';
		}else{
			load_element.style.display = 'none';
		}
	}
}

function toggle_lightbox(lightbox_id, div_id, hide){
	if(document.getElementById(lightbox_id).style.display != 'block' && !hide){
		document.getElementById(lightbox_id).style.display = "block";
		document.getElementById(div_id).style.display = "block";
	}else{
		document.getElementById(lightbox_id).style.display = "none";
		document.getElementById(div_id).style.display = "none";
	}
}

function trim(string){
	return string.replace(/^\s+|\s+$/g,"");
}



