var flashCall = false;
var myFlashProxy ;
var tabView;
var otherTab = null;
//to know if otherTab exist

var renderedPopups = new Array();
var popupsToKill = new Array();


var WFPOSTinited = false;
var flashWritten = false;
var localAddr;
// Tab state 0-logged in home widget,1-logged in foreign widget,2-logged out,3-starter state
var isFieldsCleared = false;
var current_blog_id;
var current_blogger_id;
var current_comment_id;
var current_subcomment_id=null;
var current_blipbooth_id;
var current_session_id;
var current_widget_type;
var current_widget_design;
var randomFlashAntiCacheParam;
var currentComment = null;
var viewedWidgetUsername;
/* EVENTS*/
// Fires when blipback flash widget is loaded
var eventBlipbackWidgetLoaded = new YuiCustomEvent("eventBlipbackWidgetLoaded");
var eventBlipbackWidgetBeforeLoaded = new YuiCustomEvent("eventBlipbackWidgetBeforeLoaded");

var tabsLoadedEvent = new YAHOO.util.CustomEvent("tabsLoadedEvent");



//tants
var BLIPBACK={};
BLIPBACK.TOM_GREEN_WIDGET_ID=9782;
BLIPBACK.CLASSIC_WIDGET="CLASSIC_VIEWS";
BLIPBACK.TOM_GREEN_WIDGET="CLASSIC_VIEWS_TOMGREEN";
//BLIPBACK.KASEI_WIDGET_ID=130951;//local
BLIPBACK.KASEI_WIDGET_ID=698585;//dev
BLIPBACK.KASEI_WIDGET="CLASSIC_VIEWS_KASEI";

function FlashLogout() {
	if (flashExist()){
		try{
			getBlipbackWidgetInterface().JSLogout();
		} catch (e){
			
		}
	}
	window.location="/actions/logoutMain.action";
}
function FlashLogin(sessionId) {
    var sess = document.getElementById('sessionIdHid');
    sess.value = sessionId;
    var button = document.getElementById('login_0');
    button.click();
    //    dojo.byId('submitLogon').click();
    flashCall = true;
}
//FLASH CHECKER FUNCTIONS
//***********************************************************
function YuiCustomEvent(name) {
    this.name = name;
    // define a custom event
    this.event1 = new YAHOO.util.CustomEvent(name, this);
}
function TestData(data) {
    this.data = data;
}

