///Wadja Javascript framework
///Version 1.0, last build: 20072010

//#Public vars for global.js
var PreviewTimeout = ''; //#used by create/edit label-preview label name
//var RelatedTimeout;
var notificationsTimer = false;
var counterenter = 0;
var counterblur = 0;
var mySlide;
var mySlide2;
//var mySlide3;
var mySlide4;
var currentDropdown = ''; //0:all dropdowns close
var isfromSearchClear = false;

var txtnewlabel = '';


/*Functions for content editable caret position. By Bill*/
function getCursorPos() {
    var cursorPos;
    if (window.getSelection) {
        var selObj = window.getSelection();
        if (selObj= null && selObj != undefined) {
            var selRange = selObj.getRangeAt(0);
            cursorPos = findNode(selObj.anchorNode.parentNode.childNodes, selObj.anchorNode) + selObj.anchorOffset;
            /* FIXME the following works wrong in Opera when the document is longer than 32767 chars */
            //alert(cursorPos);
            $('applyTitleTextLink').set('onclick', 'quickComposeClass.applyTitleAllTheText(' + cursorPos + ');');
        }
    }
    else if (document.selection) {
        var range = document.selection.createRange();
        var bookmark = range.getBookmark();
        /* FIXME the following works wrong when the document is longer than 65535 chars */
        cursorPos = bookmark.charCodeAt(2) - 11; /* Undocumented function [3] */
        //alert(cursorPos);
        $('applyTitleTextLink').set('onclick', 'quickComposeClass.applyTitleAllTheText(' + cursorPos + ');');
    }
}

function findNode(list, node) {
    for (var i = 0; i < list.length; i++) {
        if (list[i] == node) {
            return i;
        }
    }
    return -1;
}

