var nxcRegistration= new Class({
	options			: new Hash({
		showTabs			: true,
		disableTabs			: true,
		tabsNavigation		: false,
		selectingTabs		: false,
		useEmail				: false,
		setActiveParrent	: false,
		formValidation		: false,
		formNavigation	: false,
		succesCheckbox	: '#PublishButton',
		cancelCheckbox	: '#CancelButton',
		enbTabNavClass	: 'reg-enb-tabNavEl',
		disTabNavClass	: 'reg-dis-tabNavEl',
		actTabNavClass	: 'reg-act-tabNavEl',
		enbTabClass		: 'reg-enb-tab',
		disTabClass			: 'reg-dis-tab',
		actTabClass			: 'reg-act-tab',
		emailField			: '.reg-email',
		loginField				: '.reg-login',
		submitBlock			: '#reg-submit-block',
		tabs						: new Hash({
										'tab'	: 'selector'
										}),
		tabsNavEl			: new Hash({
										'tab' : 'selector'
										}),
		selections				: new Hash({
										'checkboxID1': {
																	tabs			: Array(),
																	enabled	: false,
																	require		: true
																},
										'checkboxID2': {
																	tabs			: Array(),
																	enabled	: false,
																	require		: false 
																}
										}),
		submit					: '#reg-submit',
		next						: '#reg-next',
		prev						: '#reg-prev',
		cancel					: '#reg-cancel',
		onStep					: function(tab){
			return true;
		},
		onSubmit				: function(form){
			return true;
		}
	}),
	form					: false,
	currTab			: 0,
	activeTabs		: Array(),
	tabsKeys			: Array(),
	FormValidator	: false,
	formValidating	: false,
	setupSelections		: function(){
		this.tabsKeys=this.options.tabs.getKeys();
		this.setSelectionsStatus();
		this.options.selections=this.filterSelections();
		this.setActiveTabs();
		this.options.selections.each(function(value, key){
			document.id( document.body ).getElementById(key).addEvent("click",function(e)
			{
				e.stop();
				if(this.options.formValidation){
          this.FormValidator.reset();
          document.id( document.body ).getElement( ".reg-errors").set('html','');
        }
				this.form.getElements('label').setStyle('color','');
				this.selectionClick(key);
			}.bind(this));
		},this);
	},
	setSelectionsStatus	: function(){
		this.options.selections.each(function(value, key){
			/*if(value.require) document.id( document.body ).getElementById(key).checked=true;
			if(document.id( document.body ).getElementById(key).checked) this.options.selections[key].enabled=true;
			else this.options.selections[key].enabled=false;*/
			el=document.id( document.body ).getElementById(key);
			checked=false;
			if(this.options.selections[key].require) el.addClass("disabled");
			if(this.options.selections[key].hide){ 
				el.addClass("disabled");
				el.getParent().setStyle('display','none');
				this.options.selections[key].enabled=false;
			}
			if(this.options.selections[key].enabled || this.options.selections[key].require) 
				{
					el.addClass("active");
					checked=true
				}
			else
				{
					el.removeClass("active");
					checked=false
				}
			this.changeSelectionStatus(key, checked);
		},this);
	},
	filterSelections			: function(){
		tempHash=new Hash({});
		this.options.selections.each(function(value, key){
			tempHash.include( key , value);
			tempHash[key].tabs=value.tabs.filter(function(item){ 
																								return this.tabsKeys.contains(item); 
																							},this);
		},this);
		return tempHash;
	},
	getActiveTabs			: function(){
		tempArr=Array();
		this.options.selections.each(function(value, key){
			if(value.enabled==true) tempArr.combine(value.tabs);
		},this);
		return tempArr;
	},
	sortTabs					: function(tabs){
		return this.tabsKeys.filter(function(item){ 
																				return tabs.contains(item); 
																			},this);
	},
	setActiveTabs					: function(){
		activeTabs=this.getActiveTabs();
		return this.activeTabs=this.sortTabs(activeTabs);
	},
	changeSelectionStatus	: function(selection,status)
	{
		if(!status && this.options.selections[selection].group){
			temp=false;
			this.options.selections.each(function(value, key){
				if(value.group == this.options.selections[selection].group && value.enabled && key!=selection) temp=true;
			},this);
			if(!temp && !this.options.selections[selection].hide){
				document.id( document.body ).getElementById(selection).addClass("active");
				status=true;
			}
		}
		if(document.id( document.body ).getElementById(this.options.selections[selection].checkbox))
			document.id( document.body ).getElementById(this.options.selections[selection].checkbox).checked=status;
		if(!this.options.selections[selection].require) this.options.selections[selection].enabled=status;
		activeTabs=this.getActiveTabs();
		if(status) this.enableSelection(selection,activeTabs);
		else this.disableSelection(selection,activeTabs);
	},
	enableSelection				: function(selection,activeTabs){
		this.options.selections[selection].tabs.each(function(item){
			this.enableTab(item,activeTabs);
		},this);
	},
	disableSelection				: function(selection,activeTabs){
		this.options.selections[selection].tabs.each(function(item){
			this.disableTab(item,activeTabs);
		},this);
	},
	selectionClick					: function(id){
		if(!this.options.selections[id].require && !this.options.selections[id].hide){
			el=document.id( document.body ).getElementById(id);
			checked=false;
			if(this.options.selections[id].enabled) 
				{
					el.removeClass("active");
					checked=false
				}
			else
				{
					el.addClass("active");
					checked=true
				}
			this.changeSelectionStatus(id,checked);
			this.setActiveTabs();
			this.checkPosition(this.currTab);
		}
	},
	enableTab	: function(tab,activeTabs){
		if(!activeTabs) activeTabs=this.activeTabs;
		if(!this.options.selectingTabs || (activeTabs && activeTabs.contains(tab))){
			tabEl=this.form.getElement( this.options.tabs[tab] );
			tabEl.setStyle('display','none');
			tabEl.removeClass(this.options.disTabClass);
			tabEl.addClass(this.options.enbTabClass);
			if(this.options.selectingTabs){
				tabNavEl=document.id( document.body ).getElement( this.options.tabsNavEl[tab] );
				tabNavEl.setStyle('display','block');
				tabNavEl.removeClass(this.options.disTabNavClass);
				tabNavEl.addClass(this.options.enbTabNavClass);
			}
			currTab=this.activeTabs[this.currTab];
			this.activeTabs=this.sortTabs(activeTabs);
			if(this.activeTabs.indexOf(tab)<this.activeTabs.indexOf(currTab)) this.moveToTab(tab,currTab);
		}
	},
	disableTab	: function(tab,activeTabs){
		if(!activeTabs) activeTabs=this.activeTabs;
		if(!this.options.selectingTabs || (activeTabs && !activeTabs.contains(tab))){
			tabEl=this.form.getElement( this.options.tabs[tab] );
			tabEl.setStyle('display','none');
			tabEl.removeClass(this.options.enbTabClass);
			tabEl.addClass(this.options.disTabClass);
			if(this.options.selectingTabs){
				tabNavEl=document.id( document.body ).getElement( this.options.tabsNavEl[tab] );
				tabNavEl.removeClass(this.options.enbTabNavClass);
				tabNavEl.addClass(this.options.disTabNavClass);
				tabNavEl.setStyle('display','none');
			}
			currTab=this.activeTabs[this.currTab];
			this.activeTabs=this.sortTabs(activeTabs);
			if(currTab==tab || (currTab && !this.checkTab(currTab) )) this.moveToTab(this.getAvailableTab(tab),currTab);
			else this.currTab=this.activeTabs.indexOf(currTab);
		}
	},
	checkTab	: function(tab,activeTabs){
		if(!activeTabs) activeTabs=this.activeTabs;
		if(tab && activeTabs.contains(tab)) return true
		else return false;
	},
	moveToTab				: function(tab,fromTab){
		if(!fromTab) fromTab=this.activeTabs[this.currTab];
		this.hideTab(fromTab);
		this.currTab=this.activeTabs.indexOf(tab);
		this.showTab(tab);
	},
	getAvailableTab		: function(tab){
		tabIndex=this.tabsKeys.indexOf(tab);
		if(tab){
			tabsArr=this.tabsKeys.filter(function(item, index){
																							return (index < tabIndex) && (this.activeTabs.contains(item));
																				});
			return tabsArr[tabsArr.length-1];
		}
		else return this.activeTabs[this.currTab-1];
	},
	showTab		: function(tab)
	{
		tabEl=this.form.getElement( this.options.tabs[tab] );
		if(this.options.setActiveParrent) document.id( document.body ).getElement( this.options.tabsNavEl[tab] ).getParent().addClass(this.options.actTabNavClass);
		else document.id( document.body ).getElement( this.options.tabsNavEl[tab] ).addClass(this.options.actTabNavClass);
		tabEl.addClass(this.options.actTabClass);
		tabEl.setStyle('display','block');
		this.checkPosition(this.currTab);
	},
	hideTab		: function(tab)
	{
		if(this.options.formValidation){
      this.FormValidator.reset();
      document.id( document.body ).getElement( ".reg-errors").set('html','');
    }
		this.form.getElements('label').setStyle('color','');
		tabEl=this.form.getElement( this.options.tabs[tab] );
		if(this.options.setActiveParrent) document.id( document.body ).getElement( this.options.tabsNavEl[tab] ).getParent().removeClass(this.options.actTabNavClass);
		else document.id( document.body ).getElement( this.options.tabsNavEl[tab] ).removeClass(this.options.actTabNavClass);
		tabEl.removeClass(this.options.actTabClass);
		tabEl.setStyle('display','none');
	},
	nextTab		: function()
	{
		if (  !this.formValidating && this.currTab< (this.activeTabs.length-1) && this.validateForm(this.activeTabs[this.currTab])	){
			this.hideTab(this.activeTabs[this.currTab]);
			this.currTab++;
			this.showTab(this.activeTabs[this.currTab]);
			this.options.onStep(document.id( document.body ).getElement( this.options.tabs[this.activeTabs[this.currTab]] ));
		}
	},
	prevTab		: function()
	{
		if ( this.currTab>0 ){
			this.hideTab(this.activeTabs[this.currTab]);
			this.currTab--;
			this.showTab(this.activeTabs[this.currTab]);
			this.options.onStep(document.id( document.body ).getElement( this.options.tabs[this.activeTabs[this.currTab]] ));
		}		
	},
	checkPosition: function(index){
		if(this.options.formNavigation){
			if(this.checkTab(this.activeTabs[index])){
				if(index>0) document.id( document.body ).getElement( this.options.prev ).setStyle("display","block");
				else document.id( document.body ).getElement( this.options.prev ).setStyle("display","none");
				if(index<(this.activeTabs.length-1)) {
					document.id( document.body ).getElement( this.options.next ).setStyle("display","block");
					document.id( document.body ).getElement( this.options.submit ).setStyle("display","none");
					document.id( document.body ).getElement( this.options.submitBlock ).setStyle("display","none");
				}
				else{
					document.id( document.body ).getElement( this.options.next ).setStyle("display","none");
					document.id( document.body ).getElement( this.options.submitBlock ).setStyle("display","block");
					document.id( document.body ).getElement( this.options.submit ).setStyle("display","block");
				}
			}
			else this.prevTab();
		}
	},
	formCancel	: function()
	{
		this.form.getElement(this.options.cancelCheckbox).set('checked',true);
		this.form.submit();		
	},
	validateForm	: function(tab){
		this.formValidating=true;
		checkFields=false;
		fields=Array();
		check=false;
		if(this.options.formValidation) {
			check=this.validateFormItems(tab);
		}else{
			check=true;
			this.formValidating=false;
		}
		return check;
	},
	validateFormItems : function(tab){
		check=true;
		this.form.getElements('label').setStyle('color','');
		if(tab){
			checkFields=Array();
			checkFields.combine(this.form.getElements('.'+this.options.actTabClass+' input'));
			checkFields.combine(this.form.getElements('.'+this.options.actTabClass+' select'));
			checkFields.combine(this.form.getElements('.'+this.options.actTabClass+' textarea'));
			checkFields.each(function(item, index){
				if(check) check= this.FormValidator.validateField(item);
			},this);
		}else{
			checkFields=Array();
			checkFields.combine(this.form.getElements('.'+this.options.enbTabClass+' input'));
			checkFields.combine(this.form.getElements('.'+this.options.enbTabClass+' select'));
			checkFields.combine(this.form.getElements('.'+this.options.enbTabClass+' textarea'));
			checkFields.combine(this.form.getElements(this.options.submitBlock+' input'));
			checkFields.combine(this.form.getElements(this.options.submitBlock+' select'));
			checkFields.combine(this.form.getElements(this.options.submitBlock+' textarea'));
			checkFields.each(function(item, index){
				if(check) check= this.FormValidator.validateField(item);
			},this);
		}
		this.formValidating=false;
		return check;
	},
	formSubmit	: function()
	{
		if(this.options.useEmail)this.form.getElement(this.options.loginField).set('value',this.form.getElement(this.options.emailField).get('value'));
		if(	this.validateForm() ){
			checkFields=Array();
			this.form.getElement(this.options.succesCheckbox).set('checked',true);
			checkFields.combine(this.form.getElements('.'+this.options.disTabClass+' input'));
			checkFields.combine(this.form.getElements('.'+this.options.disTabClass+' select'));
			checkFields.combine(this.form.getElements('.'+this.options.disTabClass+' textarea'));
			checkFields.each(function(item, index){
				item.set("value","");
				item.dispose();
			});
			this.form.submit();
		}else return false;
	},
	tabClick: function(tab){
		if( this.activeTabs.contains(tab) && this.activeTabs[this.currTab]!=tab ){
			this.hideTab(this.activeTabs[this.currTab]);
			this.currTab=this.activeTabs.indexOf(tab);
			this.showTab(this.activeTabs[this.currTab]);
		}
	},
	setOptions	: function(options){
		options = new Hash(options);
		options.each(function(value, key)
		{
			if(this.options.has(key)) this.options.set(key,value);
		},this);
		if(this.options.tabs && this.options.disableTabs) this.setupSelections();
	},
	initialize		: function(form, options)
	{
		this.form=document.id( document.body ).getElement(form);
		this.setOptions(options);
		this.showTab(this.tabsKeys[this.currTab]);
		
		this.options.tabsNavEl.each(function(value, key){
			document.id( document.body ).getElement(value).addEvent("click",function(e)
			{
				e.stop();
				if(this.options.tabsNavigation) this.tabClick(key);
			}.bind(this));
		},this);
		if(this.options.formNavigation){
			if(this.options.prev) document.id( document.body ).getElement( this.options.prev ).addEvent("click",function(e)
														{
																e.stop();
																this.prevTab();
														}.bind(this));
			if(this.options.next) document.id( document.body ).getElement( this.options.next ).addEvent("click",function(e)
														{
																e.stop();
																if(this.options.formValidation){
                                  this.FormValidator.reset();
                                  document.id( document.body ).getElement( ".reg-errors").set('html','');
                                }
																this.nextTab();
														}.bind(this));
		}
		if(this.options.cancel && document.id( document.body ).getElement( this.options.cancel )) document.id( document.body ).getElement( this.options.cancel ).addEvent("click",function(e)
													{
															e.stop();
															this.formCancel();
													}.bind(this));
		if(this.options.submit && document.id( document.body ).getElement( this.options.submit )) document.id( document.body ).getElement( this.options.submit ).addEvent("click",function(e)
													{
														e.stop();
														this.formSubmit();
													}.bind(this));
		thisClass=this;
		if(this.options.formValidation){
			this.FormValidator = new Form.Validator.Inline(this.form, {
				stopOnFailure: true,
				useTitles: true,
				ignoreHidden: false,
				evaluateFieldsOnBlur:false,
				evaluateFieldsOnChange: false,
				errorPrefix: "",
				errorMsg: false,
				onElementPass: function(el) {
					if(el.getParent().hasClass('select-wrapper')) el.getParent().getParent().getElement( "label" ).setStyle('color','#000000');
					else el.getParent().getElement( "label" ).setStyle('color','#000000');
					if(document.id( document.body ).getElement('.advice-temp-'+el.get("id"))) document.id( document.body ).getElements('.advice-temp-'+el.get("id")).dispose();
				},
				onElementFail: function(el, validatorNames) {
					if(el.getParent(".reg-enb-tab")){
						elIndex=thisClass.options.tabs.indexOf("#"+el.getParent(".reg-enb-tab").get('id'));
						if(elIndex && thisClass.activeTabs.indexOf(elIndex)!=thisClass.currTab){
							thisClass.tabClick( elIndex );
						}
					}
					label=false;
					if(el.getParent().hasClass('select-wrapper')) label=el.getParent().getParent().getElement( "label" );
					else label=el.getParent().getElement( "label" );
					label.setStyle('color','#FF0000');
					validatorNames.each(function(item){
						advice=document.id( document.body ).getElementById("advice-"+item+"-"+el.get("id"));
						if(!advice) advice = new Element('div', {
                                                      'id' : "advice-"+item+"-"+el.get("id"),
                                                      'class': 'validation-advice'+' advice-temp-'+el.get("id"),
                                                      'html': 'Please input all values'
                                                    });
						if(document.id( document.body ).getElement( ".default-error-collection  [class*="+item+"]" )) advice.set('html',document.id( document.body ).getElement( ".default-error-collection  [class*="+item+"]" ).get("html"));
						if(el.getParent().getElement( ".field-error-collection [class*="+item+"]" )) advice.set('html',el.getParent().getElement( ".field-error-collection  [class*="+item+"]" ).get("html"));
						advice.inject(document.id( document.body ).getElement( ".reg-errors"), "bottom");
					});
					el.getParent().getElements( ".validation-advice" ).inject(document.id( document.body ).getElement( ".reg-errors"), "bottom");
				}
			});
			this.FormValidator.add('oneRequired', {
				errorMsg: 'Please input value',
				test: function(element, props) {
							var groupClass='input.oneRequired';
							var parent = element.getParents(".oneRequired-block");
							var temparr = Array();
							if(parent.length>0) temparr=parent[0].getElements( groupClass ).filter(function(item){
								if(item.getProperty("type")=="checkbox" || item.getProperty("type")=="radio") return item.checked;
								return item.value.length >0;
							});
							else temparr=document.id( document.body ).getElements( groupClass ).filter(function(item){ return item.value.length >0; });
							return temparr.length>0?true:false;
			   }
			});
			this.FormValidator.add('houseNo', {
				errorMsg: 'Please input valid house number',
				test: function(element, props) {
					if (element.value.length > 0) {
						if (element.value.length == 1) return element.value.substring(0,element.value.length).toInt()?true:false;
						return element.value.substring(0,element.value.length-1).toInt() && ((element.value.substring(0,element.value.length-1).toInt()+'').length==(element.value.length-1));
					}
					return true;
			   }
			});
			this.FormValidator.add('emailUnique', {
				errorMsg: 'E-Mail address is already registered',
				test: function(element, props) {
					if (element.value.length > 0) {
						var req = new Request({
							url: '/get/email_unique',
							method:'get',
							async: false
						}).send("email=" + element.value);
						return (req.response.text != '1');
					}
					return true;
			   }
			});
		}
	}
});


