//ajaxObject
//url = location of the serverside script
//callbackFunction the interactive with the serverside script
//callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);

function ajaxObject(url, callbackFunction) {  
	var that=this;        
	this.updating = false;  
	this.abort = function() {    
		if (that.updating) {     
			that.updating=false;     
			that.AJAX.abort();      
			that.AJAX=null;    
			}  
	}
	
	this.update = function(passData,postMethod) {     
		if (that.updating) { 
			return false; 
		}    
		
		that.AJAX = null;
		if (window.XMLHttpRequest) {
			that.AJAX=new XMLHttpRequest();
		} 
		else {                                        
			that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");    
		}
	
		if (that.AJAX==null) {                                   
			return false;                                   
		} 
		else {      
			that.AJAX.onreadystatechange = function() {          
				if (that.AJAX.readyState==4) {                       
					that.updating=false;
					that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);
					that.AJAX=null;
				}
			}
		
			that.updating = new Date();
			if (/post/i.test(postMethod)) {        
				var uri=urlCall+'?'+that.updating.getTime();        
				that.AJAX.open("POST", uri, true);        			
				that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				that.AJAX.setRequestHeader("Content-Length", passData.length);
				that.AJAX.send(passData);      
			} 
			else {        
				var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());         
				that.AJAX.open("GET", uri, true);
				that.AJAX.send(null);
			}                    
			return true;
		}
	}  

	var urlCall = url;
	this.callback = callbackFunction || function () { };
}



//DynamicTextList
//Target = target div
//values = init data
//output in a array called "target"[]

	function DTL(target,values){	
		var numOfText = 0;
		var that = this;
			
		this.init = function(){
		
			var dataArray = new Array();

			dataArray = values.split(",");
				
			var mainObject = document.getElementById(target);
						
			var newDiv = document.createElement('DIV');
			newDiv.id = target+numOfText;
		
			var newInputText = document.createElement('INPUT');
			
			newInputText.type = "TEXT";
			newInputText.name = target+"txt[]";
			
			if(dataArray[0]==undefined)
				newInputText.value = "";
			else
				newInputText.value = dataArray[0];
			
			var newInputButton = document.createElement('BUTTON');
			newInputButton.setAttribute("Name",target+"cmd"+numOfText);
					
			var buttext = document.createTextNode('ADD');
		
			newInputButton.appendChild(buttext);
			newInputButton.onclick = function(){that.add(); return false;};
			
			newDiv.appendChild(newInputText);
			newDiv.appendChild(newInputButton);
			
			mainObject.appendChild(newDiv);
				
			for(i=1;i<dataArray.length;i++){
				that.add(dataArray[i]);
			}			
		}
		
		this.test = function(target,targetChild){
			var mainObject = document.getElementById(target);
			var OjectChild = document.getElementById(targetChild);			
			mainObject.removeChild(OjectChild);
		}
			
		this.add = function(value){
			numOfText++;
		
			var mainObject = document.getElementById(target);
		
			var newDiv = document.createElement('DIV');
			newDiv.id = target+numOfText;
		
			var newInputText = document.createElement('INPUT');
			
			newInputText.type = "TEXT";
			newInputText.name = target+"txt[]";			
			if(value==undefined)
				newInputText.value = "";
			else
				newInputText.value = value;
				
			var newInputButton = document.createElement('BUTTON');
			newInputButton.setAttribute("Name",target+"cmd"+numOfText);
			
			var buttext = document.createTextNode('REMOVE');
		
			newInputButton.appendChild(buttext);
				
			newInputButton.onclick = function(){that.remove(target,newDiv.id);};
			
			newDiv.appendChild(newInputText);
			newDiv.appendChild(newInputButton);
		
			mainObject.appendChild(newDiv);				
		}
		
		this.remove = function(target,targetChild){
		
			var mainObject = document.getElementById(target);
			var OjectChild = document.getElementById(targetChild);
			
			mainObject.removeChild(OjectChild);
		}
				
	}