window.addEvent('domready', function () {
    ///#ON JS LOAD

    ///1.theming-opacity
    ///2.search-events
    ///3.footer mouse over

    ///#1.THEMING-OPACITY
    if ($('opacityForm')) {
        var themeWadjaX = new WADJAX('Themes', { statusBar: false });
        if (profileInfo.ownerProfileCardOpacity == undefined) {
            var opacity = 100;
        }
        else {
            var opacity = parseInt(profileInfo.ownerProfileCardOpacity);
        }
        var mySlider = new Slider($('bio_background_color_slider'), $('bio_background_slider'), {
            steps: 100,
            wheel: 1,
            onChange: function (step) {
                $('bio_background_input').set('html', step + '%');
                $('bio_background_slider_bar').set('style', 'width:' + step + '%;');

                if (navigator.userAgent.indexOf('MSIE') < 0) {
                    //                    if ($('dvStream'))
                    //                        $('dvStream').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('noFeeds'))
                    //                        $('noFeeds').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('aNewFeeds'))
                    //                        $('aNewFeeds').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    if ($('CardPageSignedOut'))
                        $('CardPageSignedOut').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('srch_feeds'))
                    //                        $('srch_feeds').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('srch_labels'))
                    //                        $('srch_labels').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('srch_users'))
                    //                        $('srch_users').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    //                    if ($('tpbbdoProfile'))
                    //                        $('tpbbdoProfile').set('style', 'width:671px;background:rgba(255, 255, 255, ' + step / 100 + ')');
                    if ($('usersProfile'))
                        $('usersProfile').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                    if (profileInfo.networkID != 295) {
                        $$('.opacityLeft').each(function (element, index) {
                            var idLbl = element.get('id');
                            if ($(idLbl))
                                $(idLbl).set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');
                        });
                    }
                    else {
                        $$('.opacityLeft').each(function (element, index) {
                            var idLbl = element.get('id');
                            if ($(idLbl))
                                $(idLbl).set('style', 'color:#fff;background:rgba(0, 0, 0, ' + step / 100 + ')');
                        });
                    }
                    if ($('dvFilters_search'))
                        $('dvFilters_search').set('style', 'background:rgba(255, 255, 255, ' + step / 100 + ')');

                    $$('.ShowmoreProfile').each(function (element, index) {
                        var idLbl = element.get('id');
                        if ($(idLbl))
                            $(idLbl).set('style', 'background:rgba(240, 241, 245, ' + step / 100 + ')');
                    });
                }
                else {
                    var stepIE = decimalToHex(parseInt(step * 255 / 100), 2);
                    if ($('CardPageSignedOut'))
                        $('CardPageSignedOut').set('style', 'background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + 'ffffff,endColorstr=#' + stepIE + 'ffffff)');
                    if ($('usersProfile'))
                        $('usersProfile').set('style', 'background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + 'ffffff,endColorstr=#' + stepIE + 'ffffff)');
                    if (profileInfo.networkID != 295) {
                        $$('.opacityLeft').each(function (element, index) {
                            var idLbl = element.get('id');
                            if ($(idLbl))
                                $(idLbl).set('style', 'background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + 'ffffff,endColorstr=#' + stepIE + 'ffffff)');
                        });
                    }
                    else {
                        $$('.opacityLeft').each(function (element, index) {
                            var idLbl = element.get('id');
                            if ($(idLbl))
                                $(idLbl).set('style', 'color:#fff;background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + '000000,endColorstr=#' + stepIE + '000000)');
                        });

                    }

                    if ($('dvFilters_search'))
                        $('dvFilters_search').set('style', 'background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + 'ffffff,endColorstr=#' + stepIE + 'ffffff)');

                    $$('.ShowmoreProfile').each(function (element, index) {
                        var idLbl = element.get('id');
                        if ($(idLbl))
                            $(idLbl).set('style', 'background:transparent; zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#' + stepIE + 'F0F1F5,endColorstr=#' + stepIE + 'F0F1F5)');
                    });

                }
                themeWadjaX.send('UpdateOpacity', step, function (res) {

                });
            }
        }).set(opacity);
    }
    ///#2.INITIATE SEARCH
    bootloader.load('/s3.scripts/classes/search.js', function () {
        /* Search activated...I guess. */
    });
    ///3.POPCORN-Cards navigation system
    /* Load new interest card */
    bootloader.load('/s3.scripts/classes/popcorn.js', function () {
        /* Initiate card navigation system-popcorn */
    });
    ///4.DROP DOWN Menus
    bootloader.load('/s3.scripts/classes/dropdownmenus.js', function () {
        /* Initiate drop down handler */
    });
    ///5.JHelper
    bootloader.load('/s3.scripts/classes/jhelper.js', function () {
        /* Initiate drop down handler */
    });
})
///Global vars

function reldClear() {
    $('relDHTMLHeader').addClass('dnd');
}
///FORMS -
///Description:Handle key-enter, enter to clear text
var FormValidators = {
    handleEnter: function (field, event, action) {
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
            ///link
            ///message
            ///call function
            return false;
        }
        else
            return true;
    }
}
///ALERT USER
var Notify = {
    /// Handle top notification bar
    topBarOn: function (Text, BarColor, Delay) {
        try {
            /// add color
            if (BarColor == 'red') {
                if ($('dvNotBar'))
                    $('dvNotBar').addClass('dvNotBarError');
                if (Delay > 0) {
                    (function () {
                        //new Fx.Reveal($('dvNotBar')).dissolve(); 
                        $('dvNotBar').setStyle('display', 'block');
                    }).delay(Delay * 1000);
                }
            }
            else {
                if ($('dvNotBar'))
                    $('dvNotBar').removeClass('dvNotBarError');
            }
            if ($('dvNotBar').hasClass('dndD'))
                $('dvNotBar').removeClass('dndD');
            $('dvNotBar').setStyle('display', 'block');
            /// Add text to display           

            /// Reveal effect
            //  effect:MyElement.reveal('dvNotBar');
            $('dvNotBarText').set('html', Text);
            //An anonymous function which waits x seconds and then fades out
            if (Delay > 0) {
                (function () {
                    //new Fx.Reveal($('dvNotBar')).dissolve(); 
                    $('dvNotBar').addClass("dndD");
                }).delay(Delay * 1000);
            }

            /// ---------------
        }
        catch (Error) {
            try {
                Notify.alert('Javascript error', 'Javascript error while using [Notify.topBarOn] #' + Error, 'Ok', 'red');
            }
            catch (ErrorAgain) {
                alert(ErrorAgain);
            }
        }
    },
    /// MARK -
    /// Hide top notification bar
    topBarOff: function (Text, Delay) {
        //new Fx.Reveal($('dvNotBar')).dissolve();
        $('dvNotBar').addClass("dndD");
    },
    remove: function (Element, Delay) {

        $(Element).setStyle('background-color', '#ecedf2')
        $(Element).tween('opacity', '0.3');

        MyElement.dissolve($(Element));
    },
    /// MARK -
    /// Replace traditional javascript alert message-ok
    alert: function (Title, Message, CancelButtonValue, StyleName) {

        var classTitle = 'faceboxTitleGray';
        var classBorder = 'faceboxGray';

        if (StyleName == 'red') {
            classTitle = 'faceboxTitleRed';
            classBorder = 'faceboxRed';
        }

        var alertBox = new Facebox({
            title: Title,
            message: Message,
            cancelValue: CancelButtonValue,
            classNameTitle: classTitle,
            classNameBorder: classBorder
        });
        alertBox.show();
    },
    /// MARK -
    /// Please wait loading bar
    spinnerOn: function (Text, TextOnDelay, Delay) {
        ///new Fx.Reveal($('dvLoad')).reveal();
        $('dvLoad').removeClass('dnd');
        /// set initial text
        $('spLoad').set('html', Text);
        ///
        $('dvLoad').addClass('loading');
        /// set delay text
        (function () { $('spLoad').set('html', TextOnDelay); }).delay(Delay * 1000);
    },
    /// MARK -
    ///	Hide Please wait loading bar
    spinnerOff: function (Text, Delay) {
        /// dissolve loading
        /// set good bye text
        $('spLoad').set('html', Text);
        ///
        $('dvLoad').removeClass('loading');
        /// hide loading bar-fade out effect
        ///(function () { new Fx.Reveal($('dvLoad')).dissolve(); }).delay(Delay * 1000);
        $('dvLoad').addClass('dnd');
        //new Fx.Reveal($('dvLoad')).dissolve(); 
    }
}
///MY ELEMENTS
var MyElement = {
    /// MARK -
    toggle: function (elementID) {
        $(elementID).toggleClass('dnd');
    },
    toggleD: function (elementID) {
        $(elementID).toggleClass('dndD');
    },
    dissolve: function (elementID) {
        if (navigator.userAgent.indexOf('MSIE') <= 0)
            new Fx.Reveal($(elementID)).dissolve();
        else
            $(elementID).addClass('dnd');
    },
    dissolveD: function (elementID) {
        if (navigator.userAgent.indexOf('MSIE') <= 0)
            new Fx.Reveal($(elementID)).dissolve();
        else
            $(elementID).addClass('dndD');
    },
    reveal: function (elementID) {
        if (navigator.userAgent.indexOf('MSIE') <= 0)
            new Fx.Reveal($(elementID)).reveal();
        else
            $(elementID).removeClass('dnd');
    },
    revealD: function (elementID) {
        if (navigator.userAgent.indexOf('MSIE') <= 0)
            new Fx.Reveal($(elementID)).reveal();
        else
            $(elementID).removeClass('dnd');
    },
    toggleReveal: function (elementID) {
        new Fx.Reveal($(elementID)).toggle();
    },
    fadeIn: function (elementID) {
        $(elementID).fade('in');
    },
    fadeOut: function (elementID) {
        $(elementID).fade('out');
    },
    fadeToggle: function (elementID) {
        $(elementID).fade('toggle');
    },
    slideToggle: function (elementID) {
        //var mySlide = new Fx.Slide(elementID);
        //mySlide.hide();
        //mySlide.toggle();

        if ($(elementID).get('class').indexOf("dnd") > 0)
            $(elementID).removeClass('dnd');
        else
            $(elementID).addClass('dnd');
    },
    misc: function (_options) {
        var options = $extend({
            a: 'Hello a',
            b: 'Hello b'
        }, _options || {});

        this.show = function () {
            alert(options.a + '/' + options.b);
        }
    }
}

///DROP DOWN-Effects




/// Custom on/off buttons
var toggleButtons = {
    OnOff: function (Left, Right) {
        $(Left).removeClass('btn_active');
        $(Right).addClass('btn_active');
    },
    Toggle: function (ToggleBtnId) {
        $(ToggleBtnId).toggleClass('btn_active');
    }
}


/// PLUGINS BELOW THIS LINE
/// ********************************************************************
/// TIPS plugin
/// TIP ON ALL ELEMENTS
/// Element ID, Element_text: text to display, Element_pad: positioning patch
var Tip = {
    doTipOn_: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: (pos.top - pos.height) - 5 + 'px',
            left: pos.left + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            display: 'block',
            'margin-left': '5px'
        });

        $('tipit').addClass('tipsy-north');
        $('tipit').removeClass('tipsy-south');

        $('tipit').addClass('tipsy-up');
        $('tipit').removeClass('tipsy');

        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    EastInfo: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: pos.top + 3 + (pos.height / 2) - (pos.height / 2) + 'px',
            left: pos.left - 125 + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            width: '120px'
        });

        $('tipit').removeClass('tipsy');
        $('tipit').removeClass('tipsy-south-lbl');
        $('tipit').removeClass('tipsy-south');
        $('tipit').removeClass('tipsy-north');
        $('tipit').removeClass('tipsy-up');
        $('tipit').removeClass('tipsy-left');
        $('tipit').removeClass('tipsy-west');
        $('tipit').addClass('tipsy-right');
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').addClass('tipsy-east');
        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    WestInfo: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: pos.top + (pos.height / 2) - (pos.height / 2) - 3 + 'px',
            left: pos.right + 5 +  'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            width: '100px'
        });

        $('tipit').removeClass('tipsy');
        $('tipit').removeClass('tipsy-south-lbl');
        $('tipit').removeClass('tipsy-east');
        $('tipit').removeClass('tipsy-south');
        $('tipit').removeClass('tipsy-north');
        $('tipit').removeClass('tipsy-up');
        $('tipit').addClass('tipsy-right');
        $('tipit').addClass('tipsy-left');
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').addClass('tipsy-west');
        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    doTipOnEast: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: pos.top + 3 + 'px',
            left: pos.left + 79 + 'px',
            position: 'absolute',
            zIndex: '100000',
            display: 'block',
            width: '123px'
        });

        $('tipit').addClass('tipsy-left');
        $('tipit').removeClass('tipsy');

        $('tipit').removeClass('tipsy-south');
        $('tipit').addClass('tipsy-west');

        $('tipit_content').removeClass('tipsy-inner');
        $('tipit_content').addClass('tipsy-white');

        $('tipit_content').setStyles({
            display: 'block',
            zindex: '1000'
        });
    },
    doTipToolbar: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: (pos.top - pos.height) - 0 + 'px',
            left: pos.left - element_pad + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            width: ''
        });
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit').removeClass('tipsy-left');
        $('tipit').removeClass('tipsy-right');
        $('tipit').removeClass('tipsy-south-lbl');
        $('tipit').removeClass('tipsy-west');
        $('tipit').addClass('tipsy-south');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').addClass('tipsy - user');

        $('tipit_content').setStyles({
            display: 'block'
        });
    }
    , doTipOn: function (elementID, element_text, element_pad) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: (pos.top - pos.height) - 10 + 'px',
            left: pos.left - 10 + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            display: 'block'
        });
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').removeClass('tipsy-south');
        $('tipit').addClass('tipsy-south-user');
        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    doTipLbl: function (elementID, element_text, element_pad, element_height) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: (pos.top - pos.height) - 5 - element_height + 'px',
            left: pos.left - element_pad + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            display: 'block',
            width: ''
        });
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit').removeClass('tipsy-up');
        $('tipit').removeClass('tipsy-north');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').removeClass('tipsy-south');
        $('tipit').removeClass('tipsy-left');
        $('tipit').removeClass('tipsy-right');
        $('tipit').addClass('tipsy');
        $('tipit').addClass('tipsy-south-lbl');
        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    doTipLblUp: function (elementID, element_text, element_pad, element_height) {
        var pos = $(elementID).getCoordinates();
        element_text = element_text.tidy();
        $('tipit_content').set('html', element_text);
        $('tipit').setStyles({
            top: (pos.top - pos.height) + 35 - element_height + 'px',
            left: pos.left - element_pad + 'px',
            position: 'absolute',
            display: 'block',
            zindex: '100000',
            display: 'block',
            width: '160px'
        });
        $('tipit_content').removeClass('tipsy-inner');
        $('tipit_content').removeClass('tipsy');
        $('tipit').removeClass('tipsy-south-lbl');
        $('tipit_content').addClass('tipsy-black');
        $('tipit').removeClass('tipsy-south');
        $('tipit').removeClass('tipsy-left');
        $('tipit').removeClass('tipsy-right');
        $('tipit').addClass('tipsy-up');
        $('tipit').addClass('tipsy-north');
        $('tipit_content').setStyles({
            display: 'block'
        });
    },
    doTipOff: function (elementID) {
        $('tipit').setStyles({
            display: 'none'
        });

        $('tipit_content').setStyles({
            display: 'none'
        });

        $('tipit_content').removeClass('tipsy-black');
        $('tipit_content').addClass('tipsy-inner');
    }
}

