Event.observe(window, 'load', execLoadFuncs);

var INIT_QUEUE = new Array();

INIT_QUEUE.push(setCurrentNav);
INIT_QUEUE.push(sifr);
INIT_QUEUE.push(setupMoreWinners);
INIT_QUEUE.push(setUpBlogModules);
INIT_QUEUE.push(setUpBlogManagement);

function execLoadFuncs() {
    for(var i = 0; i < INIT_QUEUE.length; i++) {
        INIT_QUEUE[i]();
    }
}

function setCurrentNav(event) {
    var nav = $('navigation');
    var loc = window.location.toString();
    var as = nav.select('a');
     
    var a;
    for(var i = 0; i < as.length; i++) {
        a = as[i];
        if(loc.indexOf(a.readAttribute('href'))>-1) {
            a.addClassName('current');
        }
    }
}

function sifr(event) {
    var h1 = $$('h1.sifr');
    var txt = '';
    for(var i = 0; i < h1.length; i++) {
        txt = h1[i].innerHTML;
        
        if(h1[i].id=="" || typeof h1[i].id == "undefined") {
            h1[i].id = "sifr_" + i;
        }
        swfobject.embedSWF('skins/'+_SKIN+'/swf/sifr.swf',h1[i].id,'300','30','8.0.0',null,{sifrText:txt},{wmode:'transparent'},{styleClass:'sifr'});
    }
}

var mwIndex = 500;
function setupMoreWinners() {
    var a = $("more_winner_videos");
    
    if(a) {    
        var mwl = $("morewinnerslist");
        if(mwl) {
            var winners = mwl.select('div.thumbnail');
       
            if(winners.length<=9) {
                a.style.display = 'none';
            } else {        
                getMoreWinners();
            }        
        }
        a.onclick = function() { return false };
        a.observe('click', getMoreWinners);
    }
}

function getMoreWinners() {
    var mwl = $("morewinnerslist");
    var winners = mwl.childElements();

    mwIndex+=12;
    if(mwIndex>=winners.length) {
        mwIndex = 0;
    }    
    
    for(var i=0; i < winners.length; i++) {
        if(i >= mwIndex && i < mwIndex + 12) {
            winners[i].style.display = 'block';
        } else {
            winners[i].style.display = 'none';
        }        
    }
}

var blogSliderComplex;
var commSliderComplex;

function setUpBlogModules() {
    var e = $("blog_entries");
    var c = $("blog_comments");
    
    if(e) blogSliderComplex = setUpScroller(e,10);
    if(c) commSliderComplex = setUpScroller(c,30);
    
    setupCommentBox();
}
    
function setUpScroller(c, pad) {
    var m = c.select("div.blog_module")[0];
    var i = m.select("div.entries")[0];
    var s = c.select("div.scroller")[0];
    
    if(i.getHeight() < m.getHeight()) {
        return;
    }
    
    if(typeof s == "undefined") {
        var scr = new Element('div',{'class':'scroller'});
        var scrElements = '<div class="scr_arrow scr_up"><a href="#"></a></div><div class="scr_trck"><div class="scr_hndl"></div></div><div class="scr_arrow scr_down"><a href="#"></a></div>';
        scr.innerHTML = scrElements;
        s = m.insert(scr);
    }
    
    var contentHeight = (m.getHeight()-i.getHeight() - pad);
    
    var t = s.select('div.scr_trck')[0];
    var h = s.select('div.scr_hndl')[0];
    var u = s.select('div.scr_up')[0];
    var d = s.select('div.scr_down')[0];
    
    var slider = new Control.Slider(h,t,{axis:'vertical',
      onSlide:function(v){i.style.top=(v*contentHeight)+'px'},
      onChange:function(v){i.style.top=(v*contentHeight)+'px'}
      });
    
    var sliderComplex = new Object();    
    sliderComplex.DOMMouseScrollFunc = function(ev) { wheel(ev, slider,contentHeight); };
    sliderComplex.mousewheelFunc = function(ev) { wheel(ev, slider,contentHeight); };
    sliderComplex.upArrowPressFunc = function(ev) { handle(.5,slider,contentHeight) };
    sliderComplex.downArrowPressFunc = function(ev) { handle(-.5,slider,contentHeight) };
    
    sliderComplex.sliderObject = slider;
    sliderComplex.sliderDiv = s;
    sliderComplex.wheelListenerObject = c;
    sliderComplex.content = i;
    
    // mozilla
    c.observe('DOMMouseScroll', sliderComplex.DOMMouseScrollFunc );
    // IE/Opera
    c.observe('mousewheel', sliderComplex.mousewheelFunc );
    
    u.observe('mousedown', sliderComplex.upArrowPressFunc );
    d.observe('mousedown', sliderComplex.downArrowPressFunc );
    u.onclick = d.onclick = function() { return false; };
    
    return sliderComplex;
}

