﻿var bPanel; //set for visibility. True = CalView, False = ListView //
function TicketSignup(emailID, email, brokerID, rttID) {
    if (validateField(emailID, 'show', 'divBlankEmail2', 'divBadEmail2', '') && validateEmail(emailID, 'divBlankEmail2', 'divBadEmail2')) {
        args = new Array();
        for (n = 0; n < arguments.length; n++) {
            args[n] = arguments[n];
        }

        var strParams = "RemoteIP=" + readCookie("IPAddress") + "&Challenge=" + returnObj("recaptcha_challenge_field").obj.value + "&Response=" + returnObj("recaptcha_response_field").obj.value;
        var strServiceURL = location.protocol + "//" + location.hostname + "/ws/tcws.asmx/ReCaptcha";
        ajaxPost(strParams, strServiceURL, "TicketSignup_ReCaptcha", args);
    }
}

function TicketSignup_ReCaptcha() {
    xml = arguments[0];
    txtEmail = arguments[1][0];
    strEmail = arguments[1][1];
    nBrokerID = arguments[1][2];
    nRTTID = arguments[1][3];

    if (document.implementation && document.implementation.createDocument) {
        xmlDoc = document.implementation.createDocument("", "", null);
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(xml, "text/xml");
    }
    else if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.loadXML(xml);
    }
    else {
        alert("Your browser is having problems with our website!\n\nPlease call us to resolve this issue.");
        return;
    }

    Recaptcha.reload();

    switch (xmlDoc.getElementsByTagName("ReCaptcha")[0].getAttribute("StatusCode")) {
        case "0":

            SignupForTix(strEmail, nBrokerID, nRTTID);
            returnObj("divSuccess").style.display = "";

            // reset the form
            bEmailSignupExpanded = false;
            returnObj("txtSignupAlerts").obj.value = "";
            returnObj('divReCaptcha').style.display = 'none';
            returnObj('btnCancelEmailSignUp').style.display = 'none';

            break;
        default:
            alert("The words entered into the verification box were incorrect!\n\nPlease try again or call 1-800-521-9616 to speak with a representative.");
            break;
    }
}

function SignupForTix(email, brokerID, rttID) {
    var strParams = "strCB=" + rttID + "&nBrokerID=" + brokerID + "&EmailAddress=" + email;
    var strServiceURL = "http://" + location.hostname + "/ws/tcws.asmx/LogNewsLetter";
    ajaxPost(strParams, strServiceURL, "fnNada");
}
function newDateSelection(startDate, endDate) {
    if (returnObj("divListView").style.display == "none") { bPanel = "TRUE"; } else { bPanel = "FALSE"; }
    var today = new Date();
    var strToday = today.getMonth() + 1 + "/" + today.getDate() + "/" + today.getFullYear();
    var strCheckEndDate = today.getMonth() + 4 + "/" + today.getDate() + "/" + today.getFullYear();
    if (Date.parse(strToday) > Date.parse(endDate)) {
        alert("Please Select A Date That Has Not Already Passed");
        return false;
    }
    else if (Date.parse(endDate) > Date.parse(strCheckEndDate)) {
        alert("No Events Found Passed This Month");
        return false;
    }
    else {
        returnObj("divListView").style.display = "none";
        returnObj("divCalendarWrapper").style.display = "none";
        returnObj("divContentBlockWrapperPerf").style.display = "none";

        returnObj("divEventListingsLoading").style.display = "";
        var strServiceURL = "http://" + location.hostname + "/ws/tcws.asmx/UpdateEventListings";
        var strPerfName = returnObj("hidPerfName").obj.value;
        var nBrokerID = returnObj("hidBrokerId").obj.value;
        var RTTType = returnObj("hidTypeId").obj.value;
        var nID = returnObj("hidEventId").obj.value;
        var nTypeID = returnObj("hidTypeId").obj.value;
        var bTransform = "TRUE";
        var strRTTType = "";
        switch (nTypeID) {
            case "4":
                strRTTType = "VENUE";
                break;
            case "7":
                strRTTType = "CITY"
                break;
            default:
            case "2":
            case "3":
                strRTTType = "PERFORMER"
                break;
        }

        var strParams = "BrokerID=" + nBrokerID + "&ID=" + nID + "&RTTType=" + RTTType + "&TYPE=" + strRTTType + "&startDate=" + startDate + "&endDate=" + endDate + "&Transform=" + bTransform + "&bPanel=" + bPanel + "&PerfName=" + strPerfName;
        ajaxPost(strParams, strServiceURL, "renderEvents");
    }
}

