// MM_reloadPage: reloads the window if Nav4 resized
(function(init) {
     if (init == true) {
         with (navigator) {
             if ((appName == 'Netscape') && (parseInt(appVersion) == 4)) {
                 document.MM_pgW = innerWidth;
                 document.MM_pgH = innerHeight;
                 onresize = MM_reloadPage;
             }
         }
     } else if (innerWidth != document.MM_pgW || innerHeight != document.MM_pgH) {
         location.reload();
     }
 })(true);

(function() {
     var unloadWarnings = [];

     function noticePageMove() {
         alert(unloadWarnings.join('\n'));
     }

     function confirmPageMove(event) {
         event = event || window.event;
         return event.returnValue = unloadWarnings.join('\n');
     }

     window.addBeforeUnloadMessage = function(msg) {
         unloadWarnings.push(msg);
         if (unloadWarnings.length == 1) {
             if (window.opera) {
                 window.addEventListener('unload', noticePageMove, false );
             } else {
                 // fx(etc)
                 if (window.addEventListener) {
                     window.addEventListener('beforeunload', confirmPageMove, false );
                 // ie
                 } else if (window.attachEvent) {
                     window.attachEvent('onbeforeunload', confirmPageMove);
                 }
             }
         }
     };
     window.removeBeforeUnloadMessage = function(msg) {
         if (msg) {
             for (var i=0; i < unloadWarnings.length; i++) {
                 if (msg == unloadWarnings[i]) {
                     unloadWarnings.splice(i, 1);
                     break;
                 }
             }
         } else {
             unloadWarnings.pop();
         }
         if (unloadWarnings.length == 0) {
             if (window.opera) {
                 window.removeEventListener("unload", noticePageMove, false);
             } else {
                 // fx(etc)
                 if (window.addEventListener) {
                     window.removeEventListener("beforeunload", confirmPageMove, false);
                 // ie
                 } else if (window.attachEvent) {
                     window.detachEvent("onbeforeunload", confirmPageMove);
                 }
             }
         }
     };
 })();

function setRememberCookieNew(elementName) {
    var remAutoCheckbox = document.getElementById(elementName);

    if (remAutoCheckbox == undefined) {
        return;
    }
    if (remAutoCheckbox.checked) {
        var d = new Date();
        var expire = d.getTime() + (7 * 1000 * 60 * 60 * 24);
        d.setTime(expire);
        var expires = d.toGMTString();
        document.cookie = 'rememberauto=1; expires=' + expires + '; path=/;';
    } else {
        // remove auto login remember cookie
        document.cookie = 'rememberauto=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/;';
    }
}

function clearBox(box) {
    if (box.value == box.defaultValue) {
        box.value = '';
    }
}

// the following code opens new window if it does not already exist
// If it is already opened, the window will be brought into focus
popupWins = new Array();
function windowOpener(url, name, args) {
    /* the popupWins array stores an object reference for each separate window that is called, based upon the name attribute that is supplied as an argument */
    if (typeof popupWins[name] != 'object') {
        popupWins[name] = window.open(url, name, args);
    } else {
        if (popupWins[name].closed){
            popupWins[name] = window.open(url, name, args);
        }
    }
    popupWins[name].focus();
}
function MM_openBrWindow(theURL, winName, features) { //v2.0
    windowOpener(theURL, winName, features);
}

function refreshPage() { // ExternalInterface
    location.href = document.URL;
}

function get_cookie(Name) {
    var ck = document.cookie;
    var ck_tmp = ck.split(';');

    for (var i = 0; i < ck_tmp.length; i++) {
        var ar = ck_tmp[i].split('=');
        if (Name == ar[0].replace(' ', '')) {
            return ar[1];
        }
    }

    return '';
}

function deleteMyProfileCookie() {
    var today = new Date();
    today.setYear( today.getYear() - 1 );
    document.cookie = 'myProfile=;expires=' + today.toGMTString();
}

function logoutScript() {
    var f = document.getElementById('logoutForm');
    deleteMyProfileCookie();
    f.submit();
}

