var APPSTRIP = {};
APPSTRIP.allowOffFB = false;
$(document).ready(function() {
    $('form.validate').submit(function(){
        return ValidateForm($(this));
    });
    $('input.validate_tos').change(function () {
    	if ($(this).attr("checked")) {
    		$('.hide_apply_button').fadeIn();
        }
    	else {
    		$('.hide_apply_button').fadeOut();
    	}
    });

});



function ValidateForm(form) {
    // REMOVE ALL THE ERRORS FIRST!
    form.find('div.field').removeClass('error').find('div.error_msg').hide();
    form.find('div.field').removeClass('error').find('div.error_msg_str').hide();
    var is_valid = true;
    
    form.find('textarea,input,select').each(function(i){
        if ( $(this).hasClass('validate_required') && $(this).val() == '' ) {
            is_valid = false;
            
            var parent_field = $(this).parents('div.field');
            parent_field.addClass('error');
            
            parent_field.find('div.error_msg').html('').show();
        }
        
        if ( $(this).hasClass('validate_url') && !is_valid_url($(this).val())) {
            is_valid = false;
            
            var parent_field = $(this).parents('div.field');
            parent_field.addClass('error');
            
            parent_field.find('div.error_msg').html('').show();
        }
        
        if ( $(this).hasClass('validate_landing_url') && !is_valid_landing_url($(this).val())) {
            is_valid = false;
            
            var parent_field = $(this).parents('div.field');
            parent_field.addClass('error');
            
            parent_field.find('div.error_msg').html('').show();
        }
        
        if ( $(this).hasClass('validate_email') && !is_valid_email($(this).val()) ) {
            is_valid = false;
            
            var parent_field = $(this).parents('div.field');
            parent_field.addClass('error');
            
            parent_field.find('div.error_msg_str').html('Valid email required!').show();            
        }
        else if ( $(this).hasClass('validate_email') ) {
       	 var hasError = false;
            var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            if(!emailReg.test($(this).val())) {
           	 var parent_field = $(this).parents('div.field');
                parent_field.addClass('error');
                
                parent_field.find('div.error_msg_str').html('Valid email required!').show();   
            }
       }

        if ( $(this).hasClass('validate_password') && $($(this).attr('rel')).val() != '' && ($($(this).attr('rel')).val() != $(this).val()) ) {
            is_valid = false;
            
            var parent_field = $(this).parents('div.field');
            parent_field.addClass('error');
            
            parent_field.find('div.error_msg').html('Password must match.').show();               
        }
    });
    
    // SPECIAL CHECK FOR COUNTRY VALIDATION
    form.find('div.validate_country').each(function(i){
        if ( $(this).find(':checked').length == 0 ) {
            is_valid = false;
                        
            $(this).find('div.error_msg').html('Please select a country option.').show();
        }
    });
    
    return is_valid;
}

function is_valid_url(url) {
    return /^(https?):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
}
function is_valid_landing_url(url) {
    url = url.toLowerCase();
    if (APPSTRIP.allowOffFB) {
    	return true;
    }
    if ( url.indexOf('http') == 0 ) {
        return false;
    }
    
    if ( url.indexOf('apps.') == 0 ) {
        return false;
    }
    if ( jQuery.trim(url) == '' ) {
        return false;
    }
    
    return true;
}

function is_valid_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   return reg.test(email);
}
