﻿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;
	}

    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;
    }
	Recaptcha.reload(); 
}

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(); 
    if (Date.parse(strToday) > Date.parse(endDate))
    {
        alert("Please Select A Date That Has Not Already Passed");
        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";
    positionFooter();    
}
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//
            }
             /*positionFooter();*/
     }  
}

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 - 125 + "px"; 
    divEventPop.style.zIndex = 1001; 
    divEventPop.style.height = 60 + "px"; 
    divEventPop.style.width = 325 + "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();
        positionFooter();
	}
	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';
        }
        positionFooter(); 
    }
/*========================= 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 =======================================*/
}



    