function headerBtns() {
    if (!Stickam.hasAuthCookie()) {
        document.getElementById('loginButton').innerHTML = '<a href="javascript:void(0);" id="j_login_btn" class="btn-login">ログイン</a>';
        document.getElementById('mypageButton').innerHTML = '<a href="/signup" class="btn-join">新規会員登録</a>';
        document.getElementById('liveButton').innerHTML = '<a href="javascript:void(0);" onClick="alert(\'ライブを開始するにはログインが必要です\')">ライブ開始</a>';

        if (get_cookie('myProfile') != '') {
            deleteMyProfileCookie();
        }
    } else {
        document.getElementById('loginButton').innerHTML = '<form id="logoutForm" action="/logout" method="POST"><input id="token" type="hidden" name="token" value="' + get_cookie('token') + '" /><a href="javascript:logoutScript()" class="btn-logout">ログアウト</a></form>';
        document.getElementById('mypageButton').innerHTML = '<a href="/mypage" class="btn-mypage">マイページ</a>';
        jQuery('#liveButton')
            .html('<a>ライブ開始<\/a>')
            .click(function() {
                       var success = false;
                       jQuery.ajax({type: 'GET',
                                    url: '/mypage/getUserProfile',
                                    async: false,
                                    cache: false,
                                    success: function(data) {
                                        var jObj = eval('(' + data + ')');
                                        var jasrac_report = jObj.messageAlert[0].jasrac_live_record_alert;
                                        if (9 < jasrac_report) {
                                            location.href = '/live/report';
                                        } else {
                                            success = true;
                                        }
                                    }});
                       if (success) {
                         var strScrollbarsOption = '';
                         if (window.screen.height < 630) {
                            strScrollbarsOption = 'scrollbars=yes,';
                         }
                           MM_openBrWindow('/chat', 'host', strScrollbarsOption + 'resizable=yes,width=550,height=630');
                       }
                   });
    }
}

function change_btn(type, sta) {
    switch (type) {
    case 'login':
        document.getElementById('login-btn').style.backgroundPosition = (sta == 'over') ? '0 -25px' : '0 0';
        break;
    case 'member':
        document.getElementById('header-member-search').style.backgroundPosition = (sta == 'over') ? '-135px -35px' : '0 -35px';
        break;
    case 'video':
        document.getElementById('header-video-search').style.backgroundPosition = (sta == 'over') ? '-180px -35px' : '-45px -35px';
        break;
    case 'image':
        document.getElementById('header-image-search').style.backgroundPosition = (sta == 'over') ? '-225px -35px' : '-90px -35px';
        break;
    }
}

function submitSearch(mediaType) {
    // Double submit prevent
    document.getElementById('header-member-search').disabled = true;
    document.getElementById('header-video-search').disabled = true;
    document.getElementById('header-image-search').disabled = true;

    var keyword = document.getElementById('headerSearch').search_keyword.value;
    var f;
    if (mediaType == 'user') {
        f = document.getElementById('headerMemberSearch');
    } else {
        f = document.getElementById('headerMediaSearch');
        f.media_type.value = mediaType;
    }
    f.keyword.value = keyword;
    f.submit();
}

function embedSWF(swfUrl, id, flashvars, params, attributes, opt) {
    if (typeof swfobject == 'undefined') {
        alert('writeSWF: invalid swfobject');
        return;
    }
    if (!swfUrl) {
        alert('writeSWF: invalid swfUrl');
        return;
    }
    if (!id) {
        alert('writeSWF: invalid id');
        return;
    }
    if (document.domain.indexOf('stickam.jp') == -1 && id.indexOf('external') == -1) {
        alert('writeSWF: missing "external"');
    }
    if (!flashvars) {
        flashvars = {};
    }
    if (!params) {
        params = {};
    }
    if (!attributes) {
        attributes = {};
    }
    if (typeof attributes.width == 'undefined') {
        attributes.width = '100%';
    } else if (!/^\d+%$/.test(attributes.width)) {
        attributes.width = parseInt(attributes.width);
    }
    if (typeof attributes.height == 'undefined') {
        attributes.height = '100%';
    } else if (!/^\d+%$/.test(attributes.height)) {
        attributes.height = parseInt(attributes.height);
    }
    if (!opt) {
        opt = {};
    }
    if (typeof opt.version == 'undefined') {
        opt.version = '9.0.115';
    }
    if (typeof opt.expressInstallSwfurl == 'undefined') {
        opt.expressInstallSwfurl = '/lib/swfobject/expressinstall.swf';
    }

    var element = jQuery(typeof id == 'string' ? '#' + id : id);
    if (!swfobject.hasFlashPlayerVersion('6.0.65') && element.children().size() == 0) {
        jQuery(document.createElement('a'))
            .attr('href', 'http://get.adobe.com/jp/flashplayer/')
            .text('Adobe Flash Playerをダウンロード')
            .appendTo(element);
    }
    swfobject.embedSWF(swfUrl,
                       id,
                       attributes.width,
                       attributes.height,
                       opt.version,
                       opt.expressInstallSwfurl,
                       flashvars,
                       params,
                       attributes);
}

