function handle_job_post () {
	if(DOM.user_serial && DOM.type == '3') {
		window.location='jobs/index.php?post=new';
	} else if(DOM.user_serial && DOM.type != '3') {
		var signup = confirm('You must have a Jobs Account to post jobs.\n Do you want to create one now?');
		if(signup) {
			jobs_signup_display();
		}
	} else {
		login_display('post');
	}
}

function guest_jobs (serial, callback) {

	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			var xml = XObj.responseXML;

			if(!xml) {
				alert('This job posting has expired.');
			}
			else {
				var array = xml_to_array(xml);
				var jobs = array['job_array'];
				
				DOM.jobs = new Object;
				DOM.jobs = jobs;
				
				if(callback) {
					callback();
					return false;
				}
			}
		}
	}	
	XObj.open('POST','jobs/php/jobs.php?serial='+serial,true);
	XObj.send(null);
}

function job_post () {
	var callback = function (job_array) {
		var jobs = new My_Jobs_Widget(job_array);
		jobs.display_jobs();
		jobs.post_job();
	}
	my_jobs_display(callback);
}

function add_new_job () {
	serial = DOM.user_serial;

	var info = _get('new_job_info').value;
	var name = _get('new_job_title').value;
	
	if(!info || !name) {
		alert('You must enter a job title and job information.');
		return false;
	}
	
	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			//need error handling
			my_jobs_display();
		}
	}	
	XObj.open('POST','php/jobs.php?serial='+serial+'&type=new&info=' + info + '&name=' + name,true);
	XObj.send(null);

}

function my_jobs_display(callback) {
	
	serial = DOM.user_serial;
	if(DOM.type != '3') {
		window.location = "http://topfolios.com";
		return false;
	}
	
	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			var xml = XObj.responseXML;

			if(!xml) {
				alert('This job posting has expired.');
			}
			else {
				var array = xml_to_array(xml);
				var jobs = array['job_array'];
				
				if(callback) {
					callback(jobs);
					return false;
				}
				
				var job_listing = new My_Jobs_Widget(jobs);
				job_listing.display_jobs();
				DOM.jobs = jobs;
				
				var contact_callback = function (xml, contacts, owner, serial) {
					var array = xml_to_array(xml);
					var contact_array = array['contact_array'];
					DOM.contacts = contact_array;
					
					var job_contacts = new Contact_Widget(DOM.contacts, owner, serial);
					job_contacts.job_account_contacts('contacts_wrapper');
				}
				contacts(serial, contact_callback);
			}
		}
	}	
	XObj.open('POST','php/jobs.php?serial='+serial,true);
	XObj.send(null);
}

function response_display(job_id) {
	
	serial = DOM.user_serial;

	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			var xml = XObj.responseXML;
			var job_responses = xml_to_array(xml);
			
			var responses = job_responses['response_array'];
			var widget = new Response_Widget(responses, job_id, serial);
			widget.response_display();
		}
	}
	XObj.open('POST','php/job_response.php?serial='+serial+'&job_id='+job_id,true);
	XObj.send(null);
}

function hide_response_display() {
	my_jobs_display();
}

function post_new_job () {
	var jobs = new My_Jobs_Widget();
	jobs.post_job();
}

function cancel_job () {
	var jobs = new My_Jobs_Widget();
	jobs.cancel_job();
}

function job_display (serial) {
	var owner = DOM.owner;
	var OBJ = DOM.active;

	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			var xml = XObj.responseXML;

			if(!xml) {
				alert('This job posting has expired.');
			}
			else {
				var array = xml_to_array(xml);
				var job = array['job_array'];
				
				DOM.job = job;
				var job_listing = new Job_Widget(job);
				job_listing.display_job();
			}
		}
	}
	XObj.open('POST','php/contact_jobs.php?serial='+serial,true);
	XObj.send(null);
}

function post_response () {
	var job = new Job_Widget(DOM.job);
	job.post_response();
}

function submit_job_response (serial, job_id) {
	var sender = DOM.user_serial;
	var type = "post";
	var text = _get('job_response_input').value;
	
	try { XObj = new XMLHttpRequest(); }
	catch(e) { XObj = new ActiveXObject(Microsoft.XMLHTTP); }
	
	XObj.onreadystatechange = function () {
		if(XObj.readyState == 4) {
			var text = XObj.responseText;
			
			if(!text || text == 'invalid') {
				alert('Thank you for your interest.\n\n Your response has already been posted.');
				window.location = "../user";
				return false;
			} else {
				alert('Thank you.\n\n Your response has been posted.');
				window.location = "../user";
			}
		}
	}	
	XObj.open('POST','php/contact_jobs.php?job_id='+job_id+'&serial='+serial+'&sender='+sender+'&text='+text+'&type='+type ,true);
	XObj.send(null);
}

function cancel_response () {
	var job = new Job_Widget();
	job.cancel_response();
}