/// Get/Set user's language
function setLanguage(lang) {
    var oUserAjax = new WADJAX('User', { statusBar: false });
    try {
        Notify.spinnerOn(G_LOADING, G_LOADING_STILL, 5);
        oUserAjax.send('UpdateLanguage', lang, function (res) {
            if (!res.error) {
                Notify.spinnerOff(G_DONE, 1);
                //top.location.href = currentUrl;
                window.location.reload();
            }
            else {
                Notify.spinnerOff(G_DONE, 1);
                Notify.topBarOn(G_ERROR, '', 6);
            }
        });
    }
    catch (Error) { alert(Error); }
}

/// Sign out
function SignOut() {
    try {
        var oUserAjax = new WADJAX('User', { statusBar: false });
        Notify.spinnerOn(G_LOADING, G_LOADING_STILL, 5);
        oUserAjax.send('SignOut', function (res) {
            Notify.spinnerOff(G_DONE, 1);
            //#overlay preloading
            if ($('overlaymask')) {
                $('overlaymask').removeClass('dnd');
                $('overlaymask_text').set('html', G_LOGOUT);
            }
            top.location.href = '/Default.aspx';
        });
    }
    catch (Error) { alert(Error); }
}
/// Facebox plugin
/*
Facebox for MooTools is a mootools port
from the original Facebox, which was written for jQuery
and which was inspired by the Facebook pop-up messages.
		
Facebox is very extensible, and can be used to display
normal html, images, text fetched with ajax, etc etc.
		
More info and license can be found on http://bertramakers.com/labs/
*/

