/* 
 * :: Default Module Functions ::
 */
 
// Append Loading bar
function appendLoading(tag) {
    if (tag == '') {
        tag = 'div#content h2';
    }
    
    $(tag).after('<div align="center" style="display: none; margin-bottom: 15px;" id="loadingDiv"><img src="' + Comcasa.baseUrl + '/templates/images/general/loading.gif" /></div>');
}

/* 
 * :: Comparação - Imóveis ::
 */
// Append Building to Comparison
function appendComparison(inputId) {
    // Length of Checked Inputs
    var total = $("input:checked").length;
    
    // Checked?
    var isChecked = $('input[@id=' + inputId + ']').is(':checked');
    
    // Trying to select more than 3
    if (total == 3 && !(isChecked)) {
        alert(Comcasa.messages.comparar.onlyThreeAtOnce);
        return false;
    }
    
    // Check checkboxattr('checked', true)
    if (!(isChecked)) {
        $('input#' + inputId).attr('checked', true);
        $('#check-' + inputId).fadeIn().show();
    } else {
        $('input#' + inputId).attr('checked', false);
        $('#check-' + inputId).fadeOut().hide();
    }
    
    return false;
}

// Compare Buildings
function compare() {
    // Length of Checked Inputs
    var total = $("input:checked").length;
    
    // Havent selected at least 2
    if (total < 2) {
        alert(Comcasa.messages.comparar.selectTwoAtLeast);
        return false;
    }
    
    // Having selected more than 3
    if (total > 3) {
        alert(Comcasa.messages.comparar.onlyThreeAtOnce);
        return false;
    }
    
    // Submit the form
    $('form#comparar-form').submit();
	return true;
}

// Remove Building from Comparation
function removeBuilding(id, total) {
    // Cant remove if there are only 2 buildings
    if (total == '2') {
        alert(Comcasa.messages.comparar.atLeastTwo);
        return total;
    }
    
    // Remove :)
    $('#' + id).animate({height: 'hide', opacity: 'hide'}, 'slow'); // $('#' + id).hide("drop", { direction: "down" }, 1000);
    
    return total - 1;
}

/*
 * :: Obras Entregues ::
 */
// Change Options
function changeOption(option, page) {
    // Append Loading Bar
    appendLoading('div#options-container');
    
    // Show Loading Bar
    $('#loadingDiv').show();
    
    // Url
    var url = Comcasa.baseUrl + '/obras-entregues/index/tipo/' + option  + '/format/html';
    
    if (page != '') {
        url += '/pagina/' + page;
    }
    
    $.get(url, { }, function(data) {
            $('div#content').empty().append(data);
            
            // Lightbox
            $(".lightbox").lightbox();
            
            // Append Loading Bar
            appendLoading('div#options-container');
            
            // Hide loadingDiv Bar
            $('#loadingDiv').hide();
    });
}

// Toogle for Buildings
function toogleObras(startId, targetId) {
    // Show Loading Bar
    $('#loadingDiv').show();
    
    // Display Property
    var display = $('div#' + targetId).css('display');
    
    if (display == 'none') {
        $.get(Comcasa.baseUrl + '/obras-entregues/edificios/id/' + startId + '/format/html',
            { }, function(data) {
                // Append Content to div
                $('div#' + targetId).empty().append(data);
                
                // Fade In
                $('#' + targetId).animate({height: 'show', opacity: 'show'}, 'slow');
                
                // Lightbox
                $(".lightbox").lightbox();
                
                // Hide loadingDiv Bar
                $('#loadingDiv').hide();
            });
    } else {
        $('div#' + targetId).animate({
                height: 'hide',
                opacity: 'hide'
            }, 'slow');
            
        // Hide loadingDiv Bar
        $('#loadingDiv').hide();
    }
}


/*
 * :: Login ::
 */
