﻿//#### Search results class.
var rendered = false;

function Search() {
    this.target     = $('dynSearch_spnSearchResults');
    this.advanced   = $("dynSearch_tblAdvancedSearch");
    this.msgs       = $('dynSearch_spnMsgs');
    this.calview    = "0";
    this.calendar   = false;
    
    this.e          = 
    this.callback   = null;
    
    this.initialize = function(e, callback)
    {
            historyObj.initialize();
            historyObj.addListener(this.historyHandler);

            if (historyObj.isFirstLoad()) {
               //status = 'First load';
               //alert('first time loaded');
            }
    }.virtual(this);
    
    this.writeurltocookie = function(url)
    {
        if (!url || url == "undefined" || url.length == 0)
        {
            url = location.href;    
        }
        createRealCookie("pageurl", escape(url));
    }
    
    this.geturlcookie = function(defaultUrl, checkReferrer, isAS)
    {
        var checkCookie = true;
        var docRef = (document.referrer != null && document.referrer.length > 0) ? document.referrer.toLowerCase() : null;

        if (checkReferrer && docRef != null)
        {
            checkCookie = ((docRef.indexOf('/' + location.host + '/') < 0) || (docRef.indexOf('redirector') > 0) );
        }

        var hash = location.hash;
        
        if (((hash.length == 0) || 
            (isAS && hash.equals("#advsearchloaded"))) && checkCookie )
        {
            var url = getRealCookie("pageurl");
            var index;
            var replacedhash = false;
            if ( url != null && 
                 url.toLowerCase().indexOf(location.pathname.toLowerCase()) > 0 &&
                 (index = url.indexOf("#")) >= 0 && (url.indexOf("advsearchloaded") < 0))
            {
                var hash = url.substring(index,url.length);
                location.hash = hash;
                replacedhash = true;
                
            }
           
            return replacedhash;
        }
        
        return false;
    }
    
    this.historyHandler = function(historiedHash, data)
    {
        var max=50,citymax=100;
        document.title = document.title; // fixes the title when tampering the url
        if(isIE6plus)
            historiedHash = unescape(historiedHash);
        if(historiedHash.equals("advsearchloaded"))
        {
            var qs = $("QuickSearch_MSEventsSearch1");
            if (qs != null)
            {
                qs.style.display = "none";
            }
            this.advanced.style.display = "block";
            this.target.innerHTML = "";
            return;
        }
        if(historiedHash && historiedHash.indexOf("searchcontrol=yes") > -1)
        {
            var form = $("IsAdvanced") ? "asform" : "frmHome";
            
            var coll = getQueryString(historiedHash,';',0);
            
            if ((location.href.toLowerCase().indexOf("interactivecalendar.aspx") > -1) && !coll["s"])
            {
                var calfilter = getRealCookie("calfilter");
                if (calfilter)
                {
                    coll = getQueryString(calfilter, ';', 0);
                    historiedHash = calfilter;
                    var c = getQueryString(location.search,'?',0)["culture"];
                    var c_h = getQueryString(calfilter,';',1)["culture"];
                    if (!c_h)
                      historiedHash += ";culture="+c;
                    historyObj.add(historiedHash,"valuedoesntmatter");
                }
            }
            
            if ($("IsAdvanced") != null)
            {
                if($("txtkwdAll") && coll["kwdAll"] && coll["kwdAll"].length <= max)
                      $("txtkwdAll").value    = coll["kwdAll"];
                if($("txtkwdExact") && coll["kwdExact"] && coll["kwdExact"].length <= max)
                      $("txtkwdExact").value    = coll["kwdExact"];
                if($("txtkwdAAny") && coll["kwdAny"] && coll["kwdAny"].length <= max)
                      $("txtkwdAAny").value    = coll["kwdAny"];
                if($("txtkwdNone") && coll["kwdNone"] && coll["kwdNone"].length <= max)
                      $("txtkwdNone").value    = coll["kwdNone"];
                if($("evtID") && coll["eventId"] && coll["eventId"].length <= max)
                      $("evtID").value    = coll["eventId"];
                if($("txtpresenter") && coll["presenter"] && coll["presenter"].length <= max)
                      $("txtpresenter").value    = coll["presenter"];             
                      if($("txttopic") && coll["topic"] && coll["topic"].length <= max)
                      $("txttopic").value    = coll["topic"];             
                if($("txtCity") && coll["city"] && coll["city"].length <= citymax)
                      $("txtCity").value    = coll["city"];             
            }
            else if(coll["kwdAny"])
            {
                //var pat                 = "/"+changeParam(';')+"/g";
                
                if($("txtKwdAny") && coll["kwdAny"].length <= max)
                    $("txtKwdAny").value    = coll["kwdAny"];//.replace(eval(pat),';');
                    
                    this.ShowHG("none");
            }    
            else
            {
                   this.ShowHG("block");
            }
            
            var eventTypes          = coll["eventType"];
             
            if(eventTypes && $(form))
            {
                if(eventTypes === "0")
                    eventTypes = "1,2,3,4,6,7";
                    
                var splitted = eventTypes.split(',');
                
                for(var i=0 ; i < document.forms[form].elements.length; i++)
                {
                    var child = document.forms[form].elements[i];
                    
                    if(child != null && child.tagName === 'INPUT' && child.getAttribute('type') === 'checkbox')
                    {
                        child.setAttribute("checked",splitted.contains(child.getAttribute("value")));
                    }
                }
            }
            
            if (coll["calendar"])
                this.calendar   = true;
            if (coll["calview"])
                this.calview = coll["calview"];
            this.makeRequest(historiedHash);
        }
//        else
//        {
//            $(form).style.display = "block"
//        }
    }.virtual(this);
    
    this.gather = function(e, callback, log, sender, pageNumber, sortKey, sortOrder, filterType, pageEvent, eventTypes, audience, audienceHero, products, productsHero, advanced, currentSort,calenderview)
    {
        if(location.href.toLowerCase().indexOf("interactivecalendar.aspx") > -1)
        {
            this.advanced.style.display = "none";
            var shf = $('shf');
            if (shf)
                shf.src = "resources/images/plus_my.gif";
        }
        var params = this.gatherInfo(e, callback, log, sender, pageNumber, sortKey, sortOrder, filterType, pageEvent, eventTypes, audience, audienceHero, products, productsHero, advanced, currentSort,calenderview);
        if(params)
            this.makeRequest(params, log, e);
    }.virtual(this);
    
    this.gatherInfo = function(e, callback, log, sender, pageNumber, sortKey, sortOrder, filterType, pageEvent, eventTypes, audience, audienceHero, products, productsHero, advanced, currentSort,calenderview)
    {
    
        var xgData;
        
        this.e          = e;
        this.callback   = callback;
        //var sender      = _(e); //might be null
        this.msgs       = $('dynSearch_spnMsgs');
        
        if(typeof eventTypes == "string" && eventTypes.length == (11))
            eventTypes = "0";
        
        var params      =   "culture="     + getQueryString(location.search,'&',1)["culture"];
        
        if(location.href.toLowerCase().indexOf("interactivecalendar.aspx") > -1)
        {
            params += "&calendar=yes";
            this.calendar   = true;
        }
            
        var qs = getQueryString(location.hash,';',1)
        this.isAdvanced  = false;
        
        if(advanced && typeof advanced == "string")
        if(advanced === "true")
        {
            this.isAdvanced = true;
            params += "&advanced=true";
        }
        else if(advanced === "mnp")
        {
            this.isMnp  = true;
            params += "&advanced=mnp";
        }        
        
        var scErr = $("scerr");
        if (scErr != null && typeof eventTypes == "string")
        {            
            if( (!this.isAdvanced) && $("txtKwdAny") != null && $("txtKwdAny").value.length == 0 && !eventTypes)
            {
                 scErr.innerHTML = this.msgs.getAttribute("eventtypeerr");
                 scErr.style.display = "block";
                 return;
            }
            else
            {
                scErr.style.display = "none";
            }
        }
          
        if(pageNumber)
            params      += "&pageNumber="+pageNumber;

        if(!sortKey) sortKey = "";        
        if(currentSort && typeof currentSort == "string" && currentSort!=sortKey)
        {
              sortOrder = "";
        }
        else if (!sortOrder)
              sortOrder = "";

        params      += "&sortKey="+sortKey;
        params      += "&sortOrder="+sortOrder;
        
        if(filterType)
            params      += "&filterType="+filterType;
                                
        if(pageEvent && typeof pageEvent === 'string' && pageEvent == 'true')
            params      += "&pageEvent=true";
        else
            params      += "&pageEvent="+ ((pageEvent) ? pageEvent : 'false');
        
        var hdnInitialCount    = $("hdnInitialCount");               
        
        if(hdnInitialCount)
            params += "&hdnInitialCount="+escape(hdnInitialCount.value);
            
        //if coming from MNP (need to fix this hack)
        
        
        
        if(!this.isAdvanced && !this.isMnp)
            params += "&kwdAny=" + escape($("txtKwdAny") ? $("txtKwdAny").value : "");//.replace(/;/,changeParam(';')));

        //from asearch.js below:
        if(this.isAdvanced)
        {
            var txtStartDate,txtEndDate, ddlCountry,ddlState, ddlLanguage, ddlAudience, ddlProduct, txtPostal;
            var lat, lon, ddlRadius, txtMetric, txtAddress, ddlLevel, txtPresenter, txtTopic, txtCity;

            if (pageNumber == null)//coming from Advanced Search page 
            {
                txtStartDate    =  $("txtCal1").value  ;
                txtEndDate      =  $("txtCal2").value;
                ddlCountry      = this.GetDropDown("country_DD");
                ddlState        = this.GetDropDown("state_DD");
                ddlLanguage     = this.GetDropDown("lang_DD");
                ddlAudience     = this.GetDropDown("audiences_DD");
                ddlProduct      = this.GetDropDown("ProductEdition_DD");
                ddlLevel        = this.GetDropDown("level_DD");
                txtPresenter    = $("txtpresenter");
                txtTopic        = $("txttopic");
                txtCity         = $("txtCity");
                
                if(ddlProduct=="")
                {
                    ddlProduct=this.GetDropDown("ProductVersion_DD");
                    if(ddlProduct=="")
                        ddlProduct= this.GetDropDown("ProductFamily_DD");
                }
                
                if ($("postaltext"))
                    txtPostal       = $("postaltext").value;
                if($("lat"))
                    lat             =  $("lat").value;
                if($("lon"))
                    lon             =  $("lon").value;
                ddlRadius       = this.GetDropDown("radius");
                if($("metric")) 
                    txtMetric       = $("metric").value;
                if($("address")) 
                    txtAddress      = $("address").value;
                    
                if (txtCity)
                    txtCity = txtCity.value;

                if (txtPresenter)
                    txtPresenter = txtPresenter.value;

                if (txtTopic)
                    txtTopic = txtTopic.value;
            }
            else //coming from Passport
            {
                txtStartDate    = qs["startDate"];
                txtEndDate      = qs["endDate"];
                ddlCountry      = qs["countryId"];
                ddlState        = qs["stateId"];
                ddlLanguage     = qs["languageCode"];
                ddlAudience     = qs["audience"];
                ddlProduct      = qs["products"];
                txtPostal       = qs["postalCode"];
                lat             = qs["lat"];
                lon             = qs["lon"];
                ddlRadius       = qs["radius"]; 
                txtMetric       = qs["metric"];  
                txtAddress      = qs["address"];   
                ddlLevel        = qs["level"];   
                txtPresenter    = qs["presenter"];   
                txtTopic        = qs["topic"];   
                txtCity         = qs["txtCity"];
            }
            
            var txtEventId      = $("evtID");
            var txtKwdAll       = $("txtkwdAll");
            var txtKwdNone      = $("txtkwdNone");
            var txtKwdExact     = $("txtkwdExact");
            
            if(txtStartDate == null) //fix for bug in Passport block above, because it doesnt' consider blank dates passed
            {
                txtStartDate    =  $("txtCal1").value  ;
                txtEndDate      =  $("txtCal2").value;
            }
            
            if (this.calendar)
            {
                if (calenderview == undefined || calenderview == null)
                {
                      calenderview = (qs != null && qs["calview"] != null) ? qs["calview"] : "0";
                }
                
                this.calview    = calenderview;
                if(pageEvent && typeof pageEvent === "string" && (pageEvent != "true") )
                {
                    var cal = new Calendar();
                    switch(calenderview)
                    {
                        case "1":
                            func = cal.AddDays;
                            dm = 7;
                            break;
                        case "2":
                            func = cal.AddDays;
                            dm = 1;
                            break;
                        default:
                            func = cal.AddMonth;
                            dm = 1;
                            break;
                    }

                    txtStartDate = func(txtStartDate, (pageEvent == "next") ? dm : -dm);
                    
                    var txtCal1 = $("txtCal1");
                    if (txtCal1)
                        txtCal1.value = txtStartDate;
                        
                    var calMain = $("scalmain"); 
                    
                    if (calMain.style.display == "block")
                    {
                        calMain.style.display = "none";
                        e.cancelBubble = true;
                    }
                         
                }
            
                params += "&calview=" + calenderview;
                
                var qsET = qs["eventType"];
                
                var calET = "1,2";
                
                if (eventTypes == "0")
                    eventTypes = calET;
                    
                if (!eventTypes)
                    eventTypes =  qsET ? qsET : calET;
                
            }    

                      
            if(txtStartDate && txtStartDate.length > 0)
                params += "&startDate="+escape(txtStartDate);
            
            if(txtEndDate && txtEndDate.length > 0)
                params += "&endDate="+escape(txtEndDate);
                
            if(txtEventId && txtEventId.value.length > 0)
                params += "&eventId="+escape(txtEventId.value)
            
            if(lat && lon && lat.length > 0 && lon.length > 0)
            {                
                if(!isNaN(parseFloat(lat)) && !isNaN(parseFloat(lon)))
                {
                    params += "&lat="+lat.toString() + "&lon="+lon.toString();
                    
                    if(ddlRadius && ddlRadius.length > 0 && !isNaN(parseInt(ddlRadius)))
                        params += "&radius="+escape(ddlRadius);
                    else
                        params += "&radius=5"; //default 5 miles
            
                    if(txtMetric && txtMetric.length > 0 && !isNaN(parseInt(txtMetric)) && (parseInt(txtMetric) == 0 ||  parseInt(txtMetric) == 1))
                        params += "&metric="+escape(txtMetric);
                    else
                        params += "&metric=0"; //Default miles
                        
                    params+= "&address=" + escape(txtAddress);
               }         
            }

            if(txtPostal && txtPostal.length > 0)
                params += "&postalCode="+escape(txtPostal)
            
            if(txtKwdAll && txtKwdAll.value.length > 0)
                params += "&kwdAll="+escape(txtKwdAll.value)
            
            if(txtKwdExact && txtKwdExact.value.length > 0)
                params += "&kwdExact="+escape(txtKwdExact.value)

            params += "&kwdAny=" + escape($("txtkwdAAny") ? $("txtkwdAAny").value : $("txtkwdAny") ? $("txtkwdAny").value : "");//.replace(/;/,changeParam(';')));
            
            if(txtKwdNone && txtKwdNone.value.length > 0)
                params += "&kwdNone="+escape(txtKwdNone.value)
                       
            if(ddlCountry && ddlCountry.length > 0)
                params += "&countryId="+escape(ddlCountry)
            
            if(ddlState && ddlState.length > 0)
                params += "&stateId="+escape(ddlState)
            
            if(ddlLanguage && ddlLanguage.length > 0)
                params += "&languageCode="+escape(ddlLanguage)
            
            if(ddlAudience && ddlAudience.length > 0)
                params += "&audience="+escape(ddlAudience)
                
            if(ddlProduct && ddlProduct.length > 0)
                params += "&products="+escape(ddlProduct)
                
            if(txtPresenter && txtPresenter.length > 0)
                params += "&presenter="+escape(txtPresenter)
            
            if(txtTopic && txtTopic.length > 0)
                params += "&topic="+escape(txtTopic)
            
            if(ddlLevel && ddlLevel.length > 0)
                params += "&level="+escape(ddlLevel)

            if(txtCity && txtCity.length > 0)
                params += "&city="+escape(txtCity)

    
        }
        else
        {
            if(audience && typeof audience === "string")
                params += "&audience="+audience
            
            if(audienceHero && typeof audienceHero === "string")
                params  += "&audienceHero="+audienceHero;
                
            if(products && typeof products === "string")
                params += "&products="+products
            
            if(productsHero && typeof productsHero === "string")
                params  += "&productsHero="+productsHero;
        }
        params += "&eventType="+ eventTypes;
        params += "&searchcontrol=yes&s=1"

        hashed  = params = params.replace(/\&/gi,';');
        historyObj.add(hashed,"valuedoesntmatter");
        return hashed;
        
    }.virtual(this);
    
    this.GetDropDown = function(item)
    {
        var i = $(item);
        
        if ( i && i.selectedIndex > 0)
        {
            return i.options[i.selectedIndex].value
        }
        else
        {
            return "";
        }
    }
    
    this.makeRequest = function(params, log, e)
    {
        var     req;
        var evt = e;
        this.msgs       = $('dynSearch_spnMsgs');
        showLoading(true);
        changeRecursively($("trPagingRow"),true);
        req = buildRequest("Handlers/DataCollector.ashx",true,params);
  	//var startTime = new Date().getMilliseconds();
		var outer = this;
		req.onreadystatechange = function(){
			if (req.readyState == 4 && req.status == 200)
			{
				var status_code;
				var status_text;
				try
				{
					status_code = req.status;
					status_text = req.statusText;
				}
				catch(e) {
				    reportException(e,target);
				}
				if (status_code == 200 && req.responseText && req.responseText.indexOf("Error.aspx") == -1)
				{
				    if(req.responseXML)
				    {
				        xgData = req.responseXML;
				        
				        var transformed;
				        try
				        {
				        
				            outer.target.innerHTML = null;
				            var stylesheet = "xsl/DataRenderer.xsl";
				            if(location.href.toLowerCase().indexOf("interactivecalendar.aspx") > -1)
				            {
				                $("dynSearchDiv").style.visibility = "visible";
				               if (outer.calview == "1" || outer.calview == "2")
				                stylesheet = "xsl/CalDailyWeekly.xsl";
				               else
				                stylesheet = "xsl/CalendarRenderer.xsl";
				                var startdate = xgData.selectSingleNode("/root/month/@startday");
				                var txtStartDate = $("txtCal1");
				                if (startdate && txtStartDate)
				                    txtStartDate.value = startdate.text || startdate.textContent;
				                
				            }
				            else
				            {
                                if(outer.advanced)
                                {
                                    $("dynSearchDiv").style.visibility = "visible";
                                    document.title = GetTitle($("titleSpn"));
                                    outer.advanced.style.display = "none";
                                    if($("lnkExpand")) {
                                        $("QuickSearch_MSEventsSearch1").style.display = "block";
                                        $("QuickSearch_lnkAdvSearch").innerHTML = $("dynSearch_spnMsgs").getAttribute("show");
                                        UpdateQuickSearch('visible');
                                        $("lblAS").innerHTML = $("bcSpn").getAttribute("sr")
                                    }
                                }
				                else if ($("QuickSearch_qsTitleSpn") != null)
				                {
				                    document.title = GetTitle($("QuickSearch_qsTitleSpn"));
				                }
    				            
    				            
				                if ($("lblemail") != null && xgData != null && xgData.childNodes != null && xgData.childNodes.length > 0)
				                    xgData.childNodes[xgData.childNodes.length-1].setAttribute("email", "1");
				            }    
				            
				              transformXsl(stylesheet,false,outer.target,xgData,document);
                                
				              if(outer.calendar)
				              {
     				              showTab(outer.calview);
     				              var icaldiv = $("icaldiv");
     				              if (icaldiv && isMozillas)
     				              {
     				                    if (icaldiv.parentNode && icaldiv.parentNode.parentNode && icaldiv.parentNode.parentNode.parentNode) 
                                            icaldiv.parentNode.parentNode.parentNode.parentNode.style.height = icaldiv.offsetHeight;
                                        var mnpMenuTop = $("mnpMenuTop");
                                        if (mnpMenuTop)
                                            mnpMenuTop.parentNode.style.height =300;
                                   }
				               }
				            if (oneclick != null)
				            {
				                if ($("lblemail") != null)				                
    		                        oneclick.UpdateBookmarkIcon();
				                
				                oneclick.CheckForBookMarkCookie(evt);
				            }   
				           
				            var tdPagingArea;
				            
				            
				            if((tdPagingArea = $("tdPagingArea")) != null)
				            {
				                $("tblExtra").innerHTML     = tdPagingArea.innerHTML;
				                $("tdRSSExtra").innerHTML   = $("tdRSS").innerHTML; 
				                $("tdVirtualEarthExtra").innerHTML   = $("tdVirtualEarth").innerHTML; 
				            }
				            if($("divContainerForMPE") != null)
				            {
				                $("divContainerForMPE").style.display = "none";
				            }
				        }catch(e){
				            alert(e.message);
				            reportException(e,outer.target);
				        }
				        rendered = true;
				    }
		        }
		        else
		        {
		            if(outer.target && req.responseText) outer.target.innerHTML = (req.responseText);
		            else
		            {
		                outer.target.innerHTML = "<span style=padding-left:10;font-family:verdana,tahoma;font-size:10pt>"+outer.msgs.getAttribute("norecords")+ "</span>"; //localize
		                //status = ("Your search resulted no results"); //debugging only
		            }
		            //req = null;
		        }
                
                showLoading(false);
                changeRecursively($("trPagingRow"),false);
                if($("mnpMenuTop").firstChild.firstChild.lastChild.nodeName == "#text")
                {
                    var txt     = $("mnpMenuTop").firstChild.firstChild.lastChild.nodeValue;
                    $("mnpMenuTop").firstChild.firstChild.lastChild.nodeValue = ""
                    
                    var href    = "/cui/default.aspx?culture="+getQueryString(location.search,'&',1)["culture"];
                    var a       = document.createElement("a");
                    a.setAttribute("href",href);
                    a.appendChild(document.createTextNode(txt));
                    $("mnpMenuTop").firstChild.firstChild.appendChild(a);
		        }
		        
		        if(outer.callback && eval("window."+outer.callback) && log)
                {
                    eval(outer.callback+"(e || outer.e || outer.sender, log)");
                }
		    }
		} //virtual will only work here in IE7
		req.send(params.replace(/\;/g,'&'));
    }
    
    this.ShowHG = function(display)
    {
        var HeroGraphic = $("HG");  
        if (HeroGraphic != null)
            $("HG").style.display = display;
    }
}