function getMyProfileCookie(isPremium) {

    var setUserMenu = function(arr, isPremium) {
        var screen_name    = arr[0];
        var profile_image  = arr[1];
        var profile_url    = arr[2];
        var unreadMessages = arr[3];

        var textHtml = '';

        if (!jQuery.cookie('token')) {
            textHtml = '<p>こんにちは、ゲストさん</p>';
        } else {
            if (isPremium) {
                textHtml = '<p><a href="' + profile_url + '">' + screen_name + '</a>さん</p>';
            } else {
                textHtml = '<p>こんにちは、<a href="' + profile_url + '">' + screen_name + '</a>さん</p><a name="mail" class="mail" href="/message/">' + unreadMessages + '</a>';
            }
        }
        jQuery('#user-menu').html(textHtml);
    };


    var myProf = jQuery.cookie('myProfile');
    if (myProf) {
        // valid
        setUserMenu(myProf.split('&'), isPremium);
        return false;
    } else {
        jQuery.get('/mypage/getUserData', {unique: Math.random()},
                   function(data) {
                       data = eval('(' + data + ')');
                       var arr = new Array();
                       if (data.loggedIn === 'true') { // loggedIn is String(not Boolean)
                            arr = [data.user.screen_name,
                                   data.user.profile_image,
                                   data.user.profile_url,
                                   data.user.unreadMessages];
                            jQuery.cookie('myProfile', arr.join('&'),
                                          {expires: new Date(new Date().getTime() + 120 * 1000), path: '/'});
                       }
                       setUserMenu(arr, isPremium);
                   });
    }
    return true;
}

var Stickam = {
    hasAuthCookie: function() {
        if (jQuery.cookie('token')) {
            return true;
        }
        if (jQuery.cookie('auto')) {
            return true;
        }
        return false;
    },
    login : function() {
        if (jQuery('#j_login_btn').length) {
            jQuery('#loginbox').dialog({
                autoOpen: false,
                title: 'ログイン',
                width: 380,
                modal: false,
                draggable: false,
                close: function() {
                    jQuery('embed, object, #openchatSwitch').css('visibility', 'visible');
                }
            });

            jQuery('#j_login_btn').click(function() {
                jQuery('embed, object, #openchatSwitch').css('visibility', 'hidden');
                jQuery('#loginbox').dialog('open');
            });

            jQuery('#tabs').tabs();
        }
    },
    sticker : {
        add : function() {
            jQuery.ajax({  
                url : "/news/getSticker",  
                dataType : "xml", 
                success : function(xml){
                    jQuery(xml).find('item').each(function(){  
                        var title = jQuery(this).find('headline').text();  
                        var url   = jQuery(this).find('link').text();  
                        jQuery('#stickerList').append('<li class="stickerList-in"><a href="' + url + '" target="_blank">' + title + '</a></li>');
                    });  

                    jQuery('#nextBtn').click(function(){
                        Stickam.sticker.next(1);
                    });

                    jQuery('#backBtn').click(function(){
                        Stickam.sticker.before();
                    });

                    //スクロールのタイマー
                    Stickam.sticker.auto();
                }
            });
        }
    },
    headerBanner : function() {
        var headbn = [
            '<a href="/bnrRedirect.html?bnrUrl=http%3a%2f%2fwww%2eetimestech%2ejp%2frecruit%2ehtml" target="_blank"><img src="/images/ja/ads/recruit.gif" alt="StickamJAPAN!開発者募集!" /></a>',
            '<a href="/bnrRedirect.html?bnrUrl=%2fcampaign%2fmovieking%2ehtml"><img src="/images/ja/ads/top_movieking_468.gif" alt="MOVIE KING" /></a>',
            '<a href="/bnrRedirect.html?bnrUrl=%2fabout%2ftvinfo_hd%2ehtml"><img src="/images/ja/ads/tvinfo_hd.jpg" alt="スティッカムTV HD配信" /></a>',
            '<a href="/bnrRedirect.html?bnrUrl=%2fproducts%2fmobileappli%2ehtml"><img src="/images/ja/ads/top_mobilebanner.jpg" alt="iPhoneでスティッカムしよう！" /></a>'
        ];
        document.write(headbn[Math.floor(Math.random() * headbn.length)]);
    }
};

(function(){
    var dbclick = 0;
    var stickerMoveAuto;

    var auto = function (){
        stickerMoveAuto = setInterval(function(){
            Stickam.sticker.next();
        }, 7 * 1000);
    }
    Stickam.sticker.auto = auto;

    var next = function(flag) {
        if(dbclick){
            return false;
        } else {
            if(flag){
                clearInterval(stickerMoveAuto);
                Stickam.sticker.auto();
            }
            dbclick = 1;

            var text = jQuery('.stickerList-in:first').html();

            jQuery("#stickerList").animate({"left": "-=370px"}, 500 , function(){
                jQuery('#stickerList').append('<li class="stickerList-in">' + text + '</li>');
                jQuery('.stickerList-in:first').remove();
                jQuery("#stickerList").animate({"left": "+=370px"}, 0 , function(){
                    dbclick = 0;
                });
            });
        }
    };
    Stickam.sticker.next = next;

    var before = function() {
        if(dbclick){
            return false;
        } else {
            dbclick = 1;

            var text = jQuery('.stickerList-in:last').html();

            jQuery('.stickerList-in:last').remove();
            jQuery('#stickerList').prepend('<li class="stickerList-in">' + text + '</li>');
            jQuery("#stickerList").animate({"left": "-=370px"}, 0).animate({"left": "+=370px"}, 500 , function(){
                dbclick = 0;
            });
        }
    };
    Stickam.sticker.before = before;
})();

