function hasClass(object, className) {
    if (!object.className) return false;
    return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
}



function removeClass(object,className) {
    if (!object) return;
    object.className = object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'), RegExp.$1+RegExp.$2);
}



function addClass(object,className) {
    if (!object || hasClass(object, className)) return;
    if (object.className) {
        object.className += ' '+className;
    } else {
        object.className = className;
    }
}



function isParentOrSelf(element, id) {
    if (element == null || element.nodeName=='BODY') return false;
    else if (element.id == id) return true;
    else return isParentOrSelf(element.parentNode, id);
}



function GetElementsWithClassName(elementName,className) {
    var allElements = document.getElementsByTagName(elementName);
    var elemColl = new Array();
    for (var i = 0; i< allElements.length; i++) {
        if (hasClass(allElements[i], className)) {
            elemColl[elemColl.length] = allElements[i];
        }
    }
    return elemColl;
}




function cornerFix() {
    corners = GetElementsWithClassName('b','cn');
    for (var i = 0; i < corners.length; i++) {
        if (hasClass(corners[i],'bl') || hasClass(corners[i],'br')) {
            if (corners[i].style.marginBottom == '1px') {
                corners[i].style.marginBottom = '0';
                corners[i].style.bottom = '-1px';
            } else {
                corners[i].style.marginBottom = '1px';
                corners[i].style.bottom = '-2px';
            }
        }
    }
}


function changePanes(scope,newPane) {
    if (!newPane) return;
    panes = GetElementsWithClassName('div',scope+'-sub');
    for (var i = 0; i < panes.length; i++) {
        panes[i].style.display = 'none';
    }
    document.getElementById(scope+'-'+newPane).style.display = 'block';
    if (navigator.userAgent.indexOf('Safari') > 0) cornerFix();
}


function subTab(scope,newTab) {
    if (!newTab) return;
    tabs = GetElementsWithClassName('*','activetab');
    for (i = 0; i < tabs.length; i++) {
        if (isParentOrSelf(tabs[i],scope+'-tabs')) {
            removeClass(tabs[i],'activetab');
        }
    }
    obj = document.getElementById(scope+'tab-'+newTab);
    addClass(obj,'activetab');
    obj.focus;
    changePanes(scope,newTab);

}


function searchUpdateKW(){ // Copy search contents into advanced options fields
    kw = document.getElementById("kw-search");
    kw_advanced = document.getElementById("advanced_all");
    cos = document.getElementById("link_posts");
    tags = document.getElementById("showposts");
    if (kw)
    {
        if (kw_advanced) kw_advanced.value = kw.value;
        if (cos) cos.value = kw.value;
        if (tags) tags.value = kw.value;
    }
}


function searchOptions(action) {
    if (action == 'on') {
        obj1 = document.getElementById('searchoptions');
        obj2 = document.getElementById('search');
        // searchUpdateKW();
    } else {
        obj1 = document.getElementById('search');
        obj2 = document.getElementById('searchoptions');
    }
    obj1.style.display = 'block';
    obj2.style.display = 'none';

}



function signIn(action) {
    if (!action) return;
    x = document.getElementById('member');
    y = document.getElementById('signin');
    switch (action) {
        case 's':
            x.style.display = 'none';
            y.style.display = 'block';
            document.getElementById('username').focus();
        break;
        case 'x':
            x.style.display = 'block';
            y.style.display = 'none';
        break;
        default:
            return false;
        break;
    }
}


/* For submitting login form on Enter in IE
---------------------------------------------------------------*/

function ieLogin(leSoup){
    if(document.all && window.event && window.event.keyCode ==13) leSoup.form.submit()
    }

// -----=====-----



/* For homepage Whats Hot Toggling and Cookie Monstering
---------------------------------------------------------------*/

function hotToggle(){
    if(document.getElementById("whatsup")){
        if(document.getElementById("whatsup").className == "box open")
            {
                hotCorners(0);
                setCookie("hp-wh-state","0",365,".technorati.com");
            }
        else
            {
                hotCorners(1);
                setCookie("hp-wh-state","1",365,".technorati.com");
            }
    }
}


function hotCorners(i){
    if(document.getElementById("whatsup")){
        if(i == 0) {
            if(document.getElementById("whatsup").className != "box")
                { document.getElementById("whatsup").className = "box"; }
            }
        else {
            if(document.getElementById("whatsup").className != "box open")
                { document.getElementById("whatsup").className = "box open"; }
        }
    }
    cornerFix();

}