/* =================== END A J A X ===================================*/

/* ===================START DAY TWEAKS================================*/

function getMonday(yyyy, mm, dd) {
    var today = new Date();
    theDate = new Date(yyyy, mm, dd);
    if (theDate < today + 1) {
        alert("Invalid Day. Pick a Day that Hasn't already Passed");
    }
    else {
        daynumber = theDate.getDay(); // 0 = monday, 6 = sunday
        if (daynumber > 0) daynumber -= 1;
        else daynumber += 6; // Previous week...
        adjust = daynumber * 1000 * 60 * 60 * 24;
        startDate = new Date(theDate.getTime() - adjust); //monday of whatever week //
        var strMon = startDate.getMonth() + 1;
        var strDay = startDate.getDate();
        var strYear = startDate.getFullYear();
        var strStartDate = strMon + "/" + strDay + "/" + strYear
        var endDate = getSunday(startDate); //sunday of the above referenced week //
        strMon = endDate.getMonth() + 1;
        strDay = endDate.getDate();
        strYear = endDate.getFullYear();
        var strEndDate = strMon + "/" + strDay + "/" + strYear
        //Now that we have the dates, lets call the AJAX function //
        newDateSelection(strStartDate, strEndDate);
    }
}
function getSunday(theMonday) {
    var theDate = new Date(theMonday);
    var dd = theDate.getDate();
    var mm = theDate.getMonth();
    var yyyy = theDate.getFullYear();
    var ddSun = dd + 7;
    var Sunday = new Date(yyyy, mm, ddSun);
    //alert(Sunday); 
    return Sunday;
}
function renderEvents(xml) {
    returnObj("divEventListingsWrapper").obj.innerHTML = xml;
    getHighestDayDiv();
    if (bPanel == "TRUE") { tabOn('cvTab'); tabOff('lvTab'); } //toggle tab image //
    returnObj("divContentBlockWrapperPerf").style.display = "";
    returnObj("divEventListingsLoading").style.display = "none";
}
function toggleView(bPanel) {
    if (bPanel != "") {
        if (bPanel == "True") { showHide('divListView', 'hide'); showHide('divCalendarWrapper', 'show'); swapBoth(); }
        else { showHide('divListView', 'show'); showHide('divCalendarWrapper', 'hide'); }
    }
}
function getNextMonth(startDate) {
    var theDate = new Date(startDate);
    var endDate = theDate.setDate(theDate.getDate() + 31);
    //endDate = endDate.toLocaleDateString()//
    //endDate = Date.parse(endDate); //
    monthsOfYear = new Array("January", "February", "March", "April", "May",
	"June", "July", "August", "September", "October", "November", "December");
    var str = monthsOfYear[theDate.getMonth()] + " " + theDate.getFullYear();

    return str;
}

/* ===================END DAY TWEAKS================================*/

/* ===================START DIV MANIPULATION====================*/

var dayDivs = new Array("divMonday", "divTuesday", "divWednesday", "divThursday", "divFriday", "divSaturday", "divSunday");
function getHighestDayDiv(startDate)/*This function sets the divDay height to the highest day*/
{
    if (returnObj("divMonday")) {
        var x = 0;
        for (z in dayDivs) {
            if (returnObj(dayDivs[z]).obj.offsetHeight > x) {
                x = returnObj(dayDivs[z]).obj.offsetHeight;
            }
        }
        for (z in dayDivs) {
            returnObj(dayDivs[z]).style.height = x + "px"; //Fix for FireFox scroll issue//
        }
    }
}