function writeFlashFirstTime(url) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            //var myObject = o.responseText.parseJSON();
            var myObject = YAHOO.lang.JSON.parse(o.responseText);
            writeFlash(myObject.blogId, myObject.sessionId, myObject.bloggerId, myObject.commentId,
                    myObject.subCommentId, myObject.flashType,myObject.randomParam,myObject.flashPath);

        }
    };
    var handleFailure = function(o) { };
    var callback = {success:handleSuccess,failure:handleFailure};
    var cObj = YAHOO.util.Connect.asyncRequest('GET', url, callback);
};
function updateFlash(blog_id, comment_id,sub_comment_id,reload_source) {

    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            //var myObject = o.responseText.parseJSON();
            var myObject = YAHOO.lang.JSON.parse(o.responseText);
            viewedWidgetUsername = myObject.blogUsername;
            writeFlash(myObject.blogId, myObject.sessionId, myObject.bloggerId, myObject.commentId,
                    myObject.subCommentId, myObject.flashType,myObject.randomParam,myObject.flashPath);
            refreshTabLabel();
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {

        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure
    };
    if (blog_id == current_blog_id) {

        if(sub_comment_id==null){
            callToASJumpToComment(comment_id);
        }else{
            callToASJumpToSubComment(comment_id,sub_comment_id);
        }
        current_comment_id = comment_id;
        current_subcomment_id = sub_comment_id;
        current_blog_id = blog_id;
    } else
    {
        setWaitingToPublicPage();
        
        if (reload_source == true) {
            if (current_comment_id == null) {
                if (comment_id == null) {
                    var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/viewFlash.action?blogId=" + blog_id, callback);
                } else {
                    var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/viewFlash.action?blogId=" + blog_id + "&commentId=" + comment_id, callback);
                }
            } else {
                var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/viewFlash.action?blogId=" + blog_id + "&commentId=" + current_comment_id, callback);
            }
        }
        else {
//            current_blog_id = blog_id;
//            current_comment_id =comment_id;


            //stub for slim version
            if(current_widget_design=="SLIM"){
                updateFlash (blog_id,comment_id,sub_comment_id,true);
            }
            else{
            	var updateContext=function(o){
            		if (o.responseText !== undefined) {
	                    //var myObject = o.responseText.parseJSON();
	                    var myObject = YAHOO.lang.JSON.parse(o.responseText);
	                    viewedWidgetUsername = myObject.blogUsername;
	                    refreshTabLabel();
	                }
            	}
                current_comment_id = comment_id;
                current_subcomment_id = sub_comment_id;
                current_blog_id = blog_id;
                var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/viewFlash.action?blogId=" + blog_id + "&commentId=" + current_comment_id, {success:updateContext});
                getBlipbackWidgetInterface().reinitializeFromJavaScript();
            }
            updateSubscribeButton();
        }

    }

}
function writeFlash(blogId, sessionId, bloggerId, commentId, subCommentId,widgetType,randomParam,flashPath) {
	var innerWhere = document.getElementById('widget');
    if (innerWhere == null) {
        // trying account.jsp page
        innerWhere = document.getElementById('innerFlashWrapper');
    }
    //url="/swf/index.swf";
    var url;
    url =flashPath+ "/swf/index.swf?random="+randomParam;
    if (widgetType == "SLIM") {
        url = flashPath+"/slim/index.swf?random="+randomParam;
    }
    if (blogId == null) {
        return;
    }
    if (blogId == BLIPBACK.TOM_GREEN_WIDGET_ID) {
        url = flashPath+"/swf/index.swf?random="+randomParam+'&widget_type=CLASSIC_VIEWS_TOMGREEN';
    }else if (blogId == BLIPBACK.KASEI_WIDGET_ID) {
        url = flashPath+"/swf/index.swf?random="+randomParam+'&widget_type=CLASSIC_VIEWS_KASEI';
    }else {

    }
    var blogIdOnForm = document.getElementById('settingsBlogId');
    blogIdOnForm.value = blogId;
    var flashVars = 'on_site=1&random='+randomParam;

    var whatWrite = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ' +
                    'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"';
    if (widgetType != "SLIM") {
        whatWrite += 'id="game"  height="385" width="450">';    }
    else {
        whatWrite += 'id="game"  height="310" width="271">';
    }
    current_blog_id = blogId;
    current_comment_id = commentId;
    current_session_id = sessionId;
    current_blogger_id=  bloggerId;
    current_subcomment_id=subCommentId;
    current_widget_design=widgetType;
    whatWrite = whatWrite + '<param name="allowScriptAccess" value="always"/>' +
                '<param name="allowNetworking" value="all"/>' +
//                '<param name="allowFullScreen" value="true"/>' +
                '<param name="movie" value="' + url + '"/>' +
                '<param name="quality" value="best"/>' +
                '<PARAM NAME="MAYSCRIPT" VALUE="true">' +
                '<param name="wmode" value="opaque"/>' +
                '<param name="play" value="true">' +
                '<param name="scale" value="noscale"/>' +
                '<param name="FlashVars"' +
                'value="' + flashVars +
                '"/>' +
                '<embed id="gameEmbed" src="' + url +
                '" quality="best" scale="noscale"' +
                '       wmode="opaque"' +
                'name="game" align="left" MAYSCRIPT="true" swLiveConnect="true"' +
                'allowNetworking="all" allowFullScreen="true" AllowScriptAccess="always" type="application/x-shockwave-flash "' +
                'FlashVars="' + flashVars + '"' +
                'pluginspage="http://www.macromedia.com/go/getflashplayer"';
    if (widgetType != "SLIM") {
        whatWrite += ' height="385" width="450"';
    } else {
        whatWrite += ' height="310" width="271"';
    }
    whatWrite = whatWrite + '/>' +
                '</object> ';
    innerWhere.innerHTML = whatWrite;

    evtFlashLoadedTopic.event1.fire(null);
    if (widgetType == "SLIM") {
        eventBlipbackWidgetLoaded.event1.fire("SLIM");
    } else {
        eventBlipbackWidgetLoaded.event1.fire("FAT");

    }
}
function initFlashFromJavaScript(){
    if(current_blog_id==BLIPBACK.TOM_GREEN_WIDGET_ID){
        current_widget_type=BLIPBACK.TOM_GREEN_WIDGET;
    }else if(current_blog_id==BLIPBACK.KASEI_WIDGET_ID){
        current_widget_type=BLIPBACK.KASEI_WIDGET;
    }else{
        current_widget_type=BLIPBACK.CLASSIC_WIDGET;
    }
    var flash_params="";
        flash_params+= 'blog_id=' + current_blog_id;
        flash_params+= ',blogger_id=' + current_blogger_id;
        flash_params+= ',comment_id=' + current_comment_id;
        flash_params += ',session_id=' + current_session_id;
        flash_params += ',widget_type=' + current_widget_type;
        flash_params += ',band_event_name=null';
        flash_params+= ',sub_comment_id=' + current_subcomment_id;
    return flash_params;
//"blog_id=1208,blogger_id=null,comment_id=null,session_id=null"
}
function flashExist() {

    var flashExist = document.getElementById('game');
    return flashExist;

}
function loginRequest() {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            if (o.responseText.indexOf("headerSessionId") != -1) {
                window.location = "/actions/myaccount.action";
            }
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('login');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };
    var formObject = document.getElementById('logonForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/logonMain.action", callback);
    return false;
}
function logoutRequest(logoutUrl) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('login');
            myDiv.innerHTML = o.responseText;
            evtLogoutTopic.event1.fire(null);
            if (!flashCall) {
                if (flashExist())
                //                    myFlashProxy.call('JSLogout');
                    getBlipbackWidgetInterface().JSLogout();
            } else {
                flashCall = false;
            }
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('login');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };

    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/logout.action", callback);
    return false;
}
function FlashLoadedCons(evtFlashLoadedTopic) {
    this.evtFlashLoadedTopic = evtFlashLoadedTopic;


    this.evtFlashLoadedTopic.event1.subscribe(this.onFlashLoaded, this);

}
FlashLoadedCons.prototype.onFlashLoaded = function(type, args, me) {
    fixLayout();
};

function updateProfile(url) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            tabView.getTab(2).set('content', "");
            var tab = tabView.getTab(2).refresh();
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };
    var formObject = document.getElementById('userForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', url, callback);
    return false;
}
function refreshActiveTab(hardRefresh) {
    if (hardRefresh)
        tabView.get('activeTab').set('content', '');
    tabView.get('activeTab').refresh();

}
function selectAllText() {
    var targetCode = document.getElementById('widget-htmltextarea');
    if (targetCode)
    {
        targetCode.focus();
        targetCode.select();
    }
}
function keyPressedInLoginFields(e) {
    var keynum;
    if (window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    if (keynum == 13) {
        loginRequest();
    }

}

function popUp(URL, x, y) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=" + x + ",height=" + y + ",left = 440,top = 362');");
}

function popUpWithScrollbar(URL) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=0,width=400,height=300,left = 440,top = 362');");
}

