BLSQLEnabled=true;

sql_query=function(formId){
	if(BLSQLEnabled){
		BLSQLEnabled=false;
		this.form=document.getElementById(formId);
		inputs=this.form.getElementsByTagName('input');
		textareas=this.form.getElementsByTagName('textarea');
		this.fields=Array;
		this.values=Array;
		this.fieldTypes=Array;
		this.onSucces=false;
		this.table='';
		for(var i=0;i<inputs.length;i++){
			input=inputs[i];
			switch(input.getAttribute('name')){
				case 'type':
					this.type=input.getAttribute('value');
					break;
				case 'database':
					this.database=input.getAttribute('value');
					break;
				case 'submit':
					break;
				case 'queryId':
					this.queryId=input.getAttribute('value');
					break;
				case 'url':
					this.url=input.getAttribute('value');
					break;
				case 'succes':
					this.onSucces=input.getAttribute('value');
					break;
				case 'table':
					this.table=input.getAttribute('value');
					break;
				case 'onlyonce':
					this.onlyOnce=input.getAttribute('value');
					break;
				default:
					name=input.getAttribute('name');
					if (name.substr(0,6)=='field_' && name.substr(-5,5)=='_type'){
						field=name.substr(6,name.length-11);
						this.fieldTypes[field]=input.getAttribute('value');
					}else{
						this.fields[name]=input.value;
					}
			}
		}
		for(var i=0;i<textareas.length;i++){
			input=textareas[i];
			name=input.getAttribute('name');
			if (name.substr(0,6)=='field_' && name.substr(-5,5)=='_type'){
				field=name.substr(6,name.length-11);
				this.fieldTypes[field]=input.getAttribute('value');
			}else{
				this.fields[name]=input.value;
			}
		}
		this.run();
	}
}

sql_query.prototype={
	run:function(){
		this.api=new BLXMLAPI('sql/query');
		this.api.setCallBack(this.parseResponse,this);
		var arguments={"type":this.type,"database":this.database,"table":this.table,"queryId":this.queryId};
		for(fieldName in this.fields){
			arguments[fieldName]=this.fields[fieldName];
		}
		this.api.run(arguments);
	},
	parseResponse:function(){
		if (this.api.errors.count>0){
			new BLError(SL_ERROR_WARNING,'Query Failed.');
		}else{
			if (this.onSucces){
				eval(this.onSucces);
			}
		}
		if(this.onlyOnce==='false'){
			BLSQLEnabled=true;
		}
	}
}