function hotTab(tab){
    hotCorners(1);
    cornerFix();
    setCookie("hp-wh-state","1",365,".technorati.com");
    setCookie("hp-wh-tab",tab,365,".technorati.com");
}



function setCookie(cookieName,cookieValue,nDays,domain) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString()
                 + ";domain=" + domain;
}


// -----=====-----




/* For staff page
---------------------------------------------------------------*/

function showPerson(person)
    {
        document.getElementById("bio_" + selected_staffID).className = "bio";
        document.getElementById("bio_" + person).className = "bio selected";
        selected_staffID = person;
    }


// -----=====-----




/* Google Ads
----------------------------------------------------------------- */

  // This function displays the ad results.
  // It must be defined above the script that calls show_ads.js
  // to guarantee that it is defined when show_ads.js makes the call-back.

  function google_ad_request_done(google_ads) {

    // Proceed only if we have ads to display!
    if (google_ads.length < 1 )
      return;

    document.write("<style type=\"text/css\">div#sponsors {display:block}</style>");

    // For text ads, display each ad in turn.
    // In this example, each ad goes in a new row in the table.
    if (google_ads[0].type == 'text') {
      document.write("<ul>");
      for(i = 0; i < google_ads.length; ++i) {
        document.write("<li>" +
          "<a href=\"" +  google_ads[i].url + "\">" +
          "<h3>" + google_ads[i].line1 + "</h3>" +
          "<p>" + google_ads[i].line2 + " " +
          google_ads[i].line3 +
          "<span class=\"adurl\">" +
          google_ads[i].visible_url +
          "</span></p></a></li>");
      }
      document.write("</ul>");
    }

    // For an image ad, display the image; there will be only one .
    if (google_ads[0].type == 'image') {
      document.write("<p><a href=\"" + google_ads[0].url + "\"style=\"text-decoration: none\">" +
        "<img src=\"" + google_ads[0].image_url +
        "\" height=\"" + google_ads[0].height +
        "\" width=\"" + google_ads[0].width +
        "\" border=\"0\"></a></p>");
    }

    // Print "Ads By Google" -- include link to Google feedback page if available
    if (google_info.feedback_url) {
      document.write("<p><a class=\"adsbygoogle\" href=\"" + google_info.feedback_url +
        "\">Ads by Google</a></p>");
    } else {
      document.write("<p>Ads By Google</p>");
    }

  }

// -----=====-----



/* For Sample Tag Link Box
--------------------------------------------------------------------------------*/

function toggleTagLink(o){
    if(o)
        {
            document.getElementById("taglink").style.display = "block";
        }
    else
        {
            document.getElementById("taglink").style.display = "none";
        }
}
// -----=====-----



/* For Claim Config
-------------------------------------------------------------------------------- */


    var checks = new Array("te_p","te_s","te_lh","te_vp");

    function embedOpt(t,id){
        if (t.checked == true){ document.getElementById(id).style.display = "block"; }
        else if (t.checked == false) { document.getElementById(id).style.display = "none"; }

        var checkedCount = 0;
        for (i=0;i<checks.length;++i){
            id = "c_" + checks[i];
            if (document.getElementById(id).checked == true)
                {
                    checkedCount++;
                }
            }
        if (checkedCount == 0)
            {
                document.getElementById("showtech").checked = false;
                document.getElementById("embedconfig").className = "embed_off";
                embedCheck(0);
            }
    }


    function embedTog(t){
        if (t.checked == true)
            {
            document.getElementById("embedconfig").className = "";
            embedCheck(1);
            for (i=0;i<checks.length;++i){
            }


            }
        else if (t.checked == false)
            {
            document.getElementById("embedconfig").className = "embed_off";
            embedCheck(0);
            }
    }


    function embedCheck(z){
        var state = "";
        var disabled = "";

        if(z == 0)
            {
            state = false;
            disabled_state = true;
            }
        else if (z == 1)
            {
            state = true;
            disabled_state = false;
            }

        for (i=0;i<checks.length;++i){
            id = "c_" + checks[i];

            document.getElementById(id).checked = state;
            document.getElementById(id).disabled = disabled_state;

            if(state == true)
            {
                pid = checks[i];
                document.getElementById(pid).style.display = "block";
            }

        }
    }
// -----=====-----




/* Page Load
-------------------------------------------------------------------------------- */

// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
// Adds to the window.onload event

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


addLoadEvent(function() {
    //if (document.getElementById("sponsors")) document.getElementById("sponsors").style.display = "block";
    if (navigator.userAgent.indexOf('Safari') > 0) cornerFix();
});
// -----=====-----
