﻿//Develop:Shlomi[NoCheck] Date:02/09/2009 18:42:38 Ticket:
var statusManager = {
    statusId: 'spnStatus', statusDateId: 'spnStatusDate', statusContainer: null, lastStatus: null, nowText: null,
    init: function(info) {
        statusManager.lastStatus = info.status;
        statusManager.statusContainer = info.statusContainer;
        statusManager.nowText = info.now;
    },
    initShare: function() {
        $('txtStatusBox').observe('keyup', function(event) {
            var event = event || window.event;
            var key = event.keyCode || event.charCode;

            if ((key == 32) || (key == 13)) {
                statusManager.getLink(event, $('txtStatusBox').value)
            }
        });
    },
    getLink: function(event, url) {
        var event = event || window.event;
        var key = event.keyCode || event.charCode;
        var muRegex = new RegExp('((www\.|(http|https|ftp)+\:\/\/)[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])', 'gi');
        var urlMatch = muRegex.exec(url);
        if ((urlMatch != null) && (urlMatch.length > 0)) {
            statusManager.loadLink(urlMatch[0]);
        }
    },
    status: function(statusText) {
        if (!statusManager.lastStatus) {
            statusManager.init(statusInfo);
        }
        var status = statusText;
        if ((status != null) && (trim(status).length > 0) || statusManager.isUrlLoaded) {
            if (status != statusManager.lastStatus) {
                $(statusManager.statusContainer).show();
                //$('dvStatusUpdateBtn').setStyle({ color: '#ccc' });
                statusManager.lastStatus = status;
                $('txtStatusBox').disabled = true;
                $('txtStatusBox').addClassName('loader-active');

                var postBody = {};
                postBody.Status = status;

                //console.log('*** dir - statusManager ***');
                //console.dir(statusManager);

                if ((statusManager.isUrlLoaded) && (statusManager.urlInfo.valid)) {
                    postBody.url = statusManager.urlInfo.url;
                    postBody.title = statusManager.urlInfo.title;
                    postBody.description = statusManager.urlInfo.description;
                    if (statusManager.showThumb) {
                        if (statusManager.urlInfo.thumbs.length > 0) {
                            postBody.imgSrc = statusManager.urlInfo.thumbs[statusManager.imgIdx];
                        }
                    }
                }
                //$.ajax('SetMemberStatus', { postBody: postBody, onSuccess : function(response){ statusManager.display(response) }});
                $.json('Status', { postBody: postBody, onSuccess: function(json, state) { statusManager.display(json) } });
                statusManager.closeLink();
            }
        }
    }, statusCount: 1,
    display: function(json) {
        var status = json.status;
        //objStatus.getHTML('AjaxForm');                
        this.statusCount++;
        if ($('dvFeedClusterMainPageFeeds')) {
            var statusDiv = document.createElement("div");
            statusDiv.style.display = "none";
            var newId = "FeedRender_" + this.statusCount;
            statusDiv.setAttribute("id", newId);
            $(statusDiv).update(json.control);
            //statusDiv.innerHTML = json.control;
            //objStatus.getHTML('FeedRender');                        
            var fc = $('dvFeedClusterMainPageFeeds').firstChild;
            $('dvFeedClusterMainPageFeeds').insertBefore(statusDiv, fc);
            //$(newId).appear({ duration: 1.0 });                                                
            Effect.SlideDown(newId, { duration: 0.6 });
        }
        $(statusManager.statusId).innerHTML = status;
        $(statusManager.statusDateId).innerHTML = statusManager.nowText;
        window.setTimeout(function() {
            $('txtStatusBox').removeClassName('loader-active');
            //$('dvStatusUpdateBtn').setStyle({ color: '#000' });
            $('txtStatusBox').value = '';
        }, 200);
        $('txtStatusBox').disabled = false;
        //$('counter-txtStatusBox').innerHTML = "160";        
        //Effect.SlideUp('dvLinkShareContainer', { duration: 0.5 });
        $(statusManager.statusId).morph('background:#FFFF99;', { afterFinish: function() {
            $(statusManager.statusId).morph('background:#E3F1FB;');
        }
        });

        $('dvLinkBtnContainer').hide();
    },
    isLoadingLink: false, urlInfo: null, imgIdx: 0, isUrlLoaded: false, showThumb: true,
    closeLink: function() {
        $('dvStatusShareLink').hide();
        $('dvLinkShareContainer').hide();
        statusManager.isLoadingLink = false;
        statusManager.urlInfo = null;
        statusManager.imgIdx = 0;
        statusManager.isUrlLoaded = 0;
        $('dvLinkAddConatiner').show();
        $('dvLinkBtnContainer').hide();

    },
    loadLink: function(url) {
        if ((this.isLoadingLink) || (statusManager.isUrlLoaded)) {
            return;
        }

        $('dvLinkShareContainer').show();
        $('dvLinkAddConatiner').hide();
        $.json('ShareLink', { postBody: { Status: url }, loader: 'dvStatusShareLinkLoader', onSuccess: function(json, state) {
            statusManager.urlInfo = json;
            $('spnStatusURLTitle').innerHTML = statusManager.urlInfo.title;
            $('spnStatusURLDescription').innerHTML = statusManager.urlInfo.description;
            $('spnStatusURLAddress').innerHTML = statusManager.urlInfo.url;
            if (statusManager.urlInfo.thumbs.length == 0) {
                statusManager.setImageDisplay(true);
            } else {
                statusManager.setImg(statusManager.imgIdx);
            }
            Effect.SlideDown('dvStatusShareLink', { duration: 0.5 });
            statusManager.isUrlLoaded = true;


        }
        });
    },
    img: function(forward) {
        if (statusManager.urlInfo.thumbs.length == 0) {
            return;
        }
        statusManager.imgIdx += 1 * (forward ? 1 : -1);
        if ((forward) && (statusManager.imgIdx == statusManager.urlInfo.thumbs.length)) {
            statusManager.imgIdx = 0;
        } else if (statusManager.imgIdx < 0) {
            statusManager.imgIdx = statusManager.urlInfo.thumbs.length - 1;
        }
        statusManager.setImg(statusManager.imgIdx);
    },
    showImgIdx: function() {
        $('StatusShareImgIdx').innerHTML = statusManager.imgIdx + 1;
        $('StatusShareImgCount').innerHTML = statusManager.urlInfo.thumbs.length;
    },
    setImg: function(idx) {

        if (statusManager.urlInfo.thumbs.length == 1) {
            $('dvStatusShareImgPaging').hide();
        }

        if (statusManager.urlInfo.type == 2) { /* Is Video */
            $('dvHideImages').hide();
            $('dvStatusShareImage').show();

        }

        if (idx > -1) {
            if ($('imgStatusShareURL').style.display == 'none') {
                $('imgStatusShareURL').show();
            }
            statusManager.showImgIdx();
            $('imgStatusShareURL').setAttribute('src', statusManager.urlInfo.thumbs[idx]);
            //$('imgStatusShareURL').src = statusManager.urlInfo.thumbs[idx];

        } else {
            $('imgStatusShareURL').hide();
        }
    },
    checkthumb: function() {
        var noImage = $('chkStatusShareNoImage').checked;
        if (noImage) {
            statusManager.showThumb = false;
        } else {
            statusManager.showThumb = true;
        }
        statusManager.setImageDisplay(false);
    },
    setImageDisplay: function(removeCheck) {
        if (removeCheck) {
            $('dvHideImages').hide();
            statusManager.showThumb = false;
        }
        if (statusManager.showThumb) {
            $('dvStatusShareImgPaging').show();
            statusManager.setImg(statusManager.imgIdx);
        } else {
            $('dvStatusShareImgPaging').hide();
            statusManager.setImg(-1);
        }
    },
    viewedVideoCount: 1,
    playVideo: function() {
        if (statusManager.urlInfo.type == 2) {

            //PlayVideoFromFeed(statusManager.urlInfo.params.youtubeid, $('dvStatusShareImageContainer'));

            //alert('statusManager.urlInfo.params.youtubesource : ' + statusManager.urlInfo.params.youtubesource);

            //return;
            //dvStatusShareImageContainer                                                                                                                                                                                                                                                                                                       
            statusManager.viewedVideoCount++;

            var divId = "VideoStatusShareObj" + statusManager.viewedVideoCount;


            var params = { allowScriptAccess: 'always', movie: 'src', quality: 'high', scale: 'exactfit', wmode: 'transparent', bgcolor: '#999999', allowfullscreen: 'true' };
            var attributes = { id: divId, name: "VideoObj" };

            //var elementUp = $(el).up('.feed-msg-middle');    
            //var newId = "feedMsgMiddle_" + viewedVideoCount;    
            //$(elementUp).writeAttribute("id", newId);

            swfobject.embedSWF(statusManager.urlInfo.params.youtubesource, newId, "425", "350", "9.0.0", "expressInstall.swf", {}, params, attributes);
        }
    },
    IskeysPressed: function(event, arrKeys) {
        var event = event || window.event;
        var key = event.keyCode || event.charCode;
        for (var i = 0; i < arrKeys.length; i++) {
            if (Number(arrKeys[i]) == Number(key)) {
                return true;
            }
        }
        return false;
    }
};  