var Facebox = function (_options) {
    var options = $extend({
        message: G_MESSAGE,
        url: false,
        ajaxErrorMessage: '<h3>Error 404</h3><p>' + G_MISSING_FILE + '</p>',
        ajaxDelay: 300,
        width: 370,
        height: 'auto',
        title: false,
        draggable: true,
        submitValue: false,
        submitFunction: false,
        submitFocus: false,
        cancelValue: G_CANCEL,
        cancelFunction: false,
        loadIcon: '/s3.images/ajax/preloader-big.gif',
        fadeOpacity: .75,
        classNameTitle: 'faceboxTitleGray',
        classNameBorder: 'faceboxGray',
        classFooter: 'faceboxFooter',
        classFooterLink : 'faceboxFooterLeftLink',
        footerLink: false, // adds a link before submit buttons
        footerLinkHref: '',
        footerLinkText: G_FOOTER_HELP

    }, _options || {});

    var box = $(document.createElement("table"));
    box.className = 'facebox';
    var mbox;
    var instance = this;

    this.show = function () {
        for (var i = 0; i < 3; i++) {
            var row = box.insertRow(i);
            for (var a = 0; a < 3; a++) {
                var cell = row.insertCell(a);
                var cellClass = '';
                if (i == 0)
                    cellClass = 'top';
                else if (i == 1)
                    cellClass = 'center';
                else if (i == 2)
                    cellClass = 'bottom';
                if (a == 0)
                    cellClass += 'Left';
                else if (a == 1)
                    cellClass += 'Center';
                else if (a == 2)
                    cellClass += 'Right';
                if (cellClass == "centerCenter") {
                    cell.style.width = options.width + "px";
                    cell.style.height = "auto";
                    mbox = document.createElement("div");
                    mbox.className = 'faceboxContent ' + options.classNameBorder;
                    mbox.style.position = "relative";
                    cell.appendChild(mbox);
                }
                cell.className = cellClass;
            }
        }
        box.style.position = "absolute";
        var boxLeft = (window.getSize().x / 2) + window.getScroll().x; // -100 removed from Ariana
        var boxTop = (window.getSize().y / 2) + window.getScroll().y - 40;
        box.style.left = boxLeft + "px";
        box.style.top = boxTop + "px";
        $$('body')[0].appendChild(box);
        var boxMLeft = (box.offsetWidth / 2) * (-1); // box.getSize().x
        box.style.marginLeft = boxMLeft + "px";
        var boxMTop = (box.offsetHeight / 2) * (-1); // box.getSize().y
        box.style.marginTop = boxMTop + "px";

        if (options.url != false) {
            var loading = document.createElement("img");
            loading.src = options.loadIcon;
            loading.className = 'loading';
            mbox.appendChild(loading);
            if ((options.url != false) && (options.url.toLowerCase().indexOf(".png") == -1) && (options.url.toLowerCase().indexOf(".jpg") == -1) && (options.url.toLowerCase().indexOf(".gif") == -1)) {
                var ajax = new Request({
                    url: options.url,
                    onComplete: function () {
                        window.setTimeout(function () {
                            mbox.removeChild(loading);
                            insertMessage();
                        }, options.ajaxDelay);
                    },
                    onSuccess: function (html) {
                        options.message = html;
                    },
                    onFailure: function (html) {
                        options.message = options.ajaxErrorMessage;
                    }
                });
                ajax.send();
            } else {
                var img = document.createElement("img");
                img.src = options.url;
                img.style.visibility = "hidden";
                img.style.position = "absolute";
                img.style.left = "0px";
                img.style.top = "0px";
                mbox.appendChild(img);
                window.setTimeout(function () {
                    faceboxLoadImage(img, loading);
                }, options.ajaxDelay);
            }
        } else {
            insertMessage();
        }
    }

    var faceboxLoadImage = function (img, loading) {
        if ((img.width != null) && (img.width != undefined) && (img.width != "")) {
            options.width = img.width;
            options.height = img.height;
            if ((options.title != "") && (options.title != false))
                var imgAlt = options.title;
            else
                var imgAlt = img.src;
            options.message = '<img src="' + img.src + '" alt="' + imgAlt + '" />';
            mbox.removeChild(img);
            mbox.removeChild(loading);
            insertMessage();
        } else {
            faceboxLoadImage(img, loading);
        }
    }

    var insertMessage = function () {
        var title = false;
        if ((options.title != null) && (options.title != false) && (options.title != "")) {
            title = document.createElement("h2");
            title.innerHTML = options.title;
            title.className = options.classNameTitle;
            mbox.appendChild(title);
        }

        var faceboxMessage = document.createElement("div");
        faceboxMessage.className = "faceboxMessage";
        if (options.height != "auto")
            faceboxMessage.style.height = options.height + "px";
        mbox.appendChild(faceboxMessage);
        faceboxMessage.style.width = options.width + "px";
        if (options.height != "auto")
            faceboxMessage.style.height = options.height + "px";

        var content = options.message;
        faceboxMessage.innerHTML = content;

        if ((options.url != false) && ((options.url.toLowerCase().indexOf(".png") != -1) || (options.url.toLowerCase().indexOf(".jpg") != -1) || (options.url.toLowerCase().indexOf(".gif") != -1)) && ((title == false) || (title == "")) && (options.submitValue == false) && (options.cancelValue == "Cancel") && (options.submitFunction == false)) {
            var img = faceboxMessage.getElementsByTagName("img");
            if (img.length > 0) {
                img[0].style.cursor = "pointer";
                if (window.attachEvent) {
                    img[0].attachEvent("onclick", function () {
                        var fx = new Fx.Morph(box, { duration: 300 });
                        fx.start({ opacity: 0 }).chain(function () { $$('body')[0].removeChild(box); });
                    });
                } else {
                    img[0].addEvent("click", function () {
                        var fx = new Fx.Morph(box, { duration: 300 });
                        fx.start({ opacity: 0 }).chain(function () { $$('body')[0].removeChild(box); });
                    });
                }
            }
        }
        else {
            var faceboxFooter = document.createElement("div");
            faceboxFooter.className = options.classFooter;
            mbox.appendChild(faceboxFooter);

            ///add info link
            if ((options.footerLink != false) && (options.footerLink != null) && (options.footerLink != "")) {
                var footerLinkButton = document.createElement("span");
                footerLinkButton.innerHTML = options.footerLinkText;
                footerLinkButton.className = options.classFooterLink;

                faceboxFooter.appendChild(footerLinkButton);
            }

            ///add submit button
            if ((options.submitValue != false) && (options.submitValue != null) && (options.submitValue != "")) {
                var submitButton = document.createElement("input");
                submitButton.setAttribute("type", "button");
                submitButton.setAttribute("id", "submit_buttonUpload");
                submitButton.className = 'faceboxSubmit';
                submitButton.setAttribute("value", options.submitValue);
                if (window.attachEvent)
                    submitButton.attachEvent("onclick", options.submitFunction);
                else
                    submitButton.addEvent("click", options.submitFunction);
                faceboxFooter.appendChild(submitButton);
                if (options.submitFocus == true)
                    submitButton.focus();
            }

            ///add cancel button
            var cancelButton = document.createElement("input");
            cancelButton.setAttribute("type", "button");
            cancelButton.setAttribute("value", options.cancelValue);
            if (options.cancelFunction == false) {
                if (window.attachEvent) {
                    cancelButton.attachEvent("onclick", function () {
                        instance.close();
                    });
                } else {
                    cancelButton.addEvent("click", function () {
                        instance.close();
                    });
                }
            } else {
                if (window.attachEvent)
                    cancelButton.attachEvent("onclick", options.cancelFunction);
                else
                    cancelButton.addEvent("click", options.cancelFunction);
            }
            faceboxFooter.appendChild(cancelButton);
        }

        if ((options.draggable == true) && (title != false))
            var dragging = new Drag.Move(box, { handle: title });

        var boxMTop = (box.getSize().y / 2) * (-1);
        box.style.marginTop = boxMTop + "px";
    }

    this.close = function () {
        var fx = new Fx.Morph(box, { duration: 300 });
        fx.start({
            opacity: 0
        }).chain(function () {
            $$('body')[0].removeChild(box);
        });
    }

    this.status = function () {
        return $$('body')[0].hasChild(box);
    }

    this.fastclose = function () {
        $$('body')[0].removeChild(box);
    }

    this.returnMessageBox = function () {
        var messageBox = box.getElements(".faceboxMessage")[0];
        return messageBox;
    }

    this.fade = function () {
        var overlayW = mbox.offsetWidth; // mbox.getSize().x
        var overlayH = mbox.offsetHeight; // mbox.getSize().y
        var overlay = document.createElement("div");
        overlay.style.width = overlayW + "px";
        overlay.style.height = overlayH + "px";
        overlay.style.position = "absolute";
        overlay.style.left = "-1px";
        overlay.style.top = "-1px";
        overlay.className = 'faceboxOverlay';
        overlay.style.backgroundColor = "#fff";
        var hide = new Fx.Morph(overlay, { duration: 400 });
        hide.set({
            opacity: options.fadeOpacity
        });
        mbox.appendChild(overlay);
    }

    this.unfade = function () {
        mbox.setAttribute("id", "tmpMBoxId");
        var overlay = $$('#tmpMBoxId .faceboxOverlay'); // mbox.getElements('.faceboxOverlay');
        mbox.setAttribute("id", "");
        if (overlay.length > 0)
            mbox.removeChild(overlay[0]);
        var fx = new Fx.Morph(box);
        fx.set({ opacity: 1 });
    }
}

/// #Header actions

// make these variables global, so that we know if the relevant Faceboxes are open or not
var newLabelBox;
var editLabelBox;
/// Attach events
/// #
if ($('header_new_label')) {
    $('header_new_label').addEvents({
        'click': function () {
            newInterestjs.getNewInterest(profileInfo.viewerID,'',0);
            return false;
        }
    });
}
//maria for feedback click 
if ($('jsfeedback')) {
    $('jsfeedback').addEvents({
        'click': function () {
            newFeedbackjs.getFeedback(profileInfo.ownerID);
            return false;
        }
    });
}

/// New/Edit label
var togglePrivacy = {
    everyone: function () {

        $('privacyicon_111').set('title', 'Everyone');

//        $('privacyicon_111').removeClass('lblPr_2');
//        $('privacyicon_111').removeClass('lblPr_3');
//        $('privacyicon_111').addClass('lblPr_4');
        $('privacyicon_111').set('html', 'Everyone');
        $('LabelPrivacyValue').set('html', 'Everyone');
    },
    followers: function () {
        $('privacyicon_111').set('title', 'Followers');
//        $('privacyicon_111').removeClass('lblPr_2');
//        $('privacyicon_111').addClass('lblPr_3');
//        $('privacyicon_111').removeClass('lblPr_4');
        $('privacyicon_111').set('html', 'Followers');
        $('LabelPrivacyValue').set('html', 'Followers');
    },
    onlyme: function () {
        $('privacyicon_111').set('title', 'Only me');
//        $('privacyicon_111').addClass('lblPr_2');
//        $('privacyicon_111').removeClass('lblPr_3');
//        $('privacyicon_111').removeClass('lblPr_4');
        $('privacyicon_111').set('html', 'Onlyme');
        $('LabelPrivacyValue').set('html', 'Onlyme');
    }
}


/////RELATED LABELS
//function reldLJSON() {
//    clearTimeout(RelatedTimeout);
//    RelatedTimeout = setTimeout(function () {
//        var wjxRelated = new WADJAX('Labels', { statusBar: false });
//        var wKeyword = $('newLabel').get('value');

//        if (wKeyword.length > 3) {
//            $('loadingrelated').removeClass('dnd');
//            wjxRelated.send('GetRelatedLabels', wKeyword, reldL_res);
//        }
//        else if (wKeyword.length == 0) {
//            $('relDHTML').addClass('dnd');
//            $('relDHTML').set('html', '');
//            $('loadingrelated').addClass('dnd');
//        }
//        else
//            $('loadingrelated').addClass('dnd');
//    }, 150);
//}
//function reldClear() {
//    $('relDHTML').addClass('dnd');
//}
//function reldL_res(res) {
//    if (res.value != '') {
//        $('relDHTML').removeClass('dnd');
//        $('loadingrelated').addClass('dnd');
//        $('relDHTML').set('html', '<div class=\"title cursor\"  onclick=\"reldClear();\">' + G_RELATEDINTERESTS + ' <span class=\"close\">&times;</span></div><div class=\"results\">' + res.value + '</div>');
//    }
//    else {
//        $('relDHTML').addClass('dnd');
//        $('relDHTML').set('html', '');
//        $('loadingrelated').addClass('dnd');
//    }

