var resize_timer = 0;
var search_timer = 0;
var search_button_timer = 0;
var allow_search = true;
var user_id = 0;

function getTopFrame() {
    return this;
}

function showVideoControlsComplete(xmlreply) {
    if (document.getElementById('video_controls_left_div').style.display == '') {
       document.getElementById('video_controls_left_div').innerHTML = xmlreply.responseText;
    } else {
        document.getElementById('video_controls_right_div').innerHTML = xmlreply.responseText;
    }
    videoLoadComplete();
}

function showVideoControls(url) {
    var callback = {
        success: showVideoControlsComplete,
        failure: function() {},
        argument: { }
    };

    var show_back_btn = '';
    if (document.getElementById('video_controls_left_div').style.display == '') {
        show_back_btn = '1';
    }
    var request = YAHOO.util.Connect.asyncRequest('GET', 'play_video_nav.php?show_back_button=' + escape(show_back_btn) + '&orig_url=' + escape(url), callback);
}

function reloadHeader() {
    var callback = {
        success: function(xmlreply) { document.getElementById('header').innerHTML = xmlreply.responseText; },
        failure: function() {},
        argument: { }
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "header_nav.php", callback);
}

function ensureLoggedIn(url) {
    if (user_id == 0) {
        showLogin(url);
        return false;;
    }
    return true;
}

function showLogin(url) {
    hidebox();
    if (url == undefined) url = '';
    //document.getElementById('wrapper_frame').src = 'login.php';
    showPopup('Login', "ajax_funcs.php?mode=LOGIN&url=" + escape(url));
}

function showRegister() {
    hidebox();
    //document.getElementById('wrapper_frame').src = 'register.php';
    showPopup('Register', "ajax_funcs.php?mode=REGISTER");
}

function genericReply(xmlreply) {
    if (xmlreply.status == Http.Status.OK) {
        if (xmlreply.responseText == 'LOGIN') {
            showLogin();
        } else {
            alert(xmlreply.responseText);
        }
    }
}

function replacebox(xmlreply) {
    if (xmlreply.status == Http.Status.OK) {
        if (xmlreply.responseText == 'LOGIN') {
            showLogin();
        } else {
            setbox(xmlreply.responseText);
        }
    }
}

// get it to load again
function commentVideoBoxComplete(xmlreply) { commentVideo(xmlreply.argument.url); }

function addToPlaylist(url) {
    showPopup('Add to playlist', "ajax_funcs.php?mode=add_to_playlist_html&url=" + escape(url));
}

function flagInappropriate(url) {
    showPopup('Flag Inappropriate', "ajax_funcs.php?mode=FLAG_INAPPROPRIATE&url=" + escape(url));
}

function inviteFriends() {
    showPopup('Invite Friends', "ajax_funcs.php?mode=INVITE_FRIENDS");
}

function showPopup(title, url) {
    setDragBoxTitle(title);
    showboxloading();
    centerbox();
    showbox();

    var callback = {
        success: replacebox,
        failure: replacebox,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}

function sendFeedback() {
    showPopup('Send Feedback', "ajax_funcs.php?mode=SEND_FEEDBACK");
}

function sendFeedbackBox(frm) {
    var msg = frm.message.value;
    if (msg == '') return;
    hidebox();
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };
    var request = YAHOO.util.Connect.asyncRequest('POST', "ajax_funcs.php?mode=SEND_FEEDBACK_BOX", callback, "message=" + escape(msg));
}

function flagInappropriateBox(frm) {
    var msg = frm.message.value;
    var url = frm.url.value;
    if (msg == '') return;
    hidebox();
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };
    var request = YAHOO.util.Connect.asyncRequest('POST', "ajax_funcs.php?mode=FLAG_INAPPROPRIATE_BOX", callback, "url=" + escape(url) + "&message=" + escape(msg));
}

function inviteFriendsBox(frm) {
    var em = frm.email.value;
    var msg = frm.message.value;
    if (em == '') return;
    hidebox();
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };
    var request = YAHOO.util.Connect.asyncRequest('POST', "ajax_funcs.php?mode=INVITE_FRIENDS_BOX", callback, "email=" + escape(em) + "&message=" + escape(msg));
}

function addCommentBox(frm, url) {
    var callback = {
        success: commentVideoBoxComplete,
        failure: commentVideoBoxComplete,
        argument: { url: url }
    };

    var comment = frm['comment'].value;
    hidebox();

    var request = YAHOO.util.Connect.asyncRequest('POST', "ajax_funcs.php?mode=CVB&url=" + escape(url), callback,  "comment=" + escape(comment));
}

