var validator = new Class({
    options: {        
        invalid: {
            "background-color": "red",
            "border-color": "red"
        },
        valid: {
            "background-color": "green",
            "border-color": "green"
        },
        required: {
            regexp: /[^.*]/,
            msg: "ing&#229;ngsdata obligatorisk!"
        },
        alpha: {
            regexp: /^[a-z._-]+$/i,
            msg: "ing&#229;ngsdata obligatorisk!"
        },
        alphanum: {
            regexp: /^[a-z0-9._-]+$/i,
            msg: "ing&#229;ngsdata obligatorisk!"
        },
        integer: {
            regexp: /^[-+]?\d+$/,
            msg: "Please enter a valid integer."
        },
        real: {
            regexp: /^[-+]?\d*\.?\d+$/,
            msg: "Please enter a valid number."
        },
        date: {
            regexp: /^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$/,
            msg: "Please enter a valid date (dd/mm/yyyy)."
        },
        email: {
            regexp: /^[a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i,
            msg: "fylla i din e-post."
        },
        phone: {
            regexp: /^[\d\s().-]+$/,
            msg: "Please enter a valid phone."
        },
        url: {
            regexp: /^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&%\$#\=~])*$/i,
            msg: "Please enter a valid url."
        },
        confirm: {
            msg: "Confirm Password does not match original Password."
        },
		clock:{
			regexp: /^((?:[01]\d)|(?:2[0-3])):([0-5]\d)$/,
			msg: "(xx:xx)"
		},
		day:{
			regexp: /^\d{1,2}/,
			msg :"(dag)"
		},
		digit6:{
			regexp: /^\d{6}$/,
			msg :"(yymmdd)"
		},
		digit4:{
			regexp: /^\d{4}$/,
			msg :"(xxxx)"
		},
		postnummer :{
			regexp: /^\d{3}\s?\d{2}$/,
			msg:"(xxx xx)"
		},
        onValid: Class.empty,
        onInvalid: Class.empty
    },
	initialize: function(formname,options){
		var valid = false;
		this.form = formname;
		this.inputs = this.form.getElements('input');			
		this.inputs.each(function(el,i){			
			//el.setStyle('border','1px solid red');
			//el.setStyle('background-color','#F79686');
			el.addEvent('blur', function(){
				var type= el.get("class");				
				if (this.options[type]) {
					el.msg = this.options[type].msg;
					if (el.value.match(this.options[type].regexp)) {
						//el.setStyle('border','1px solid green');
						el.setStyle('background-color','');
						$('formInfo').setStyle('display','none');
						el.status = 'valid';
						this.valid = true;
					}else{
						el.status = 'invalid';
						el.setStyle('background-color','#F79686');
						$('formInfo').setStyle('display','block');
						this.valid = false;
						//el.setStyle('border','1px solid red');
					};					
				}
			if(this.valid===true){
				var mvalid = true;
				for(i=0; i<this.inputs.length; i++){
					if(this.inputs[i].value==''){
						this.inputs[i].status = 'invalid';
						mvalid=false;
					}
					if(this.inputs[i].status === 'invalid'){					
						mvalid = false;
					}
				}
                //if(mvalid){
                 //   $('submitt').addEvent('click', function(){
                 //       $('fromMedlemskap').submit();
                  //  });
                //}
                //console.log("mvalid =" + mvalid);
			}
			}.bind(this));
            
            //console.log(this.valid);
		},this)
		/*this.form.addEvent('submit',function(event){
			var mvalid = true;			
			for(i=0; i<this.inputs.length; i++){
				if(this.inputs[i].value==''){
					this.inputs[i].status = 'invalid';
					mvalid=false;
				}
				if(this.inputs[i].status === 'invalid'){					
					mvalid = false;
				}
			}			
			if(mvalid===true){				
				$('submit').addEvent('click', function(){
					this.form.submit();
				});
			}else{
				new Event(event).stop();
				for(i=0; i<this.inputs.length; i++){
					if(this.inputs[i].status ===  'invalid'){						
						this.inputs[i].value='';
						this.inputs[i].focus();						
						this.initialize;
					}				
				}
			}
		}.bind(this))*/
	},
	valid : false
})