function hoverDiv(e, eid) {
    var posX = 0;
    var posY = 0;
    if (!e) var e = window.event;
    if (!e) var e = event;
    if (e.pageX || e.pageY) {
        posX = returnObj(eid).obj.parentNode.offsetLeft + 270;
        posY = e.pageY;
    }
    else if (e.clientX || e.clientY) {
        if (returnObj(eid).obj.parentNode.offsetParent.offsetLeft != 0) {
            posX = returnObj(eid).obj.parentNode.offsetParent.offsetLeft + document.body.scrollLeft
			+ document.documentElement.scrollLeft + 270;
        }
        else {
            posX = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft
        }
        posY = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
    }
    renderPosition(posX, posY, eid)
}

var divEventPop = document.createElement("div");
divEventPop.id = "divEventPop";
/*
var divEventPopClose = document.createElement("div"); 
divEventPopClose.id = "divEventPopClose"; */

function renderPosition(posX, posY, eid) {
    var origDiv = eid.replace("c", "e");
    returnObj(eid).style.backgroundColor = "#FFF597";
    divEventPop.innerHTML = returnObj(origDiv).obj.innerHTML;
    divEventPop.style.position = "absolute";
    divEventPop.style.top = posY + 5 + "px";
    divEventPop.style.left = posX - 225 + "px";
    divEventPop.style.zIndex = 1001;
    divEventPop.style.height = 86 + "px";
    divEventPop.style.width = 455 + "px";
    divEventPop.style.backgroundColor = "white";
    divEventPop.style.borderWidth = 2 + "px";
    divEventPop.style.borderStyle = "solid";
    divEventPop.style.borderColor = "#FFF39B";
    divEventPop.onmouseover = null;
    divEventPop.onmouseout = myMouseOut;
    divEventPop.onmouseleave = closeDiv;
    divEventPop.style.lineHeight = "normal";

    divEventPop.style.display = "";
    document.body.appendChild(divEventPop);
    divEventPop.getElementsByTagName('img')[0].style.display = "none";
    divEventPop.getElementsByTagName('div')[0].style.whiteSpace = "nowrap";
    divEventPop.style.overflow = "hidden";

    //add the Close (X) box //

    /*divEventPopClose.innerHTML = "<a onClick='closeDiv()'><strong>X</strong></a>"; 
    divEventPopClose.style.position = "absolute";
    divEventPopClose.style.top = 0 + "px";
    divEventPopClose.style.right = 0 + "px";
		 
    divEventPop.appendChild(divEventPopClose); */
}

function restoreScreen(eid) {
    returnObj(eid).style.backgroundColor = "";
}
function closeDiv() {
    divEventPop.style.display = "none";
}
function tabOn(imageID) {
    var strImg = returnObj(imageID).obj.src;
    strImg = strImg.replace("_off", "");
    returnObj(imageID).obj.src = strImg;
}
function tabOff(imageID) {
    var strImg = returnObj(imageID).obj.src;
    if (strImg.indexOf("_off.png") == -1) {
        strImg = strImg.replace(".png", "_off.png");
        returnObj(imageID).obj.src = strImg;
    }
    else {
        return false;
    }
}



/* =================== END DIV MANIPULATION ==================== */