function addShareBox(frm, url) {
    var to_email = frm['to_email'].value;
    var message = frm['message'].value;
    if (to_email == '') {
        alert('Email is required.');
        return;
    }

    hidebox();
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { url: url }
    };

    var request = YAHOO.util.Connect.asyncRequest('POST', "ajax_funcs.php?mode=SVB&url=" + escape(url), callback,  "to_email=" + escape(to_email) + "&message=" + escape(message));
}

function addToPlaylistBox(frm, url) {
    var playlist_id = frm['existing_playlist'].value;
    var playlist_name = frm['new_playlist'].value;
    var playlist_category = frm['playlist_category'].value;

    if (playlist_id == '' && playlist_name == '') return;
    if (playlist_id == '' && playlist_name != '' && playlist_category == '') return;

    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    hidebox();
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=AP&url=" + escape(url) + "&playlist_name=" + escape(playlist_name) + "&playlist_id=" + escape(playlist_id) + "&playlist_category=" + escape(playlist_category), callback);
}

function addToFavorites(url) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=AF&url=" + escape(url), callback);
}

function addToInterests(id) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=addToInterests&id=" + escape(id), callback);
}

function subscribeToPlaylist(id) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=subscribeToPlaylist&id=" + escape(id), callback);
}

function addToFavoritesChannel(chan) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=AFC&chan=" + escape(chan), callback);
}

function loadRecentSearches() {
    showPopup('Recent Searches', "ajax_funcs.php?mode=recent_searches");
}

function commentVideo(url) {
    showPopup('Comment', "ajax_funcs.php?mode=CV&url=" + escape(url));
}

function shareVideo(url) {
    showPopup('Share', "ajax_funcs.php?mode=SV&url=" + escape(url));
}

function rateVideo(url, rate) {
    showPopup('Rate', "ajax_funcs.php?mode=RVB&rate=" + escape(rate) + "&url=" + escape(url));
}

function rateUser(uid, rate) {
    showPopup('Rate', "ajax_funcs.php?mode=RUB&rate=" + escape(rate) + "&uid=" + escape(uid));
}

function addToFriends(uid) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=AB&uid=" + escape(uid), callback);
}