function expandCallback(e, log)
{
    if(e && log)
    {
        log.endTime = new Date().getTime();//toGMTString();
        log.entry(e,_(e));
    }
}


function afterSearch(e, log)
{
    if(e && log)
    {
        log.endTime = new Date().getTime();//.toGMTString();
        log.entry(e,_(e));
    }
}

function doNothing(e)
{

}

function showLoading(yes)
{
    var img = $("imgLoading")
    
    img.style.display = yes ? "inline" : "none";
}
        
function extractEventTypes(form)
{
    var selectedItems = "";
    
    for(var i=0 ;i<form.elements.length; i++)
    {
        var child = form.elements[i];
        if(child != null && child.tagName === 'INPUT' && child.getAttribute('type') === 'checkbox' && child.checked)
        {
            selectedItems += child.getAttribute("value") + ",";
        }
    }
    
    if(selectedItems.length > 1)
        selectedItems = selectedItems.substr(0,selectedItems.length - 1)
    
    return selectedItems;
}

function expandAdvanced(sender)
{
    $("QuickSearch_MSEventsSearch1").style.display = "block";

    if(search.advanced.style.display.equals("none"))
    {
        UpdateQuickSearch('hidden');
        $("QuickSearch_lnkAdvSearch").innerHTML = $("dynSearch_spnMsgs").getAttribute("hide");
        search.advanced.style.display = "block";
        document.title = $("titleSpn").getAttribute("asTitle");
        $("txtKwdAny").value = "";
        $("lblAS").innerHTML = $("bcSpn").getAttribute("as")
        
    }
    else
    {
        UpdateQuickSearch('visible');
        $("QuickSearch_lnkAdvSearch").innerHTML = $("dynSearch_spnMsgs").getAttribute("show");
        search.advanced.style.display = "none";
        document.title = GetTitle($("titleSpn"));
        $("lblAS").innerHTML = $("bcSpn").getAttribute("sr");
    }
}

