function validateFrom(email, required, intern ,lang){
    var errorMessage =  new Array;
    var posibleMessages = new Object;
    var regExp = new RegExp("\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,6}");
    
    posibleMessages['en'] = new Object;
    posibleMessages['en']['mainMessage'] = 'The following error(s) occurred:\n';
    posibleMessages['en']['emailNotMatching'] =  "Your emails don\'t match. \n";
    posibleMessages['en']['emailNotValid'] =  "Please use a valid email address. \n";
    posibleMessages['en']['required'] =  " is required. \n";
    posibleMessages['en']['pleaseChoose'] = 'Please choose if you already have an internship.';
    
    posibleMessages['de'] = new Object;
    posibleMessages['de']['mainMessage'] = 'Folgende(r) Fehler ist/sind aufgetreten:\n';
    posibleMessages['de']['emailNotValid'] =  "Ihre E-Mails nicht überein \n";
    posibleMessages['de']['emailNotMatching'] =  "Bitte benutzen Sie eine gültige E-Mail-Adresse. \n";
    posibleMessages['de']['required'] =  " wird benötigt. \n";
    posibleMessages['de']['pleaseChoose'] = 'Bitte wählen Sie, ob sie schon einen Praktikumsplatz haben. \n';
    
    posibleMessages['es'] = new Object;
    posibleMessages['es']['mainMessage'] = 'El producido los siguientes errores:\n';
    posibleMessages['es']['emailNotValid'] =  "Por favor, utilice una dirección de correo electrónico válida. \n";
    posibleMessages['es']['emailNotMatching'] =  "Mensajes de correo electrónico no coinciden.\n";
    posibleMessages['es']['required'] =  " es necesario. \n";
    posibleMessages['es']['pleaseChoose'] = 'Por favor, elija si usted ya tiene una oferta de prácticas. \n';
    
    posibleMessages['fr'] = new Object;
    posibleMessages['fr']['mainMessage'] = 'Les erreurs suivantes est survenue:\n';
    posibleMessages['fr']['emailNotValid'] =  "S\'il vous plaît utiliser une adresse email valide. \n";
    posibleMessages['fr']['emailNotMatching'] =  "Votre e-mails ne correspondent pas. \n";
    posibleMessages['fr']['required'] =  " est nécessaire. \n";
    posibleMessages['fr']['pleaseChoose'] = 'S\'il vous plaît choisir si vous avez déjà un stage. \n';
    
    posibleMessages['it'] = new Object;
    posibleMessages['it']['mainMessage'] = 'The following error(s) occurred:\n';
    posibleMessages['it']['emailNotMatching'] =  "Your emails don\'t match. \n";
    posibleMessages['it']['emailNotValid'] =  "Please use a valid email address. \n";
    posibleMessages['it']['required'] =  " is required. \n";
    posibleMessages['it']['pleaseChoose'] = 'Please choose if you already have an internship.';
    
    if(posibleMessages.hasOwnProperty(lang) !== true){
        lang = 'en';
    }
    
    if(email['email'].val() != email['emailConfirm'].val()){
        
        errorMessage.push('-- ' + posibleMessages[lang]['emailNotMatching']);
    }
    
    if(!email['email'].val().match(regExp)){
        errorMessage.push('-- ' + posibleMessages[lang]['emailNotValid']);
    }
    
    $(required).each( function(){
        //testing for empty input fields
        var fieldLabel = $(this).prev('label').html().replace('<span class="required">*</span>', '');
        if($(this).val() == ' ' || $(this).val() == ''){
            errorMessage.push('-- ' + fieldLabel + posibleMessages[lang]['required']);
        }
    });
    
    
    if(intern == 0 ){
        errorMessage.push('-- ' + posibleMessages[lang]['pleaseChoose']);
    }
    
    if(errorMessage.length !== 0){
        return posibleMessages[lang]['mainMessage'] + errorMessage.join(" ");
    }else{
        return "Valid";
    }
    
}


$(document).ready(function(){
    //with this 
    if($("link[href='css/ie6_14.css']").size() == 0){$(document).pngFix();}
    
    var emailArr = new Array();
    var langExp = new RegExp("[a-z]{2}");
    emailArr['email'] = $('#InquiryEmail');
    emailArr['emailConfirm'] = $('#InquiryEmailconfirm');
    
    var requiredArr  = new Array;
    var requiredArr = [$('#InquiryFirstName'),$('#InquiryLastName'),$('#InquiryEmail'),$('#InquiryPhone'), $('#InquiryCountry')];
    var path = location.pathname.split("/");
    var lang = path['1'];//on localhost use 2 remote host use 1
    if(lang == "" || !lang.match(langExp)){
        lang = "en";
    }
    
    //call validation and fade button if validation works
    $('input[type="submit"]').click(function(){
    var intern = $("input[@type=radio]:checked").size();
        var results = validateFrom(emailArr,requiredArr,intern,lang);
        if (results == "Valid"){
            $(this).parent().fadeTo('fast',0.33)
            return true;
        }else{
            
            alert(results);
            return false;
        
        } 
    
    }); 
    //fix an odd cakephp thing
    $('#InquiryCountry').prev('label').append('<span class="required">*</span>');
    
    //fancy slide to show the tables now
    $('.showTable').click(function(){
        $($(this).attr('href')).slideToggle('slow');
        return false;
    });
    
    //lets keep the internship box and the traing box of equal height
    //first store the objects
    var internshipBox = $('div.internship');
    var trainingBox = $('div.training');
    //then find out which is larger and make the other the same. 
    if(internshipBox.height() > trainingBox.height()){
        trainingBox.height(internshipBox.height());
    }else if(internshipBox.height() < trainingBox.height()){
        internshipBox.height(trainingBox.height());
    }
    
    if($("link[href='css/ie7_14.css']").size() == 0 && $("link[href='css/ie6_14.css']").size() == 0){
        //position the submit button this is a bit hacky
 /*
       var spaceTotal = $('#requestinfo').width();
        var buttonLength = $('input.submit').width();
        var buttonMargin = spaceTotal - buttonLength - 10;
        $('div.submit').css('margin-left', buttonMargin);
*/

    }
    
    
});