//}

//if ($('HomeLabel')) {
//    $('HomeLabel').addEvents({
//        'click': function () {
//            // only if the signed-in user is the profile owner...
//            if (profileInfo.profileBelongsToViewer) {
//                editAnInterestjs.getEditAnInterest(profileInfo.viewerID, wProfile.Current.LabelID.toString(),0)
//            }
//            return false;
//        }
//    });
//}

var Cartbox = null;
function OpenNewCart() {
    Cartbox = new Facebox({
        url: '/cart/new/iframe.aspx?provider=0',
        width: 650,
        height: 370,
        //message: '<div class=\"pad10 tac\">This service is under maintenance. Please try again later.</div>',
        //title: 'Purchase points <span class=\"f_r creditsSpCart\">' + profileInfo.points + ' points</span>',
        title: G_CART_TITLE.replace('#X', profileInfo.points),
        footerLink: true, // adds a link before submit buttons
        footerLinkHref: '',
        footerLinkText: '<div id=\'cartFooterStart\'>' + G_TERMS1 + ' <span class=\"lnk\" onclick=\"window.open(\'/terms_sale.aspx\')\">' + G_TERMS2 + '</span>.</div><div id=\'cartFooter\' class=\'dnd lnk\' onclick=\'CartBack();\'>&larr; ' + G_CHANGE_PAYMENT + '</div>',
        cancelValue: G_CLOSE,
        cancelFunction: function () {
            Cartbox.close();
        },
        submitValue: G_CONTINUE,
        submitFunction: function () {
            $('cartFooter').removeClass('dnd');
            $('cartFooterStart').addClass('dnd');
            document.getElementById('frame_file').contentWindow.Continue();
        }
    });
    Cartbox.show();
}
function OpenNewCart(provider) {
    var cartURL = '';
    var p_provider = '';

    if (provider == '') {
        cartURL = '/cart/new/iframe.aspx';
    }
    else {
        cartURL = '/cart/new/iframe.aspx?provider=' + provider;
    }
    Cartbox = new Facebox({
        url: cartURL,
        width: 650,
        height: 370,
        //message: '<div class=\"pad10 tac\">This service is under maintenance. Please try again later.</div>',
        //title: 'Purchase points <span class=\"f_r creditsSpCart\">' + profileInfo.points + ' points</span>',
        title: G_CART_TITLE.replace('#X', profileInfo.points),
        footerLink: true, // adds a link before submit buttons
        footerLinkHref: '',
        footerLinkText: '<div id=\'cartFooterStart\'>' + G_TERMS1 + ' <span class=\"lnk\" onclick=\"window.open(\'/terms_sale.aspx\')\">' + G_TERMS2 + '</span>.</div><div id=\'cartFooter\' class=\'dnd lnk\' onclick=\'CartBack();\'>&larr; ' + G_CHANGE_PAYMENT + '</div>',
        cancelValue: G_CLOSE,
        cancelFunction: function () {
            Cartbox.close();
        },
        submitValue: G_CONTINUE,
        submitFunction: function () {
            $('cartFooter').removeClass('dnd');
            $('cartFooterStart').addClass('dnd');
            document.getElementById('frame_file').contentWindow.Continue();
        }
    });
    Cartbox.show();

}

function CartBack() {
    try {
        document.getElementById("frame_file").contentWindow.Back();
        $('cartFooter').addClass('dnd');
        $('cartFooterStart').removeClass('dnd');
    }
    catch (Error) {
        //document.getElementById("frame_file").src = '/cart/new/iframe.aspx';
        Cartbox.close();
        OpenNewCart('');
    }
}


function $i(aID) {
    var rv = null;
    var frame = (document.getElementById ? $(aID) : document.all[aID]);
    // if contentDocument exists, W3C compliant (e.g. Mozilla)

    if (frame.contentDocument)
        rv = frame.contentDocument;
    else
        rv = document.frames[aID].document; // bad IE  ;)

    return rv;
}
// This replaces all instances of 'from' to 'to' even when
// 'from' and 'to' are similar (i.e .replaceAll('a', 'a '))
String.prototype.replaceAll = function (search, replace) {
    if (replace === undefined) {
        return this.toString();
    }
    return this.split(search).join(replace);
}

String.prototype.Contains = function (objElm) {
    return (this.indexOf(objElm) > -1);
};

String.prototype.urlEncode = function () {
    return encodeURIComponent(this);
};

String.prototype.urlDecode = function () {
    try {
        return decodeURIComponent(this.replace(/\+/g, " "));
    }
    catch (Error) {
        return this;
    }

};

String.prototype.endsWith = function (str)
{ return (this.match(str + "$") == str) }

///WADJAX JS - When something changes here please change it to default.js (root) too
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
* Desc:    WADJA AJAX Class                                               *
* Author:  Theofanis Pantelides (theo@wadja.com)                          *
* Date:    November 6, 2009                                               *
* Usage:   var varName = new WadjaSuggest('textBoxName', { });            *
*          varName.send('func', 'param1' [, 'param2' [..]], func(r) { }); *
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
var WADJAX = new Class({

    Implements: [Options],

    /************* WADJAX Options *************/
    options: {
        isJSON: false,      /* String is JSON object */
        method: 'post',     /* Type of request */
        statusBar: true     /* Show Yellow loading bar */
    },

    callback: false,

    response: { request: {}, error: null, value: null, context: null },

    /************* Initialize Class *************/
    initialize: function (type, options) {
        this.setOptions(options);
        this.URL = '/controllers/wAjax.' + type + '.ashx';

    },

    send: function () {
        var oQ = "m=" + arguments[0];
        var o_Val = null;
        var o_Err = null;

        for (var i = 0; i < arguments.length; i++) {
            if (typeof (arguments[i]) === "function") {
                this.callback = arguments[i];
            } else {
                oQ += ("&q" + i + "=" + encodeURIComponent(arguments[i]));
            }
        }

        var statBar = this.options.statusBar;

        var notAsync = (this.callback == false);

        var ajxReq = new Request({

            url: this.URL,
            method: this.options.method,
            noCache: true,
            wadjax: this,
            async: (!notAsync),
            debug: (this.URL + '?' + oQ),

            onRequest: function () {
                //$('wzilla').removeClass('dnd');
                //$('wzilla').set('html', $('wzilla').get('html') + this.options.debug + " | ");
                if (statBar) { // Show Yellow Bar
                    Notify.spinnerOn(G_LOADING, G_LOADING_STILL, 5)
                }
            },
            onSuccess: function (oResp) {
                o_Val = oResp;

                if (this.options.wadjax.callback) {
                    this.options.wadjax.response.value = o_Val;
                    this.options.wadjax.callback(this.options.wadjax.response);
                }
                if (statBar) { // Show Yellow Bar
                    Notify.spinnerOff(G_DONE, 1)
                }
            },
            onCancel: function () {
                if (statBar) { // Show Yellow Bar
                    Notify.spinnerOff(G_CANCELLED, 3)
                }
            },
            onFailure: function (xhr) {
                try {
                    o_Err = this.options.wadjax.response.error = (xhr.status + "-" + xhr.statusText);
                } catch (exxdfs) {
                    //o_Err = this.options.wadjax.response.error = ("STATUS: " + xhr.status);
                    o_Err = this.options.wadjax.response.error = (G_WENT_WRONG);
                }
                if (this.options.wadjax.callback) {
                    this.options.wadjax.callback(this.options.wadjax.response);
                }
                if (statBar) { // Show Yellow Bar
                    Notify.spinnerOff(G_ERROR2, 2);
                }
            }
        });

        //alert(this.options.debug);
        ajxReq.send(oQ);

        if (notAsync) {
            return { value: o_Val, error: o_Err };
        }
    }
});

