/**
 * @author Charaf
 */
var context_timer=null;
Vetstoria.contextualmenu = new(new Class({
    __construct: function () {

        this.buttons = [];
        this.messages = [];
        this.notifications = [];

        this.team = '';
        this.user = '';
        this.user_details = '';
        this.request_id = 0;
        this.direct_request = false;
    },
    /**
	 * Contextual menu initialization
	 */
    init: function () {
        this.display();
        setInterval(prettyDatesUpdate, 10000);

        $('div#contextualmenu ul li.nosub').click(function(){
            $('div#contextualmenu ul li').removeClass("menu_selected");
            $(this).addClass("menu_selected");
        });
		
        $.address.externalChange(function(event){
            Vetstoria.contextualmenu.route_request();
        });
    },
    
    route_request: function(){

        var base = 0;
        var target = 0;
        var target_code = "";
        var requrl = String(window.location);
        requrl = requrl.replace(/\#/g,"");
        var params = requrl.split('/');
        var paramcount = params.length;
        Vetstoria.contextualmenu.direct_request = false;
		
        for (i=0; i < params.length; i++) {
            if (params[i] == 'clinic' || params[i] == 'petowner' || params[i] == 'pet') {
                base=i+1;
                break;
            }
        }

        if(paramcount > base){
            target_code = params[base+1];
        }

        this.request_id = params[base];

        $('div#contextualmenu ul li').removeClass("menu_selected");

        if(params[base-1]=='clinic')
        {		
            switch (target_code)
            {
                case "dashboard":
                    if(!Vetstoria.session.is_set(true)) this.display_login();
                    else {
                        $('div#contextualmenu ul li.clinic_dashboard').addClass("menu_selected");
                        this.action_clinic_dashboard();
                    }
                    break;

                case "profile":
                    if(!Vetstoria.session.is_set(true)) this.display_login();
                    else {
                        $('div#contextualmenu ul li.clinic_user').addClass("menu_selected");
                        this.action_clinic_user();
                    }
                    break;

                case "lists":
                    if(!Vetstoria.session.is_set(true)) this.display_login();
                    else {
                        $('div#contextualmenu ul li.clinic_lists').addClass("menu_selected");	
                        this.action_clinics_cp();
                    }
                    break;

                case "view":
                    this.action_clinic_view(params[base]);
                    break;

                case "messagebox":
                    if(!Vetstoria.session.is_set(true)) this.display_login();
                    else {	
                        $('div#contextualmenu ul li.messages').addClass("menu_selected");	
                        var container = $('div.top-level-container').empty();
                        Vetstoria.messagebox.init();
                    }
                    break;

                default:
                    if(Vetstoria.session.user.type=='clinic' && Vetstoria.session.user.id==params[base]){
                        this.action_clinic_dashboard();
                        $('div#contextualmenu ul li.clinic_dashboard').addClass("menu_selected");
                    }
                    else{
                        if(params[base-2]!='register')
                            this.action_clinic_view(params[base]);
                    }
                    break;
            }
        }
        else if(params[base-1]=='petowner'){
			
            if(!Vetstoria.session.is_set(true)){
                this.display_login();
                return;
            }
			
            switch (target_code)
            {
                case "profile":
                    $('div#contextualmenu ul li.profile').addClass("menu_selected");
                    this.action_profile();
                    break;
                case "view":
                    this.action_view(params[base]);
                    break;
                case "pets":
                    $('div#contextualmenu ul li.pets').addClass("menu_selected");	
                    this.action_pets();
                    break;
                case "friends":
                    $('div#contextualmenu ul li.friends').addClass("menu_selected");
                    this.action_friends();
                    break;
                case "vets":
                    $('div#contextualmenu ul li.vets').addClass("menu_selected");	
                    this.action_vets();
                    return;
                case "messagebox":
                    var container = $('div.top-level-container').empty();
                    Vetstoria.messagebox.init();
                    return;
                case "edit":
                    Vetstoria.removeURLHash();
                    return;
                default:
                    if(Vetstoria.session.user.type=='petowner' && Vetstoria.session.user.id==params[base]){
                        $('div#contextualmenu ul li.profile').addClass("menu_selected");					
                        this.action_profile();
                    }
                    else{
                        this.action_view(params[base]);
                    }
                    break;
            }
        }
        else if(params[base-1]=='pet'){
            if(Vetstoria.pet)
                Vetstoria.pet.profile.route_request();
        }
    },

    display_login: function() {
		
        var container = $('div.top-level-container').empty().append('<div id="loginRequirePage" class="glass-pane require-login" />').find('div#loginRequirePage');
		
        $.ajax({
            url: 'clinic/login', 
            asyn: true , 
            context: this.destination, 
            success: function(data){
                container.html($(data).find('div#loginRequirePage'));
                if(Vetstoria.homepage)Vetstoria.homepage.init();
            }
        });
    },

    /**
	 * Display the contextual menu
	 * @author Charaf
	 */
    display: function () {
		
        var user = Vetstoria.session.get();

        if (user)
        {
            if (user.type == 'petowner') {
                //this.user_details = this.get_user_info();
                this.user_details = Vetstoria.usermenu.user;
                this.configure_content_petowner();
            }
            else if (user.type == 'clinic') {
                //this.user_details = this.get_user_info();
                this.user_details = Vetstoria.usermenu.user;
                this.configure_content_clinic();
            }
            this.configure_content_universal();
            context_timer = setInterval(this.update,125000);
        }
    },
    /**
	 * Configure clinic's action buttons to the menu
	 * @author Charaf
	 */
    configure_content_clinic: function () {

        if(!Vetstoria.session.is_set()) return false;
        if(!Vetstoria.session.get().type == 'clinic') return false;

        // Dashboard
        this.configure_button('Dashboard','clinic_dashboard',this.action_clinic_dashboard);

        // Clinic Profile
        this.configure_button('Practice','clinic_user',this.action_clinic_user);

        // Clients & Patients
        this.configure_button('Clients & Patients','clinic_lists',this.action_clinics_cp);

        // Team
        //this.configure_button('Team','clinic_team',this.action_clinic_team);
		
        // Notifications and messages
        this.configure_content_notifications_and_messages();
    },
    /**
	 * Configure petowner's action buttons to the menu
	 * @author Charaf
	 */
    configure_content_petowner: function () {

        if(!Vetstoria.session.is_set()) return false;
        if(!Vetstoria.session.get().type == 'clinic') return false;

        // Profile
        this.configure_button('My Profile','profile',this.action_profile);

        // Pets
        this.configure_button('My Pets','pets',this.action_pets);
		
        // Friends
        this.configure_button('My Friends','friends',this.action_friends)

        // Vets
        this.configure_button('My Vets','vets',this.action_vets)
		
        // Notifications and messages
        this.configure_content_notifications_and_messages();		
    },
    /**
	 * Configure universal's action buttons to the menu
	 * @author Damjee
	 */
    configure_content_notifications_and_messages: function () {

        if(!Vetstoria.session.is_set()) return false;

        //Notifiactions
        this.configure_button('Notifications','notifications',this.action_notifications);
		
        //Messages
        this.configure_button('Messages','messages',this.action_messages);
		
    },
    /**
	 * Configure universal's action buttons to the menu
	 * @author Damjee
	 */
    configure_content_universal: function() {		
		
    },
    /**
	 * Get the clinic team
	 * @author Charaf
	 */
    get_team: function (force) {

        // @todo : This should use Vetstoria.clinic.js
		
        if(!this.team || force) {
		
            this.team = [
            Vetstoria.json_command('clinic/data/team/types/get').data,
            Vetstoria.json_command('clinic/data/team/' + Vetstoria.session.get().id + '/get').data
            ];
		
        }
		
        return this.team;
    },
    get_friends: function() {
        //use vetstoria.petowner.js
        return Vetstoria.json_command('petowner/data/friends').data[0];
    },
    get_pets: function() {
        //use vetstoria.petowner.js
        return Vetstoria.json_command('petowner/data/pets').data;
    },
    get_last_private_messages: function() {
        //use vetstoria.private_messages.js
        return Vetstoria.json_command('messagebox/' + Vetstoria.session.get().type + '/' + Vetstoria.session.get().id + '/get/inbox');
    },
    /**
	 * Get notifications
	 * @author Charaf
	 */
    get_notifications: function () {
        //use vetstoria.notifications.js
        return Vetstoria.notifications.get();
    },
    /**
	 * @author Charaf
	 */
    get_user_info: function() {
        if(Vetstoria.session.get().type == 'clinic') {
            if(!this.user) {
                this.user = Vetstoria.json_command('clinic/data/informations/' + Vetstoria.session.get().id + '/get').data[0];
            }
            return this.user;
        }
        if(Vetstoria.session.get().type == 'petowner') {
            if(!this.user) {
                this.user = Vetstoria.json_command('petowner/data/get').data[0];
            }
            return this.user;
        }
        return false;
    },
    /**
	 * @author Charaf
	 */
    get_subuser_info: function () {
        if(Vetstoria.session.get().type == 'clinic') {
			
            if(!Vetstoria.session.subsession_is_set()) return false;
			
            var team = this.get_team();
            var user = Vetstoria.session.get_subuser();
            var cur = false;
			
            for(var i=0;i<team[1].length;++i) {
                cur = team[1][i];
                if(cur.id == user.id) {
                    return cur;
                }
            }
        }
        return false;
    },
    /**
	 * @author Charaf
	 */
    configure_button: function (name, classname, action, image) {

        if (action && typeof action != "function") action = false;

        var button = $('div#contextualmenu ul li.'+ classname);
		
        if(button){
            button.click(function(e){
                if(!Vetstoria.session.is_set(true)){
                    e.stopImmediatePropagation();
                    Vetstoria.redirect('');
                    return false;
                }
                Vetstoria.contextualmenu.direct_request = true;
            });
            if (action) button.click(action);
            var funcCall = eval("this.action_loadarea_" + classname);
            if(funcCall) funcCall(this,button);
            else button.addClass("nosub").removeClass("general");
        }

        this.buttons.push(button);
    },
    /**
	 * @author Charaf
	 */
    action_clinic_dashboard: function () {
        console.log('Vetstoria.contextualmenu : action_clinic_user launched');
        if(Vetstoria.contextualmenu.ajaxswitchpossibe('clinic',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'clinic/'+ Vetstoria.session.user.id + '/dashboard', 
                asyn: true , 
                context: this.destination, 
                success: function(data){
                    container.html($(data).find('div.top-level-container'));
                    Vetstoria.clinic.pagelayout="dashboard";
				
                    //We use settimeout to makesure the excanvas delay on IE does not affect the whole page
                    Vetstoria.feed.init();
                    setTimeout("Vetstoria.clinic.init_dashboard();",10);
				
                }
            });
            if(!Vetstoria.findKeywordInURLHash('dashboard')){
                Vetstoria.setNewURLHash('dashboard');
            }
        }
        else{
            if(Vetstoria.session.user.type=="clinic"){
                Vetstoria.redirect('clinic/'+ Vetstoria.session.user.id + '#/dashboard');
            }
            else{
                Vetstoria.redirect('clinic/'+ this.request_id + '#/view/home');			
            }
        }
    },
    /**
	 * @author Charaf
	 */
    action_clinic_user: function () {
        console.log('Vetstoria.contextualmenu : action_clinic_user launched');
        if(Vetstoria.contextualmenu.ajaxswitchpossibe('clinic',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'clinic/'+ Vetstoria.session.user.id + '/profile', 
                asyn: true , 
                context: this.destination, 
                success: function(data){
                    container.html($(data).find('div.top-level-container'));
                    Vetstoria.clinic.pagelayout="profile";
                    Vetstoria.clinic.init();
                }
            });
            if(!Vetstoria.findKeywordInURLHash('profile')){
                Vetstoria.setNewURLHash('profile/home');
            }
        }
        else{
            if(Vetstoria.session.user.type=="clinic"){
                Vetstoria.redirect('clinic/'+ Vetstoria.session.user.id + '#/profile/home');
            }
            else{
                Vetstoria.redirect('clinic/'+ this.request_id + '#/view/home');
            }
        }
    },
    /**
	 * @author Charaf
	 */
    action_clinic_view: function (request_id) {
        console.log('Vetstoria.contextualmenu : action_clinic_view launched');

        var container = $('div.top-level-container').empty();
        $.ajax({
            url: 'clinic/'+ request_id + '/view', 
            asyn: true , 
            context: this.destination, 
            success: function(data){
                container.html($(data).find('div.top-level-container'));
                Vetstoria.clinic.pagelayout="view";
                Vetstoria.clinic.init();
            }
        });
		
        if(!Vetstoria.findKeywordInURLHash('view')){
            Vetstoria.setNewURLHash('view/home');
        }
    },
    /**
	 * @author Charaf
	 */
    action_clinic_team: function () {
        console.log('Vetstoria.contextualmenu : action_clinic_team launched');
    },
    /**
	 * @author Charaf
	 */
    action_clinics_cp: function () {
        console.log('Vetstoria.contextualmenu : action_clinics_cp launched');
        if(Vetstoria.contextualmenu.ajaxswitchpossibe('clinic',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            Vetstoria.clinic.lists.init(container);
            if(!Vetstoria.findKeywordInURLHash('lists')){
                Vetstoria.setNewURLHash('lists');
            }
        }
        else{
            if(Vetstoria.session.user.type=="clinic"){
                Vetstoria.redirect('clinic/'+ Vetstoria.session.user.id + '#/lists');
            }
            else{
                Vetstoria.redirect('clinic/'+ this.request_id + '#/view/home');
            }
        }
    },
    /**
	 * @author Charaf
	 */
    action_notifications: function () {
        console.log('Vetstoria.contextualmenu : action_notifications launched');

    },
    /**
	 * @author Charaf
	 */
    action_messages: function () {
        console.log('Vetstoria.contextualmenu : action_messages launched');

    },
    /**
	 * @author Charaf
	 */
    action_profile: function () {
        console.log('Vetstoria.contextualmenu : action_profile launched');

        //Temporary fix until we use AJAX for '/edit'
        Vetstoria.assert_urlreload('profile');

        if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'petowner/'+ Vetstoria.session.user.id + '/profile', 
                asyn: true , 
                context: this.destination, 
                success: function(data){

                    if(!Vetstoria.findKeywordInURLHash('profile')){
                        Vetstoria.setNewURLHash('profile');
                    }
                    container.html($(data).find('div.top-level-container'));
                    Vetstoria.feed.init();
                    pagelayout="profile";
                    if($('div.tab-pane:first').offset()){
                        $('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
                    }
                }
            });
        }
        else{
            if(Vetstoria.contextualmenu.direct_request || Vetstoria.session.user.type=="petowner" && Vetstoria.session.user.id==this.request_id){
                Vetstoria.redirect('petowner/'+ Vetstoria.session.user.id + '#/profile');
            }
            else{
                Vetstoria.redirect('petowner/'+ this.request_id + '#/view');
            }
        }
    },
    /**
	 * @author Charaf
	 */
    action_view: function (requestid) {

        //if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
        var container = $('div.top-level-container').empty();
        $.ajax({
            url: 'petowner/'+ requestid + '/view', 
            asyn: true , 
            context: this.destination, 
            success: function(data){
			
                if(!Vetstoria.findKeywordInURLHash('view')){
                    Vetstoria.setNewURLHash('view');
                }
                container.html($(data).find('div.top-level-container'));
                pagelayout="view";
                if($('div.tab-pane:first').offset()){
                    $('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
                }
		    
            }
        });
    //}
    //else{
    //	Vetstoria.redirect('petowner/'+ requestid + '#/view');
    //}
    },
    /**
	 * @author Charaf
	 */
    action_pets: function () {
        console.log('Vetstoria.contextualmenu : action_pets launched');

        //Temporary fix until we use AJAX for '/edit'
        Vetstoria.assert_urlreload('pets');

        if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'petowner/'+ Vetstoria.session.user.id + '/pets', 
                asyn: true , 
                context: this.destination, 
                success: function(data){

                    if(!Vetstoria.findKeywordInURLHash('pets')){
                        Vetstoria.setNewURLHash('pets');
                    }
                    container.html($(data).find('div.top-level-container'));
                    pagelayout="pets";
                    if($('div.tab-pane:first').offset()){
                        $('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
                    }	
                }
            });
        }
        else{
            if(Vetstoria.contextualmenu.direct_request || Vetstoria.session.user.type=="petowner" && Vetstoria.session.user.id==this.request_id){
                Vetstoria.redirect('petowner/'+ Vetstoria.session.user.id + '#/pets');
            }
            else{
                Vetstoria.redirect('petowner/'+ this.request_id + '#/view');
            }
        }
    },
    /**
	 * @author Damjee
	 */
    action_friends: function () {
        console.log('Vetstoria.contextualmenu : action_friends launched');

        //Temporary fix until we use AJAX for '/edit'
        Vetstoria.assert_urlreload('friends');

        if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'petowner/'+ Vetstoria.session.user.id + '/friends', 
                asyn: true , 
                context: this.destination, 
                success: function(data){

                    if(!Vetstoria.findKeywordInURLHash('friends')){
                        Vetstoria.setNewURLHash('friends');
                    }			
                    container.html($(data).find('div.top-level-container'));
                    pagelayout="friends";
                    if($('div.tab-pane:first').offset()){
                        $('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
                    }
                }
            });
        }
        else{
            if(Vetstoria.contextualmenu.direct_request || Vetstoria.session.user.type=="petowner" && Vetstoria.session.user.id==this.request_id){
                Vetstoria.redirect('petowner/'+ Vetstoria.session.user.id + '#/friends');
            }
            else{
                Vetstoria.redirect('petowner/'+ this.request_id + '#/view');
            }			
        }
    },
    /**
	 * @author Damjee
	 */
    action_vets: function () {
        console.log('Vetstoria.contextualmenu : action_vets launched');

        //Temporary fix until we use AJAX for '/edit'
        Vetstoria.assert_urlreload('vets');

        if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
            var container = $('div.top-level-container').empty();
            $.ajax({
                url: 'petowner/'+ Vetstoria.session.user.id + '/vets', 
                asyn: true , 
                context: this.destination, 
                success: function(data){
				
                    if(!Vetstoria.findKeywordInURLHash('vets')){
                        Vetstoria.setNewURLHash('vets');
                    }			
                    container.html($(data).find('div.top-level-container'));
                    pagelayout="vets";
                    Vetstoria.my_clinics.init();
                    if($('div.tab-pane:first').offset()){
                        $('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
                    }
                }
            });
        //var container = $('div.top-level-container').empty();
			
        /*$.ajax({ url: "frontend/html/_two_col_template.html", asyn: true , context: container, success: function(data){
				container.html(data);
				if($('div.tab-pane:first').offset()){
					$('div.tab-pane').css("min-height",document.documentElement.clientHeight-($('div.tab-pane:first').offset().top+100));
				}
				pagelayout="vets";
				Vetstoria.my_clinics.init();
			}});
            */
                    
        }
        else{
            if(Vetstoria.contextualmenu.direct_request || Vetstoria.session.user.type=="petowner" && Vetstoria.session.user.id==this.request_id){
                Vetstoria.redirect('petowner/'+ Vetstoria.session.user.id + '#/vets');
            }
            else{
                Vetstoria.redirect('petowner/'+ this.request_id + '#/view');
            }			
        }
    },
    /**
	 * @author Charaf
	 */
    action_login: function () {
        $.msgbox("<p >In order to login  you must provide the following (Or <a href='./home/forgot'>click here</a> if you have forgotton your password):</p>", {
            formaction: 'test',
            type: "prompt",
            inputs: [{
                type: "text",
                label: "Insert your Email address:",
                value: "",
                required: true
            },
            {
                type: "password",
                label: "Insert your Password:",
                required: true
            }],
            buttons: [{
                type: "submit",
                value: "OK"
            },
            {
                type: "cancel",
                value: "Exit"
            }]
        }, function (login_email, login_password) {

            var result = Vetstoria.session.login(login_email, login_password, true);

            if (login_email === undefined || login_email === "" || login_password === undefined || login_password === "") {
                console.log('Vetstoria.homepage.login: an information is missing !')
                return false;
            }

            if (result == false) {

                $.msgbox("An error occured with this login attempt. Do you want to try again?", {
                    type: "confirm",
                    buttons: [{
                        type: "submit",
                        value: "yes"
                    },
                    {
                        type: "submit",
                        value: "no"
                    }]
                }, function (result) {
                    if (result == 'yes') Vetstoria.contextualmenu.action_login();
                });

                return false;
            }

            var user = Vetstoria.session.get();

            var timeout = 5;

            $.msgbox("Login successful for <strong>" + login_email + "</strong>. Redirecting to your <strong>" + user.type + "</strong> profile in " + timeout + " seconds.", {
                type: "info"
            });

            if (user.type == 'clinic') setTimeout(function () {
                Vetstoria.redirect('clinic');
            }, timeout * 1000);
            if (user.type == 'petowner') setTimeout(function () {
                Vetstoria.redirect('petowner');
            }, timeout * 1000);

            return true;

        });
    },
    /**
	 * @author Charaf
	 */
    action_logout: function () {
        $.msgbox("You are about to logout... Are you sure ?", {
            type: "confirm",
            buttons: [{
                type: "submit",
                value: "Yes"
            },
            {
                type: "submit",
                value: "No !"
            }]
        }, function (result) {
            if (result == "Yes") {
                var json_data = Vetstoria.session.logout();
                if (json_data.state === "0") {
                    Vetstoria.redirect('home');
                }
            }
        });
    },
    /*
	* @author Damjee
	*/
    action_loadarea_friends: function(prt, destination){
		
        //Depricated
        return 0;
		
        var count=0;
        var types = [];
        var friends = prt.get_friends();
		
        var container = $('<div />').addClass('container');
        var submenu = $('<ul />').append($('<li />').append(container));
        container.append($('<div />')
            .append($('<a id="friend_add"/>').text('Add New Friend').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top'));

        container.find('a#friend_add').click(function(){
            Vetstoria.redirect('community/list');
        });

        if(friends!=null){
            for ( var i=0;i<friends.length;++i )
            {
                container.append($('<div id="'+ count +'"/>').addClass('cm_content').attr('rel','petowner/'+ friends[i].id)
                    .append($('<div />').append('<img src="'+ friends[i].image +'" height="30px" width="30px" />').addClass('cm_imgbox'))
                    .append($('<span class="message_head"/>').append(friends[i].firstname + ' ' + friends[i].lastname + ' (' + friends[i].username + ')').addClass('name'))
                    .append('<br />')
                    .append($('<span />').append((friends[i].country=="" || friends[i].country==null)?'Unspecified Country':friends[i].country).addClass('content')));

                ++count;
                if(count==5) break;
            }
            //if(count< notifications.length){
            if(true){
                container.append($('<div class="all_messages"/>')
                    .append($('<a />').text('See All Friends').addClass('cm_link'))
                    .append($('<br />'))
                    .append($('<span />').text(friends.length + ' Friends').addClass('messagecount')).addClass('cm_bottom'));

                $(container).find('div.all_messages').click(function(){
                    Vetstoria.redirect("petowner/" + Vetstoria.contextualmenu.user_details.username + "/friends");
                });
            }
        }
        else{
            container.append($('<div />')
                .append($('<a />').text('No Friends Available!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Friends').addClass('messagecount')).addClass('cm_bottom'));
        }
        var prt = this;
        $(container).find('div.cm_content').click(function(){
            Vetstoria.redirect($(this).attr('rel'));
        });

        destination.append(submenu);
    },
    /*
	* @author Damjee
	*/
    action_loadarea_pets: function(prt, destination){

        //Depricated
        return 0;

        var count=0;
        var types = [];
        var pets = prt.get_pets();
		
        var container = $('<div />').addClass('container');
        var submenu = $('<ul />').append($('<li />').append(container));
        container.append($('<div />')
            .append($('<a id="pets_add"/>').text('Add New Pet').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top'));

        container.find('a#pets_add').click(function(){
            Vetstoria.redirect("pet/add");
        });

        if(pets!=null){
            for ( var i=0;i<pets.length;++i )
            {
                container.append($('<div id="'+ count +'"/>').addClass('cm_content').attr('rel','pet/'+ pets[i].id)
                    .append($('<div />').append('<img src="'+ pets[i].image +'" height="30px" width="30px" />').addClass('cm_imgbox'))
                    .append($('<span class="message_head"/>').append(pets[i].name).addClass('name'))
                    .append('<br />')
                    .append($('<span />').append(pets[i].species + ' (' + pets[i].sex + ')').addClass('content')));

                ++count;
                if(count==5) break;
            }

            if(true){
                container.append($('<div class="all_messages"/>')
                    .append($('<a />').text('See All Pets').addClass('cm_link'))
                    .append($('<br />'))
                    .append($('<span />').text(pets.length + ' Pets').addClass('messagecount')).addClass('cm_bottom'));

                $(container).find('div.all_messages').click(function(){
                    Vetstoria.redirect("petowner/" + Vetstoria.contextualmenu.user_details.id + "/pets");
                });
            }
        }
        else{
            container.append($('<div />')
                .append($('<a />').text('No Pets Available!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Pets').addClass('messagecount')).addClass('cm_bottom'));
        }
        var prt = this;
        $(container).find('div.cm_content').click(function(){
            Vetstoria.redirect($(this).attr('rel'));
        });

        destination.append(submenu);
    },
    /*
	* @author Damjee
	* Depricated - not in use anymore
	*/
    action_loadarea_clinic_team: function(prt, destination){
        var count=0;
        var types = [];
        var clinicteam = prt.get_team();
        var members = clinicteam[1];
		
        for(var i=0;i<clinicteam[0].length;++i){
            types[clinicteam[0][i].id]=clinicteam[0][i].name;
        }

        var container = $('<div />').addClass('container');
        var submenu = $('<ul />').append($('<li />').append(container));
        container.append($('<div />')
            .append($('<a id="member_add"/>').text('Add New Member').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top'));

        container.find('a#member_add').click(function(){
            //Vetstoria.clinic.team.add_team_member_form();
            Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "/team/new");
        });

        if(members!=null){
            for ( var i=0;i<members.length;++i )
            {
                container.append($('<div id="'+ count +'"/>').addClass('cm_content').attr('rel',types[members[i].type_id]+'/'+members[i].id)
                    .append($('<div />').append('<img src="'+ members[i].profile_picture +'" height="30px" width="30px" />').addClass('cm_imgbox'))
                    .append($('<span class="message_head"/>').append(members[i].forename + " " +  members[i].surname).addClass('name'))
                    .append('<br />')
                    .append($('<span />').append(types[members[i].type_id]).addClass('content')));

                ++count;
                if(count==5) break;
            }
            //if(count< notifications.length){
            if(true){
                container.append($('<div class="all_messages"/>')
                    .append($('<a />').text('See All Members').addClass('cm_link'))
                    .append($('<br />'))
                    .append($('<span />').text(members.length + ' Members').addClass('messagecount')).addClass('cm_bottom'));

                $(container).find('div.all_messages').click(function(){
                    Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "/team");
                });
            }
        }
        else{
            container.append($('<div />')
                .append($('<a />').text('No Team Members Available!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Members').addClass('messagecount')).addClass('cm_bottom'));
        }
        var prt = this;
        $(container).find('div.cm_content').click(function(){
            Vetstoria.redirect($(this).attr('rel'));
        });

        destination.append(submenu);
    },
    /*
	* @author Damjee
	*/
    action_loadarea_notifications: function(prt, destination, refresh){
        var count=0;
        var unreadcount=0;
        var now = new Date();
        var notifications = prt.get_notifications();
        this.notifications = notifications;

        var container = $('<div />').addClass('container');
        var submenu = $('<ul />').append($('<li />').append(container));
        container.append($('<div />')
            .append($('<span />').html('Updated&nbsp;').addClass('cm_lastupdated'))
            .append($('<em />').attr("rel", now.format("isoDateTime")).addClass('timestamp cm_lastupdated').text(prettyDate(now.format("isoDateTime"))))
            .append('<div class="end-float" />')
            .append($('<a id="notifications_read" style="float:left;margin-right:5px;" />').text('Mark all as read').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top')
            .append($('<span style="float:left; margin-right:5px" />').text(' | ').addClass("cm_text"))
            .append($('<a id="notifications_unread" style="float:left" />').text('Mark all as unread').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top')
            .append('<div class="end-float" />')
            );



        container.find('a#notifications_read').click(function(){
            Vetstoria.notifications.markAllNotificationsAsRead();
            container.find('div.feed-notification > a > img').attr('src','frontend/img/read_star.png');
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
        });
        container.find('a#notifications_unread').click(function(){
            Vetstoria.notifications.markAllNotificationsAsUnread();
            $('li.notifications div.cm_superscript').show();
            container.find('div.feed-notification > a > img').attr('src','frontend/img/unread_star.png');
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
        });

        var nbody = '';
        if(notifications!=null){
            for ( var i=0;i<notifications.length;++i )
            {
                if(count<5){
                    nbody = '';
                    if(notifications[i].type=='FR'){
                        nbody='<br />';
                        nbody+='<span class="respond_title">Respond Now? <a href="javascript:acceptFriendship('+notifications[i].meta_id+','+notifications[i].id+');" class="content" style="text-shadow:none;">Accept</a> / <a href="javascript: declineFriendship('+notifications[i].meta_id+','+notifications[i].id+');" class="content"  style="text-shadow:none;">Decline</a></span>';
                        nbody+='<br />';
                        nbody+='<span class="respond_title" style="font-size:9px !important;font-style:italic;">Accepting this will allow this person to see your full name.</span>';
                    }
                    if((notifications[i].type=='WC' || notifications[i].type=='WR') && notifications[i].metaname!=""){
                        nbody='<br />';
                        nbody+='<span class="respond_title">on the health diary of '+notifications[i].metaname+'</span>';
                    }
                    if((notifications[i].type=='NVWP' || notifications[i].type=='NVWC') && notifications[i].wallname!=""){
                        nbody='<br />';
                        nbody+='<span class="respond_title">on the wall of '+notifications[i].wallname+'</span>';
                    }
                    container.append($('<div class="feed-notification" id="feed'+count+'"  />').append($('<a href="javascript:void(0)" title="Mark as read" />').append('<img src="frontend/img/unread_star.png" />')).append($('<div id="'+ count +'" rel="'+notifications[i].id+'"/>').addClass('cm_content')
                        .append($('<span class="message_head"/>').append(notifications[i].content).addClass('name'))
                        .append(nbody)
                        .append('<br />')
                        .append($('<span />').append($('<em />').attr("rel", notifications[i].date).addClass('timestamp').text(prettyDate(notifications[i].date))).addClass('datetime'))));
                    if(notifications[i].read!=0){
                        $(container).find('div#feed'+count+' > a > img').attr('src','frontend/img/read_star.png'); 
                        $(container).find('div#feed'+count+' > a').attr('title','Mark as unread');
                    }

                    
                }

                ++count;
                if(notifications[i].read==0) ++unreadcount;
            }

            if(true){
                container.append($('<div class="all_notifications"/>')
                    .append($('<a />').text('See All Notifications').addClass('cm_link').click(function(){
                        Vetstoria.contextualmenu.seeAllNotifications(prt);
                    }))
                    .append($('<br />'))
                    .append($('<span />').text(notifications.length + ' Notifications').addClass('messagecount')).addClass('cm_bottom'));

                $(container).find('div.all_notifications').click(function(){

                    });
            }
        }
        else{
            container.append($('<div />')
                .append($('<a />').text('No Notifications Available!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Notifications').addClass('messagecount')).addClass('cm_bottom'));
        }
        var prt = this;
		
        $(container).find('div.cm_content').click(function(){
            var nid = $(this).attr('id');
            if(prt.notifications[nid].read==0){
                $(this).parent().find(' a > img').attr('src','frontend/img/read_star.png');  
                prt.notifications[nid].read=1;
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())-1);
                if(parseInt($('li.notifications  div.cm_superscript').html())==0) $('li.notifications div.cm_superscript').hide();
                Vetstoria.notifications.markSingleNotificationsAsRead(prt.notifications[nid].id);
            }
            
            if(prt.notifications[nid].type=='PM'){
                if(Vetstoria.session.user.type=='petowner'){
                    Vetstoria.redirect("petowner/" + Vetstoria.contextualmenu.user_details.id + "#/messagebox/view/" + prt.notifications[nid].meta_id);
                }
                else if(Vetstoria.session.user.type=='clinic'){
                    Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/view/" + prt.notifications[nid].meta_id);
                }
            }
            else if(prt.notifications[nid].type=='VR' || prt.notifications[nid].type=='FTR' || prt.notifications[nid].type=='WTR'){
                Vetstoria.redirect("pet/" + prt.notifications[nid].meta_id + "#/preventive");
            }
            else if(prt.notifications[nid].type=='WC' || prt.notifications[nid].type=='WR'){
                Vetstoria.redirect("pet/" + prt.notifications[nid].meta_id + "#/diary");
            }
            else if(prt.notifications[nid].type=='NVWP' || prt.notifications[nid].type=='NVWC'){
                var walltype = (prt.notifications[nid].walltype==1)?'veterinarian':(prt.notifications[nid].walltype==2)?'nurse':'support';
                Vetstoria.redirect(walltype + "/" + prt.notifications[nid].meta_id + "#/view");
            }
            else if(prt.notifications[nid].type=='NCR'){
                Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/lists/requests");
            }
        });
        $(container).find('div.feed-notification > a').click(function(){
            var nid = $(this).parent().find('div.cm_content').attr('id');
            if($(this).find('img').attr('src')=='frontend/img/unread_star.png'){
                $(this).attr('title','Mark as unread');
                prt.notifications[nid].read=1;
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())-1);
                if(parseInt($('li.notifications  div.cm_superscript').html())==0) $('li.notifications div.cm_superscript').hide();
                $(this).find('img').attr('src','frontend/img/read_star.png');
                Vetstoria.notifications.markSingleNotificationsAsRead(prt.notifications[nid].id);
            } 
            else{
                prt.notifications[nid].read=0;
                $('li.notifications div.cm_superscript').show();
                $(this).attr('title','Mark as read');
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())+1);
                $(this).find('img').attr('src','frontend/img/unread_star.png');
                Vetstoria.notifications.markSingleNotificationsAsUnread(prt.notifications[nid].id);
            }
        });
        if(refresh) destination.html('<div class="submenutitle" style="float: left;"><img src="frontend/img/notification-icon.png" style="padding-right:3px"/></div>');
        destination.append('<div style="font-size: 8px ! important; margin-left:-7px;" class="cm_superscript">'+ unreadcount +'</div>');
        if(unreadcount)
            {
            destination.find('div.cm_superscript').show();
            }
            else
                {
                    
                    $(container).find('.cm_top .cm_link').hide();
                    $(container).find('.cm_top .cm_text').hide();
                }
        destination.append(submenu);
    },
    /*
	* @author Damjee
	*/
    action_loadarea_messages: function(prt,destination,refresh){
        var count=0;
        var unreadcount=0;
        var now = new Date();
        var messages = prt.get_last_private_messages();
        if(messages.state!=0) return;

        this.messages = messages.data;
        var container = $('<div />').addClass('container');
        var submenu = $('<ul />').append($('<li />').append(container));
		
        container.append($('<div />')
            .append($('<span />').html('Updated&nbsp;').addClass('cm_lastupdated'))
            .append($('<em />').attr("rel", now.format("isoDateTime")).addClass('timestamp cm_lastupdated').text(prettyDate(now.format("isoDateTime"))))
            .append($('<a id="send_new_message"/>').text('Send a New Message').addClass('cm_link').attr('href','javascript:void(0);')).addClass('cm_top'));

        if(messages.data!="null" && messages.data!==null){
            for ( var i=0;i<messages.data.length;++i )
            {
                if(count<5){
                    container.append($('<div class="feed-notification" id="notification'+count+'"  />').append($('<a href="javascript:void(0)" title="Mark as read" />').append('<img src="frontend/img/unread_star.png" />')).append($('<div id="'+count+'"/>').addClass('cm_content')
                        .append($('<span class="message_head"/>').append(messages.data[i].from_name).addClass('name'))
                        .append('<br />')
                        .append($('<span />').append(messages.data[i].title.substr(0,50) + " ").addClass('title'))
                        .append($('<span />').append(messages.data[i].content.substr(0,45-messages.data[i].title.length)).addClass('content'))
                        .append('<br />')
                        .append($('<span />').append($('<em />').attr("rel",messages.data[i].date).addClass('timestamp').text(prettyDate(messages.data[i].date))).addClass('datetime'))));

                    if(messages.data[i].read!=0){
                        $(container).find('div#notification'+count+' > a > img').attr('src','frontend/img/read_star.png'); 
                        $(container).find('div#notification'+count+' > a').attr('title','Mark as unread');
                    }
               
                    
                }
                ++count;
                if(messages.data[i].read==0) ++unreadcount;
            }

            if(true){
                container.append($('<div class="all_messages"/>')
                    .append($('<a />').text('See All Messages').addClass('cm_link'))
                    .append($('<br />'))
                    .append($('<span />').text(messages.data.length + ' Messages').addClass('messagecount')).addClass('cm_bottom'));
            }
        }
        else{
            container.append($('<div class="all_messages"/>')
                .append($('<a />').text('No messages in Inbox!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Messages').addClass('messagecount')).addClass('cm_bottom'));
        }

        $(container).find('div.all_messages').click(function(e){

            if(!Vetstoria.session.is_set(true)){
                e.stopImmediatePropagation();	
                Vetstoria.redirect('');
                return false;
            }

            Vetstoria.setNewURLHash('messagebox/inbox');					
            $('div#contextualmenu ul li').removeClass("menu_selected");
            $('div#contextualmenu ul li.messages').addClass("menu_selected");
            if(Vetstoria.session.user.type=='petowner'){
                if(Vetstoria.contextualmenu.ajaxswitchpossibe('petowner',Vetstoria.session.user.id)){
                    var container = $('div.top-level-container').empty();
                    Vetstoria.messagebox.init();
                }
                else {
                    Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/inbox");						
                }
            }
            else if(Vetstoria.session.user.type=='clinic'){
                if(Vetstoria.contextualmenu.ajaxswitchpossibe('clinic',Vetstoria.session.user.id)){
                    var container = $('div.top-level-container').empty();
                    Vetstoria.clinic.messagebox.init(container);
                }
                else {
                    Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/inbox");						
                }
            }
        });

        var prt = this;
        $(container).find('div.cm_content').click(function(){
            if(prt.messages[$(this).attr('id')].read==0){
                $(this).parent().find(' a > img').attr('src','frontend/img/read_star.png');  
                prt.messages[$(this).attr('id')].read=1;
                $('li.messages div.cm_superscript').html(parseInt($('li.messages  div.cm_superscript').html())-1);
                if(parseInt($('li.messages  div.cm_superscript').html())==0) $('li.messages div.cm_superscript').hide();
                Vetstoria.privatemessages.db_read(Vetstoria.session.user.type,Vetstoria.session.user.id,prt.messages[$(this).attr('id')].id);
            }
            //showMessageEx(prt.messages[$(this).attr('id')]);
            Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/view/" + prt.messages[$(this).attr('id')].id);
        });
        $(container).find('div.feed-notification > a').click(function(){
            if($(this).find('img').attr('src')=='frontend/img/read_star.png')
            {
                $(this).find('img').attr('src','frontend/img/unread_star.png');
                $(this).attr('title','Mark as read');
                $('li.messages div.cm_superscript').show();
                $('li.messages div.cm_superscript').html(parseInt($('li.messages  div.cm_superscript').html())+1);
                prt.messages[$(this).parent().find('div.cm_content').attr('id')].read=0;
                Vetstoria.privatemessages.db_unread(Vetstoria.session.user.type,Vetstoria.session.user.id,prt.messages[$(this).parent().find('div.cm_content').attr('id')].id);
            }
            else
            {
                $(this).find('img').attr('src','frontend/img/read_star.png');
                $(this).attr('title','Mark as unread');
                $('li.messages div.cm_superscript').html(parseInt($('li.messages  div.cm_superscript').html())-1);
                if(parseInt($('li.messages  div.cm_superscript').html())==0) $('li.messages div.cm_superscript').hide();
                prt.messages[$(this).parent().find('div.cm_content').attr('id')].read=1;
                Vetstoria.privatemessages.db_read(Vetstoria.session.user.type,Vetstoria.session.user.id,prt.messages[$(this).parent().find('div.cm_content').attr('id')].id);
            }
        /*  if(prt.messages[$(this).attr('id')].read==1){
                $(this).find('img').attr('src','frontend/img/unread_star.png');
                prt.messages[$(this).attr('id')].read=0;
                $('li.messages div.cm_superscript').html(parseInt($('li.messages  div.cm_superscript').html())-1);
                if(parseInt($('li.messages  div.cm_superscript').html())==0) $('li.messages div.cm_superscript').hide();
                Vetstoria.privatemessages.db_unread(Vetstoria.session.user.type,Vetstoria.session.user.id,prt.messages[$(this).attr('id')].id);
            } */
            
        //showMessageEx(prt.messages[$(this).attr('id')]);
        //Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/view/" + prt.messages[$(this).attr('id')].id);
        });

        $(container).find('a#send_new_message').click(function(){
            if(window.location.href==$BASE_PATH+Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/compose"){
                Vetstoria.messagebox.route_request();
            }
            else{
                Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/compose");
            }
        });

        //if(refresh) 
        destination.html('<div class="submenutitle" style="float: left;">Messages</div>');
        destination.append('<div class="cm_superscript" style="font-size:8px !important">'+ unreadcount +'</div>');
        if(unreadcount)
            destination.find('div.cm_superscript').show();
        destination.append(submenu);
    },

    seeAllNotifications: function(prt){
        var count=0;
        var unreadcount=0;
        var now = new Date();
        var notifications = prt.notifications;

        var container = $('<div />').addClass('container');
        container.append('<div class="header text_left"><h1>Notifications</h1></div>');
        container.append($('<div style="text-align:right !important;"/>')
            .append($('<a id="notifications_read"  href="javascript:void(0);"/>').text('Mark all as read').addClass('cm_link'))
            .append($('<span />').text(' | ').addClass("cm_text"))
            .append($('<a id="notifications_unread"  href="javascript:void(0);"/>').text('Mark all as unread').addClass('cm_link'))
            .append($('<span />').text(' | ').addClass("cm_text"))
            .append($('<a id="notifications_clear" href="javascript:void(0);"/>').text('Clear all').addClass('cm_link')).addClass('cm_top'));

        container.find('a#notifications_read').click(function(){
            Vetstoria.notifications.markAllNotificationsAsRead();
            container.find('div.feed-notification > a > img').attr('src','frontend/img/read_star.png');
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
        });
        container.find('a#notifications_unread').click(function(){
            Vetstoria.notifications.markAllNotificationsAsUnread();
            $('li.notifications div.cm_superscript').show();
            container.find('div.feed-notification > a > img').attr('src','frontend/img/unread_star.png');
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
        });

        container.find('a#notifications_clear').click(function(){
            Vetstoria.notifications.removeNotifications();
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
            $.facebox.close();
        });


        var cbody = $('<div id="notificationfb" style="height:350px;overflow-x: hidden; overflow-y: scroll;" />');

        var nbody = '';
        if(notifications!=null){
            for ( var i=0;i<notifications.length;++i )
            {
                nbody = '';
                if(notifications[i].type=='FR'){
                    nbody='<br />';
                    nbody+='<span class="respond_title">Respond Now? <a href="javascript:acceptFriendship('+notifications[i].meta_id+','+notifications[i].id+');" class="content" style="text-shadow:none;">Accept</a> / <a href="javascript: declineFriendship('+notifications[i].meta_id+','+notifications[i].id+');" class="content"  style="text-shadow:none;">Decline</a></span>';
                }
                if((notifications[i].type=='WC' || notifications[i].type=='WR') && notifications[i].metaname!=""){
                    nbody='<br />';
                    nbody+='<span class="respond_title">on the health diary of '+notifications[i].metaname+'</span>';
                }
                cbody.append($('<div class="feed-notification" id="facebox-feed'+count+'"  />').append($('<a href="javascript:void(0)" title="Mark as read" />').append('<img src="frontend/img/unread_star.png" />')).append($('<div id="'+ count +'" name="'+notifications[i].type+'" rel="'+notifications[i].id+'"/>').addClass('cm_content')
                    .append($('<span class="message_head"/>').append(notifications[i].content).addClass('name'))
                    .append(nbody)
                    .append('<br />')
                    .append($('<span />').append($('<em />').attr("rel", notifications[i].date).addClass('timestamp').text(prettyDate(notifications[i].date))).addClass('datetime'))));

                if(notifications[i].read!=0){
                    $(cbody).find('div#facebox-feed'+count+' > a > img').attr('src','frontend/img/read_star.png'); 
                    $(cbody).find('div#facebox-feed'+count+' > a').attr('title','Mark as unread');
                    
                }

                ++count;
                if(notifications[i].read==0) ++unreadcount;
            }
            if(unreadcount)
            {
                container.find('a#notifications_read').show();
                
            }
            else
            {
                container.find('a#notifications_unread').show();
            }
        }
        else{
            cbody.append($('<div />')
                .append($('<a />').text('No Notifications Available!').addClass('cm_link'))
                .append($('<br />'))
                .append($('<span />').text('0 Notifications').addClass('messagecount')).addClass('cm_bottom'));
        }
		
        container.append(cbody);

        $(container).find('div.cm_content').click(function(){
            
            var nid = $(this).attr('id');
            if(prt.notifications[nid].read==0){
                $(this).find('img').hide();
                $('li.notifications div#'+ nid +' img').hide();
                prt.notifications[nid].read=1;
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())-1);
                if(parseInt($('li.notifications  div.cm_superscript').html())==0) $('li.notifications div.cm_superscript').hide();
                Vetstoria.notifications.markSingleNotificationsAsRead(prt.notifications[nid].id);
            }
            if(prt.notifications[nid].type=='PM'){
                if(Vetstoria.session.user.type=='petowner'){
                    Vetstoria.redirect("petowner/" + Vetstoria.contextualmenu.user_details.id + "#/messagebox/view/" + prt.notifications[nid].meta_id);
                }
                else if(Vetstoria.session.user.type=='clinic'){
                    Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/messagebox/view/" + prt.notifications[nid].meta_id);
                }
            }
            else if(prt.notifications[nid].type=='VR' || prt.notifications[nid].type=='FTR' || prt.notifications[nid].type=='WTR'){
                Vetstoria.redirect("pet/" + prt.notifications[nid].meta_id + "#/preventive");
            }
            else if(prt.notifications[nid].type=='WC' || prt.notifications[nid].type=='WR'){
                Vetstoria.redirect("pet/" + prt.notifications[nid].meta_id + "#/diary");
            }
            else if(prt.notifications[nid].type=='NCR'){
                Vetstoria.redirect(Vetstoria.session.user.type + "/" + Vetstoria.session.user.id + "#/lists/requests");
            }
        });
        $(container).find('div.feed-notification > a').click(function(){
            var nid = $(this).parent().find('div.cm_content').attr('id');
            if($(this).find('img').attr('src')=='frontend/img/unread_star.png'){
                $(this).attr('title','Mark as unread');
                prt.notifications[nid].read=1;
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())-1);
                if(parseInt($('li.notifications  div.cm_superscript').html())==0) $('li.notifications div.cm_superscript').hide();
                $(this).find('img').attr('src','frontend/img/read_star.png');
                Vetstoria.notifications.markSingleNotificationsAsRead(prt.notifications[nid].id);
            } 
            else{
                prt.notifications[nid].read=0;
                $('li.notifications div.cm_superscript').show();
                $(this).attr('title','Mark as read');
                $('li.notifications div.cm_superscript').html(parseInt($('li.notifications  div.cm_superscript').html())+1);
                $(this).find('img').attr('src','frontend/img/unread_star.png');
                Vetstoria.notifications.markSingleNotificationsAsUnread(prt.notifications[nid].id);
            }
        });

        $.facebox(container);
    },

    controller: function(){
        var path = window.location.pathname;
        var params = path.split('/');
        var paramcount = params.length;
        var controllers = ["clinic","petowner","pet","search"];
        var ctlcount = controllers.length;

        for (i=0; i < paramcount; i++) {
            for(j=0; j < ctlcount; j++){
                if (params[i] == controllers[j]) {
                    return controllers[j];
                }
            }
        }
        return false;
    },

    profileid: function(){
        var path = window.location.pathname;
        var params = path.split('/');
        var paramcount = params.length;
        var controllers = ["clinic","petowner","pet","search"];
        var ctlcount = controllers.length;

        for (i=0; i < paramcount; i++) {
            for(j=0; j < ctlcount; j++){
                if (params[i] == controllers[j]) {
                    if(paramcount>=i) {
                        return params[i+1];
                    }
                    else {
                        return 0;
                    }
                }
            }
        }
        return 0;
    },
	
    ajaxswitchpossibe: function(ctl,id){
        var path = window.location.pathname;
        var params = path.split('/');
        var paramcount = params.length;

        for (i=0; i < paramcount; i++) {
            if (params[i] == ctl) {
                if(id==0) return true;
                else if(paramcount>=i && id==params[i+1]) return true;
            }
        }
        return false;
    },	
	
    update: function(){
        if(Vetstoria.session.user.id){
            Vetstoria.contextualmenu.action_loadarea_messages(Vetstoria.contextualmenu,$('ul#nav li.messages'),true);
            Vetstoria.contextualmenu.action_loadarea_notifications(Vetstoria.contextualmenu,$('ul#nav li.notifications'),true);
        }
    },

    inArray: function(needle, haystack) {
        var length = haystack.length;
        for(var i = 0; i < length; i++) {
            if(haystack[i] == needle) return true;
        }
        return false;
    }

})); 