function fixLayout() {

    var pos = YAHOO.util.Dom.getXY('main');
    YAHOO.util.Dom.setXY('flashWrapper', [(pos[0] + 440), (pos[1] + 45)]);

    /*    var footer = document.getElementById("footer");
    if (YAHOO.util.Dom.getDocumentHeight() > YAHOO.util.Dom.getViewportHeight()) {
        footer.style.position = "relative";
        footer.style.bottom = "";
    } else {
        footer.style.position = "absolute";
        footer.style.bottom = "0";
    }*/


}


function setLogoutTabs() {
    removeError();
}
function removeError() {
    if (document.getElementById('loginError')) {
        //        alert("logoutTabs");
        errs = YAHOO.util.Dom.getElementsByClassName("loginError", "div");
        for (i = errs.length; i > 0; i--) {
            el = errs[i - 1];
            el.parentNode.removeChild(el);
        }
        errs = YAHOO.util.Dom.getElementsByClassName("loginError", "div");
        //document.getElementById('loginError').parentNode.removeChild(document.getElementById('loginError'));
        logoutRequest(logoutUrl);
    }
}


function registerRequest() {

    if (!document.getElementById('old18').checked) {
    	//drawValidationMsg('old18', 'You must be over the age of 18 to use this site');
        //alert("You must be over the age of 18 to use this site");
        return false;
    }
    if(YAHOO.util.Dom.getElementsByClassName("instant_validation_err", "div").length > 0){
    	return false;
    }
    //    alert("@registerRequest");
    var handleSuccess = function(o) {
        if (o.responseText != 'ok') {
            var myDiv = document.getElementById('registerValidation');
            myDiv.innerHTML = o.responseText;
        } else {
            window.location = "/actions/linkValidationPage.action";
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('registerValidation');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure

    };
    var formObject = document.getElementById('registerForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/register.action", callback);
    return false;
}


function inviteRequest() {
    //    alert("@registerRequest");
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('inviteWrapper');
            myDiv.innerHTML = o.responseText;
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('inviteWrapper');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };
    var formObject = document.getElementById('inviteForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/sendToFriend.action", callback);
    return false;
}
function inviteRequestNewD() {
    //    alert("@registerRequest");
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('top_box');
            myDiv.innerHTML = o.responseText;
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('top_box');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };
    var formObject = document.getElementById('inviteForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/sendToFriendNew.action", callback);
    return false;
}
function contactusRequest() {

    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('top_box');
            myDiv.innerHTML = o.responseText;
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('top_box');
            myDiv.innerHTML = o.responseText;
        }
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure,
        argument: { foo:"foo", bar:"bar" }
    };
    var formObject = document.getElementById('contactusForm');
    YAHOO.util.Connect.setForm(formObject);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', "/actions/contactus.action", callback);
    return false;
}
function openLink(uri) {
    window.location = uri;
}
function cleartextlogin() {
    if (!isFieldsCleared) {
        document.getElementById("passwordLogin").value = "";
        document.getElementById("usernameLogin").value = "";
        isFieldsCleared = true;
    }
}
function selectRollTab(e, obj) {

    var handleSuccess = function(o) {

    };
    var handleFailure = function(o) {

    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    if (obj == "latest")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/ajaxSelectTab.action?tabSelected=TAB_SELECTED_LATEST", callback);
    else if (obj == "top")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/ajaxSelectTab.action?tabSelected=TAB_SELECTED_TOP", callback);
}

function selectFaq(e, obj) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('privacy');
            myDiv.innerHTML = o.responseText;
        }
    };
    var handleFailure = function(o) {

    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    if (obj == "what_can")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/faqwhatcanido.action", callback);
    else if (obj == "requirements")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/faqrequirements.action", callback);
    else if (obj == "blipbomb_what_can")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/blipbomb/faqwhatcanido.action", callback);
    else if (obj == "blipbomb_requirements")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/blipbomb/faqrequirements.action", callback);

}
function selectLegal(e, obj) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var myDiv = document.getElementById('privacy');
            myDiv.innerHTML = o.responseText;
        }
    };
    var handleFailure = function(o) {

    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    if (obj == "term")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/legalterm.action", callback);
    else if (obj == "privacy")
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/legalprivacy.action", callback);

}
function checkSelected(e, element_id)
{
    var selected_elements = YAHOO.util.Dom.getElementsByClassName("selected_item");
    for (i = 0; i < selected_elements.length; i++) {
        YAHOO.util.Dom.removeClass(selected_elements[i], "selected_item");
    }
    YAHOO.util.Dom.addClass(element_id, "selected_item");
    //    }
}

