/***********************************************
* Tab Content script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
/* the original script doesn't support multiple tabs in one page, so modify it, and
add other custom functionalities*/
var table_header_re="<table class=\"?selectionstbl\"? cellspacing=\"?0\"?>";
var table_header="<table class=\"selectionstbl\" cellspacing=\"0\">";
var table_footer="</table>";

var tag_prefix="<!--";
var tag_suffix="-->";
var start_tag="s_";
var end_tag="e_";

var title_tag = "t_";
var extra_tag = "x_";
var open_extra_tag = "ox_";

var header_start_tag = "<!--s_header-->";
var header_end_tag = "<!--e_header-->";

var style_start_tag = "<tr class=\"?";
var style_end_tag = "\"?>";
var originalStyles = ["dark", "light", "first", "last",
                      "first dark", "first light", "last dark", "last light", "bottom"];
var extra_style_start_tag = "<tr class=\"";
var extra_style_end_tag = "\">";
var extraDarkStyles = ["extra_dark", "extra_dark", "extra_first_dark", "extra_last",
                      "extra_first_dark extra_dark", "extra_first_dark extra_dark",
                      "extra_last extra_dark", "extra_last extra_dark",
                      "extra_bottom extra_dark"];
var extraLightStyles = ["extra_light", "extra_light", "extra_first_light", "extra_last",
                      "extra_first_light extra_light", "extra_first_light extra_light",
                      "extra_last extra_light", "extra_last extra_light",
                      "extra_bottom extra_light"];

var originalTitleStyles = ["dark", "light", "last",
                           "last dark", "last light",
                           "first dark", "first light"];
var openedTitleStyles = ["title dark", "title light", "title last",
                         "title last dark", "title last light",
                         "title first dark", "title first light"];

var extra_bottom = "<tr class=\"bottom\">"+
                   "<td class=\"left\" colspan=\"2\"></td>"+
                   "<td class=\"border\" colspan=\"8\">&nbsp;</td>"+
                   "<td class=\"left\"></td>"+
                   "</tr>";

var loadingDelay = 50;
var loaded = false;

function removeExtra(html){
    var extra_start_tag = tag_prefix + start_tag + extra_tag + "(\\d*)" + tag_suffix;
    var extra_end_tag = tag_prefix + end_tag + extra_tag + "\\1" + tag_suffix;
    var re = new RegExp(extra_start_tag+".*"+extra_end_tag, "g");
    var closeTag = "";
    return html.replace(re, closeTag);
}

function removeTableTag(html){
    var re = new RegExp(table_header_re, "gi");
    html = html.replace(re, "");
    re = new RegExp(table_footer, "gi");
    html = html.replace(re, "");
    return html;
}

function executeJsStr(resp) {
    var r = new RegExp("(<script type\=\"text\/javascript\">\n)(.*)(\n<\/script>)", "g");
    var result = resp.match(r);
    var jsStr = "";
    var i = 0;
    if ((result!=null)&&(result.length>0)) {
        for(i=0; i<result.length; i++) {
            jsStr = result[i].replace(r, "$2");
            if (jsStr!=null && jsStr!="") {
	            window.eval(jsStr);
	        }
    	}
    }
}

function getContent(linkObj){
    var cid = linkObj.id.replace("tab_", "");
    return document.getElementById(cid);
}

function resetAllType(seasonId){
    var tabobjlinks = collecttablinks(seasonId);
    if (tabobjlinks.length>=2){
        var allObject = getContent(tabobjlinks[0]);
        if (allTabHtml[seasonId] == null){
            var html = "";
            for (var j=1; j<tabobjlinks.length; j++){
                typeHtml = getContent(tabobjlinks[j]).innerHTML;
                typeHtml = removeTableTag(typeHtml);
                typeHtml = removeExtra(typeHtml);
                html = html + typeHtml;
            }
            allTabHtml[seasonId] = table_header + html + table_footer;
        }
        allObject.innerHTML = allTabHtml[seasonId];
    }
}

function setShowType(showType){
    showProgress();
    if(use_ajax_selection) {
    	if (showType == "default") {
    		showType = "";
    	}
        refreshDocumentWithFilter("sidebet_type", showType);
    } else {
        setTimeout("_setShowType(\""+showType+"\")", loadingDelay);
    }
    return false;
}

function _setShowType(showType){
    if (! loaded) return;
    for (var i=0; i<seasonIds.length-1; i++){
        var seasonId = seasonIds[i];
        var aobject = getTabObject(seasonId, showType);
        var seasonObject = document.getElementById("season_"+seasonId);
        if (aobject == ""){
            resetTab(seasonId);
            seasonObject.style.display = "none";
        }else{
            seasonObject.style.display = "block";
            _expandcontent(seasonId, aobject.id);
        }
    }
    hideProgress();
}

function cascadedstyle(el, cssproperty, csspropertyNS){
    if (el.currentStyle)
        return el.currentStyle[cssproperty];
    else if (window.getComputedStyle){
        var elstyle=window.getComputedStyle(el, "");
        return elstyle.getPropertyValue(csspropertyNS);
    }
}

function expandcontent(seasonId, tabId){
    showProgress();
    setTimeout("_expandcontent(\""+seasonId+"\",\""+tabId+"\")", loadingDelay);
    return false;
}

function _expandcontent(seasonId, tabId){
    if (! loaded) return;
    var aobject = document.getElementById(tabId);
    if (document.getElementById){
        var contentObj = getContent(aobject);
        if (!isTabActive(aobject)){
            resetTab(seasonId);
            if (tabId == "tab_"+seasonId+"_all"){
                resetAllType(seasonId);
            }
            clearScorecastSelectState(contentObj);
            selectTab(seasonId, contentObj.id, aobject);
        }
    }
    hideProgress();
}

