// Javascript in Array
Array.prototype.in_array = function(needle) {
    for(var i=0; i < this.length; i++) if(this[ i] === needle) return true;
    return false;
}

/**
 * Ajax Request
 * Hole dir alle Landkreise für eine Region
 * Landkreise in Selectbox schreiben
 */
function mhCountiesForRegion(region_select, form_id, target_url) {
    jQuery.post(target_url, 
        {ajax_callback: 'county', region: jQuery(region_select).val()}, 
        function(data) {
            jQuery("form#" + form_id + " #county").empty();
            if(data.length > 0) {
                jQuery.each(data, function(index, value) {
                    jQuery("form#" + form_id + " #county").get(0).options[jQuery("form#" + form_id + " #county").get(0).options.length] = new Option(value.name, value.county_id);
                });
            } else {
                jQuery("form#" + form_id + " #county").get(0).options[jQuery("form#" + form_id + " #county").get(0).options.length] = new Option('Bitte zuerst Bundesland wählen ...', 0);
            }
        },
        'json'
    );
}

/**
 * Submit des kleinen Katalog Wizards 
 */
function mhSubmitSmallCatalogWizard(form) {
    var errors = 0;
    jQuery.each(jQuery('.validate', form), function(index, object) {
        if(jQuery(object).val() == 0) {
            errors++;
            jQuery(object).css('border','1px solid #f00');
        } else {
            jQuery(object).css('border','1px solid #CCC');
        }
    });
    if(errors > 0) {
        jQuery('.error-message', form).text('Bitte füllen Sie alle Felder aus.').animate({
            fontSize: "1em"
        }, 500, function() {}).css('color','red');
        return false;
    }
    return true;
}

/**
 * Submit des großen Katalog Wizards 
 */
function mhSubmitBigCatalogWizard(form) {
    var errors = 0;
    jQuery.each(jQuery('.validate', form), function(index, object) {
        if(jQuery(object).val() == 0) {
            errors++;
            jQuery(object).css('border','1px solid #f00');
        } else {
            jQuery(object).css('border','1px solid #CCC');
        }
    });
    
    // check if one option is checked from Radio Buttons with given name
    jQuery.each(jQuery('.validate-radio', form), function(index, object) {
        var radioTrue = 0;
        var elementCount = 0;
        jQuery.each(jQuery('input[name="' + object.name + '"]'), function(idx, obj) {
            elementCount++;
            if(jQuery(obj).is(':checked') == true) {
                radioTrue++;
            }
        });
        if(radioTrue >= 1) {
            jQuery(object).parents().parent('.validate-error-container').children('.validate-error').remove();
        }
        else {
            errors++;
            if(jQuery(object).parents().parent('.validate-error-container').has('.validate-error').length == 0) {
                var errorMessage = 'Bitte wählen Sie eine Option';
                if(jQuery(object).is('input[type="checkbox"]')) {
                    errorMessage = 'Bitte wählen Sie mindestens eine Option';
                }
                jQuery(object).parents().parent('.validate-error-container').append('<p class="validate-error">' + errorMessage + '</p>');
            }
        }
    });
    
    if(errors > 0) {
        jQuery('.error-message', form).text('Bitte füllen Sie alle Felder aus.').animate({
            fontSize: "1em"
        }, 500, function() {}).css('color','red');
        return false;
    }
    return true;
}

function mhUpdateBuildingtypeCheckbox(checkbox) {
    var currentVal = jQuery(checkbox).val();
    var selectedValues = jQuery('#buildingtype-hidden').val();
    
    var ValuesArray = selectedValues.split('-');
    
    if(ValuesArray.in_array(currentVal) == false) {
        if(jQuery(checkbox).is(':checked') == true) {
            if(selectedValues != '') {
                var newVals = selectedValues + '-' + currentVal;
                jQuery('#buildingtype-hidden').val(newVals);
            } else {
                jQuery('#buildingtype-hidden').val(currentVal);
            }
        }
    } else {
        if(jQuery(checkbox).is(':checked') == false) {
            for(var i = 0; i < ValuesArray.length; i++) {
                if(ValuesArray[i] === currentVal) {
                    ValuesArray.splice(i, 1);
                }
            }
            jQuery('#buildingtype-hidden').val(ValuesArray.join('-'));
        }
    }
    
}