function jumpToURL(url) {
    window.location = url;
}
function loadPanel(comment_id) {

    clearPanel();
    myPanel = new YAHOO.widget.Panel("myPanel", {
        context:['moreUrlButton' + comment_id,"tl","bl"],
        width:"150px",
        underlay:"shadow",
        close:true,
        visible:false
    });

    myPanel.setHeader("Installed on ");
    var urls = document.getElementById('innerDiv' + comment_id);
    myPanel.setBody(urls.innerHTML);
    //    myPanel.setBody("<div class='popup_content'><a href='#'>www.myspace.com/teejay</a> <br><a href='#'>www.myspace.com/ssss...</a></div");
    myPanel.render(document.body);
    pausecomp(100);
    //safari hack
    myPanel.show();


}
function clearPanel() {
    if (document.getElementById("myPanel_c") != null)
        document.body.removeChild(document.getElementById("myPanel_c"));
}
function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;

    do {
        curDate = new Date();
    }
    while (curDate - date < millis);
}
function showBlipbombPlayer(commentId, withStats) {
    var embedString = '<embed src="/swf/blipBomb_player_v2.swf" flashvars="comment_id=' + commentId +
                      '" quality="high"' +
                      'bgcolor="#ffffff" width="201" height="187" name="blipbomb_player" align="middle"' +
                      'allowNetworking="all"' +
                      'AllowScriptAccess="always" wmode="transparent" type="application/x-shockwave-flash"' +
                      'pluginspage="http://www.macromedia.com/go/getflashplayer"/>';
    document.getElementById('innerFlash').innerHTML = embedString;
    currentComment = commentId;
    decorateActive();
    if (!withStats) {
        if (YAHOO.util.Dom.hasClass('thumb' + commentId, 'invisible_blank_class')) {
            var element = document.getElementById('outer_button_visibility_box');
            element.innerHTML = '<button style="float:left;" onclick="deleteCurrentComment();" class="button">Delete</button><div id="button_visibility_box"><button onclick="showCurrentComment();" class="button">Show</button></div>';
        } else {
            var element = document.getElementById('outer_button_visibility_box');
            element.innerHTML = '<button style="float:left;" onclick="deleteCurrentComment();" class="button">Delete</button><div id="button_visibility_box"><button onclick="hideCurrentComment();" class="button">Hide</button></div>';
        }
    } else {
        if (YAHOO.util.Dom.hasClass('statThumb' + commentId, 'invisible_blank_class')) {
            var element = document.getElementById('outer_button_visibility_box');
            element.innerHTML = '<button style="float:left;" onclick="deleteCurrentComment();" class="button">Delete</button><div id="button_visibility_box"><button onclick="showCurrentComment();" class="button">Show</button></div>';
        } else {
            var element = document.getElementById('outer_button_visibility_box');
            element.innerHTML = '<button style="float:left;" onclick="deleteCurrentComment();" class="button">Delete</button><div id="button_visibility_box"><button onclick="hideCurrentComment();" class="button">Hide</button></div>';
        }
    }

}

function playRecord(comment_id) {
    popUpWithScrollbar("/blipbomb/viewPlayer.action?" + "comment_id=" + comment_id);
}
function hideCurrentComment() {
    var comment = currentComment;
    if (currentComment != null) {
        var handleSuccess = function(o) {
            if (o.responseText !== undefined) {
                var element = document.getElementById('button_visibility_box');
                element.innerHTML = '<button class="button" onclick="showCurrentComment();">Show</button>';
                decorateInvisibility(comment);
            }
        };
        var handleFailure = function(o) {
        };
        var callback = {
            success:handleSuccess,
            failure:handleFailure
        };
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/blipbomb/hideComment.action?id=" + currentComment, callback);
    }
}
function showCurrentComment() {
    var comment = currentComment;
    if (currentComment != null) {
        var handleSuccess = function(o) {
            if (o.responseText !== undefined) {
                var element = document.getElementById('button_visibility_box');
                element.innerHTML = '<button class="button" onclick="hideCurrentComment();">Hide</button>';
                decorateVisibility(comment);
            }
        };
        var handleFailure = function(o) {
        };
        var callback = {
            success:handleSuccess,
            failure:handleFailure
        };
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/blipbomb/showComment.action?id=" + currentComment, callback);
    }
}
function deleteCurrentComment() {
    if (currentComment != null) {
        var handleSuccess = function(o) {
            if (o.responseText !== undefined) {

                refreshActiveTab(false);
                if (o.responseText != "none") {
                    currentComment = o.responseText;
                    var activeTabIndex = tabView.get('activeIndex');
                    if (activeTabIndex == 0)
                        showBlipbombPlayer(currentComment, true);
                    else if (activeTabIndex == 2)
                        showBlipbombPlayer(currentComment, false);
                    else
                        showBlipbombPlayer(currentComment, true);

                } else {
                    document.getElementById('innerFlash').innerHTML = '<img style="margin-bottom:-20px;" src="/blipbomb.com/img/blip_bomb_player_small.gif"/>';
                    var element = document.getElementById('outer_button_visibility_box');
                    element.innerHTML = "";
                }

            }
        };
        var handleFailure = function(o) {
        };
        var callback = {
            success:handleSuccess,
            failure:handleFailure
        };
        var cObj = YAHOO.util.Connect.asyncRequest('GET', "/blipbomb/deleteComment.action?id=" + currentComment, callback);
    }

}

function decorateInvisibility(commentId) {
    //�������� ����� � ������� ���������� ������ �����������
    var outer_div = document.getElementById("thumb" + commentId);
    if (outer_div != null) {
        YAHOO.util.Dom.addClass(outer_div, 'invisible_blank_class');
        var divWithImage = YAHOO.util.Dom.getFirstChild(outer_div);
        YAHOO.util.Dom.addClass(divWithImage, 'hidden_picture_part');
        var divWithText = YAHOO.util.Dom.getLastChild(outer_div);
        YAHOO.util.Dom.removeClass(divWithText, 'invisible_block');

    }


}
function decorateVisibility(commentId) {
    //�������� ����� � ������� ���������� ������ �����������
    var outer_div = document.getElementById("thumb" + commentId);
    if (outer_div != null) {
        YAHOO.util.Dom.removeClass(outer_div, 'invisible_blank_class');
        var divWithImage = YAHOO.util.Dom.getFirstChild(outer_div);
        YAHOO.util.Dom.removeClass(divWithImage, 'hidden_picture_part');
        var divWithText = YAHOO.util.Dom.getLastChild(outer_div);
        YAHOO.util.Dom.addClass(divWithText, 'invisible_block');
    }
}
function decorateActive() {
    var comment = currentComment;
    var elements = YAHOO.util.Dom.getElementsByClassName('active_thumb', 'div', 'histWrapper');
    for (i = 0; i < elements.length; i++) {
        YAHOO.util.Dom.removeClass(elements[i], 'active_thumb');
    }
    YAHOO.util.Dom.addClass("thumb" + comment, 'active_thumb');
}