window.addEvent( 'domready', function (){
	if(document.id( document.body ).getElement('form#registration-form') || document.id( 'mine-data-loading' )){
		if(document.id( document.body ).getElements('form#registration-form .main-selection')){
			document.id( document.body ).getElements('form#registration-form .main-selection li a').addEvent( 'click', function(){
				parrent = this.getParent(".related-selects");
				if(parrent && parrent.getElements(".alt-selection")){
					if(this.getParent("li").hasClass('show-hidden-block')) parrent.getElements(".alt-selection").setStyle("display","block");
					else{
						parrent.getElements(".alt-selection").setStyle("display","none");
						if(parrent.getElements(".alt-selection .alt-selection-clear")) parrent.getElements(".alt-selection .alt-selection-clear").setProperty("value", "");
					}
				}
			} );
		}
		getRegistrationOptions = function() {
			var reg_selections=new Hash({
													'Grunddaten-Login': {
																				tabs			: Array('tab1'),
																				enabled	: true,
																				require		: true
																			},
													'Sports-Extranet': {
																				tabs			: Array(),
																				enabled	: false,
																				require		: false,
																				checkbox	: 'Sports-check',
																				group		: 'related-selections'
																			},
													'Sportpokal-Login': {
																				tabs			: Array('tab2','tab3','tab4'),
																				enabled	: false,
																				require		: false,
																				checkbox	: 'Sportpokal-check',
																				group		: 'related-selections'
																			},
													'Formel-BMW-Login': {
																				tabs			: Array('tab5'),
																				enabled	: false,
																				require		: false,
																				checkbox	: 'Formel-check',
																				group		: 'related-selections'
																			},
													'Kundensport-Login': {
																				tabs			: Array("tab6"),
																				enabled	: false,
																				require		: false,
																				checkbox	: 'Kundensport-check',
																				group		: 'related-selections'
																			}
													});
			reg_tabs=new Hash({
												'tab1'	: '#Basic-data-tab',
												'tab2'	: '#Personal-data-tab',
												'tab3'	: '#Car-data-tab',
												'tab4'	: '#Additional-data-tab',
												'tab5'	: '#Formal-BMW-tab',
												'tab6'	: '#Kundensport-tab'
												});
			var activeTabsTemp = Array();
			reg_selections.each(function(item,key){
				if(document.id( item.checkbox ) && !document.id( item.checkbox ).hasClass("non-selected")) activeTabsTemp.combine(item.tabs);
			});
			reg_selections.each(function(item,key){
				if( item.checkbox && !item.require){
					if(document.id( item.checkbox )){
						document.id( item.checkbox ).addEvent("click",function(e){e.stop();});
						if(document.id( item.checkbox ).checked) reg_selections[key].enabled=true;
						if(document.id( item.checkbox ).disabled) reg_selections[key].require=true;
						if(document.id( item.checkbox ).hasClass("non-selected")){ 
							reg_selections[key].hide=true;
							document.id( item.checkbox ).dispose();
							item.tabs.each(function(tabElem){
								if(document.id( document.body ).getElement(reg_tabs[tabElem]) && !activeTabsTemp.contains(tabElem)) document.id( document.body ).getElement(reg_tabs[tabElem]).set('html','');
							});
						}
					}
				}
			});
			var options = {		showTabs			: true,
										disableTabs			: true,
										tabsNavigation		: false,
										selectingTabs		: true,
										setActiveParrent	: true,
										formValidation		: true,
										formNavigation	: true,
										succesCheckbox	: '#PublishButton',
										cancelCheckbox	: '#CancelButton',
										enbTabNavClass	: 'reg-enb-tabNavEl',
										disTabNavClass	: 'reg-dis-tabNavEl',
										actTabNavClass	: 'active',
										enbTabClass		: 'reg-enb-tab',
										disTabClass			: 'reg-dis-tab',
										actTabClass			: 'reg-act-tab',
										useEmail				: true,
										emailField			: '.reg-email',
										loginField				: '.reg-login',
										tabs						: reg_tabs,
										tabsNavEl			: new Hash({
																		'tab1'	: '#Basic-data-top a',
																		'tab2'	: '#Personal-data-top a',
																		'tab3'	: '#Car-data-top a',
																		'tab4'	: '#Additional-data-top a',
																		'tab5'	: '#Formal-BMW-top a',
																		'tab6'	: '#Kundensport-top a'
																		}),
										selections				: reg_selections,
										submitBlock			: '#reg-submit-block',
										submit					: '#reg-submit',
										next						: '#reg-next',
										prev						: '#reg-prev',
										cancel					: '#reg-cancel'
				};
			if(document.id( 'registration-params' )){
				var regParramsEl=document.id( 'registration-params' );
				if(regParramsEl.hasClass('editing') || regParramsEl.hasClass('view')) options.tabsNavigation=true;
				if(regParramsEl.hasClass('no-validating')) options.formValidation=false;
				if(regParramsEl.hasClass('no-form-nav')) options.formNavigation=false;
			}
			return options;
		}
		if(document.id( document.body ).getElement('form#registration-form')){
			var options = getRegistrationOptions();
			var Registration= new nxcRegistration( 'form#registration-form', options );
		}else if(document.id( 'mine-data-loading' )){
			var loader_image="result-loading";
			document.id( loader_image ).setStyle("display","block");
			document.id( 'mine-data-loading' ).setStyle('display', 'none');
			new Request.HTML({url: document.id( 'mine-data-loading' ).getElement("a#ajax-user-data").get('href'),
				onSuccess: function(html) {
					document.id( 'mine-data-loading' ).set('text', '');
					document.id( 'mine-data-loading' ).adopt(html);
					var options = getRegistrationOptions();
					var Registration= new nxcRegistration( 'form#registration-form', options );
					if( document.id( 'login-block-form' )) {
						new NXC.nxcAjaxUser( 'login-block-form' );
					}
					document.id( loader_image ).setStyle("display","none");
					document.id( 'mine-data-loading' ).setStyle('display', 'block');
				},
				onFailure: function() {
					document.id( result_table_div_id ).set('text', 'The request failed.');
					document.id( loader_image ).setStyle("display","none");
					document.id( 'mine-data-loading' ).setStyle('display', 'block');
				}
			}).get(); 
		}
	}
});

