/*******************************************************************************
 * Playlist Editor
 * -----------------------------------------------------------------------------
 * Copyright (C) 2007,2008 FOR INTERNET a.s.
 * $Id$
 *
 *
 */


function d(ref)
{
        alert(ref);
        return ref;
}


function noop()
{
        return;
}

/**
 *   Controller to manage playlist model
 */
function PlaylistController()
{
}


function o2s(o)
{
        var s = '';
        for(var i in o) try{s += i + ':' + o[i] + '; ';}catch(e){}
        return s;
}

/**
 *   Initializator method of PlaylistController aka constructor
 *
 * @param DOMDocument model
 * @param DOMElement  viewElement
 * @return PlaylistController
 */
PlaylistController.prototype.PlaylistControllerInitializer = function PlaylistControllerInitializer(playlistModel, viewElement)
{
        this.model = playlistModel;
        while(viewElement.firstChild) viewElement.removeChild(viewElement.firstChild);
        this.view = viewElement.appendChild(this.playlistView()).firstChild;
        return this;
}


/**
 * @return DOMElement element
 */
PlaylistController.prototype.playlistViewEnd = function playlistViewEnd(view)
{
        return view;
}

PlaylistController.prototype.songs = function songs()
{
        return this.model.getElementsByTagName('s');
}

PlaylistController.prototype.setViewId = function setViewId(songView)
{
        songView.setAttribute('id', PlaylistController.prototype.viewId);
        return PlaylistController.prototype.viewId++;
}

/**
 * @return DOMElement element
 */
PlaylistController.prototype.playlistView = function playlistView()
{
        var view = this.playlistViewElement();
        with(this.songs()) for(var i = 0; i < length; i++)
                item(i).setAttribute('viewId', this.setViewId(view.firstChild.appendChild(this.songView(item(i)))));
        this.playlistViewEnd(view.firstChild);
        return view;
}


/**
 *
 */
function PlaylistController_drop(event)
{
}
PlaylistController.prototype.drop = PlaylistController_drop;


/**
 *
 */
PlaylistController.prototype.drag = function drag(songView)
{
        PlaylistController.prototype.drop = function(target)
        {
                target.recieve(songView);
                PlaylistController.prototype.drop = PlaylistController_drop;
        }
}

PlaylistController.prototype.viewId = 1;
