/*
 * Copyright 2010 SECRA GmbH
 * Autor: R. E. Platz
 * 
 * Beschreibung: Packt die Input Felder eines FORM Elementes zu einem
 *               POST-fähigen String zusammen.
 * 
 */

if(!secra){
	var secra = {};
}

secra.FormPackager = function(){
	this.pairs = {};
};

/* public */
secra.FormPackager.prototype.packForm = function(formname){
	
	if(!document.getElementsByName){
		return null;
	}
	
	var forms = document.getElementsByName(formname);
	
	if(forms.length < 1){
		return null;
	}
	
	var form = forms[0];
	delete forms;
	
	this.getInputPairs(form);
	
	return this.pairs;
};

/* private */
secra.FormPackager.prototype.getInputPairs = function(obj){
	if(obj.tagName && (obj.tagName.toLowerCase() == 'input' || obj.tagName.toLowerCase() == 'select'|| obj.tagName.toLowerCase() == 'textarea') && obj.name!=''){
		if(obj.type.toLowerCase() == 'checkbox' || obj.type.toLowerCase() == 'radio'){
			if(obj.checked){
				this.pairs[obj.name] = obj.value;
			}
		} else {
			this.pairs[obj.name] = obj.value;
		}
	} else {
		if(obj.childNodes.length > 0){
			var children = obj.childNodes;
			for(var i = 0; i < children.length; i++){
				if(children[i]!=obj){
	     			this.getInputPairs(children[i]);
				}
			}
		}
	}
};