function getElement(aID) {
    return (document.getElementById) ? $(aID) : document.all[aID];
}
function getIFrameDocument(aID) {
    var rv = null;
    var frame = getElement(aID);
    // if contentDocument exists, W3C compliant (e.g. Mozilla)

    if (frame.contentDocument)
        rv = frame.contentDocument;
    else
        rv = document.frames[aID].document; // bad IE  ;)

    return rv;
}

//#Get URL Parameters (QueryStrings) using Javascript
function getQuerystring(key, default_) {
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}
//#Bootstrap
var bootloader = {
    load: function (url, callback) {
        var script = document.createElement("script")
        script.type = "text/javascript";

        if (script.readyState) {  //IE
            script.onreadystatechange = function () {
                if (script.readyState == "loaded" ||
                    script.readyState == "complete") {
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else {  //Others
            script.onload = function () {
                callback();
            };
        }

        script.src = url;
        document.getElementsByTagName("head")[0].appendChild(script);
    }
}


// IP 2 GEOLOCATION LOGIC

// Searches the entered address using Google Geocoding
function getUserLocationByAddress(address, successFunc, errorFunc) {
    getCoordsByLocation(address, function (lat, long, countryCode) {
        if (successFunc)
            successFunc(lat, long, countryCode, address);
    }, function (status) {
        if (errorFunc)
            errorFunc();
    });
}

// Finds current user location using HTML5 geolocation or by IP
function findCurrentUserLocation(successFunc, errorFunc) {
    // try HTML5 geolocation
    if (navigator.geolocation && Browser.Engine.name != 'gecko') {
        Notify.spinnerOn(G_LOC_SEARCH, G_LOC_SEARCH2, 5);
        navigator.geolocation.getCurrentPosition(function (position) {
            getLocationByCoords(position.coords.latitude, position.coords.longitude,
				function (loc, countryCode, city, region, country) {
				    Notify.spinnerOff();
				    if (successFunc)
				        successFunc(position.coords.latitude, position.coords.longitude, countryCode, loc, city, region, country);
				}, function () {
				    Notify.spinnerOff();
				    getUserLocationByIP(successFunc, errorFunc);
				});
        }, function () {
            Notify.spinnerOff();
            getUserLocationByIP(successFunc, errorFunc);
        }, { timeout: 10000 });
    } else {
        getUserLocationByIP(successFunc, errorFunc);
    }
}

// Finds current user location by IP 
function getUserLocationByIP(successFunc, errorFunc) {
    var lat = geoip_latitude();
    var long = geoip_longitude();
    var country = geoip_country_name();
    var city = geoip_city();
    var region = geoip_region_name();
    if (lat && long) {
        getLocationByCoords(lat, long, function (loc, countryCode) {
            if (successFunc)
                successFunc(lat, long, countryCode, loc, city, region, country);
        }, function (status) {
            if (errorFunc)
                errorFunc();
        });
    } else {
        if (errorFunc)
            errorFunc();
    }
}

// Retrieves location by lat/long using Google Geocoding service
function getLocationByCoords(lat, long, successFunc, errorFunc) {
// Disactivated temporary
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'latLng': new google.maps.LatLng(lat, long), 'language': 'EN-US' }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var locData = getDataFromGoogleResults(results);
            if (locData && locData.loc && locData.countryCode) {
                if (successFunc)
                    successFunc(locData.loc, locData.countryCode, locData.city, locData.region, locData.country);
            } else {
                if (errorFunc)
                    errorFunc();
            }
        } else {
            if (errorFunc)
                errorFunc(status);
        }
    });
}

// Retrieves lat/long and country code by location text using Google Geocoding service
function getCoordsByLocation(location, successFunc, errorFunc) {
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': location, 'language': 'EN-US' }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var locData = getDataFromGoogleResults(results);
            if (locData && locData.lat && locData.long && locData.countryCode) {
                if (successFunc)
                    successFunc(locData.lat, locData.long, locData.countryCode);
            } else {
                if (errorFunc)
                    errorFunc();
            }
        } else {
            if (errorFunc)
                errorFunc(status);
        }
    });
}

// Parses Google Geocoding service results and returns data
function getDataFromGoogleResults(results) {
    var loc, lat, long, countryCode, city, region, country;
    if (results[0]) {
        lat = results[0].geometry.location.lat(); // latitude
        long = results[0].geometry.location.lng(); // longitude
        for (var i = 0; i < results[0].address_components.length; i++) {
            for (var j = 0; j < results[0].address_components[i].types.length; j++) {
                if (results[0].address_components[i].types[j] == 'country') {
                    countryCode = results[0].address_components[i].short_name; // country code
                    country = results[0].address_components[i].long_name; // country
                }
                if (results[0].address_components[i].types[j] == 'locality') {
                    city = results[0].address_components[i].long_name; // city
                }
                if (results[0].address_components[i].types[j] == 'administrative_area_level_1') {
                    region = results[0].address_components[i].long_name; // region
                }
            }
        }
        loc = results[0].formatted_address; // location

        return { lat: lat, long: long, countryCode: countryCode, loc: loc, city: city, region: region, country: country };
    }
    return null;
}

var notificationsAlerts = {
    //update: function(MsgNum,NotNum){
    update: function () {
        if (!profileInfo.isLoggedIn) {
            return;
        }
        var wjxShhProfile = new WADJAX('Profile', { statusBar: false });
        wjxShhProfile.send('GetUnreadNotificationsCounter', function (res) {
            if (res.error != null) return;
            if (res.value != null) {
                var count = JSON.decode(res.value);
                if (count == null)
                    return;
                var totalCounter = count.FollowCounter + count.NotificationCounter;
                //                if (count.FollowCounter > 0) {
                //                    if ($('head_user_counter')) {
                //                        $('head_user_counter').set('html', count.FollowCounter);
                //                    }
                //                    if ($('head_user_container')) {
                //                        $('head_user_container').addClass('new');
                //                    }
                //                }
                //                else {
                //                    if ($('head_user_counter')) {
                //                        $('head_user_counter').set('html', 0);
                //                    }
                //                    if ($('head_user_container')) {
                //                        $('head_user_container').removeClass('new');
                //                    }
                //                }
                if (totalCounter > 0) {
                    if ($('head_notifications_counter')) {
                        $('head_notifications_counter').set('html', totalCounter);
                        $('head_notifications_counter').removeClass('dndD');
                    }
                    if ($('head_notifications_container')) {
                        $('head_notifications_container').addClass('new');
                    }
                    //stopped:if ($('popcorn_canvas_html_title_value_'+profileInfo.viewerID)) {
                    //stopped:    $('popcorn_canvas_html_title_value_'+profileInfo.viewerID).set('html', '<span class=\"counterNew f_l marT2 marR5\">'+totalCounter+'</span> <span class=\"f_l\">Notifications</span>');
                    //stopped:}
                }
                else {
                    if ($('head_notifications_counter')) {
                        $('head_notifications_counter').set('html', '&nbsp;');
                        $('head_notifications_counter').set('style', 'background-position:center center; padding-top:5px;');
                        $('head_notifications_counter').removeClass('dndD');
                    }

                    //stopped:if ($('popcorn_canvas_html_title_value_'+profileInfo.viewerID)) {
                    //stopped:    $('popcorn_canvas_html_title_value_'+profileInfo.viewerID).set('html', '[0] Notifications');
                    //stopped:}
                    if ($('head_notifications_container')) {
                        $('head_notifications_container').removeClass('new');
                    }
                }
            }
        });
    },
    reset: function (MsgNum, NotNum) {
        if ($('head_notifications')) {
            var resetNot = false;
            //#messages
            if ($('head_notifications_dropdown_message'))
                if ($('head_notifications_dropdown_message').hasClass('dndD'))
                    resetNot = true;
            //#feeds
            if ($('head_notifications_dropdown_feeds'))
                if ($('head_notifications_dropdown_feeds').hasClass('dndD'))
                    resetNot = true;

            //#notifications bar
            if (resetNot)
                $('head_notifications').addClass('dndD');
        }
    },
    showfeeds: function (feeds, labelID) {
        window.location.href = '/' + profileInfo.viewerWadjaID + '#!listfeeds/' + escape(feeds) + '/' + labelID;
        feedActions.notificationsOff();
        //        if (document.location.href.indexOf(profileInfo.ownerWadjaID) >= 0) {
        //            document.location.hash = '#1';
        //            var feedsList = feeds.split(',');
        //            feedsList = JSON.encode(feedsList);
        //            pushstart = 1;
        //            wHtmlCanvas.empty();
        //            wProfile.Helper.Loaded = [];
        //            wProfile.Helper.Pending = [];
        //            new Fx.Reveal($('aNewFeeds'), { duration: 500 }).dissolve();
        //            var wjxLabel = new WADJAX('Labels', {});
        //            wjxLabel.send('GetFeedListInfo', profileInfo.viewerID, feedsList, wProfile.Render.Start);
        //        }
        //        else {
        //            //document.location.href = '/' + profileInfo.ownerWadjaID + '#!feedlist/' + escape(feeds);
        //            window.location.href = '/' + profileInfo.ownerWadjaID + '#!listfeeds/' + escape(feeds);
        //        }
    },
    markasread: function (notifications, rowid) {
        var notificationsList = notifications.split(',');
        notificationsList = JSON.encode(notificationsList);
        var wjxProf = new WADJAX('Profile', { statusBar: false });
        if (Browser.Engine.webkit) {
            wjxProf.send('MarkAsRead', notificationsList, null);
        }
        else {
            wjxProf.send('MarkAsRead', notificationsList, function (res) {
                if (res.error != null) return;
                else {
                    notificationsAlerts.update();
                }
            });
        }
        if ($(rowid)) {
            $(rowid).destroy();
        }
    }
}

