new Asset.css('http://www.mycored.eu/css/button.css');

function accordion_fixed(corrente)
{
	if(window.ie6) var heightValue='100%';
	else var heightValue='';
	if(corrente<0) corrente = -1; 
	window.addEvent('domready', function() {
	var myAccordion = new Accordion($$('.toggler'), $$('.element'), {
		   display: corrente,
		   alwaysHide: true,
		onActive: function(toggler){ toggler.addClass('active');},
		onComplete: function() {
		   var element=$(this.elements[this.previous]);
		   if(element && element.offsetHeight>0) element.setStyle('height', heightValue);         
		},
		onBackground: function(toggler){ toggler.removeClass('active');}
	});
	});
}


function invia(top){
/*	
$('div_expo').fade('out');

$('messaggio').morph({height: 200, 'margin-top': 100});


	var ajax = new Request.HTML({
		url: $('ajaxform').get("action"),
		encoding: 'iso-8859-1',
		onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){
						$('messaggio').set('html',responseHTML);
		},
		onFailure: function(){
			$('messaggio').set('text', 'Richiesta fallita.');
		}		
	}).post($('ajaxform'));
	*/	
	
	$('ajaxform').submit();
}


	
/**************************************************************

	Script		: Validate
	Version		: 2.2
	Authors		: Samuel Birch
	Desc		: Form validation
	Licence		: Open Source MIT Licence

**************************************************************/

var validate = new Class({
	
	getOptions: function(){
		return {
			validateOnBlur: true,
			errorClass: 'error',
			errorMsgClass: 'errorMessage',
			dateFormat: 'dd/MM/yy',
			_onFail: $empty,
			_onSuccess: 'invia()',
			showErrorsInline: true,
			label: 'Please wait...',
			form2: false,
			replay: false,
			top_servizi: true
		};
	},

	initialize: function(form, options){
		this.setOptions(this.getOptions(), options);
		this.form = $(form);
		this.elements = this.form.getElements('.required');			
		
		this.list = [];
		
		this.elements.each(function(el,i){
			if(this.options.validateOnBlur){
				el.addEvent('blur', this.validate.bind(this, el));
			}
		}.bind(this));
		
		if(this.options.replay == false)
		{
		
			this.form.addEvent('submit', function(e){
				var event = new Event(e);
				var doSubmit = true;
				var classe = "required"
				this.elements.each(function(el, i){
	
					if (el.hasClass(classe)) {
						if (!this.validate(el)) {
							event.stop();
							doSubmit = false;
							this.list.include(el);
							$("errorMessage").set('html', errore_txt);
							$("errorMessage").set('style','display:block');
							//setTimeout(function() {new Fx.Scroll(window).toElement('form_ap');}, 1500); 
						}
						else {
							this.list.erase(el);
						}
					}
					
				}
.bind(this));
				
				if (doSubmit) {
					if (this.options._onSuccess) {
						event.stop();
						
						invia(this.options.top_servizi);
					//this.options._onSuccess(this.form);
					}
					else {
						this.form.getElement('input[type=submit]').setProperty('value', this.options.label);
					}
				}
				else {
					this.options._onFail(this.getList());
				}
				
				return false;
				
			}
.bind(this));
		}
		
	},
	getList: function(){
		var list = new Element('ul');
		this.list.each(function(el,i){
			if(el.title != ''){
			var li = new Element('li').inject(list);
			new Element('label').set({
				'for': el.id,
				'text': el.title
			}).inject(li);
			}
		});
		return list;
	},
	
	validate: function(el){
		var valid = true;
		this.clearMsg(el);
		
		switch(el.type){
         case 'file':

                         if(el.hasClass('required')){
                      	
								el.value = el.value.replace(/^\s|\s$/g, ""); //trims string
								
								            if (el.value.match(/([^\/\\]+)\.(doc|docx)$/i) ){
                                         valid = true;
                                 }else{
                                         valid = false;
                                         this.setMsg(el, '');
                                 }
                         }
  
                         break;
			case 'text':
			case 'textarea':
			case 'select-one':
				if(el.value != ''){
					if(el.hasClass('email')){
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el);
							//this.setMsg(el, 'Please enter a valid email address');
						}
					}
					
					if(el.hasClass('number')){
						var regNum = /[-+]?[0-9]*\.?[0-9]+/;
						if(el.value.match(regNum)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el);
						}
					}
					
					if(el.hasClass('postcode')){
						var regPC = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/
						if(el.value.match(regPC)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid postcode');
						}
					}
					
					if(el.hasClass('date')){
						var d = Date.parseExact(el.value, this.options.dateFormat);
						if(d != null){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid date in the format: '+this.options.dateFormat.toLowerCase());
						}
					}
					
				}else{
					valid = false;
					this.setMsg(el);
				}
				break;
				
				
				
				case 'checkbox':

				if(!el.checked){
					valid = false;
					this.setMsg(el);			
					$(el.get("name")).setStyle('border-bottom-color','#D14D04');
					$(el.get("name")).setStyle('background","#FDFAE1');
				}else{
					valid = true;
					$(el.get("name")).setStyle('border-bottom-color', '#fff');
					$(el.get("name")).setStyle('background","#ffffff');
				}
				break;
				
				
				
			case 'radio':
				var rad = $A(this.form[el.name]);
				var ok = false;
				rad.each(function(e,i){
					if(e.checked){
						ok = true;
					}
				});
				if(!ok){
					valid = false;
					this.setMsg(rad.getLast(), '');
					$(el.get("name")).setStyle('border-bottom-color','#D14D04');
					$(el.get("name")).setStyle('background-color","#FDFAE1');
				}else{
					valid = true;
					this.clearMsg(rad.getLast());
					$(el.get("name")).setStyle('border-bottom-color', '#ffffff');
					$(el.get("name")).setStyle('background-color","#ffffff');
				}
				break;
				
		}
		return valid;
	},
	
	setMsg: function(el, msg){
		if(msg == undefined){
			msg = el.title;
		}
		if(this.options.showErrorsInline){
			if(el.error == undefined){
				el.error = new Element('span').addClass(this.options.errorMsgClass).set('text', msg).inject(el, 'after');
			}else{
				el.error.set('text', msg);
			}
			el.setStyle("border-bottom-color","#D14D04");
			el.setStyle("background-color","#F2F4E6");
			el.addClass(this.options.errorClass);
		}
	},
	
	clearMsg: function(el){
		el.setStyle("border-bottom-color","#EFEFEF"); /* input text - ritorna allo stato di default */
		el.setStyle("background-color","#F2F4E6");
		el.removeClass(this.options.errorClass);
		if(el.error != undefined){
			el.error.destroy();
			el.error = undefined;
		}
	}
	
});