function UpdateQuickSearch(visibility)
{
    var qsrow = document.getElementById('QSRow').getElementsByTagName("td");
    if (qsrow != null)
    {
        for (var i=0; i < qsrow.length; i++)
        {
        
            if (qsrow[i].id != "lnkAdvSearch1")
            {
                
                try{
                    $(qsrow[i].id).style.visibility = visibility;
                }catch(e)
                {
                }
            }
        }
    }
}
function GoToSearchDisplay(evt, redirect, url)
{
    var qs_ddlEventTypes = $('QuickSearch_ddlEventTypes');
    var ddlEventTypes = qs_ddlEventTypes.options[qs_ddlEventTypes.selectedIndex].value
    if (redirect)
    {
        document.location.href = url + "eventType=" + ddlEventTypes + ";sortKey=;sortOrder=;pageEvent=false;hdnInitialCount=;searchcontrol=yes;kwdAny=" + escape($("txtKwdAny") ? $("txtKwdAny").value : "");
        
    }
    else
    {
        search.ShowHG("none");
        search.gather.invoke(evt,'afterSearch',this, null, null, null, null, null, ddlEventTypes);
        
    }
    
}

function ResetCount()
{
    var hdnInitialCount    = $("hdnInitialCount");
    if(hdnInitialCount)
        hdnInitialCount.value="";
}

