/* AJAX Announcements 1.0.1 */
/* Licenced for #replacement_domain# */

var send_update_announce = null, updInterval = 5000;

function AJAX_Announcements_init(content_container, tabs_container)
{
    var i,
        tabs_block;

    this.tabs_container = YAHOO.util.Dom.get(tabs_container); // Tabs Container
    
    this.content_container = YAHOO.util.Dom.get(content_container); // Content Container
    
    this.tab_count = 0;
    
    tabs_block = YAHOO.util.Dom.getElementsByClassName("tabs_block", "li", tabs_container);

    if(!tabs_block.length){return;}
    if(tabs_block.length)
    {
         console.log("TabCtrl :: Found %d tabs", tabs_block.length);
         for(i = 0; i < tabs_block.length; i++)
         {
              this.tab_count++;
         }
         this.tab_element = this.tabs_container; //[HTMLliElement]
         
         this.tabs = this.tab_element.getElementsByTagName("li");
         this.selected_tab_id = tabs_block[0].getAttribute("id");
         
         YAHOO.util.Dom.setStyle(this.selected_tab_id, "border-left", "0px");
         
         console.log("TabCtrl :: First tab ID: ", tabs_block[0].getAttribute("id"));
         
         func_update_announcement(this.selected_tab_id.substr(9), this.content_container);

         YAHOO.util.Dom.setStyle(this.tab_element, "height", this.tabs[0].offsetHeight + "px");
         
         for(i = 0; i < this.tab_count; i++)
         {
              this.tabs[i].setAttribute("fixed_width", this.tabs[i].offsetWidth);
              YAHOO.util.Dom.setStyle(this.tabs[i], "width", this.tabs[i].getAttribute("fixed_width") + "px");
         }

         if(is_ie && !is_ie7) // STUPID Burro! Internet Explorer :hover BUG fix (fodes!)
         {
              this.content_container.onmouseover = function()
              {
                   this.className = this.className.replace(' content_container', '');
                   this.className += ' stupid_ie_hover';
              }
              this.content_container.onmouseout = function()
              {
                   this.className = this.className.replace(' stupid_ie_hover', '');
                   this.className += ' content_container'; 
              }
         }
    }
}

function func_update_announcement(messageid, content_container)
{
     var i, collect_li_tabs, objLiTab, li_tabs_array = new Array();

     if(YAHOO.util.Connect.isCallInProgress(send_update_announce))
     {
         YAHOO.util.Connect.abort(send_update_announce);
     }
     this.announce_divcontainer = YAHOO.util.Dom.get(content_container);
    
     this.messageid = messageid;

     collect_li_tabs = fetch_tags(fetch_object('krtabs'), 'li');
     for(i = 0; i < collect_li_tabs.length; i++)
     {
         if(collect_li_tabs[i].id)
         {
              li_tabs_array.push(collect_li_tabs[i].id.substr(9));
         }
     }
    
     this.init = function()
     {    
         announce_divcontainer.innerHTML = 'Wait...';
         var d = new Date();
         this.time = d.getTime() + Math.ceil(Math.random() * updInterval);
         this.sUrl = krannounce_bburl + '/ajax.php';
         this.postData = 'do=krannounce&messageid=' + this.messageid + '&securitytoken=' + SECURITYTOKEN + '&t=' + time + '&tabidsarray=' + li_tabs_array;
         this.handleSuccess = function(ajax)
         {
            if(ajax.responseXML !== undefined)
            {
                if(fetch_tag_count(ajax.responseXML, 'announcements'))
                {
                    var announce = ajax.responseXML.documentElement.getElementsByTagName("announce"),
                    announceid = ajax.responseXML.documentElement.getElementsByTagName("aid"),
                    aid = parseFloat(announceid[0].childNodes[0].nodeValue);
                    announce_divcontainer.innerHTML = announce[0].childNodes[0].nodeValue;
                    for(i = 0; i < collect_li_tabs.length; i++)
                    {
                         if(collect_li_tabs[i].id)
                         {
                             collect_li_tabs[i].className = 'tborder thead';
                             YAHOO.util.Dom.setStyle(collect_li_tabs[i], "background-position", "1px -4px"); 
                         }
                    }
                    objLiTab = fetch_object('kranntab_' + aid);
                    objLiTab.className = 'tborder tcat';
                    YAHOO.util.Dom.setStyle(objLiTab, "background-position", "1px -4px");
                }
                else
                {
                    var errors = ajax.responseXML.getElementsByTagName('error');
                    if(errors.length)
                    {
                        var error_html = '<ol>';
                        for(i = 0; i < errors.length; i++)
                        {
                           error_html += '<li>' + errors[i].firstChild.nodeValue + '</li>';
                        }
                        error_html += '</ol>';
                        if(announce_divcontainer)
                        {
                           announce_divcontainer.innerHTML = error_html;
                        }
                        return false;
                    }
                }
            }
        }
        this.handleFailure = function(ajax)
        {
            if(ajax.responseText !== undefined)
            {
                announce_divcontainer.innerHTML = 'AJAX Error!';
                console.warn("AJAX Error: Status = %s: %s", ajax.status, ajax.statusText);
                return false;
            }
        }
        this.callback =
        {
            success: handleSuccess,
            failure: handleFailure,
            timeout: vB_Default_Timeout,
            cache: false
        };
        this.send_update_announce = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
     }
     if(li_tabs_array !== '')
     {
         this.init();
     }
}

