var Soon = Class.create();

Soon.prototype = {
	    initialize: function(url) {
		this.myPostUrl = url;
    },
    bindMe: function(element,event) {
    	event = event ? event : 'click';
		Event.observe(element, event, this.tellMe.bindAsEventListener(this), false);
    },
   	tellMe: function() {
		if (this.checkMe()) {
		    this.animateMe();
		    this.submitMe();
		}
    },
	checkMe: function() {
		$('errorMessage').innerHTML='';
		$('errorMessage').style.background='none';

		this.trimField('username');
		this.trimField('password');
		var usr = $F('username');
		var pwd = $F('password');
		var lang = $F('lang');

        if (usr == ''){
			$('username').className='red';
			$('errorUsername').style.color='#ED3D43';
			if(lang == "de"){
				$('errorUsername').innerHTML='Ein Login-Name ist Pflicht.<br />';
			}else{
				$('errorUsername').innerHTML='Loginnaam is verplicht.<br />';
			}
		} else {
			$('username').className='off';
			$('errorUsername').innerHTML='';
		}

        if (pwd == ''){
			$('password').className='red';
			$('errorPassword').style.color='#ED3D43';
			if(lang == "de"){
				$('errorPassword').innerHTML='Geheimwort ist Pflicht.<br />';
			}else{
				$('errorPassword').innerHTML='Wachtwoord is verplicht.<br />';
			}
		} else {
			$('password').className='off';
			$('errorPassword').innerHTML='';
		}

		if (usr == '' || pwd == '') {	
			return false;
		} else {
			return true;
		}
    },
	trimString: function(sString) {
       while (sString.substring(0,1) == ' ') {
               sString = sString.substring(1, sString.length);
       }
       while (sString.substring(sString.length-1, sString.length) == ' ') {
               sString = sString.substring(0,sString.length-1);
       }
       return sString;
	},
	trimField: function(fieldId) {
       if ($(fieldId) && $F(fieldId)) {
               $(fieldId).value = this.trimString($F(fieldId));
       }
	},
    animateMe: function() {
		$('errorUsername').style.display='block';
    },
    submitMe: function() {
		if ($('loginbtn') != undefined){
			$('loginbtn').disable();	
		}
		new Ajax.Request(this.myPostUrl, { parameters: Form.serialize(this.form), method: 'post', onSuccess: this.thankMe, onFailure:this.warnMe });
    },
    thankMe: function(theRequest) {
		location.href=varReferrer;
    },
    warnMe: function(theRequest) {
		if (theRequest) {
		    if (theRequest.getResponseHeader('X-B4A-responseError')) {
			$('errorMessage').innerHTML=theRequest.getResponseHeader('X-B4A-responseError');
			$('errorMessage').style.color='#ED3D43';
		    } else {
			$('errorMessage').innerHTML=theRequest.status + ' -- ' + theRequest.statusText;
			$('errorMessage').style.color='#ED3D43';
		    }
		}
		//re-enable button
		if ($('loginbtn') != undefined){
			$('loginbtn').enable();
		}
    }
}