function checkFirstVisitInFirefox()
{
    if(isMozillas)
    {
        if(location.hash)
        {
          var hash;
          var href = window.location.href;
          var index = href.indexOf("#");
          if (index > 0)
          {
            hash = href.substring(index+1);
          }
          new Search().historyHandler(hash,'gibberish');
        }
    }
}

function GetTitle(elem)
{
    var eventTypes = ExtractEventTypesfromHash();
    
    if (elem != null)
    {

        if (eventTypes != null && eventTypes.length == 1 && !eventTypes.equals("0"))
        {
            return (elem.getAttribute(eventTypes + "Title"));
            
        }
        else
        {
            return (elem.getAttribute("allTitle"));
        }
    }
    else
    {
        return "";
    }
}

function ExtractEventTypesfromHash()
{
    var searching = "eventType=";
    var hash = location.hash;
    var index = hash.indexOf(searching);
    
    
    if (index < 0)
    {
        return "0";
    }
    else
    {
        var endIndex = hash.indexOf(";", index);
        var result = hash.substring(index + searching.length,endIndex);
        return result;
    }
}

function showTab(tabno)
        {
            var d1=$("d1"),d2=$("d2"),d3=$("d3"),d4=$("d4");
            var l1=$("l1"),l2=$("l2"),l3=$("l3");
            var tab1=$("tab1"),tab2=$("tab2"),tab3=$("tab3");
            var daytxt=$("daytxt"),weektxt=$("weektxt"),monthtxt=$("monthtxt");

            if (!d1 || !d2 || !d3 || !d4) return;
            switch(tabno.toString())
            {
                case "2":
                    d1.className = "g1";
                    d2.className = "g2";
                    d3.className = "bc2";
                    d4.className = "bc3";
                    l1.className = "s";
                    l2.className = "n";
                    l3.className = "n"
                    daytxt.className = "tabtxt pt4";
                    weektxt.className = "tabtxt h23";
                    monthtxt.className = "tabtxt h23";
                    break;
                case "1":
                    d1.className = "bc1";
                    d2.className = "g22";
                    d3.className = "g2";
                    d4.className = "bc3";
                    l1.className = "n";
                    l2.className = "s";
                    l3.className = "n"
                    daytxt.className = "tabtxt h23";
                    weektxt.className = "tabtxt pt4";
                    monthtxt.className = "tabtxt h23";
                break;
                case "0":
                    d1.className = "bc1";
                    d2.className = "bc2";
                    d3.className = "g22";
                    d4.className = "g3";
                    l1.className = "n";
                    l2.className = "n";
                    l3.className = "s"
                    daytxt.className = "tabtxt h23";
                    weektxt.className = "tabtxt h23";
                    monthtxt.className = "tabtxt pt4";
                default:
                   break;
            }
        }