function popupUploadFromFile() {
    popUp('/actions/showUploadFromFile.action', 400, 320);
}
function popupUploadFromCamera() {
    popUp('/actions/showUploadFromCamera.action', 400, 320);
}
function removeFoto() {
    var handleSuccess = function(o) {
        refreshActiveTab(true);
    };
    var handleFailure = function(o) {
        refreshActiveTab(true);
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    YAHOO.util.Connect.asyncRequest('GET', "/actions/removeFotoFromProfile.action", callback);

}

function addToKillPopups(popupWindow) {
    popupsToKill[popupsToKill.length] = popupWindow;

}
function killPopups() {
    if (popupsToKill.length == 0)
        return;
    var win;
    for (i = 0; i < popupsToKill.length; i++) {
        win = popupsToKill[i];

        if (win) {
            win.close();
        }
    }


}
//new as3 interfaces
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}
function getBlipbackWidgetInterface() {
    return thisMovie("game");
}
function callToASJumpToComment(commentId) {
    getBlipbackWidgetInterface().JSJumpToComment(commentId);
}
function callToASJumpToSubComment(commentId,subCommentId) {
    if(current_widget_design=="SLIM"){
        callToASJumpToComment(commentId) 
    } else {
        getBlipbackWidgetInterface().JSJumpToSubComment(commentId, subCommentId);
    }
}

function agreementChangedChecker(checkbox) {
    if (checkbox.checked) {
        var elements = YAHOO.util.Dom.getElementsByClassName('disabled_inputs');
        for (i = 0; i < elements.length; i++) {
            elements[i].disabled = false;
            YAHOO.util.Dom.addClass(elements[i], 'enabled_inputs');
        }
    } else {
        var elements = YAHOO.util.Dom.getElementsByClassName('enabled_inputs');
        for (i = 0; i < elements.length; i++) {
            elements[i].disabled = true;
            YAHOO.util.Dom.addClass(elements[i], 'disabled_inputs');
        }
    }
}
function changeLanguage(lang) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            window.location.reload();
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
            window.location.reload();
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure

    };
    var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/blank.action?request_locale=" + lang, callback);
    return false;
}


function writeObj(text) {
    document.write(text);
}

function createElement(tag, styleClass) {
    var el = document.createElement(tag);
    if (styleClass)
        YAHOO.util.Dom.addClass(el, styleClass);
    return el;
}

function createText(text) {
    return document.createTextNode(text);
}

function roundCorners(id) {
    var reg = YAHOO.util.Dom.getRegion(id);
    var b = YAHOO.util.Dom.get(id);
    var bgcolor = YAHOO.util.Dom.getStyle(id, 'backgroundColor');
    var w = reg.right - reg.left;

    var b1 = createElement("div");
    b1.style.margin = "0 4px";
    b1.style.height = "1px";
    YAHOO.util.Dom.setStyle(b1, 'backgroundColor', bgcolor);
    var b2 = createElement("div");
    b2.style.margin = "0 2px";
    b2.style.height = "1px";
    YAHOO.util.Dom.setStyle(b2, 'backgroundColor', bgcolor);
    var b3 = createElement("div");
    b3.style.margin = "0 1px";
    b3.style.height = "2px";
    YAHOO.util.Dom.setStyle(b3, 'backgroundColor', bgcolor);
    var top = createElement("div", "round");
    YAHOO.util.Dom.setStyle(top, 'margin-top', YAHOO.util.Dom.getStyle(id, 'margin-top'));
    YAHOO.util.Dom.setStyle(id, 'margin-top', '0');
    var bottom = createElement("div", "round");
    if (!reg || w < 1) {
        w = YAHOO.util.Dom.getStyle(id, 'width');
        top.style.width = w;
        bottom.style.width = w;
    } else {
        top.style.width = w + "px";
        bottom.style.width = w + "px";
    }

    top.appendChild(b1);
    top.appendChild(b2);
    top.appendChild(b3);

    bottom.appendChild(b3.cloneNode(false));
    bottom.appendChild(b2.cloneNode(false));
    bottom.appendChild(b1.cloneNode(false));

    YAHOO.util.Dom.insertBefore(top, b);
    YAHOO.util.Dom.insertAfter(bottom, b);
}
function setWaitingToPublicPage() {
    if (document.getElementById("info") != null)
        document.getElementById("info").innerHTML = "<div style='padding: 100px 0 0  200px;'><img src='/new_design/img/ui/loading.gif'/></div>";

}

function validateDigit(e) {
    if (!e)
        e = window.event.keyCode;
    var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);

    if (e.ctrlKey || e.altKey || key < 32)
        return true;

    key = String.fromCharCode(key);
    return /[-?\d]/.test(key);
}
function selectSlim() {
    eventBlipbackWidgetBeforeLoaded.event1.fire("SLIM");
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var temp_blog_id = current_blog_id;
            var temp_comment_id = current_comment_id;
            var temp_sub_comment_id = current_subcomment_id;
            current_blog_id = null;
//            current_comment_id=null;
            updateFlash(temp_blog_id, temp_comment_id,temp_sub_comment_id,true);

        }
    };
    var handleFailure = function(o) {
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    document.getElementById('widget_type_field').innerHTML =document.getElementById('style_bar_text_slim').innerHTML;
    var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/changeFlash.action?flashType=SLIM", callback);

}
function selectNormal() {
    eventBlipbackWidgetBeforeLoaded.event1.fire("NORMAL");
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var temp_blog_id = current_blog_id;
            var temp_comment_id = current_comment_id;
            var temp_sub_comment_id = current_subcomment_id;
            current_blog_id = null;
//            current_comment_id=null;
            updateFlash(temp_blog_id, temp_comment_id,temp_sub_comment_id,true);
        }
    };
    var handleFailure = function(o) {
    };
    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    document.getElementById('widget_type_field').innerHTML =document.getElementById('style_bar_text_normal').innerHTML;
    var cObj = YAHOO.util.Connect.asyncRequest('GET', "/actions/changeFlash.action?flashType=FAT", callback);
}