/*=========================START EVENT FILTERING=======================*/
function filterResults(element, filterID) {
    returnObj('hidFilterViewId').obj.value = element;
    var oElement = new getObj('divEventListings');
    var oDivs = oElement.obj.getElementsByTagName('div');
    for (var i = 0; i < oDivs.length; i++) {
        if (oDivs[i].id) {
            if (oDivs[i].id.indexOf("_") != -1) {
                switch (element) //DETERMINE VISIBLE DIVS // 
                {
                    case oDivs[i].id.substring(oDivs[i].id.indexOf("_") + 1): // CASE WHEN ELEMENT = ID //
                        returnObj(oDivs[i].id).style.display = "";
                        window.focus();
                        break;
                    case "0": // ALL GAMES //
                        returnObj(oDivs[i].id).style.display = "";
                        window.focus();
                        break;
                    case "-1": //AWAY GAMES //
                        if (oDivs[i].id.substring(oDivs[i].id.indexOf("_") + 1) == filterID) {
                            returnObj(oDivs[i].id).style.display = "none";
                        }
                        else {
                            returnObj(oDivs[i].id).style.display = "";
                        }
                        break;
                    default:
                        if (oDivs[i].id.indexOf("ct") != -1) {
                            break;
                        }
                        else {
                            returnObj(oDivs[i].id).style.display = "none";
                            window.focus();
                            break;
                        }
                }
            }
        }
    }
    getEventCount();
}
function getEventCount() {
    var oElement = document.getElementById('divEventListings');
    var oDivs = oElement.getElementsByTagName('div');
    var eventCount = 0;
    for (var i = 0; i < oDivs.length; i++) {
        if (oDivs[i].id) {
            if (oDivs[i].id.indexOf("_") != -1 && (oDivs[i].id.indexOf("eid") != -1)) {
                if (document.getElementById(oDivs[i].id).style.display != "none") {
                    eventCount += 1;
                }
            }
        }
    }
    //eventCount = (eventCount / 2) Divided by two for both divs, Cal and lstView// 
    if (eventCount == 1) {
        document.getElementById('divEventCount').innerHTML = eventCount.toString() + " event found.";
    }
    else {
        document.getElementById('divEventCount').innerHTML = eventCount.toString() + " events found.";
    }
}
function getDayText() {
    // Array of day names
    var dayNames = new Array("Sunday", "Monday", "Tuesday", "Wednesday",
						"Thursday", "Friday", "Saturday");

    // Array of month Names
    var monthNames = new Array(
		"January", "February", "March", "April", "May", "June", "July",
		"August", "September", "October", "November", "December");

    var now = new Date();
    document.write(dayNames[now.getDay()] + ", " +
		monthNames[now.getMonth()] + " " +
		now.getDate() + ", " + now.getFullYear());
}
/*=========================END EVENT FILTERING=======================*/

/*=========================Show/Hide More Button on Content Block=====================*/
function ShowHideMoreBtn() {
    var text = returnObj('divContentBlockWrapper').obj.innerText || returnObj('divContentBlockWrapper').obj.textContent;
    if (text.length < 500) {
        returnObj('divContentBlockMore').style.visibility = 'hidden';
    }
    if (text.length < 100) {
        returnObj('divContentBlockWrapper').style.visibility = 'hidden';
    }
}
/*========================= End Show/Hide More Button =====================*/

/* ======================== Div Hover Over ================================*/
function highlightResults(e, bool) {
    if (bool == "TRUE") {
        e.style.backgroundColor = "#fff69d";
    }
    else {
        e.style.backgroundColor = "#ffffff";
    }
}

function setHighlightResults() {
    try {
        var strClass = "divEventDetails";
        var divs = document.getElementsByClassName(strClass);
        for (var n = 0; n < divs.length; n++) {
            divs[n].onmouseover = function () { highlightResults(this, 'TRUE'); };
            divs[n].onmouseout = function () { highlightResults(this, 'FALSE'); };
        }
    }
    catch (ex)
   { /* dont throw any nasty unhandled exceptions and carry on */ }

}
/* ======================= End Div Hover Over ===============================*/
/*======================== Get XY COORDS ====================================*/
function getXY(e) {
    var posx = 0;
    var posy = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY) {
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY) {
        posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
    }
    posx = posx - 110;
    posy = posy - 15;
    // posx and posy contain the mouse position relative to the document
    displayDatePicker('PickedDate', null, null, null, posx, posy);
    /* ==================== END XY =======================================*/
}

$(document).ready(function () {

    try {
        if (returnObj("hidEventId")) {
            createCookie("lastShoppingPage", location.href, 0);
        }
    }
    catch (ex) { /**/ }

    if ($(".home_game").length > 0) {
        $('#homeAway_key').show();
    }
    else {
        $('#homeAway_key').hide();
    }
});

$('#aCalToggleClick').live("click", function () {
    $('#divPagerTop').addClass('pagingWrappper');
    $('#divPagerBtm').addClass('pagingWrappper');
});
$('#aListToggleClick').live("click", function () {
    $('#divPagerTop').removeClass('pagingWrappper');
    $('#divPagerBtm').removeClass('pagingWrappper');
});