function joinFanClub(fid) {
    var callback = {
        success: genericReply,
        failure: genericReply,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax_funcs.php?mode=JFC&fid=" + escape(fid), callback);
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function playVideoComplete(xmlreply) {
    eval(xmlreply.responseText);
}

function playVideo(url) {
    if (url == undefined) url = '';

    var callback = { success: playVideoComplete, failure: function() { }, argument: { } };
    var request = YAHOO.util.Connect.asyncRequest('GET', 'play_video.php?url=' + escape(url), callback);
}

function ensureRightFrame(ignore_blank) {
    hidebox();

    var call_resize = false;

    // hide the left video controls and call resize frames
    var d = document.getElementById('video_controls_left_div');
    if (d.style.display == '') {
        d.style.display = 'none';
        d.innerHTML = '';
        call_resize = true;
    }

    d = document.getElementById('full_screen_div');
    if (d.style.display == '') {
        d.style.display = 'none';
        d = document.getElementById('full_screen_iframe');
        d.src = 'blank.html';
    }

    var d = document.getElementById('video_frame_real');
    if (d) {
        // play a video in the right frame
        if (!ignore_blank && d.src.indexOf('blank.html') >= 0) {
            playVideo();
        }

        // check to see if we've already done this before
        if (document.getElementById('left_content_div').style.width == '65%') return;

        document.getElementById('left_content_div').style.width = '65%';
        document.getElementById('right_content_div').style.display = '';
        document.getElementById('right_content_div').style.visibility = '';
    }
    if (call_resize) resizeFrames();
}

function showBigIframe() {
    d = document.getElementById('full_screen_div');
    d.style.display = '';
}

function loadFullExternal(url) {
    hideRightFrame();
    showBigIframe();
    document.getElementById('full_screen_iframe').src = url;
}

function hideRightFrame(hide_left_vid_controls) {
    hidebox();

    // called when we're hiding the right frame to display a video in the left nav
    document.getElementById('video_controls_left_div').style.display = hide_left_vid_controls ? 'none' : '';

    var d = document.getElementById('right_content_div');
    if (d) {
        if (d.style.display == 'none') return;

        document.getElementById('video_frame_real').src = 'blank.html';
        d.style.display = 'none';
        document.getElementById('left_content_div').style.width = '100%';

        // blank this out so when user gets back the old text isn't there
        document.getElementById('video_controls_right_div').innerHTML = '';
    }
    resizeFrames();
}

function getDocumentDimensions() {
    // firefox
    var w = 0;
    var h = 0;
    if (self.innerWidth) {
        w = self.innerWidth;
        h = self.innerHeight;
    } else {
        if (document.documentElement) {
            w = document.documentElement.clientWidth;
            h = document.documentElement.clientHeight;
        }
        if (w == 0) {
            w = document.body.clientWidth;
            h = document.body.clientHeight;
        }
    }

    return {'w': w, 'h': h};
}



// brought over from main index page
function doSearch(phrase) {
    hidebox();
    var frm = document.forms['search_form'];
    frm.k.value = phrase;
    submitFrm(frm);
}

function showSearch() {
    document.getElementById('showimage').style.width = '500px';
    loadRecentSearches();
}

function goURL(obj, url, sel) {
    ensureRightFrame();
    markSel(sel);
    hidebox();

    if (!ensureLoggedIn(url)) return false;

    obj.href = url;

    return true;
}

function updateCategoryPage(obj, idd) {
    document.getElementById('search_field').focus();
    ensureRightFrame();
    markSel('guide');
    obj.href = 'search.php?cat_id=' + escape(idd);
    hidebox();
}

function updateInterestPage(obj, idd) {
    document.getElementById('search_field').focus();
    ensureRightFrame();
    markSel('fanclub');
    obj.href = 'fanclub.php?icat_id=' + escape(idd);
    hidebox();
}

function updatePlaylistPage(obj, idd) {
    document.getElementById('search_field').focus();
    ensureRightFrame();
    markSel('playlists');
    obj.href = 'playlist.php?pcat_id=' + escape(idd);
    hidebox();
}

function updateQuickNav() {
    document.getElementById('search_field').focus();
    ensureRightFrame();
    markSel('mytv');
    hidebox();
}

function refreshBrowserSize() {
    if (resize_timer != 0) self.clearTimeout(resize_timer);

    resize_timer = self.setTimeout('refreshBrowserSizeComplete()', 250);
}

function resizeFrames(d) {
    if (!d) d = getDocumentDimensions();

    var head_foot = 101;
    if (!document.getElementById('footer')) head_foot -= 30;

    var nh = d.h - head_foot;
    document.getElementById("content").style.height = nh + 'px';

    if (document.getElementById('video_controls_left_div').style.display == '') {
        nh -= 35;
        if (nh < 0) nh = 0;
    }
    document.getElementById('wrapper_frame').style.height = nh + 'px';

    // right video frame
    var p = document.getElementById('player_div');
    if (p) {
        nh = d.h - head_foot - 240;
        if (nh < 0) nh = 0;
        p.style.height = nh + 'px';

        // fix the most popular width
        p = document.getElementById('banner_ad_div');
        nh = d.w * 0.35;
        //p.style.width = nh + 'px';

        p = document.getElementById('most_popular_div');
        nh -= 30;  // for left/right scroll
        if (nh < 0) nh = 0;
        p.style.width = nh + 'px';
    }

    // resize full screen iframe
    p = document.getElementById('full_screen_iframe');
    nh = d.h - 80;
    if (nh < 0) nh = 0;
    p.style.height = nh + 'px';
}

function refreshBrowserSizeComplete(onsuccess) {
    if (resize_timer != 0) self.clearTimeout(resize_timer);
    resize_timer = 0;

    d = getDocumentDimensions();
    resizeFrames(d);

    if (!onsuccess) onsuccess = function() { };
    var callback = {
        success: onsuccess,
        failure: onsuccess,
        argument: { }
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', 'resized.php?browser_w=' + d.w + '&browser_h=' + d.h + '&rnd=' + Math.random(), callback);
}


// header options
var menus = ['guide', 'fanclub', 'playlists', 'admin', 'people', 'mytv'];
function markSel(what) {
    var d;
    for (var i = 0; i < menus.length; i++) {
        d = document.getElementById(menus[i] + '_menu');
        if (d && d.className != 'menu') d.className = 'menu';
    }
    if (what) {
        d = document.getElementById(what + '_menu');
        if (d && d.className != 'menu menu_sel') d.className = 'menu menu_sel';
    }
}

function submitFrm(frm) {
    if (frm['k'].value == '') return;
    if (!allow_search) return;

    var sel = frm['search_type'].value;
    if (sel == 'video') frm.action = 'search.php';
    else if (sel == 'people') frm.action = 'people.php';
    else if (sel == 'playlist') frm.action = 'playlist.php';
    else if (sel == 'fanclub') frm.action = 'fanclub.php';

    markSel();

    ensureRightFrame();

    allow_search = false;
    search_button_timer = self.setTimeout('enableSearchButton()', 3000);

    frm.submit();
}

function enableSearchButton() {
    if (search_button_timer > 0) {
        self.clearTimeout(search_button_timer);
        search_button_timer = 0;
    }
    allow_search = true;
}



function beginSearchSuggest() {
    // start search suggest
    if (search_timer != 0) self.clearTimeout(search_timer);
    search_timer = self.setTimeout('doSearchSuggest()', 50);
    return true;
}

function cancelSearchSuggest() {
    // cancel the timer and close search suggest
    if (search_timer != 0) self.clearTimeout(search_timer);
    search_timer = 0;
    return true;
}

function doSearchSuggest() {
    if (search_timer != 0) self.clearTimeout(search_timer);
    search_timer = 0;

    var frm = document.forms['search_form'];
    if (frm.k.value == '') {
        clearSearchDropContent();
        return;
    }

    var scrptE = document.createElement("script");
    scrptE.setAttribute("type", "text/javascript");
    scrptE.setAttribute("language", "JavaScript");
    scrptE.setAttribute("src", "http://suggestqueries.google.com/complete/search?nolabels=t&hl=en&ds=yt&client=suggest&json=t&jsonp=doSearchSuggestComplete&q=" + escape(frm.k.value));
    document.getElementsByTagName("head")[0].appendChild(scrptE);
}

function doSearchSuggestComplete(val) {
    clearSearchDropContent();

    if (val.length < 2) return;

    var d = document.getElementById('searchDropContent');
    for (var i = 0; i < val[1].length; i++) {
        var cc = escapeJS(val[1][i]);
        var dd = document.createElement('DIV');
        var aa = document.createElement('A');
        aa.href = "javascript:doSearch('" + cc + "')";
        var tt = document.createTextNode(val[1][i]);
        aa.appendChild(tt);
        dd.appendChild(aa);
        d.appendChild(dd);
    }
}

function clearSearchDropContent() {
    var d = document.getElementById('searchDropContent');
    while(d.lastChild) d.removeChild(d.lastChild);
}


/// scroll stuff for player div
var scroll_timer = 0;
var scroll_speed = 0;
var scroll_how = '';

function startPopularScroll(how) {
    scroll_how = how;
    scroll_speed = 75;
    scroll_timer = self.setTimeout('scrollIt()', scroll_speed);
}
function setScrollSpeed(w) {
    scroll_speed = w;
}
function scrollIt() {
    window.clearTimeout(scroll_timer);
    var d = document.getElementById('most_popular_div_content');
    var l = d.style.left;
    l = parseInt(l.substring(0, l.length - 2));

    // get width of this object
    var dv = document.getElementById('most_popular_div');
    var dw = dv.style.width;
    dw = parseInt(dw.substring(0, dw.length - 2));

    var dow = d.offsetWidth;

    if (scroll_how == 'left' && (dw - dow - l) >= 0) return;
    if (scroll_how == 'right' && l >= 0) return;

    l = l + (scroll_how == 'right' ? 5 : -5);
    d.style.left = l + 'px';
    scroll_timer = self.setTimeout('scrollIt()', scroll_speed);
}
function stopPopularScroll(how) {
    if (scroll_timer > 0) {
        window.clearTimeout(scroll_timer);
        scroll_timer = 0;
    }
}

/* add this stuff */
var addthis_pub  = 'poputlal';
var  addthis_url   = '';
var  addthis_title = '';

function addthis_click(obj, str){

 var aturl  = 'http://www.addthis.com/bookmark.php';
 aturl += '?v=10';
 aturl += '&pub='+addthis_pub;
 aturl += '&url='+encodeURIComponent(addthis_url);
 aturl += '&title='+encodeURIComponent(addthis_title);

 window.open(aturl,'addthis','scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100');


 return false;
}