// Reload Security Image
function reloadImage(imgId) {
    $("#" + imgId).attr({ 
        src: Comcasa.baseUrl + '/application/libraries/Comcasa/Comcasa/Captcha.php?' + Math.random()
    });
}

// Login
function login() {
    var token = $('input[@name=token]').val();
    var user = $('input[@name=username]').val();
    var pass = $('input[@name=password]').val();
    var code = $('input[@name=code]').val();
    var rememberMe = false;
    
    if ($('input[@checked]').val()) {
        var rememberMe = true;
    }
    
    if (!user) {
       alert(Comcasa.messages.login.insertUsername);
       $('input[@name=username]').focus();
       return false;
    }
    
    if (!pass) {
       alert(Comcasa.messages.login.insertPassword);
       $('input[@name=password]').focus();
       return false;
    }
    
    if (!code) {
        alert(Comcasa.messages.login.insertCode);
        $('input[@name=code]').focus();
       return false;
    }
    
    if (user.length < 4 || user.length > 23) {
       alert(Comcasa.messages.login.usernameLength);
       $('input[@name=username]').focus();
       return false;
    }
    
    if (pass.length < 4 || pass.length > 23) {
       alert(Comcasa.messages.login.passwordLength);
       $('input[@name=password]').focus();
       return false;
    }
    
    $.post(Comcasa.baseUrl + '/autenticacao/form/format/html', 
        { token: token, username: user, password: pass, code: code, rememberMe: rememberMe }, 
            function(data) { 
                $('div#error').empty().fadeIn("slow").show().append(data);
    });
    
    return false;
}

/*
 * :: Fale Conosco ::
 */
// Check if email is valid
function validEmail(val) {
    if (val.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/)) {
        return true;
    }
    
    return false;
}

// Submit Contact
function contact() {
    var name = $('input[@name=name]').val();
    var subject = $('input[@name=subject]').val();
    var phone = $('input[@name=phone]').val();
    var email = $('input[@name=email]').val();
    var message = $('textarea[@name=message]').val();
    
    if (!(name) || !(subject) || !(phone) || !(message)) {
        alert(Comcasa.messages.contact.blankFields);
       
        if (!(name)) {
            $('input[@name=name]').focus();
            return false;
        }
        
        if (!(subject)) {
            $('input[@name=subject]').focus();
            return false;
        }
        
        if (!(phone)) {
            $('input[@name=phone]').focus();
            return false;
        }
        
        if (!(message)) {
            $('textarea[@name=message]').focus();
            return false;
        }
    }
    
    if (user.length < 5 || user.length > 42) {
        alert(Comcasa.messages.contact.incompleteName);
        $('input[@name=name]').focus();
        return false;
    }
    
    if (!(validEmail(email)))
    {
        alert(Comcasa.messages.contact.invalidEmail);
        $('input[@name=email]').focus();
        return false;
    }
    
    return true;
}

/*
 * :: Avaliação Pós-Ocupacional ::
 */
// Check if value is numeric
function isNumeric(val)
{
    if (val.match(/^[0-9]+$/))
    {
        return true;
    }
        
    return false;
}

// Avaliation - 1st Step
function stepOne() {
    var name = $('input[@name=name]').val();
    var email = $('input[@name=email]').val();
    var building = $('select[@name=building]').val();
    var time = $('input[@name=time]').val();
    var property = $('input[@name=property]:checked').val();
    var first = $('input[@name=first]:checked').val();
    
    if (!(name) || !(email) || !(time)) {
        alert(Comcasa.messages.avaliation.blankFields);
        
        if (!(name)) {
            $('input[@name=name]').focus();
            return false;
        }
        
        if (!(email)) {
            $('input[@name=email]').focus();
            return false;
        }
        
        if (!(time)) {
            $('input[@name=time]').focus();
            return false;
        }
    }
    
    if (building == '') {
        alert(Comcasa.messages.avaliation.blankFields);
        return false;
    }
    
    if (!(property) || !(first)) {
        alert(Comcasa.messages.avaliation.blankFields);
        return false;
    }
    
    if (name.length < 6) {
        alert(Comcasa.messages.avaliation.incompleteName);
        return false;
    }
    
    if (!(isNumeric(time))) {
        alert(Comcasa.messages.avaliation.livingLength);
        return false;
    }
    
    if (email.length < 6 || email.length > 40) {
        alert(Comcasa.messages.avaliation.emailLength);
        return false;
    }
    
    if (!(validEmail(email))) {
        alert(Comcasa.messages.avaliation.invalidEmail);
        return false;
    }
    
    return true;
}

