/**
 * @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;
}

/**
 * start the flv player
 * could be called multiple times on one page (maximum??)
 */
function createFlvPlayer(container, playerId, url, imageSrc, width, height, autostart) {
    var flashvars = {
            file:url,
            autostart:autostart,
            type:'video',
            controlbar:'bottom',
            image:imageSrc,
            backcolor: 'fefefe',
            frontcolor: '000000',
            lightcolor: '000000',
            screencolor: '000000'
    }
    var params = {
            allowfullscreen:"true",
            allowscriptaccess:"always"
    }
    var attributes = {
            id:playerId,
            name:playerId
    }
    swfobject.embedSWF('typo3conf/ext/user_wildeisen/res/flv-player/player.swf', container, width, height, "9.0.115", false, flashvars, params, attributes);
}

function createMpgPlayer(container, playerId, url, imageSrc, width, height, autostart) {
    var player_autostart = (autostart) ? 'true' : 'false';
    var player = '<object id="'+playerId+'" width="'+width+'" height="'+height+'" classid="'+playerId+'" standby="Loading Windows Media Player components…" type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112">';
    player += '<param name="filename" value="'+url+'" />';
    player += '<param name="Showcontrols" value="true" />';
    player += '<param name="autoStart" value="'+player_autostart+'" />';
    player += '<embed type="application/x-mplayer2" src="'+url+'" name="'+playerId+'" width="'+width+'" height="'+height+'"></embed>';
    player += '</object>';
    
    $(container).set('text', '');
    $(container).set('html', player);
    //$(container).innerHTML = player;
}

/**
 * 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');
    }
}

