/**
* Project : VectorLibrary
* Package : Joomla!
* Version : 1.0
* Author  : 2007, 2008 Vector Online Communications BV, Michel Groenescheij
*/

// AJAX
function createXMLHttpRequest() {
    
    var ua;
    
    if(window.XMLHttpRequest) {
        try {
        ua = new XMLHttpRequest();
        } catch(e) {
        ua = false;
        }
    } else if(window.ActiveXObject) {
        try {
        ua = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
        ua = false;
        }
    }
    return ua;

}//function


var req = createXMLHttpRequest();
var componentName;
var currentParameters;
var currentForm;

// performs action on form elements
//
function doAction(theFormName, theParameters, submitForm, verifyFormFirst, noscroll, theSelection) {
	
	currentForm = theFormName;
	
	if (theModuleName.length > 0) {
		//alert('LOADING...\nForm: ' + theFormName + '\nParameters: ' + theParameters + '\nSubmit Form: ' + submitForm + '\n Verify form: ' + verifyFormFirst + '\n')
		
		theForm = document.forms[theFormName];
		
		if (!verifyFormFirst || verifyForm(theForm)) {
			
			//confirm action
		  	var result = true;
			if (theParameters && theParameters.indexOf('action=delete') >= 0) {

			  	//handle delete action
			  	if (theSelection) {
			  		//deleting from an item list
			  		var count = countCheckedBoxes(theFormName, theSelection);
			  		if (count == 0) {
			  		  	alert('Er zijn geen items geselecteerd.');
						result = false;
					} else {
						result = confirm('Wil je de ' + count + ' geselecteerde items echt verwijderen?');
						if (result) theParameters += '&selection=' + theSelection;
					}
			  	} else  {
					//deleting single item
					result = confirm('Wil je dit item echt verwijderen?');
				}
			} else if (theParameters && theSelection) {
			  	//handle other actions
			  	if (document.getElementById(theSelection)) {
			  		var count = countCheckedBoxes(theFormName, theSelection);
			  		if (count == 0) {
			  		  	alert('Er zijn geen items geselecteerd.');
						result = false;
					} else {
						theParameters += '&selection=' + theSelection;
					}
			  	}
			}//if

			if (result) {
				//compose parameters based on form
			  	var parameters = theParameters;
				if (theForm) {
					for (i=0; i<theForm.elements.length; i++) {
					  	el = theForm.elements[i];
					  	if (!((el.type == "radio" || el.type == "checkbox") && !el.checked)) {
							//check if element is of date fieldtype, then convert to MySQL format
							if ((el.className) == "date") {
								var ddmmyyyy = el.value;
								var dd = ddmmyyyy.substring(0, 2);
								var mm = ddmmyyyy.substring(3, 5);
								var yyyy = ddmmyyyy.substring(6, 10);
								parameters += '&' + el.name + '=' + yyyy + mm + dd;
							} else if (el.type == "select-multiple") {
								idx = 0; 
								optLength = el.length; 
								for(pms = 0; pms < optLength; pms++) { 
									optElem = el.options[pms]; 
									if (optElem.selected && optElem.value != "nothing_selected") { 
										parameters += '&' + el.name + '[' + idx + ']' + '=' + optElem.value; 
										idx++; 
									} 
								}  
							} else {
								parameters += '&' + el.name + '=' + el.value;
							}
						}
					}
				}//if
				
				//scoll to the top of the window by default
				if (noscroll != true || noscroll == null) {
			    	scroll(0,0);
				}

				//send ajax request
				currentParameters = parameters;
			    req.open('post', '/index.php?' + parameters);
			    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			    req.onreadystatechange = handleResponse;
			    req.send(parameters);

			}
			
			
		}//if
	}

}//function


// handles request response
//
function handleResponse() {

	if (req.readyState == 4) {

	    var response = req.responseText;
		var update = new Array();
        update = response.split('||');
		//alert (response);
		
		if (req.status !== 200) {
			alert("Niet gevonden: " + req.statusText);
		} else {
        
			var cmd = trim(update[0]);
			
	        if (cmd == 'blank') {
		        update = response.split('||');
	 	        window.location = update[1] //i.e. http://www.panthera.nl;
	 	        //window.location = "file.php";
	 	        //window.location.reload( true );
	       	} else {
				document.getElementById('module').innerHTML = currentModule;
				if (currentModule != 'home') breadCrumb = '<a href=javascript:doAction("home")>Home</a>';
				if (currentModule != 'home') breadCrumb += ' >> <a href="javascript:doAction(\'' + currentModule + '\');">' + currentModule + '</a>';
				//document.getElementById('breadcrumb').innerHTML = breadCrumb;
		        update = response.split('||');
				document.getElementById(cmd).innerHTML = update[1];
	       	}
	       	
		}

    }   
}//function