//#Loading notification drop-down
function NotificationDropDown() {
        var wjxShhProfile = new WADJAX('Profile', { statusBar: false });
        wjxShhProfile.send('GetUnreadNotifications', profileInfo.ownerWadjaID, function (res) {
            if (res.error != null) return;
            if (res.value != null) {
                var menu = res.value;
                //$('NotificationsDropdown').set('html', menu);
                // popcorn.open(profileInfo.viewerID, menu, 'Notifications', '');
                popcorn.open(profileInfo.viewerID, menu, G_NOTIFICATIONS, '');
            }
        });
}

///RESEND EMAIL CONFIRMATION
function ResendEmailConfirm() {
    try {
        Notify.topBarOff();
        var oWadjaX = new WADJAX('user', { statusBar: false });
        oWadjaX.send('ResendConfirmation', function (res) {
            Notify.topBarOn(res.value, '', 6);
        });
        ///#CLOSE POP-UP COMPOSE
        if ($('popcorn_c_' + profileInfo.viewerID))
            popcorn.close('c_' + profileInfo.viewerID);
    }
    catch (Error) { alert(Error); }
}

///BOOKMARKLET
function explain_bookmarklet() {
    //var eb = /MSIE (\d+\.\d+);/.test(navigator.userAgent) ? 'Right-click this and choose "Add to Favorites".' : 'Drag this to your Bookmarks Bar to install.';
    var eb = /MSIE (\d+\.\d+);/.test(navigator.userAgent) ? G_BOOKMARKLETRIGHTCLICK : G_BOOKMARKLETDRAG;
    //Notify.alert('Wadja Extras', '<div class=\"pad5\">' + eb + '</div>', 'OK', '');
    alert(eb);
        return false;   
}

///BOOKMARKLET POP-UP
function BookmarkletPop() {
    BookPop = new Facebox({
        width: 400,
        height: 300,
        message: '<div class=\"pad10 f11\"><div class=\"padB10\">' + BOOK_DV1 + '</div><div>1. ' + BOOK_DV2 + '</div><div>2. ' + BOOK_DV3 + '</div><div class=\"padT10\"><span onclick=\"return explain_bookmarklet();\" class=\"cross coloredBackgroundGray pad3 b_r  whiteColor f11\"><a class=\"cross hoverNounderline\" href=\"javascript:(function(){window.open(\'http://' + profileInfo.viewerNetworkURL + '/share/bookmarklet/?url=' + document.location + '&title=' + document.title + '\',\'calendar\',\'width=626,height=436,titlebar=no,statusbar=no,location=no,menubar=no,resizable=no,scrollbars=yes\');})();\">' + profileInfo.ownerWadjaID + '</a></span></span></div><div class=\"padT10\">' + BOOK_DV4 + '</div><div class=\"padT10\"><img src=\"/s3.images/premium/browser_bookmarklet.png\" width=\"359px\" height=\"123px\"/></div><div class=\"padT20 f10\">' + BOOK_DV5 + '</div></div>',
        title: BOOKMARKLET_TITLE,
        cancelValue: G_CLOSE
    });
    BookPop.show();

}

///Sign in POP-UP
function SignInPop() {
    top.location.href = '/sessions/login.aspx';

    //    bootloader.load('/sessions/loginControl.js', function () { });
    //    BookPop = new Facebox({
    //        width: 390,
    //        height: 300,
    //        //url: '/sessions/iframeLogin.aspx?homepage=1',
    //        url: '/sessions/loginControl.aspx?homepage=1',
    //        title: login_signBtn,
    //        cancelValue: G_CLOSE,
    //        submitValue: login_signBtn,
    //        submitFunction: function () {
    //            Login();
    //            //            try {
    //            //                document.getElementById('frame_file').contentWindow.Login();
    //            //            }
    //            //            catch (popEr) { Login(); }
    //        }
    //    });
    //    BookPop.show();

}
/* edit more about.profile */

var edmode = {
    over: function () {
        if (profileInfo.isLoggedIn) {
            if (profileInfo.ownerID == profileInfo.viewerID) {
                if ($('edMode').hasClass('dnd')) {
                    $('edMode').removeClass('dnd');
                }
                else {
                    /* do nothing */
                }
            }
        }
    },
    out: function () {
        if (profileInfo.isLoggedIn) {
            if (profileInfo.ownerID == profileInfo.viewerID) {
                if ($('edMode').hasClass('dnd')) {
                    /* do nothing */
                }
                else {
                    $('edMode').addClass('dnd');
                }
            }
        }
    }
}


function OpenVideoHome() {

    BookPop = new Facebox({
        width: 640,
        height: 385,
        title: false,
        cancelValue: G_CLOSE,
        message: '<object width=\"640\" height=\"385\"><param name=\"movie\" value=\"http://www.youtube.com/v/X2PO0bkxll4?fs=1&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/X2PO0bkxll4?fs=1&amp;hl=en_US\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"640\" height=\"385\"></embed></object>'
    });
    BookPop.show();

}

function decimalToHex(d, padding) {
    var hex = Number(d).toString(16);
    padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;

    while (hex.length < padding) {
        hex = "0" + hex;
    }

    return hex;
}

///Edit profile background
function LoadBgControl() {            
    bootloader.load('/account/background/Background.js', function () {
        //MyElement.toggleReveal('backgroundForm');
        //MyElement.toggleReveal('changeBackgroundTab');
    });      
}

