Websprout = {};
Websprout.Active = {};
Websprout.Active.Grid = {};
Websprout.Active.Form = {};
var form_submission_array = new Array();

Websprout.goView = function( c, k, v, p, pk, vv, crumb ) {
	if (typeof(c) == "object") {
		window.location.href = '?' + this.getVars(c);
	} else {
		window.location.href = '?' + [ c, k, v, p, pk, vv, crumb ].join('/');
	}
}

function goView(c,k,v,p,pk,vv,crumb) {
	Websprout.goView(c,k,v,p,pk,vv,crumb);
}

Websprout.getVars = function( obj ) {
	var vars = "";
	if (typeof(obj) == "object") {
		var c = (obj.component)?obj.component:obj.component;
		var k = (obj.id)?obj.id:obj.id;
		var p = (obj.parent)?obj.parent:'';
		var pk = (obj.parentId)?obj.parentId:'';
		var v = (obj.view)?obj.view:'';
		var vv = (obj.values)?obj.values:'';
		var crumb = (obj.crumb)?obj.crumb:'';
		vars = [ c, k, v, p, pk, vv, crumb ].join('/');
	}
	return vars;
}

Websprout.getView = function( where, c, k, v, p, pk, vv ) {
	var params = {
		'component': c,
		'id': k,
		'view': v,
		'parent': p,
		'parentKey': pk,
		'viewValues': vv,
		'rand': Math.random(),
		'where': where
	};
	
	var options = {
		'url': 'index.php5',
		'rand': Math.random(),
		'params': params,
		'method': 'POST',
		'callback': function(options,success,response) {
			document.getElementById(options.params.where).innerHTML = response.responseText;
			Websprout.run();
		}
	};
	
	Ext.Ajax.request(options);
}

Websprout.runLater = function(code) {
	if (this.runLaterItems == null) {
		this.runLaterItems = new Array();
	}
	this.runLaterItems.push(code);
}

Websprout.run = function() {
	if (this.runLaterItems == null) {
		return;
	}
	var code;
	while (this.runLaterItems.length) {
		code = this.runLaterItems.shift();
		eval(code);
	}
	this.runLaterItems = new Array();
}



Websprout.pushForm() = function() {
	form_submission_array.push( document.forms[document.forms.length-1].id );
}

Websprout.popForm() = function() {
	return form_submission_array.pop();
}

Websprout.getNextForm() = function() {
	var formid = form_submission_array[form_submission_array.length-1];
	return document.forms[formid];
}

Websprout.generic_submitAllForms( dopop ) = function() {
	if ( dopop ) {	
		Websprout.popForm();
	}
	var form = Websprout.getNextForm();	
	if ( form ) {
		// loop through the elements, and only submit if one of them has been modified.
		// the main form should be submitted first
		//if ( formIsModified( form ) ) {
			// a value is different
			var onOK = 'Websprout.generic_submitAllForms( 1 )';
			var onError = 'Websprout.submitFormError("'+form.id+'")';
			return Websprout.submitForm( form, onOK, onError);
		//}				
	}
}

Websprout.submitForm( form, submitOK, submitFailure ) = function() {
	if ( submitOK ) {
		form.elements['submitOK'].value = submitOK;
	}
	if ( submitFailure ) {
		form.elements['submitFailure'].value = submitFailure;
	}		
	form.submit();
}

Websprout.submitFormError( formid ) = function() {
	var form = document.getElementById( formid );
	if ( form && form.parentElement ) {
		form.parentElement.style.background = '#F5E1B8';
	}
}


