/** 
    grahammcculloch.co.za main website javascript functions
    author : johann loubser, the medium design solutions
    created : 10 August 2007
*/

function getElement(elementId) {
    
    var element = document.getElementById(elementId);
    
    return element;

}

function swapImage(imageId, newPath) {
    
    var image = getElement(imageId);
    
    if(image.src != newPath)
        image.src = newPath;
        
}

function validateContactForm(form) {
    
    var valid = false;
    
    if(form.name.value.length < 3)  {
        alert('Please provide your name');
        form.name.focus();
    }
    else if(!isValidEmail(form.email_address.value)) {
        alert('Please provide a valid email address');
        form.email_address.focus();
    }
    else if(form.subject.value == '') {
        alert('Please provide a subject for your message');
        form.subject.focus();
    }
    else if(form.message.value.length < 10) {
        alert('Please provide your message / enquiry');
        form.message.focus();
    }
    else if(form.heard_about.value == '') {
        alert('Please specify where you heard about this website,\nor select "Other" if none of the options are suitable');
        form.heard_about.focus();
    }
    else {
        valid = true;
    }
    
    return valid;
    
}

function isValidEmail(email) {
    
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    
    if (filter.test(email))
        return true;
    else
        return false;
}

function focusField(field) {
    
    field.className += ' focus';
    
    if(getElement(field.id + '_label'))
        getElement(field.id + '_label').className += ' focus';
    
}

function blurField(field) {
    
    field.className = field.className.replace('focus', '');
    
    if(getElement(field.id + '_label'))
        getElement(field.id + '_label').className = getElement(field.id + '_label').className.replace('focus', '');
    
}

function addFieldTriggers() {
    
    var forms = document.forms;
    
    for(var i=0; i<forms.length; i++) {
        
        var form = forms[i];
        
        for(var j=0; j<form.length; j++) {
            
            var element = form[j];
            
            if((element.type != null) && (element.type == 'text' || element.type == 'textarea' || (element.type.indexOf('select') >= 0))) {
            
                element.onfocus = function() {
                    focusField(this);
                }
                
                element.onblur = function() {
                    blurField(this);
                }
                
            }
            
        }
        
    }
    
}
