/*
    Class: MEMOZ.mypage
*/
MEMOZ.mypage = function(userId) {
	this.userId = userId
}
YAHOO.extend(MEMOZ.mypage, MEMOZ.base, {

    _className: "MEMOZ.mypage",

    allowAddMemoz: false,
    allowAddGroup: false,
    
    /* 
    	Vars: userData
    	userData 	 - Raw userdata
    	id			 - user id
    	name 		 - full name
    	avatar 		 - avatar image url
    	about		 - about text
    	groups 		 - <array> group memberships
    	own_memozes  - <array> own memozes
    	part_memozes - <array> memozes I participate in
    */
    userData: null,
    id: 0,
    avatar: '',
    about: '',
    groups: [],
    own_memozes: [],
    part_memozes: [],
    memozes: [],
    fabulazes: [],

    /*
    	Method: setAllowAddGroup
    	Parameters:
    		allowAddGroup - <bool>
    */
    setAllowAddGroup: function(allowAddGroup) {
        this.allowAddGroup = allowAddGroup;
    },
    
    /*
    	Method: setAllowAddMemoz
    	Parameters:
    		allowAddMemoz - <bool>
    */
    setAllowAddMemoz: function(allowAddMemoz) {
        this.allowAddMemoz = allowAddMemoz;
    },
    
    /*
    	Method: setUser
    	Parameters:
    		userData - object containing user information
    */
    setUser: function(userData) {
    	this.userData = userData;
    	this.id = userData.id;
    	this.name = userData.name;
    	this.avatar = userData.image;
    	this.about = userData.about;
    	this.groups = userData.memberships;
    	this.own_memozes = userData.own_memozes;
    	this.part_memozes = userData.part_memozes;
    	this.memozes = userData.own_memozes;
    	for (var i = 0; i < userData.part_memozes.length; i++)
    		this.memozes.push(userData.part_memozes[i]);
    },
    
    /*
    	Method: setFabulazes
    	Parameters:
    		myFabulazes - array containing fabulaz objects
    */
    setFabulazes: function(myFabulazes) {
    	this.fabulazes = myFabulazes;
    },
    
    onLoad: function() {

    	var me = this;

		this.dlgAddGroup = new MEMOZ.dialog(
			'dlgAddGroup', {ref: me, fn: 'groupAdded'}, { action: 'addGroup', groupId: 0 }, [
			{ type: 'text', id: 'Name', def: '', submitAs: 'groupName', focus: true }
		]);
    
		this.dlgAddMemoz = new MEMOZ.dialog(
			'dlgAddMemoz', {ref: me, fn: 'memozAdded'}, { action: 'addMemoz', groupId: 0 }, [
			{ type: 'text', id: 'Name', def: '', submitAs: 'memozName', focus: true }
		]);

		this.dlgAddFabulaz = new MEMOZ.dialog(
			'dlgAddFabulaz', {ref: me, fn: 'fabulazAdded'}, { action: 'addFabulaz', groupId: 0 }, [
            { type: 'text', id: 'Name', def: '', submitAs: 'fabulazName', focus: true }
		]);

		this.dlgAddMedia = new MEMOZ.dialog(
                        'dlgAddMedia', {ref: me, fn: 'fabulazAdded'}, { action: 'addMedia', groupId: 0 }, [
            { type: 'file', id: 'Image', def: '', submitAs: 'avatar', focus: true }
                ]);

		this.dlgChangeAvatar = new MEMOZ.dialog(
			'dlgChangeAvatar', {ref: me, fn: 'avatarChanged'}, { action: 'changeAvatar' }, [
			{ type: 'file', id: 'Image', def: '', submitAs: 'avatar', focus: true }
		]);
 
		if (this.allowAddMemoz) {
            this.btnAddMemoz = new YAHOO.widget.Button('btnAddMemoz', {
                onclick: { fn: function() { me.dlgAddMemoz.show(); }}
            });
            this.btnAddFabulaz = new YAHOO.widget.Button('btnAddFabulaz', {
                onclick: { fn: function() { me.dlgAddFabulaz.show(); }}
            });
	    	this.btnAddMedia = new YAHOO.widget.Button('btnAddMedia', {
                onclick: { fn: function() { me.dlgAddMedia.show(); }}
            }); 
        }
        
    },
    
    run: function() {
    	var me = this;
    	
		onWindowLoad.subscribe(this.onLoad, this, true);

		YAHOO.util.Event.on('changeAvatarLink','click',function() { me.dlgChangeAvatar.show(); });
		
		// Initialize buttons

		this.btnFindGroups = new YAHOO.widget.Button('btnFindGroups', {
			onclick: { fn: function() { window.location="./?action=listgroups" }}
		});

		this.btnFindMemozes = new YAHOO.widget.Button('btnFindMemozes', {
			onclick: { fn: function() { window.location="./?action=listmemozes" }}
		});

		this.btnFindMemozes = new YAHOO.widget.Button('btnFindFabulazes', {
			onclick: { fn: function() { window.location="./?action=listfabulazes" }}
		});

		if (this.allowAddGroup) {
            this.btnAddGroup = new YAHOO.widget.Button('btnAddGroup', {
                onclick: { fn: function() { me.dlgAddGroup.show(); }}
            });
        } else {
        	YAHOO.util.Dom.setStyle('btnAddGroup','display','none');
        }

		if (this.allowAddMemoz) {
            
        } else {
        	YAHOO.util.Dom.setStyle('btnAddMemoz','display','none');
        	YAHOO.util.Dom.setStyle('btnAddFabulaz','display','none');
        	YAHOO.util.Dom.setStyle('btnAddMedia','display','none');
        }
        
        // Fill lists
        
        var listEl = $('grouplistUl');
    	var liEl;
    	for (var i = 0; i < this.groups.length; i++) {
    		liEl = document.createElement('li');
    		liEl.innerHTML = "<a href='./?action=group&amp;id="+this.groups[i].id+"'>"+this.groups[i].name+"</a>";
    		listEl.appendChild(liEl);
    	}
    	
    	listEl = $('memozlistUl');
    	for (var i = 0; i < this.memozes.length; i++) {
    		liEl = document.createElement('li');
    		if (this.memozes[i].name == '') this.memozes[i].name = 'noname';
    		liEl.innerHTML = "<a href='./?memoz="+this.memozes[i].id+"'>"+this.memozes[i].name+"</a>";
    		listEl.appendChild(liEl);
    	} 
		
        listEl = $('fabulazlistUl');
        for (var i = 0; i < this.fabulazes.length; i++) {
			liEl = document.createElement('li');
			if (this.fabulazes[i].topic == '') this.fabulazes[i].topic = 'noname';
			liEl.innerHTML = "<a href='./?memozvideo="+this.fabulazes[i].id+"'>"+this.fabulazes[i].topic+"</a>";
			listEl.appendChild(liEl);
        }


    },
    
    addToList: function(listId, theUrl, theText) {
 		var listItem = document.createElement('li');
 		var linkItem = document.createElement('a');
 		linkItem.href = theUrl;
 		linkItem.appendChild(document.createTextNode(theText));
 		listItem.appendChild(linkItem);
		YAHOO.util.Dom.setStyle(listItem, 'background','#ffff00');	
		YAHOO.util.Dom.setStyle(listItem, 'font-weight','bold');	
 		$(listId).appendChild(listItem);
		(new YAHOO.util.ColorAnim(listItem, {
			backgroundColor: { to: '#eeeeee' } 
		}, 3, YAHOO.util.Easing.easeIn)).animate(); 
    },

    groupAdded: function(json) {    
    	if (json.error == 0) {
    		this.addToList('grouplistUl', './?action=group&id='+json.id, json.name);
		}
    },
    
    memozAdded: function(json) {
    	if (json.error == 0) {
    		this.addToList('memozlistUl', './?memoz='+json.id, json.name);
		}
    },

    fabulazAdded: function(json) {
    	if (json.error == 0) {
    		this.addToList('fabulazlistUl', './?memozvideo='+json.id, json.name);
		}
    },

    avatarChanged: function(json) {
    	if (json.error == 0) {	
    		MEMOZ.log('Avatar changed');
    		$('avatarImage').src = json.resource.link;
    	} else {
    	
    	}
    	console.log(json);
    }

});