///Compose button
function ComposeButton() {
    setTxtBodyText();
    if (location.href.indexOf('#') > 0) {
        feedActions.openCompose('Loading...');
        }
    else {
        SendMessage();
        feedActions.openCompose('Loading...');
    }      
    
}
function CloseOverlay() {
    if ($('grayOverlay'))
        $('grayOverlay').addClass('dnd');
}
function OpenPopUpAbout() {
    AboutPop = new Facebox({
        width: 640,
        title: 'About TPBBDO',
        cancelValue: G_CLOSE,
        url:'/tpbbdo/about.aspx'
    });
    AboutPop.show();
}
function OpenPopUpPrizes() {
    PricesPop = new Facebox({
        width: 640,
        title: 'Prizes',
        cancelValue: G_CLOSE,
        url: '/tpbbdo/prizes.aspx'
    });
    PricesPop.show();
}
function OpenPopUpTerms() {
    TermsPop = new Facebox({
        width: 640,
        title: 'Terms',
        cancelValue: G_CLOSE,
        url: '/tpbbdo/terms.aspx'
    });
    TermsPop.show();
}
///#universal popup viewer-popcorn

///# Open points
//function loadPoints(){
//  //
//  var req = new Request({
//                    method: 'get',
//                    url: '/account/points/form.aspx',
//                   // onComplete: function(response) {popcorn.open(01, response , 'Points', 'topPoints');}
//                    onComplete: function (response) { popcorn.open(01, response, G_POINTS, 'topPoints'); }
//                }).send();
//            }

///# Open Other Networks
function loadNetworks() {
    //
    var req = new Request({
        method: 'get',
        url: '/user/views/network.aspx',
       // onComplete: function (response) { popcorn.open(01, response, 'Other Networks', ''); }
        onComplete: function (response) { popcorn.open(01, response, G_OTHER_NETWORKS, ''); }
    }).send();
}
///#Get newInterest code
var newInterestjs = {
    getNewInterest: function (ownerID, labelname, typedo) {
        bootloader.load('/s3.scripts/classes/interest.js', function () {
            newInterestClass.buildCardNew(ownerID, labelname, typedo);
        });
    }
}
//maria edit the left name-save the name - modified by Ariana for profile BIO


//maria load the js for feedback

var newFeedbackjs = {
    getFeedback: function (ownerID) {
        bootloader.load('/s3.scripts/classes/feedback.js', function () {
            newFeedbackClass.getFeedbackCode(ownerID);
        });
    }
}
/*
//maria load the js for create new label in left
var newCreateQuickLabeljs = {
    getCreateQuickLabel: function (ownerID, typedo) {
        bootloader.load('/s3.scripts/classes/quickInterest.js', function () {
            quickInterestClass.Create(ownerID, typedo);
        });
    }
}
//maria load the js for create new label in left

//maria load the js for more new label in left
var newMoreQuickLabeljs = {
    getMoreQuickLabel: function (ownerID, labelID) {
        bootloader.load('/s3.scripts/classes/quickInterest.js', function () {
            quickInterestClass.More(ownerID, labelID);
        });
    }
}
*/
function handleSaveforBlurEnter() {

    $('usernameInput').addClass('dndD');
    $('usernameProf').removeClass('dndD');
    $('editProf').removeClass('dndD');
    try {
        input_value = $('usernameInput').get('value').clean();
        if (input_value == '') {
            Notify.topBarOn('The field name cannot be empty', '', 4);
        }
        else
        {
            var oWadjaX = new WADJAX('user', { statusBar: false });
            //the user gives 2 words separated with space i'll take the first word as firstname and all the others as lastname
            if (input_value.indexOf(' ') > 0) {
                 nam = input_value.split(' ');
                 firstname = nam[0];
                 //maria for avoid htm input from user
                 firstname = firstname.stripTags();
                for (var i = 2; i < nam.length; i++)     
                {
                    if (nam[i]!=' ')
                    nam[1] += ' '+ nam[i];
                }
                lastname = nam[1];
                //maria for avoid htm input from user
                lastname=lastname.stripTags();
                oWadjaX.send('SaveName', firstname, lastname, '', '', function (res) {
                    Notify.topBarOn(res.value, '', 6);
                    $('usernameProfSp').set('html', input_value);
                    a_value = input_value;
                }); 
            }
                else {
                firstname = input_value;
                // the user gives i dont accept this and dont save, alert him an error message
                        Notify.topBarOn(G_MUSTFILLLASTNAME, '', 6);
            }
           
        }
    }
    catch (Error){
        alert(Error);
    }
}

//maria edit the left name - handle events
function handleEditableName() {
    var a_value, firstname, lastname;
    var input_value;
    var nam;
    if ($('usernameProf')) {
        $('usernameProf').addClass('dndD');
        $('editProf').addClass('dndD');
        $('usernameInput').removeClass('dndD');
        a_value = $('usernameProfSp').get('html').clean();
        $('usernameInput').set('value', a_value);
        $('usernameInput').focus();
            }
    if ($('usernameInput')) {
        $('usernameInput').addEvents({
                    keydown: function (event) {
                        if (event.key == 'enter') {
                            if (!$('usernameInput').hasClass('dndD')) {
                                var entername = $('usernameInput').get('value').clean();
                                a_value = $('usernameProfSp').get('html').clean();
                                if (entername == a_value) {
                                //same value no save
                                    $('usernameInput').addClass('dndD');
                                    $('usernameProf').removeClass('dndD');
                                    $('editProf').removeClass('dndD');
                                }
                                else if (entername != a_value) {
                                //going to save
                                    counterenter = counterenter + 1;
                                    handleSaveforBlurEnter();
                                    
                                }
                            }
                        }
                    },
                    'blur': function () {
                        if (!$('usernameInput').hasClass('dndD')) {
                            var blurname = $('usernameInput').get('value').clean();
                            a_value = $('usernameProfSp').get('html').clean();
                            if (blurname == a_value) {
                                //same value no save
                                $('usernameInput').addClass('dndD');
                                $('usernameProf').removeClass('dndD');
                                $('editProf').removeClass('dndD');
                            }
                            else if (blurname != a_value) {
                                //going to save
                                counterblur = counterblur + 1;
                                   handleSaveforBlurEnter();
                            }
                        }
                    }
                });
            }
           }

           // Function for more labels on the left - Ariana
           function lblLeftMore(y) {

               if ($('lblLeft').hasClass('dnd')) {
                   $('lblLeft').fade('in');
                   $('lblLeft').removeClass('dnd');
                   $('lblNumberSp').set('html', LEFT_LESS);
                   $('lblNumberSp').set('icon', 'more_off');
               }
               else {
                   $('lblLeft').fade('out');
                   $('lblLeft').addClass('dnd');
                   $('lblNumberSp').set('html', y + ' ' + LEFT_MORE);
                   $('lblNumberSp').set('icon', 'more_on');
               }
           }
           function FollowLeftMore(y) {

               if ($('lblLeftFollowing').hasClass('dnd')) {
                   $('lblLeftFollowing').fade('in');
                   $('lblLeftFollowing').removeClass('dnd');
                   $('lblFollowingNumberSp').set('html', LEFT_LESS);
                   $('lblFollowingNumberSp').set('icon', 'more_off');
               }
               else {
                   $('lblLeftFollowing').fade('out');
                   $('lblLeftFollowing').addClass('dnd');
                   $('lblFollowingNumberSp').set('html', y + ' '+ LEFT_MORE);
                   $('lblFollowingNumberSp').set('icon', 'more_on');
               }
           }

           //#Open pop-ip window for changing profile pic
           function openUploadpop() {
               if ($('dv_change_pic')) {
                   PicFB = new Facebox({
                       url: '/user/views/upload.aspx',
                       width: 400,
                       height: 200,
                       title: P_CHANGE_PROFILE_PICTURE,
                       submitValue: T_UPLOAD,
                       submitFunction: function () {
                           Notify.spinnerOn('Loading', 'Still loading', 5);
                           $i('framePhotoUpload').getElementById('formPhotoUpload').submit();
                       },
                       cancelValue: T_CANCEL,
                       cancelFunction: function () {
                           PicFB.close();
                       }
                   });
                   PicFB.show();
               }
           }