validate.implement(new Options);
validate.implement(new Events);


/*************************************************************/


var mootabs = new Class({
                Implements: [Options, Events],
                options: {
                        width:                  '100%',
                        height:                 '100%',
                        changeTransition:       Fx.Transitions.Bounce.easeOut,
                        duration:               1000,
                        mouseOverClass:         'active',
                        activateOnLoad:         'first',
                        useAjax:                false,
                        ajaxUrl:                '',
                        ajaxOptions:            { method:'get' },
                        ajaxLoadingText:        'Loading...'
                },
               
                initialize: function(element, options) {
                        this.setOptions(options);
                        this.el = $(element);
                        this.elid = element;
                        this.el.setStyles({
                                height: this.options.height,
                                width: this.options.width
                        });
               
                        this.titles = $$('#' + this.elid + ' ul.mootabs_title li');
                        this.panelHeight = this.el.getSize().y - (this.titles[0].getSize().y + 4);
                        this.panels = $$('#' + this.elid + ' .mootabs_panel');
               
                        this.panels.setStyle('height', this.panelHeight);
               
                        this.titles.each(function(item) {
                                item.addEvent('click', function(){
                                        item.removeClass(this.options.mouseOverClass);
                                        this.activate(item);
                                }.bind(this)
                        );
                       
                        item.addEvent('mouseover', function() {
                                if(item != this.activeTitle){
                                        item.addClass(this.options.mouseOverClass);
                                }
                        }.bind(this));
                       
                        item.addEvent('mouseout', function() {
                                if(item != this.activeTitle){
                                        item.removeClass(this.options.mouseOverClass);
                                }
                        }.bind(this));
                }.bind(this));
                if(this.options.activateOnLoad != 'none'){
                        if(this.options.activateOnLoad == 'first'){
                                this.activate(this.titles[0], true);
                        }
                        else{
                                this.activate(this.options.activateOnLoad, true);       
                        }
                }
        },
       
        activate: function(tab, skipAnim){
                if(! $defined(skipAnim)){
                        skipAnim = false;
                }
                if($type(tab) == 'string'){
                        myTab = $$('#' + this.elid + ' ul li').filter('[title='+tab+']')[0];
                        tab = myTab;
                }
                if($type(tab) == 'element'){
                        var newTab = tab.getProperty('title');
                        this.panels.removeClass('active');
                        this.activePanel = $(newTab);
                       
                        this.activePanel.addClass('active');
                        if(this.options.changeTransition != 'none' && skipAnim==false){
                                this.activePanel.setStyle('height', 0);
                                var changeEffect = new Fx.Elements(this.activePanel, {duration: this.options.duration, transition: this.options.changeTransition});
                                changeEffect.start({
                                        '0': {
                                                'height': [0, this.panelHeight]
                                        }
                                });
                        }
                        this.titles.removeClass('active');
                        tab.addClass('active');
                        this.activeTitle = tab;
                        if(this.options.useAjax){
                                this.getContent();
                        }
                }
        },
       
        getContent: function(){
                this.activePanel.set('text', this.options.ajaxLoadingText);
                var newOptions = { url: this.options.ajaxUrl + '?tab=' + this.activeTitle.get('title'), update: this.activePanel.get('id') } ;
                this.options.ajaxOptions = $extend(this.options.ajaxOptions, newOptions);
                var req = new Request.HTML(
                        this.options.ajaxOptions
                ).send();
        },
       
        next: function(){
                var nextTab = this.activeTitle.getNext();
                if(!nextTab) {
                        nextTab = this.titles[0];
                }
                this.activate(nextTab);
        },
       
        previous: function(){
                var previousTab = this.activeTitle.getPrevious();
                if(!previousTab) {
                        previousTab = this.titles[this.titles.length - 1];
                }
                this.activate(previousTab);
        }
});