function setupCommentBox() {
    var ct = $("comment_toggle");
    if(ct) {
        ct.onclick = function() {
            var b = $("blog_comments");
            
            var m = b.select("div.blog_mask")[0];
            var s = $("blog_comments").select("div.scroller");
            var c = $("commentbox");                
            var t = $("comment_toggle");
            
            if(m.style.display == "none") {
                t.innerHTML = "Post a Comment";
                c.style.display = "none";
                m.style.display = "block";
                if(s.length>0) s[0].style.display = "block";
            } else {
                t.innerHTML = "Read Comments";
                c.style.display = "block";
                m.style.display = "none";
                if(s.length>0) s[0].style.display = "none";
            }
            return false;
        }
    }
    
    var cform = $("frmComment");
    if(cform) {
        cform.onsubmit = function() {
            var huid = $("hdn_user_id");
            if(typeof huid == 'undefined') {
                return false;
            }
            
            var url = _BASE + 'data/interface.php?cb=' + Math.random();
            // notice the use of a proxy to circumvent the Same Origin Policy.                    
            var post = '<BigShotLive format="json"><BlogCommentRequest>';
            post += '<user_id>'+huid.value+'</user_id>';
            post += '<comment>'+$('comment').value+'</comment>';
            post += '</BlogCommentRequest></BigShotLive>';
            $('comment').value = '';                    
            new Ajax.Request(url, {
              method: 'post',
              contentType: 'text/xml',
              postBody: post,
              onSuccess: function(transport) {
                var comment_container = $("comments");                       

                var responseObject = transport.responseJSON;                                                
                var comment_entries = comment_container.childElements();
                
                for(var i=0;i<comment_entries.length;i++) {
                    comment_entries[i].remove();
                }
                
                for(var i=0;i<responseObject.length;i++) {
                    var c = responseObject[i].comment;
                    
                    var div = new Element('div');
                    var h4 = new Element('h4');
                    var p = new Element('p');
                    h4.insert(c.firstname);
                    p.insert(c.description);
                    div.addClassName('comment_entry');
                    div.insert(h4);
                    div.insert(p);                            
                    
                    comment_container.insert(div);
                }
                //var div = new Element('div');
                //div.addClassName = "pagination";
                //div.insert('<a href="#previous">Previous</a> <a href="#next">Next</a>');
                //comment_container.insert(div);
                
                
                ct.onclick();
                destroySlider(commSliderComplex);
                setUpScroller($("blog_comments"),30);
              }
            });
            return false;
        }
    }
}


function destroySlider(complex) {
    if(typeof complex=="undefined") {
        return;
    }
    //Kill the scroll wheel listeners   
    var c = complex.wheelListenerObject;
    c.stopObserving('DOMMouseScroll', complex.DOMMouseScrollFunc);
    c.stopObserving('mousewheel', complex.mousewheelFunc);
    
    //Reset the content to position 0.
    complex.content.style.top = '0px';
        
    //Kill the scriptaculous slider object
    complex.sliderObject.dispose();
    
    //Remove the scrollbar
    //complex.sliderDiv.remove();
}

function handle(delta, slider, listHeight) {
    slider.setValueBy(delta * (24/listHeight));
    return false;
}

/** Event handler for mouse wheel event. */
function wheel(event, slider, listHeight){
   var delta = 0;
   if (!event) /* For IE. */
      event = window.event;
   if (event.wheelDelta) { /* IE/Opera. */
      delta = event.wheelDelta/120;

   if (window.opera)
      delta = -delta;
   } else if (event.detail) { /** Mozilla case. */
      delta = -event.detail/3;
   }
   if (delta)
      handle(delta, slider,listHeight);
      
   if (event.preventDefault)
      event.preventDefault();

   event.returnValue = false;
}
function setUpBlogManagement() {
    var view = $$('button.btn_view');
    var edit = $$('button.btn_edit');
    var dele = $$('button.btn_delete');
    var canc = $$('button.btn_cancel');
    var uflg = $$('button.btn_unflag');
    
    for(var i=0;i<view.length;i++) {
        view[i].observe('click', function() { window.location=_BASE + this.attributes.getNamedItem('value').value });
    }
    for(var i=0;i<edit.length;i++) {
        edit[i].observe('click', function() { window.location=_BASE + this.attributes.getNamedItem('value').value });
    }
    for(var i=0;i<dele.length;i++) {
        dele[i].observe('click', function() { if(confirm('Are you sure you want to delete this entry?')) window.location=_BASE + this.attributes.getNamedItem('value').value });
    }
    for(var i=0;i<canc.length;i++) {
        canc[i].observe('click', function() { window.location=_BASE + this.attributes.getNamedItem('value').value });
    }
    for(var i=0;i<uflg.length;i++) {
        uflg[i].observe('click', function() { if(confirm('Are you sure you want to unflag this comment?')) window.location=_BASE + this.attributes.getNamedItem('value').value });
    }
}