// Second Step
function stepTwo() {
    var A01 = $('input[@name=A01]:checked').val();
    var A02 = $('input[@name=A02]:checked').val();
    var A03 = $('input[@name=A03]:checked').val();
    var A04 = $('input[@name=A04]:checked').val();
    var A05 = $('input[@name=A05]:checked').val();
    var A06 = $('input[@name=A06]:checked').val();
    var A07 = $('input[@name=A07]:checked').val();
    var A08 = $('input[@name=A08]:checked').val();
    var A09 = $('input[@name=A09]:checked').val();
    var B10 = $('input[@name=B10]:checked').val();
    var B11 = $('input[@name=B11]:checked').val();
    var B12 = $('input[@name=B12]:checked').val();
    var B13 = $('input[@name=B13]:checked').val();
    var C14a = $('input[@name=C14a]:checked').val();
    var C14b = $('input[@name=C14b]:checked').val();
    var C14c = $('input[@name=C14c]:checked').val();
    var C14d = $('input[@name=C14d]:checked').val();
    var C15a = $('input[@name=C15a]:checked').val();
    var C15b = $('input[@name=C15b]:checked').val();
    var C15c = $('input[@name=C15c]:checked').val();
    var C15d = $('input[@name=C15d]:checked').val();
    var C16a = $('input[@name=C16a]:checked').val();
    var C16b = $('input[@name=C16b]:checked').val();
    var C16c = $('input[@name=C16c]:checked').val();
    var C17a = $('input[@name=C17a]:checked').val();
    var C17b = $('input[@name=C17b]:checked').val();
    var C17c = $('input[@name=C17c]:checked').val();
    var C18a = $('input[@name=C18a]:checked').val();
    var C18b = $('input[@name=C18b]:checked').val();
    var C18c = $('input[@name=C18c]:checked').val();
    var C18d = $('input[@name=C18d]:checked').val();
    var C18e = $('input[@name=C18e]:checked').val();
    var C18f = $('input[@name=C18f]:checked').val();
    var C18g = $('input[@name=C18g]:checked').val();
    var C18h = $('input[@name=C18h]:checked').val();
    var C18i = $('input[@name=C18i]:checked').val();
    var C19a = $('input[@name=C19a]:checked').val();
    var C19b = $('input[@name=C19b]:checked').val();
    var D20 = $('input[@name=D20]:checked').val();
    var D21 = $('input[@name=D21]:checked').val();
    
    if (!(A01) || !(A02) || !(A03) || !(A04) || !(A05) || !(A06) || !(A07) || 
        !(A08) || !(A09) || !(B10) || !(B11) || !(B12) || !(B13) || !(C14a) || 
        !(C14b) || !(C14c) || !(C14d) || !(C15a) || !(C15b) || !(C15c) || !(C15d) || 
        !(C16a) || !(C16b) || !(C16c) || !(C17a) || !(C17b) || !(C17c) || !(C18a) || 
        !(C18b) || !(C18c) || !(C18d) || !(C18e) || !(C18f) || !(C18g) || !(C18h) || 
        !(C18i) || !(C19a) || !(C19b) || !(D20) || !(D21))
    {
        alert(Comcasa.messages.avaliation.blankFields);
        return false;
    }
    
    return true;
}