function change_features(who) {	
	var i, id;
	
	for( i = 1; i <= 5; i++ )
	{
		id = 'm'+i;
		document.getElementById(id).style.display = 'none';	
	}
	
  document.getElementById('general').style.display = 'none';
  
	who = document.getElementById(who);
	who.style.display = 'block';
}

Effect.BlindUpTrigger = function(element, trigger) {
  var te = trigger.split('<');
  var i = 0;
  while (i < te.length)
  {
    Effect.DisableTrigger(te[i]);
    i++;
  }
   
  element = $(element);
  Element.makeClipping(element);
  return new Effect.Scale(element, 0, 
    Object.extend({ scaleContent: false, 
      scaleX: false, 
      restoreAfterFinish: true,
      afterFinishInternal: function(effect) { with(Element) {
        [hide, undoClipping].call(effect.element); 
        var be = trigger.split('<');
        var j = 0;
        while ( j < be.length)
        {
            Effect.EnableTrigger(be[j]);
            j++;
        }     
        }} 
    }, arguments[2] || {})
  );
}

Effect.BlindDownTrigger = function(element, trigger) {
  //Effect.DisableTrigger(trigger);
  var te = trigger.split('<');
  var i = 0;
  while (i < te.length)
  {
    Effect.DisableTrigger(te[i]);
    i++;
  }
  element = $(element);
  var oldHeight = Element.getStyle(element, 'height');
  var elementDimensions = Element.getDimensions(element);
  return new Effect.Scale(element, 100, 
    Object.extend({ scaleContent: false, 
      scaleX: false,
      scaleFrom: 0,
      scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
      restoreAfterFinish: true,
      afterSetup: function(effect) { with(Element) {
        makeClipping(effect.element);
        setStyle(effect.element, {height: '0px'});
        show(effect.element); 
      }},  
      afterFinishInternal: function(effect) { with(Element) {
        undoClipping(effect.element);
        setStyle(effect.element, {height: oldHeight});
        //Effect.EnableTrigger(trigger);
        var be = trigger.split('<');
        var j = 0;
        while ( j < be.length)
        {
            Effect.EnableTrigger(be[j]);
            j++;
        }    
      }}
    }, arguments[2] || {})
  );
}

Effect.DisableTrigger = function(element) {
    element = $(element);
    element.saveonclick = element.onclick;
    element.onclick = null;
}

Effect.EnableTrigger = function(element) {
    element = $(element);
    element.onclick = element.saveonclick;
}

Effect.BlindUpAndDown = function(element, trigger) {
    element = $(element);
    if(Element.visible(element)) 
		new Effect.BlindUpTrigger(element, trigger, arguments[2] || {});
    else 
		new Effect.BlindDownTrigger(element, trigger, arguments[2] || {});
}

function drop_features() {
    new Effect.BlindUpAndDown('invisible', 'invisible');
    return false;
}

function getScr( name, type, lang ) {
	var string = '<img src="http://www.transport-plus.com/images/site/screenshots_'+lang+'/'+type+'/'+name+'.jpg" alt="" title="" />';
	document.getElementById('current_screenshot').innerHTML = string;
	new Effect.Appear( 	document.getElementById('current_screenshot') );
}

function isBlank(fieldValue) {
	var blankSpaces = / /g;
	fieldValue = fieldValue.replace(blankSpaces, "");
	return (fieldValue == "") ? true : false;
}

function isEmailValid(fieldValue) {
	var emailFilter = /^.+@.+\..{2,4}$/;
	var atSignFound = 0;
	for (var i = 0; i <= fieldValue.length; i++)
		if ( fieldValue.charAt(i) == "@" )
			atSignFound++;
	if ( atSignFound > 1 )
		return false;
	else
		return ( emailFilter.test(fieldValue) && !doesEmailHaveInvalidChar(fieldValue) ) ? true : false;
}

function doesEmailHaveInvalidChar(fieldValue) {
	var illegalChars = /[\(\)\<\>\,\;\:\\\/\"\[\] ]/;
	return ( illegalChars.test(fieldValue) ) ? true : false;
}

function check_contactForm() {
	var name 	= document.getElementById('name').value;
	var email 	= document.getElementById('email').value;
	var phone 	= document.getElementById('phone').value;
	var company = document.getElementById('company').value;
	
	if( isBlank(name) ) {
		new Effect.Highlight( document.getElementById('name'), {startcolor: "#ff0000"} );
		return false;		
	}
	else if( isBlank(email) || !isEmailValid(email) ) {
		new Effect.Highlight( document.getElementById('email'), {startcolor: "#ff0000"} );
		return false;		
	}
	else if( isBlank(phone) ) {
		new Effect.Highlight( document.getElementById('phone'), {startcolor: "#ff0000"} );
		return false;		
	}
	else if( isBlank(company) ) {
		new Effect.Highlight( document.getElementById('company'), {startcolor: "#ff0000"} );
		return false;
	}
	
	return true;
}

function getFAQ( id, lang ) {
	var field = 'faq_'+id;
	
  new Effect.BlindUpAndDown ( field, field, {duration: 0.5} );
}