function expandcontentInAjax(seasonId, tabId){
    showProgress();
    setTimeout("refreshSeasonSidebets(\""+seasonId+"\",\""+tabId+"\")", loadingDelay);
    return false;
}

function refreshSeasonSidebets(seasonId, tabId) {
    divId = tabId.replace("tab_", "")
    sidebet_type = divId.replace(seasonId+"_", "")
    var request = getHttpRequest();
    request.onreadystatechange = function() {
        if(request.readyState == 4) {
            var resp = "";
            if(request.status == 200)
                resp = request.responseText;
            else {
                showAjaxMessage("Sorry, we can't get any information now. Please try it later.");
                return;
            }
            if(resp.indexOf('err_msg=', 0) != -1) {
                showAjaxMessage(resp.substring(8));
                return;
            } else {
            	$(divId).innerHTML = resp;
                _expandcontent(seasonId, tabId);
                if (sidebet_type == 'all') {
                    var allTabHtmlStr = removeTableTag(resp);
                    allTabHtmlStr = removeExtra(allTabHtmlStr);
                    allTabHtmlStr = table_header + allTabHtmlStr + table_footer;
                    $(divId).innerHTML = allTabHtmlStr;
                }
                executeJsStr(resp);
                initScorecastDefaultOdds(tabId);
            }
            hideProgress();
        }
    }
    var url = "/selection";
    var params = "cmd=chooseInAjax&season_id=" + seasonId + "&sidebet_type=" + sidebet_type;
    var gamelist_map = gameList_data[seasonId];
    if (typeof(gamelist_map) != "undefined" && gamelist_map != "") {
        var gamelist = String(gamelist_map).split(",");
        for(var i=0; i<gamelist.length; i++) {
            params = params + "&gameList=" + gamelist[i];
        }
    }
    request.open("POST", url, true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send(params);
}

function initScorecastDefaultOdds(tabId) {
    if (! loaded) return;
    var aobject = document.getElementById(tabId);
    if (aobject != null){
        var contentObj = getContent(aobject);
        clearScorecastSelectState(contentObj);
    }
}

function clearScorecastSelectState(parent) {
    var selects = parent.getElementsByTagName("select");
    for (var i=0; i < selects.length; i++) {
        var select = selects[i];
        select.selectedIndex = 0;
        select.onchange();
    }
}

function selectTab(seasonId, cid, aobject){
    var tabContent = document.getElementById(cid);
    currentTabContent[seasonId] = tabContent;
    aobject.parentNode.className = "tablinkactive";
    tabContent.style.display="block";
    if (aobject.blur)
        aobject.blur();
}

function isTabActive(tab){
    return tab.parentNode.className.indexOf("tablinkactive") >= 0;
}

function resetTab(seasonId){
    var tabobjlinks = collecttablinks(seasonId);
    for (var i=0; i<tabobjlinks.length; i++){
        tabobjlinks[i].parentNode.className = "tablink";
        getContent(tabobjlinks[i]).style.display="none";
    }
}

function collecttablinks(seasonId){
    var tabobj=document.getElementById("tabtable_"+seasonId);
    if (tabobj){
        return tabobj.getElementsByTagName("A");
    }
    return new Array();
}

function getTabObject(seasonId, showType){
    if (showType == "default"){
        aobject = seasonDefaultTabObject[seasonId];
    }else{
        var tabobjlinks = collecttablinks(seasonId);
        var aobject = "";
        for (var j=0; j<tabobjlinks.length; j++){
            if ("tab_"+seasonId+"_"+showType == tabobjlinks[j].id){
                aobject = tabobjlinks[j];
                break;
            }
        }
    }
    return aobject;
}

function do_onload(){
    currentTabContent = {};
    allTabHtml = {};
    seasonDefaultTabObject = {};
    for (var i=0; i<seasonIds.length-1; i++){
        var seasonId = seasonIds[i];
        var defaultType = _seasonDefaultTypes[i];
        var defaultTabObject = getTabObject(seasonId, defaultType);
        seasonDefaultTabObject[seasonId] = defaultTabObject;
        if (defaultTabObject == '') continue;
        var defaultTabContent = getContent(seasonDefaultTabObject[seasonId]);
        currentTabContent[seasonId] = defaultTabContent;
        if (defaultType == "all"){
            resetAllType(seasonId);
            defaultTabContent.style.display="block";
        }
        allTabHtml[seasonId] = null;
    }
    loaded = true;
    if ((_searchFlag == 0) && (seasonIds.length == 2) && (_seasonDefaultTypes[0] != "all")){
        showProgress();
        setTimeout("_setShowType(\""+_seasonDefaultTypes[0]+"\")", loadingDelay);
    }
    hideProgress();
    var image1 = new Image();
    image1.src = extra_close_image;
    var image2 = new Image();
    image2.src = extra_close_image_over;
}

if (window.addEventListener)
    window.addEventListener("load", do_onload, false);
else if (window.attachEvent)
    window.attachEvent("onload", do_onload);
else if (document.getElementById)
    window.onload=do_onload;

//functions to show the updating tip
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function showProgress(){
	var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
    var barObj = document.getElementById("updating");
    var x = 0;
    var y = ns ? pageYOffset : iecompattest().scrollTop;
    barObj.style.left = x+"px";
    barObj.style.top = y+"px";
    barObj.style.display="block";
}

function hideProgress(){
    document.getElementById("updating").style.display="none";
    adjustSelectionBodyHeight();
}

function showAjaxMessage(err_msg){
    document.getElementById("result_message").innerHTML=err_msg;
    document.getElementById("result_message").style.display="block";
    hideProgress();
    if (typeof(ajax_result_message)!="undefined")
    {
        ajax_result_message = err_msg;
    }
}

