/**
 * @see function reToggle()
 */
var reToggleTeaser = function() {
    
    teaser_accordion = new Accordion('h1.toggler', 'div.element', {
        opacity: true,

        onActive: function(toggler, element){
            toggler.addClass('open');
            element.addClass('open');
            element.removeClass('closed');
        },

        onBackground: function(toggler, element){
            toggler.removeClass('open');
            element.removeClass('open');
            element.addClass('closed');
        }
    });
}

reToggleTeaser = reToggleTeaser.create({
    delay: 2000
})

/**
 * adds all ingredients of a recipe to the actual users shopping list
 * in the recipe detail page is a hidden form (ingredients_form_id), containing
 * the id's of the recipe_to_ingredient records
 * the shopping list will be refreshed.
 * 
 * @param target_url string
 * @param ingredients_form_id string
 * @return void
 */
function addIngredientsToShoppingList(target_url,ingredients_form_id) {
    // default shopping_list id
    shoppingList = $('user_wildeisen_ingredientslist');
    
    var myHTMLRequest = new Request.HTML({
        url:target_url,
        onSuccess: function(html) {
            shoppingList.set('text', '');
            shoppingList.adopt(html);
        },
        onFailure: function() {
            shoppingList.set('text', 'The request failed.');
        }
    }).post($(ingredients_form_id));
    
    reToggleTeaser();
}

function removeIngredientFromShoppingList(target_url,slti_id) {
    // default shopping_list id
    shoppingList = $('user_wildeisen_ingredientslist');
    
    var myHTMLRequest = new Request.HTML({
        url:target_url,
        onSuccess: function(html) {
            shoppingList.set('text', '');
            shoppingList.adopt(html);
        },
        onFailure: function() {
            shoppingList.set('text', 'The request failed.');
        }
    }).send('slti_id='+slti_id);
    
    reToggleTeaser();
}

function emptyShoppingList(target_url) {
    // default shopping_list id
    shoppingList = $('user_wildeisen_ingredientslist');
    
    var myHTMLRequest = new Request.HTML({
        url:target_url,
        onSuccess: function(html) {
            shoppingList.set('text', '');
            shoppingList.adopt(html);
        },
        onFailure: function() {
            shoppingList.set('text', 'The request failed.');
        }
    }).send();
            
	reToggleTeaser();
}

/**
 * adds  a recipe to the actual users cookbook
 * 
 * @param target_url string
 * @param recipe_id string
 * @return void
 */
function addRecipeToCookbook(target_url,recipe_id,reload_url) {
    // only for IE
    if(Browser.Engine.trident) {
        var href = document.getElementsByTagName('base');
        reload_url = href[0].href + reload_url;
    }
    
    if(reload_url.contains('?')) {
        reload_url = reload_url + '&user_wildeisen_recipe[no_cache]=1';
    } else {
        reload_url = reload_url + '?user_wildeisen_recipe[no_cache]=1';
    }
    
    var myHTMLRequest = new Request.HTML({
        url:target_url,
        onSuccess: function(html) {
            window.location.href = reload_url;
        },
        onFailure: function() {
            $('toolbar_message').set('text', 'The request failed.');
        }
    }).send('recipe_id='+recipe_id);
}

function removeRecipeFromCookbook(target_url,recipe_id,reload_url) {
    // only for IE
    if(Browser.Engine.trident) {
        var href = document.getElementsByTagName('base');
        reload_url = href[0].href + reload_url;
    }
    
    if(reload_url.contains('?')) {
        reload_url = reload_url + '&user_wildeisen_recipe[no_cache]=1';
    } else {
        reload_url = reload_url + '?user_wildeisen_recipe[no_cache]=1';
    }
    
    var myHTMLRequest = new Request.HTML({
        url:target_url,
        onSuccess: function(html) {
	        window.location.href = reload_url;
            //window.location.reload();
        },
        onFailure: function() {
            $('toolbar_message').set('text', 'The request failed.');
            return false;
        }
    }).send('recipe_id='+recipe_id);
}


/**
 * This function is called, whenever an element of an accordeon
 * menu is refreshed. this avoids the content of an accordeon
 * to become bigger than the container
 * @param position int  position in the accordeon menu (starting from 0)
 * @return void
 */
function reToggle(position) {
    accordion.display(0);
    accordion.display(position);
}

/**
 * open a popup window
 * @param url (url to call)
 * @param id (the windows name)
 */
function openVideoPlayer(url,id) {
    window.open(url,'video_player'+id,'width=400,height=350,left=200,top=100');
    return false;
}

/**
 * activate/deactivate input fields for nutrient informations
 */
function toggleNutrientInputField(field) {
    
    if(field.getProperty('readonly')) {
        field.value = '';
        field.removeProperty('readonly');
        field.removeProperty('class');
    } else {
        field.value = 'NULL';
        field.setProperty('readonly','readonly');
        field.setProperty('class','inactive');
    }
}