function showEventBox(elem, e)
{
    var infobox = $("infobox");
    if (infobox != null)
    {
        infobox.style.zIndex = 5;
        var eventId = GetEventId(elem);
        var mEventId = $("mEventId" + eventId);
        if (eventId)
        {
            infobox.setAttribute("hide", "false");
            var as = $("as"), culture = (as) ? as.getAttribute("locale") : "en-us";
            var ed = new EventDetail(eventId,culture);
            if (!mEventId)
            {
                infobox.style.display = "none";
                if (ed)
                    ed.ShowEventDetails(infobox,100,100,null,true, elem, e);
            }else if (ed)
            {
                infobox.style.display = "block";
                infobox.innerHTML = mEventId.innerHTML;
                ed.RePositionDiv(elem, infobox, e.clientX);
            }
            
        }
        
        window.clearTimeout(eb);
    }
    
}

function changeImage(elem, catId, over)
{
     if (!elem || !elem.parentNode || !elem.parentNode.parentNode) return;
     var rowNode = elem.parentNode.parentNode;
     var tdNodes = rowNode.getElementsByTagName("td");
     if (!tdNodes) return;
     for(var i=0; i < tdNodes.length; i++)
     {
        var chgImg = tdNodes[i].getAttribute("chgImg");
        var chgText = tdNodes[i].getAttribute("chgText");
        if (chgImg)
        {
            var imgNode = tdNodes[i].getElementsByTagName("IMG");
            if (!imgNode || imgNode.length == 0) continue;
            imgNode[0].src = over ? "resources/images/ec_"+catId+"h.gif" : "resources/images/ec_"+catId+".gif";
        }
        else if (chgText)
        {
            var textNode = tdNodes[i].getElementsByTagName("A");
            if (!textNode) continue;
            
             textNode[0].style.color = over ? "#f76e00" : "#0066cc";
        }
     }
     
}


