function validate_vote(frm) {
    var value = '';
    var errFlag = new Array();
    var _qfGroups = {};
    _qfMsg = '';

    value = frm.elements['firstname'].value;
    if (value == '' && !errFlag['firstname']) {    
        errFlag['firstname'] = true;
        $('firstname').setStyle({
								backgroundColor:'#F6CCDA'
		});
        _qfMsg = _qfMsg + '\n - Please enter a \'First Name\'.';
    }

    value = frm.elements['lastname'].value;
    if (value == '' && !errFlag['lastname']) {    
        errFlag['lastname'] = true;
        $('lastname').setStyle({
								backgroundColor:'#F6CCDA'
		});
        _qfMsg = _qfMsg + '\n - Please enter a \'Last Name\'.';
    }

	value = frm.elements['phone'].value;
	var regex = /(^\(\)$)^(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	value2 = value.split(' ').join('').split('(').join('').split(')').join('');
	if (value2 != '' && !regex.test(value2) && !errFlag['phone']) {
		errFlag['phone'] = true;
        $('phone').setStyle({
								backgroundColor:'#F6CCDA'
		});		
		_qfMsg = _qfMsg + '\n - \'Phone\' must not contain letters.';
	}	

    value = frm.elements['phone'].value;
    var regex = /^([0][1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])$/;
    if (value != '' && !regex.test(value.split(' ').join('')) && !errFlag['phone']) {
        errFlag['phone'] = true;
        $('phone').setStyle({
								backgroundColor:'#F6CCDA'
		});        
        _qfMsg = _qfMsg + '\n - Please enter a valid \'Phone\' number.';
    }

    value = frm.elements['mobile'].value;
    if (value == '' && !errFlag['mobile']) {
        errFlag['mobile'] = true;
        $('mobile').setStyle({
								backgroundColor:'#F6CCDA'
		});        
        _qfMsg = _qfMsg + '\n - Please enter a \'Mobile\'.';
    }

    value = frm.elements['mobile'].value;
    if (value != '' && value.split(' ').join('').length < 10 && !errFlag['mobile']) {
        errFlag['mobile'] = true;
        $('mobile').setStyle({
								backgroundColor:'#F6CCDA'
		});       
        _qfMsg = _qfMsg + '\n - Please enter a \'Mobile\' of at least 10 digits.';
    }

    value = frm.elements['mobile'].value;
    var regex = /^([0][4][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])$/;
    if (value != '' && !regex.test(value.split(' ').join('')) && !errFlag['mobile']) {
        errFlag['mobile'] = true;
        $('mobile').setStyle({
								backgroundColor:'#F6CCDA'
		});        
        _qfMsg = _qfMsg + '\n - Please enter a valid \'Mobile\' phone number.';
    }

    value = frm.elements['email'].value;
    var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
    if (value != '' && !regex.test(value) && !errFlag['email']) {
        errFlag['email'] = true;
        $('email').setStyle({
								backgroundColor:'#F6CCDA'
		});        
        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address.';
    }

    value = frm.elements['email'].value;
    if (value == '' && !errFlag['email']) {
        errFlag['email'] = true;
        $('email').setStyle({
								backgroundColor:'#F6CCDA'
		});        
        _qfMsg = _qfMsg + '\n - Please enter an \'Email\'.';
    }
	
	if( frm.elements['typeflag'].value == 'true' ){
		value = '';
		var els = 'length' in frm.elements['promotionoption']? frm.elements['promotionoption']: [ frm.elements['promotionoption'] ];
		for (var i = 0; i < els.length; i++) {
			if (els[i].checked) {
				value = els[i].value;
			}
		}
		if (value == '' && !errFlag['promotionoption']) {
			errFlag['promotionoption'] = true;
			_qfMsg = _qfMsg + '\n - Please select a \'Promotion Option\'.';
		}		
	}	
	value = '';
	var els = 'length' in frm.elements['over18']? frm.elements['over18']: [ frm.elements['over18'] ];
	for (var i = 0; i < els.length; i++) {
		if (els[i].checked) {
			value = els[i].value;
		}
	}
	if (value == '' && !errFlag['over18']) {
		errFlag['over18'] = true;
		_qfMsg = _qfMsg + '\n - Please confirm that you are over 18 or that you have your parent\'s permission.';
	}
	
	value = '';
	var els = 'length' in frm.elements['image']? frm.elements['image']: [ frm.elements['image'] ];
	for (var i = 0; i < els.length; i++) {
		if (els[i].checked) {
			value = els[i].value;
		}
	}
	if (value == '' && !errFlag['image']) {
		errFlag['image'] = true;
		_qfMsg = _qfMsg + '\n - Please select an image.';
	}	
		
	value = frm.elements['myphoneemail'].checked? '1': '';
	
	if (value == '' && !errFlag['myphoneemail']) {
		errFlag['myphoneemail'] = true;
		_qfMsg = _qfMsg + '\n - Please confirm that the mobile phone and email are yours.';
	}
	
	value = frm.elements['agree'].checked? '1': '';
	
	if (value == '' && !errFlag['agree']) {
		errFlag['agree'] = true;
		_qfMsg = _qfMsg + '\n - Please confirm that you have read and acknowledge the terms and conditions.';
	}	

    value = frm.elements['phrase'].value;
    if (value == '' && !errFlag['phrase']) {
        errFlag['phrase'] = true;
        _qfMsg = _qfMsg + '\n - Please enter the \'Captcha Phrase\'.';
    }

    value = frm.elements['already_voted'].value;
    if (value == 'true' && !errFlag['already_voted']) {
        errFlag['already_voted'] = true;
        _qfMsg = _qfMsg + '\n - You have already voted this week. Come back next week.';
    }   
    
    value = frm.elements['bad_email'].value;
    if (value == 'true' && !errFlag['bad_email']) {
        errFlag['bad_email'] = true;
        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address.';
    } 
    
    if (_qfMsg != '') {
        _qfMsg = 'Invalid information entered.' + _qfMsg;
        _qfMsg = _qfMsg + '\nPlease correct these fields.';
        alert(_qfMsg);
        return false;
    }  
    return true;
}

function validateFirstName(obj, message){
	var value = '';
	var errFlag;
	var _qfGroups = {};
	_qfMsg = '';	
		
	value = obj.value;

	if (value == '' && !errFlag) {
		errFlag = true;
		_qfMsg = _qfMsg + '\n - required.';
	}
    
	if (value != '' && value.length < 2 && !errFlag) {
		errFlag = true;
		_qfMsg = _qfMsg + '\n - At least 2 digits.';
	}
	
	if( errFlag ){
        $(obj.id).setStyle({
        						backgroundColor:'#F6CCDA'
        						});
        if( message != '' ){						
     		$(message).update(_qfMsg);
     	}
	}else{
		$(obj.id).setStyle({
								backgroundColor:'#BCED91'
								});
		if( message != '' ){	
			$(message).update(_qfMsg);
		}
   	}
}	

function validateLastName(obj, message){
	var value = '';
	var errFlag;
	var _qfGroups = {};
	_qfMsg = '';	
		
	value = obj.value;

	if (value == '' && !errFlag) {
		errFlag = true;
		_qfMsg = _qfMsg + '\n - required.';
	}
	
	if (value != '' && value.length < 2 && !errFlag) {
		errFlag = true;
		_qfMsg = _qfMsg + '\n - At least 2 digits.';
	}
	
	if( errFlag ){
                $(obj.id).setStyle({
                					backgroundColor:'#F6CCDA'
                					});
                if( message != '' ){
             		$(message).update(_qfMsg);
             	}
	}else{
				$(obj.id).setStyle({
                        			backgroundColor:'#BCED91'
                        			});
                if( message != '' ){
                	$(message).update(_qfMsg);
                }
        }
}		

function validatePhone(obj){
	var value = '';
	var errFlag;
	var _qfGroups = {};
	_qfMsg = '';	
		
	value = obj.value;

	var regex = /(^\(\)$)^(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	value2 = value.split(' ').join('').split('(').join('').split(')').join('');
	if (value2 != '' && !regex.test(value2) && !errFlag) {
		errFlag = true;
		_qfMsg = _qfMsg + '\n - must contain numbers.';
	}
	
	var regex = /^([0][1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])$/;
	if (value != '' && !regex.test(value.split(' ').join('')) && !errFlag) {
		errFlag = true;
		//_qfMsg = _qfMsg + '\n - enter a valid number.';
		_qfMsg = _qfMsg + '\n - eg. 08 8211 7833.';
	}
	
	if( errFlag ){
                $('phone').setStyle({
                					backgroundColor:'#F6CCDA'
                					});
             	$('phoneMessage').update(_qfMsg);
	}else{
				$('phone').setStyle({
                        			backgroundColor:'#BCED91'
                        			});
                $('phoneMessage').update(_qfMsg);
	}
}		

function validate_referral(frm) {
    var value = '';
    var errFlag = new Array();
    var _qfGroups = {};
    _qfMsg = '';

    value = frm.elements['firstname'].value;
    if (value == '' && !errFlag['firstname']) {
	    $('firstname').setStyle({
							backgroundColor:'#F6CCDA'
							});    
        errFlag['firstname'] = true;
        _qfMsg = _qfMsg + '\n - Please enter a \'First Name\'.';
    }

    value = frm.elements['lastname'].value;
    if (value == '' && !errFlag['lastname']) {
	    $('lastname').setStyle({
							backgroundColor:'#F6CCDA'
							});    
        errFlag['lastname'] = true;
        _qfMsg = _qfMsg + '\n - Please enter a \'Last Name\'.';
    }

    value = frm.elements['email'].value;
    var regex = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
    if (value != '' && !regex.test(value) && !errFlag['email']) {
	    $('email').setStyle({
							backgroundColor:'#F6CCDA'
							});    
        errFlag['email'] = true;
        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address.';
    }

    value = frm.elements['email'].value;
    if (value == '' && !errFlag['email']) {
	    $('email').setStyle({
							backgroundColor:'#F6CCDA'
							});
        errFlag['email'] = true;
        _qfMsg = _qfMsg + '\n - Please enter an \'Email\'.';
    } 
    
    value = frm.elements['bad_email'].value;
    if (value == 'true' && !errFlag['bad_email']) {
	    $('email').setStyle({
							backgroundColor:'#F6CCDA'
							});    
        errFlag['bad_email'] = true;
        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address.';
    } 

	for( i = 1; i < 6; i++ ){
		var firstname = 'firstname' + i;
		var lastname = 'lastname' + i;
		var email = 'email' + i;
		var bad_email = 'bad_email' + i;
		if( (frm.elements[firstname].value != '' || frm.elements[lastname].value != '' || frm.elements[email].value != '') || i == 1 ){
		    value = frm.elements[firstname].value;
		    if (value == '' && !errFlag[firstname]) {
			    $(firstname).setStyle({
									backgroundColor:'#F6CCDA'
									}); 		    
		        errFlag[firstname] = true;
		        _qfMsg = _qfMsg + '\n - Please enter a \'First Name\' for referral ' + i + '.';
		    }
		
		    value = frm.elements[lastname].value;
		    if (value == '' && !errFlag[lastname]) {
			    $(lastname).setStyle({
									backgroundColor:'#F6CCDA'
									});		    
		        errFlag[lastname] = true;
		        _qfMsg = _qfMsg + '\n - Please enter a \'Last Name\' for referral ' + i + '.';
		    }
		
		    value = frm.elements[email].value;
		    var regex = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
		    if (value != '' && !regex.test(value) && !errFlag[email]) {
			    $(email).setStyle({
									backgroundColor:'#F6CCDA'
									});			    
		        errFlag[email] = true;
		        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address for referral ' + i + '.';
		    }
		
		    value = frm.elements[email].value;
		    if (value == '' && !errFlag[email]) {
			    $(email).setStyle({
									backgroundColor:'#F6CCDA'
									});		    
		        errFlag[email] = true;
		        _qfMsg = _qfMsg + '\n - Please enter an \'Email\' for referral ' + i + '.';
		    } 
		    
		    value = frm.elements[bad_email].value;
		    if (value == 'true' && !errFlag[bad_email]) {
			    $(email).setStyle({
									backgroundColor:'#F6CCDA'
									});		    
		        errFlag[bad_email] = true;
		        _qfMsg = _qfMsg + '\n - Please enter a valid Email Address for referral ' + i + '.';
		    }	
	    }
	}

    value = frm.elements['phrase'].value;
    if (value == '' && !errFlag['phrase']) {
	    $('phrase').setStyle({
							backgroundColor:'#F6CCDA'
							});    
        errFlag['phrase'] = true;
        _qfMsg = _qfMsg + '\n - Please enter the \'Captcha Phrase\'.';
    }
    
    if (_qfMsg != '') {
        _qfMsg = 'Invalid information entered.' + _qfMsg;
        _qfMsg = _qfMsg + '\nPlease correct these fields.';
        alert(_qfMsg);
        return false;
    }  
    return true;
}				