function refreshTabLabel() {
    if (otherTab != null) {
        otherTab.set('label', viewedWidgetUsername);
    }
}
WidgetStyleBarHandler.prototype.onFlashLoaded = function(type, args, me) {
	if(!this.firstTimeLoaded){
        YAHOO.util.Dom.removeClass('widget_style_handle', 'invisible_block');
        YAHOO.util.Dom.removeClass('registration', 'invisible_block');
        this.firstTimeLoaded=true;
    }

};
WidgetStyleBarHandler.prototype.onBeforeFlashLoaded = function(type, args, me) {
    if (YAHOO.env.ua.webkit > 0) {
        animWidgetStyle1.animate();
    }

    /*var res=YAHOO.util.Event.removeListener("widget_style_handle","mouseover",showBar);
    YAHOO.util.Dom.addClass("widget_style_handle","invisible_block");*/

};

function WidgetStyleBarHandler(eventBlipbackWidgetBeforeLoaded,eventBlipbackWidgetLoaded ){
    this.firstTimeLoaded=false;
    this.eventBlipbackWidgetBeforeLoaded=eventBlipbackWidgetBeforeLoaded;
    this.eventBlipbackWidgetLoaded=eventBlipbackWidgetLoaded;
    this.eventBlipbackWidgetLoaded.event1.subscribe(this.onFlashLoaded,this);
    this.eventBlipbackWidgetBeforeLoaded.event1.subscribe(this.onBeforeFlashLoaded,this);
}

function showFlash(parameters) {

    var blipwallAttributes = {name:"blipwall", on_site:"1"};
    parameters.on_site = "1";
    parameters.allowNetworking="all";
    swfobject.embedSWF("/swf/blipWall.swf", "blipwall", "906", "347", "8.0.0", null, parameters,{},blipwallAttributes);

    /*var blipboothFlashVars = new Array();
    blipboothFlashVars.blipbooth_id = parameters.blipboothId;*/

//    blipboothFlashVars.session = parameters.session;
//    blipboothFlashVars.username= parameters.username;
    
//    swfobject.embedSWF("/swf/blipbooth_recorder.swf", "blipbooth_recorder", "220", "375", "8.0.0", null, blipboothFlashVars);
    var blipboothAttributes = {name:"blipbooth", on_site:"1"};
    swfobject.embedSWF("/swf/blipbooth_recorder.swf", "blipbooth_recorder", "218", "375", "8.0.0", null, parameters,{},blipboothAttributes );
}
function getBlipboothWidgetInterface() {
    return thisMovie("blipbooth");
}
function getBlipwallWidgetInterface() {
    return thisMovie("blipwall");
}

function jsUpdateWidgetState(fromFlash, toFlash, type){
    if (fromFlash == "blipbooth_recorder" && toFlash == "blipwall") {
        getBlipwallWidgetInterface().flashUpdateWidgetState(type);

    } else if (fromFlash == "blipwall" && toFlash == "blipbooth_recorder") {
        getBlipboothWidgetInterface().flashUpdateWidgetState(type);
    }

}
function refreshChat(blipboothId) {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            var chatBox = document.getElementById('chat_message_box');
            chatBox.innerHTML = o.responseText;
            normalizeChatBox();
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure
    };
    YAHOO.util.Connect.asyncRequest('GET', "/blipbooth/getChatMessages.action?blipboothId=" + blipboothId, callback);
}
function addChatMessage() {
    var handleSuccess = function(o) {
        if (o.responseText !== undefined) {
            refreshChat(current_blipbooth_id);
        }
    };
    var handleFailure = function(o) {
        if (o.responseText !== undefined) {
        }
    };
    var callback =
    {
        success:handleSuccess,
        failure:handleFailure
    };
    YAHOO.util.Connect.asyncRequest('GET',
            "/blipbooth/addChatMessage.action?message=" + document.getElementById('comment_text').value +
            "&blipboothId=" + current_blipbooth_id,
            callback);
}

//SCROLLER