function GetEventId(elem)
{
    if (elem && elem.parentNode)
    {
        var parentNode = elem.parentNode;
        if (parentNode.tagName == "TR")
        {
            return parentNode.id;
        }
        else
        {
            return GetEventId(parentNode);        
        }
    }
}
function showEventBox2()
{
    var infobox = $("infobox");
    
    if (infobox != null)
    {
        infobox.setAttribute("hide", "false");
        infobox.style.display = "block";
        window.clearTimeout(eb);
    }
    
}

var eb = null;

function hideEventBox(e)
{
    var outer = this;
    this.toElement =  (e.relatedTarget) ? e.relatedTarget : e.toElement;
   
     var interval = function()
     {
         var infobox = $("infobox");
        
        if (infobox != null && outer && (outer.toElement != null && outer.toElement.id != "infobox" && outer.toElement.id != "more") || (outer.toElement == null))
        {
          infobox.setAttribute("hide", "true");
          infobox.style.display = "none";
        }
     }

     if (eb)
        window.clearTimeout(eb);
     eb = window.setTimeout(interval, 500);
    
    
}

function hideEventBox2()
{
    var infobox = $("infobox")
    if (infobox != null)
    {
        infobox.style.display = "none";
        infobox.setAttribute("hide", "true");
    }
}

 function showHide(elem, imgElem, elem2)
{
    if (elem)
    {
        if (elem.style.display == "block")
        {
            elem.style.display =  "none";
            if (elem2)
            {
                elem2.style.display = "none";
            }
            imgElem.src = "resources/images/plus_my.gif";
        }
        else
        {
            elem.style.display = "block";
            
            if (elem2)
            {
                elem2.style.display = "block";
            }

            imgElem.src = "resources/images/minus_my.gif";
        }
        
    }
}
