/**
 * @author Thiago Miranda
 */
$(document).ready(function(){
	$('.contact-information').hide();
	/*
	 * Inclusao do plugin Tooltip e seu CSS e o Validate. Chamada do Tooltip e do Validate no callback
	 */

    $.include([paths.js + 'jquery.tooltip.min.js', paths.css + 'jquery.tooltip.css',paths.js + 'jquery.validate.min.js'], function(){
        $('span.clue a').tooltip({
            track: true,
            showURL: false,
            bodyHandler: function(){
                return 'This is the ID of your association';
            }
        });
		
		$('span.clue a').bind('click',function(){
			return false;
		});
		
		/*
		* Chamada do plugin validate assim como suas opcoes e regras.
		*/
        var contactValidate = $("#contact-form").validate({
            focusCleanup: false,
			
			invalidHandler: function(form){
				scrollTo('body,html');
				$('.list').empty();
			},
			
			 highlight: function(element, errorClass) {
 				$(element).not('select').addClass(errorClass);
 				$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
			 },
			 
			unhighlight: function(element, errorClass) {
 				$(element).removeClass(errorClass);
 				$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
			},
			
            
            rules: {
                contact_us_name: {
                    required: function(){
						return $('#contact_us_name').parent().is(':visible');
					},
                    rangelength: [3, 60]
                },
                contact_us_email: {
                    required: function(){
						return $('#contact_us_email').parent().is(':visible');
					},
                    email: true,
                    maxlength: 60
                },
                contact_us_subject: {
                    required: true
                },
                contact_us_message: {
                    required: true,
                    rangelength: [10, 900]
                }
            },
            messages: {
                contact_us_name: {
                    required: '<strong>Name</strong>',
                    rangelength: '<strong>Name</strong> must have 3 to 60 characters'
                },
                contact_us_email: {
                    required: '<strong>Email</strong>',
                    email: '<strong>Email</strong>',
                    maxlength: '<strong>Email</strong>'
                },
                contact_us_subject: {
                    required: '<strong>Subject</strong>'
                },
                contact_us_message: {
                    required: '<strong>Message</strong>',
                    rangelength: '<strong>Message</strong> can be 10 to 900 characters long'
                }
            
            
            },
            
            onkeyup: false,
            onfocusout: false,
            focusInvalid: true,
            onsubmit: true,
			errorElement: 'li',
			
            errorPlacement: function(error, element){
                $(element).blur();
                var id = element.attr('id');
                var name = element.attr('name');
                var errorli = error.appendTo('.list');
                
                if (!$('#generated-' + id).length) {
                    errorli.append(' | <a href="#' + id + '" id="generated-' + id + '">Show me</a>');
                }
                else {
                    errorli.remove();
                }
                $('#generated-' + id).bind('click', function(event){
                    event.stopPropagation();
                    scrollTo('#' + id, function(element){
                        element.focus();
                    });
                    return false;
                });
                $('#error').show();
            }
        
        
        });
		
    });
    
	$('#send-message').bind('click',function(){
		$('#contact-sucess').hide();
	});
	
	/*
	 * Adicao do atributo background-color com cor verde clara ao se dar foco no campo.
	 */
    $('input,textarea,select','#contact-form').focus(function(){
		$(this).addClass('focus');
    });
    $('input,textarea,select','#contact-form').blur(function(){
		$(this).removeClass('focus');
    });
    
	/*
	 * Ativa os inputs caso a associacao logada queira usar outro contato
	 */
	$('#other_info').bind('click',function(){
		$('#info-box').fadeOut('slow',function(){
			$('.contact-information').fadeIn('slow');
		});
		return false;
	});

});