function scroller(){

	var page = 0;
	var total = 99;
	var itemsPerPage = 12;
	var height = 230;
	var wrapperId = "latest"
	var upId = "latest_up";
	var downId = "latest_down";
	var scrollUpI = "/new_design/img/ui/arrow_up_.png";
    var scrollUpA = "/new_design/img/ui/arrow_up.png";
    var scrollDownI = "/new_design/img/ui/arrow_down_.png";
    var scrollDownA = "/new_design/img/ui/arrow_down.png";
    var prefix	= "latest";
    var params;
    var className = "comments_list"
    var url = "/actions/getLatestCommentsPaged.action";
    var counterId = "latest_itemCount";
    var commentsObj = "latestComments";
    var commentsArray = "comments";
    var pageLoadedEvent = new ScrollerCustomEvent("pageLoadedEvent");
    var beforeScrollEvent = new ScrollerCustomEvent("beforeScrollEvent");
    var afterScrollEvent = new ScrollerCustomEvent("afterScrollEvent");
    var loadingSplash = 'loadingSplash';

    var comments = [];
    var loadingFlag = false;
    this.commentsArray=commentsArray;

    this.page=page;
	this.total=total;
	this.itemsPerPage=itemsPerPage;
	this.height=height;
	this.wrapperId=wrapperId;
	this.upId=upId;
	this.downId=downId;
	this.scrollUpI=scrollUpI;
    this.scrollUpA=scrollUpA;
    this.scrollDownI=scrollDownI;
    this.scrollDownA=scrollDownA;
    this.prefix=prefix;
    this.className=className;
    this.url=url;
    this.comments=comments;
    this.counterId = counterId
    this.loadingFlag = loadingFlag;
    this.commentsObj = commentsObj;
    this.commentsArray = commentsArray;
    this.params = params;

    this.pageLoadedEvent = pageLoadedEvent;

    this.ScrollerCustomEvent = ScrollerCustomEvent;
    this.loadJSON 			 = loadJSON;
    this.scrollPage1		 = scrollPage1;
    this.processResult		 = processResult;
    this.doScroll			 = doScroll;
    this.buildChild			 = buildChild;
    this.showSplash			 = showSplash;
    this.hideSplash			 = hideSplash;
    this.loadingSplash		 = loadingSplash;



    //this.loadJSON(0);

    function processResult(o){
    	
    	o.argument[0].loadingFlag = false;
    	o.argument[0].hideSplash();

    	//alert("\n" + o.responseText);
   		//var obj = o.responseText.parseJSON();
   		var obj = YAHOO.lang.JSON.parse(o.responseText);
   		if(o.argument[0].commentsObj){
   			obj = obj[o.argument[0].commentsObj]
   		}
   		o.argument[0].total=obj.total;
   		var arrName = o.argument[0].commentsArray;
   		var ofst = o.argument[0].comments.length;
   		//alert("Length=" + obj[arrName].length)
		for (var i=0; i<obj[arrName].length; i++){
   			o.argument[0].comments[ofst + i] = obj[arrName][i];
   		}
   		o.argument[0].pageLoadedEvent.event.fire();
   	}

    function loadJSON(offset){
    	if(this.loadingFlag){
    		return;
    	}
    	var err = function (o){
    	}
    	var callback = {
	        success:processResult,
	        failure:err,
	        argument:[this]
	    };
	    this.loadingFlag = true;
	    var u = this.url;
	    var postData = 'offset=' + offset;
	    if(this.params){
	    	for(key in this.params){
	    		postData = postData + "&" + key + "=" + this.params[key];
	    	}
	    }
	    var cObj = YAHOO.util.Connect.asyncRequest(
	    	'POST',
	    	u,
	    	callback,
	    	postData
	    );
    }

    function scrollPage1(dir){
    	if (((this.page + dir) < 0) || ((this.page + dir) * this.itemsPerPage >= this.total)){
			return;
		}
		if(((this.page + dir) * this.itemsPerPage >=  this.comments.length) &&
				((this.page + dir) * this.itemsPerPage < this.total) &&
				this.loadingFlag){
			this.showSplash();
			return;
		}
		if (YAHOO.util.Dom.get(this.prefix+(this.page - 2 * dir))){
			YAHOO.util.Dom.get(this.prefix+(this.page - 2 * dir)).innerHTML='';
		}
		if (!YAHOO.util.Dom.get(this.prefix+(this.page + dir))){
			var d = document.createElement("div");
        	d.id = this.prefix + (this.page + dir);
        	YAHOO.util.Dom.addClass(d, this.className);
			YAHOO.util.Dom.get(this.wrapperId).appendChild(d);
		}
		if(YAHOO.util.Dom.getChildren(this.prefix+(this.page + dir)).length == 0){
			this.buildChild(YAHOO.util.Dom.get(this.prefix+(this.page + dir)), dir);
		}



		this.doScroll(dir);
		this.page = dir + this.page;

		var r = Math.min((this.page*this.itemsPerPage + this.itemsPerPage), this.total);
  		YAHOO.util.Dom.get(this.counterId).innerHTML = (this.page*this.itemsPerPage + 1) + "-" + r;

		if(((this.page * this.itemsPerPage) > (this.comments.length - this.itemsPerPage * 10))
				&& this.comments.length < this.total
			){
			this.loadJSON(this.comments.length);
		}
		if((this.page+1) * this.itemsPerPage >= this.total){
			YAHOO.util.Dom.addClass(this.downId, "inactive");
			YAHOO.util.Dom.removeClass(this.downId, "clickable");
		} else {
			YAHOO.util.Dom.removeClass(this.downId, "inactive");
			YAHOO.util.Dom.addClass(this.downId, "clickable");
		}

		if(this.page == 0){
			YAHOO.util.Dom.addClass(this.upId, "inactive");
			YAHOO.util.Dom.removeClass(this.upId, "clickable");
		} else {
			YAHOO.util.Dom.removeClass(this.upId, "inactive");
			YAHOO.util.Dom.addClass(this.upId, "clickable");
		}


    }

    function doScroll(dir){
    	var attributes = {
	        scroll: { to: [0, (this.page * this.height + dir * this.height)]}
	    };
	    an = new YAHOO.util.Scroll(this.wrapperId, attributes);
	    an.duration = 0.3;
	    an.animate();

    }

    function ScrollerCustomEvent(name) {
	    this.name = name;
	    this.event = new YAHOO.util.CustomEvent(name, this);
	}

	function buildChild(node, dir){
		offset = (this.page + dir) * this.itemsPerPage;
		var self = this;
		for (i=0; i<this.itemsPerPage; i++){
			var n = offset+i;
			if (n >= this.comments.length){
				break;
			}

			var d = document.createElement("div");
			node.appendChild(d);
			YAHOO.util.Dom.addClass(d, "thumb");
			if (this.comments[n].mobile){
				YAHOO.util.Dom.addClass(d, "mob");
			}
			var s = document.createElement("div");
			s.style.fontSize="8pt";
			s.innerHTML=this.comments[n].createdDateLocale;
			d.appendChild(s);
			var h = "javascript:clickOnComment('" + this.comments[n].userName + "' , " +this.comments[n].commentId +" , " +this.comments[n].parentCommentId + ", "+this.comments[n].blogId+")";
			var a = document.createElement("a");
			a.id="cmt_" + this.comments[n].commentId;
			a.href=h;
			var img = document.createElement("img");
			img.src = this.comments[n].url + ".jpg?" + this.comments[n].version;
			a.appendChild(img);
			d.appendChild(a);
			
			var di = document.createElement("div");
			a = document.createElement("a");
			a.href=h;
			a.innerHTML=this.comments[n].userName;
			
			di.appendChild(a);
			d.appendChild(di);
				
		}
	}

	function showSplash(){
		var xy = YAHOO.util.Dom.getXY(this.wrapperId);
		var size=YAHOO.util.Dom.getRegion(this.wrapperId);
		YAHOO.util.Dom.setStyle(this.loadingSplash, 'width',(size.right - size.left +  50) + 'px');
		YAHOO.util.Dom.setStyle(this.loadingSplash, 'height',(size.bottom - size.top) + 'px');
    	YAHOO.util.Dom.removeClass(this.loadingSplash, 'invisible_block');
    	YAHOO.util.Dom.setStyle(this.loadingSplash, 'left', xy[0] + 'px');
    	YAHOO.util.Dom.setStyle(this.loadingSplash, 'top', xy[1] + 'px');
	}

	function hideSplash(){
		YAHOO.util.Dom.addClass(this.loadingSplash, 'invisible_block');
	}
}




