function trim(stringa){
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

window.addEvent('siteready', function() {
	s.startRegistration( document );
} );

document.addEvent('updateblock', function(obj) {
	s.initRegistrationBlock( obj );
} );

siteEngine.prototype.startRegistration = function( obj )
{
	var thisObj = this;
	
	var control = obj.getElements('.control');
	for (var i=0; i<control.length; i++)
	{
		control[i].importProps();
		thisObj.putControl( control[i] );
	}
}

siteEngine.prototype.initRegistrationBlock = function( obj )
{
	var thisObj = this;
	
	var addpoints = obj.getElements('.add-point');
	for (var i=0; i<addpoints.length; i++)
	{
		addpoints[i].importProps();                
		thisObj.putAddPoint( addpoints[i] );
	}
}

siteEngine.prototype.putControl = function( obj )
{
	var thisObj = this;
	
	if (obj.openonsuccess)
		$(obj.openonsuccess).fx = new Fx.Slide( $(obj.openonsuccess), { duration: 1000 } ).hide();
	if (obj.closeonsuccess)
		$(obj.closeonsuccess).fx = new Fx.Slide( $(obj.closeonsuccess), { duration: 1000 } ).hide();
	obj.addEvent('click', function(obj) {
		var inputs = document.getElements('.'+obj.inputs);
		var queryString = [];
		for (var k=0; k<inputs.length; k++)
		{
			var el = inputs[k];
			var name = el.name, type = el.type, value = Element.get(el, 'value');
			if (value === false || !name || el.disabled) continue;
				$splat(value).each(function(val){
				queryString.push(name + '=' + encodeURIComponent(val));
			});
		}
		obj.xhr = new Request.HTML().get( obj.url + '?nocache=' + Math.floor(Math.random()*100) + '&' + queryString.join('&') );
		obj.xhr.addEvent('onComplete', function(obj) {
			this.parseControl( obj );
		}.pass(obj, this) );
	}.pass(obj, this) );
	obj.addEvent('click', function(e) { new Event(e).stop(); } );
}

siteEngine.prototype.parseControl = function( obj )
{
	var thisObj = this;
        var response = '0';
        var message = '';
        if (obj.xhr.response.text != null && obj.xhr.response.text != ''){
            obj.xhr.response.text = obj.xhr.response.text.replace('\r\n','');
            obj.xhr.response.text = trim(obj.xhr.response.text);	
            response = obj.xhr.response.text.substr(0,1);
            message = obj.xhr.response.text.substr(2);
        }
	switch (response)
	{
		case '1':
			$(obj.error).setStyle('display', 'none');
			$(obj.error).set('html', '');
			$(obj.errorCSS).removeClass('errorBlock');
			if (obj.success == '[submit]')
				obj.getParent('form').submit();
			else                                
				$(obj.success).set('html', message);
			if (obj.openonsuccess)
				$(obj.openonsuccess).fx.slideIn();
			if (obj.closeonsuccess)
				$(obj.closeonsuccess).fx.hide();
		break;
		case '0':
			$(obj.error).setStyle('display', 'block');
			$(obj.error).set('html', message);
			$(obj.errorCSS).addClass('errorBlock');
			if (obj.success == '[submit]')
				return false;
			else
				$(obj.success).set('html', '');
			if (obj.openonsuccess)
				$(obj.openonsuccess).fx.hide();
			if (obj.closeonsuccess)
				$(obj.closeonsuccess).fx.show();
		break;
	}
}

siteEngine.prototype.putAddPoint = function( obj )
{
	var thisObj = this;
        //obj.addEvent('click', function(obj) {$(obj.add_to).empty();}.pass(obj, this) );
	obj.addEvent('click', function(obj) {      
                $(obj.add_to).empty();
		var div = new Element('div', {'class': 'registration-points'}).set('html', '<span><input type="radio" name="pdvSelected" class="step-2" value="'+obj.add_point_id+'" '+ obj.add_point_checked + ' /></span> '+obj.add_point_name+'<br />'+obj.add_point_address).inject( $(obj.add_to), 'top' );
		thisObj.popup.close.fireEvent('click');
	}.pass(obj, this) );
	obj.addEvent('click', function(e) { new Event(e).stop(); } );
}