/****************************************************************************************
					AJAX OBJECT
****************************************************************************************/
function ajaxObject(url,method){
	var that=this;
	this.AJAXerror=false;
	this.updating=false;
	this.callback=function(){}
	
	this.update=function(passData){
		if(that.updating==true){return false;}
		that.updating=true;
		var AJAX;
		try{
			AJAX = new XMLHttpRequest(); //Firefox, Opera, Safari
		}
		catch(e){
			try{
				AJAX = new ActiveXObject('Msxml2.XMLHTTP'); // Internet explorer
			}
			catch(e){
				try{
					AJAX = new ActiveXObject('Microsoft.XMLHTTP');
				}
				catch(e){
					this.AJAXerror="Your browser does not support AJAX";
					return false;
				}
			}
		}
		AJAX.onreadystatechange=function(){
			if(AJAX.readyState==0 || AJAX.readyState==1 || AJAX.readyState==2 || AJAX.readyState==3)
				that.callback("Processing...",0);
			if(AJAX.readyState==4){
				that.updating=false;
				that.callback(AJAX.responseText,AJAX.status);
				delete AJAX;
			}
		}
		switch(useMethod){
			case 'GET':
				var timestamp = new Date();
				var uri=urlCall+'?'+passData+'&timestamp='+(timestamp*1);
				AJAX.open('GET', uri, true);
				AJAX.send();
			break;
			
			case 'POST':
				AJAX.open('POST',urlCall,true);
				AJAX.setRequestHeader('Content-type','application/x-www-form-urlencoded');
				AJAX.send(passData);
			break;
		}
		return true;
	}
	
	this.property="Hello World"; //debugging: remove when done
	
	var urlCall=url;
	var useMethod=method;
}

/****************************************************************************************
					GET FORM VALUES - BUILD DATA STRING
****************************************************************************************/
function fnGetFormValues(fobj){
	var str = '';
	var i;
	for(i in fobj.elements){
		var e = fobj.elements[i];
		switch(e.type){
			case 'text':
			case 'textarea':
			case 'hidden':
				str += '&'+e.name + '=' + escape(e.value);
			break;
			case 'select-one':
				str += '&'+e.name + '=' + e.options[e.selectedIndex].value;
			break;
			case 'select-multiple':
				var opt='';		
				for(x in e.options){
					if(e.options[x].selected){
						opt += ','+e.options[x].value;
					}
				}
				str += '&'+e.id + '=' + opt.substr(1);
			break;
			case 'radio':
				if(e.checked==true){
					str += '&'+e.name + '=' + e.value;
				}
				if(str.indexOf(e.name)<0){
					str += '&'+e.name + '=' + '0';
				}
			break;
			case 'checkbox':
				if(str.indexOf(e.name)<0){
					var a = document.getElementsByName(e.name);
					//var k = a.length;
					var opt='';
					var tot=0;
					for(x in a){
						if(a[x].checked){
							if(!isNaN(a[x].value)){
								tot += +a[x].value;
							}
							else{
								opt += ','+a[x].value;
							}
						}
					}
					if(opt.length>0){
						str += '&'+e.name + '=' + opt.substr(1);
					}
					else{
						str += '&'+e.name + '=' + tot;
					}
				}
			break;
			/*
			//Can use button values to send parameters also!
			case 'button':
				alert('Button '+e.value);
			break;
			*/
		}
	}
	return str.substr(1);
}
			