String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}



var questionPanel;
function showQuestion(text, okHandler, cancelHandler){
	var self=this;
	this.okHandler = okHandler;
	this.cancelHandler = cancelHandler;
	questionPanel = new YAHOO.widget.SimpleDialog("questionPanel", {  width:"240px",fixedcenter:true,close:false,draggable:false,zindex:4,modal:true,visible:false});
	questionPanel.setBody(text);
	var doOk = function(){questionPanel.hide();self.okHandler();}
	
	var doCancel = function(){questionPanel.hide();if(self.cancelHandler)self.cancelHandler();}
	var buttons = [{text:"Ok",handler:doOk}, 
	                  {text:"Cancel", handler:doCancel}];
	questionPanel.cfg.queueProperty("buttons", buttons);
	questionPanel.render(document.body);
	questionPanel.show();
}

function changeSubscribe(to){
	var data = to ? "&ownerInBlog=true" : "";
	handleSuccess = function(o){
		updateSubscribeButton();
	}
	handleError = function(){}
	cObj = YAHOO.util.Connect.asyncRequest('POST', 
			'/actions/changeSubscription.action', 
			{success:handleSuccess, error:handleError},
			"subscriptionBlogId=" + current_blog_id + data);
}

function saveSubscriptionInfo(form){
	handleSuccess = function(o){
		tabView.set('activeIndex', 3);
    }
    handleError = function(o){
		tabView.set('activeIndex', 3);
    }
    YAHOO.util.Connect.setForm(form);
    var cObj = YAHOO.util.Connect.asyncRequest('POST', form.action, {success:handleSuccess, error:handleError});
    return false;
}
function saveDigestSettings(form){
	handleSuccess = function(o){
		tabView.set('activeIndex', 3);
    }
    handleError = function(o){
		tabView.set('activeIndex', 3);
    }
    document.getElementById("gmt_offset").value=new Date().getTimezoneOffset();
    YAHOO.util.Connect.setForm(form);
    YAHOO.util.Connect.asyncRequest('POST', form.action, {success:handleSuccess, error:handleError});
    return false;
}

function expander(exp, toggler, minH, expandText, collapseText) {
  this.expanderDiv = exp.trim();
  this.togglerDiv = toggler.trim();
  this.minHeight = minH;
  this.maxHeight = 0;
  this.expandText = expandText;
  this.collapseText = collapseText;
  var self=this;
  this.padding_top = 0;
  this.padding_bottom = 0;
  
  try{
     l = YAHOO.util.Dom.getChildren(this.expanderDiv);
     for (i=0; i<l.length;i++){
          r = YAHOO.util.Dom.getRegion(l[i]);
          this.maxHeight += r.bottom - r.top;
     }
     this.padding_top = YAHOO.util.Dom.getStyle(this.expanderDiv,"padding-top");
     this.padding_bottom = YAHOO.util.Dom.getStyle(this.expanderDiv,"padding-bottom");
  }catch(e){}
  YAHOO.util.Event.addListener(this.togglerDiv, "click", handleClick);
  function handleClick(){
	  
	  YAHOO.util.Dom.setStyle(self.expanderDiv,"padding-top",0);
	  YAHOO.util.Dom.setStyle(self.expanderDiv,"padding-bottom",0);
      c_reg = YAHOO.util.Dom.getRegion(self.expanderDiv);
      var h = c_reg.bottom - c_reg.top;
      param = {height: {to: self.maxHeight + 20}};
      
      if(h > self.minHeight){
    	  param = {height: {to: self.minHeight}}
    	  if(self.expandText){
    		  YAHOO.util.Dom.get(self.togglerDiv).innerHTML=self.expandText;
    	  }
      } else {
    	  if(self.collapseText){
    		  YAHOO.util.Dom.get(self.togglerDiv).innerHTML=self.collapseText;
    	  }
      }
      var anim = new YAHOO.util.Anim(self.expanderDiv,param);
      anim.duration = 0.2;
      anim.animate();
      anim.onComplete.subscribe(function() {
    	  YAHOO.util.Dom.setStyle(self.expanderDiv,"padding-top",self.padding_top);
    	  YAHOO.util.Dom.setStyle(self.expanderDiv,"padding-bottom",self.padding_bottom);
	  });
  }
}

expander.prototype = {
  expanderDiv : "",
  togglerDiv : "",
  minHeight : 0,
  maxHeight : 0
}

function changeBanner(){
	var f = document.getElementById('top_ad');
	f.src = f.src;
}
