var isVenueMapFiltering = false;

$(document).ready(function(){
    $(".templTicketsCatDivNormal").hover(function(){   
        $(this).addClass("templTicketsCatDivHighlight");
        var block = $("input[name='BlockID']" ,this).val();
        block = getBlockName(block);
        //console.log(block);
        
        var classes = false;
        
        if($("#containerMainContentBack input[name='Classes']").val() == 'true') {
            classes = true;
        } else {
            classes = false;
        }
        
        if(isVenueMapFiltering) resetHighLights(classes);
        
        if(classes) {
            trHighlightClass(block);
        } else {
            trHighlightBlock(block);
        }
    },function(){
        $(this).removeClass("templTicketsCatDivHighlight");
        var block = $("input[name='BlockID']" ,this).val();
        block = getBlockName(block);
        
        var classes = false;
        
        if($("#containerMainContentBack input[name='Classes']").val() == 'true') {
            classes = true;
        } else {
            classes = false;
        }
        
        if(isVenueMapFiltering) highlightAllDisplayedBlocks(classes);
        
        if(classes) {
            trHighlightClass(block);
        } else {
            trHighlightBlock(block);
        }
    });
    
    $(".trMapOutput").removeAttr("title");
    $(".trMapOutput").removeAttr("alt");
    
    /*$("#trMap area").each(function() {
        $(this).attr("title","");
        $(this).attr("alt","");
    });*/
    
    //Suchfeld - Autocomplete
    $("#s_inputField input[type='text']").autocomplete({
       source : 'ajax_search.php?searchfield=performer&advancedSearch=0',
       minLength: 3,
       delay: 200,
       search: function(event, ui) {
            $("#preloader").css("display", "block");
       },
       open: function(event, ui) {
            $("#preloader").css("display", "none");
       },
       select : function(event, ui) {
            $("#pID").val(ui.item.id);
            $("#ppCAT").val(ui.item.ppc_name);
            $("#pcCAT").val(ui.item.pcc_name);
            $("#performer").val(ui.item.value);
            $("#p_sport").val(ui.item.p_sport);
            $("#p_sport_cc").val(ui.item.p_sport_cc);
            $("#p_sport_gcc").val(ui.item.p_sport_gcc);
            $("#sports_event").val(ui.item.sports_event);
            $("#is_category").val(ui.item.is_category);
            $("#s_inputField input[name='submit']").click();
       }
    }).data( "autocomplete" )._renderItem = function(ul, item) {renderItem(ul, item);}
    
    if ($("#searchAdvancedWrapper").length > 0) {

    // searchAdvanced - Autocomplete - Performer
    $("#searchAdvancedWrapper #performer_input").autocomplete({
       source : 'ajax_search.php?searchfield=performer&advancedSearch=1',
       minLength: 3,
       delay: 150,
       search: function(event, ui) {
            $("#searchAdvancedWrapper #preloader_performer").css("display", "block");
       },
       open: function(event, ui) {
            $("#searchAdvancedWrapper #preloader_performer").css("display", "none");
       },
       select : function(event, ui) {
            $("#sa_pID").val(ui.item.id);
            $("#sa_ppCAT").val(ui.item.ppc_name);
            $("#sa_pcCAT").val(ui.item.pcc_name);
            $("#sa_performer").val(ui.item.value);
            $("#sa_p_sport").val(ui.item.p_sport);
            $("#sa_p_sport_cc").val(ui.item.p_sport_cc);
            $("#sa_p_sport_gcc").val(ui.item.p_sport_gcc);

            //call_searchAdvanced('searchAdvanced_form', false);
       }
    }).data( "autocomplete" )._renderItem = function(ul, item) {renderItem(ul, item);}


    // searchAdvanced - Autocomplete - City
    $("#searchAdvancedWrapper #city_input").autocomplete({
       source : 'ajax_search.php?searchfield=city',
       minLength: 3,
       delay: 150,
       search: function(event, ui) {
            $("#searchAdvancedWrapper #preloader_city").css("display", "block");
       },
       open: function(event, ui) {
            $("#searchAdvancedWrapper #preloader_city").css("display", "none");
       },
       select : function(event, ui) {
            $("#sa_cID").val(ui.item.id);
            $("#sa_city").val(ui.item.value);

            //call_searchAdvanced('searchAdvanced_form', false);
       }
    }).data( "autocomplete" )._renderItem = function( ul, item ) {
                            renderItem(ul, item, false);
        };


    $("#searchAdvancedWrapper #datepicker_min").datepicker({
        dayNamesMin: dayNamesMin,
        dayNames: dayNames,
        dayNamesShort: dayNamesShort,
        monthNames: monthNames,
        monthNamesShort: monthNamesShort,
        dateFormat: 'dd.mm.yy',
        minDate: '0d',
        onClose: function triggerSearch() {
            var date = $("#datepicker_min").datepicker("getDate");
            if (date != null) {
                date = new Date(date.getTime());
                $("#datepicker_max").datepicker("option", "minDate", date);

//                call_searchAdvanced('searchAdvanced_form', false);
            }
        }
    });

    $("#searchAdvancedWrapper #datepicker_max").datepicker({
        dayNamesMin: dayNamesMin,
        dayNames: dayNames,
        dayNamesShort: dayNamesShort,
        monthNames: monthNames,
        monthNamesShort: monthNamesShort,
        dateFormat: 'dd.mm.yy',
        minDate: '0d',
        onClose: function triggerSearch() {
            var date = $("#datepicker_max").datepicker("getDate");
            if (date != null) {
                date = new Date(date.getTime());
                $("#datepicker_min").datepicker("option", "maxDate", date);

//                call_searchAdvanced('searchAdvanced_form', false);
            }
        }
    });
}

    //Suchfeld value Inhalt - aus
    $("#searchAdvancedWrapper #datepicker_min, #searchAdvancedWrapper #datepicker_max").focus(function() {
        this.value = '';
    });
    
    $("#preloader_content_ex1").css("display", "none");
    $("#content_ex1").css("display", "block");
    
    $("#preloader_content_ex2").css("display", "none");
    $("#content_ex2").css("display", "block");
    
    $("#preloader_content_ex3").css("display", "none");
    $("#content_ex3").css("display", "block");

});

function clearAdvSearchFields() {
    $("#searchAdvancedWrapper #performer_input, #searchAdvancedWrapper #city_input, #searchAdvancedWrapper #datepicker_min, #searchAdvancedWrapper #datepicker_max, #searchAdvancedWrapper #sa_cID,").val('');
    clean_performerIds();
    return false;
}

function clean_performerIds()
{
            $("#sa_pID").val("");
            $("#sa_ppCAT").val("");
            $("#sa_pcCAT").val("");
            $("#sa_p_sport").val("");
            $("#sa_p_sport_cc").val("");
            $("#sa_p_sport_gcc").val("");
            $("#sports_event").val("");
}

function clean_cityIds()
{
    $("#sa_cID").val("");
}

function call_searchAdvanced(form, clearIDs)
{
    $("#searchAdvancedWrapper #sa_results").css("visibility", "hidden");
    
    var event = $("#searchAdvanced_form #performer_input").val();
    var city = $("#searchAdvanced_form #city_input").val();
    var dateFrom = $("#searchAdvanced_form #datepicker_min").val();
    var dateTo = $("#searchAdvanced_form #datepicker_max").val();
    
    if(dateFrom == '' && dateTo == '' && event == '' && city == '') {
        alert(lngFetch_emptyFields());
        return false;
    } else if(((dateFrom != '' && dateTo != '') || (dateFrom == '' && dateTo != '')) && (event == '' && city == '')) {
        alert(lngFetch_toManySearchResults());
        return false;
    }
    
    var input_field_data = $("#" + form).serialize();
    
    if(!$.browser.msie) {
        window.history.pushState(new Object(), "", "searchAdv?"+encodeURI(input_field_data));
    }
    else {
        $(location).attr("hash", "!"+encodeURI(input_field_data));
    }
    
    $("#searchAdvancedWrapper #preloader_horizontal").css("visibility", "visible");

    $.post("ajax_search.php?case=ajax_query", input_field_data, function(e){
       $("#searchAdvancedWrapper #preloader_horizontal").css("visibility", "hidden");
       $("#searchAdvancedWrapper #sa_results").html(e);
       $("#searchAdvancedWrapper #sa_results").css("visibility", "visible");
    });
}

function renderItem (ul, item, cat) {

        var value = item.value;
        var re = new RegExp(item.term, "i");
        var rep_str = value.match(re);

        var bold_term = "<span style='color: #ce0000; font-weight: bold;'>" + rep_str + "</span>";
        var new_value = value.replace(re, bold_term);

        if(value == "no_results") {
            return $( "<li style='text-align: left;'></li>" )
            .data( "item.autocomplete", item )
            .append( "<span style='font-size: 11px; font-style: italic;'>" + lngFetch_no_results() + "</span>" )
            .appendTo( ul );
        }
        else if(cat == false) {
            return $( "<li style='text-align: left;'></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + "<span style='font-size: 11px; font-weight:normal;'>" + new_value + "</span>" + "</a>" )
            .appendTo( ul );
        }
        else {
            return $( "<li style='text-align: left;'></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + "<span style='font-size: 11px; font-weight:normal;'>" + new_value + "</span>" + "<br>" + "<span style='font-size: 10px; font-weight: normal;'>" + item.ppc_name + ' - ' + item.pcc_name + "</span>"+"</a>" )
            .appendTo( ul );
        }
}

function doPostCall_IfHash() {
    if($(location).attr("hash")) {
        var url = location.href;
        var get = url.substring(url.indexOf('#')+2);

        $("#searchAdvancedWrapper #preloader_horizontal").css("visibility", "visible");

        $.post("ajax_search.php?case=ajax_query", get, function(e){

            $("#searchAdvancedWrapper #preloader_horizontal").css("visibility", "hidden");
            $("#searchAdvancedWrapper #sa_results").html(e);

        });
    }
}

function highlightAllDisplayedBlocks(classes) {
    var blockOld = 'thisIsTheOldBlockAndItsEmpty';
    $(".templTicketsCatDivNormal").each(function() {
       var display = $(this).css("display");
       
       if(display == "block") {
           var block = $("input[name='BlockID']" ,this).val();
           block = getBlockName(block);
           if(block == blockOld) return true;
           if(classes) {
                trHighlightClass(block);
           } else {
                trHighlightBlock(block);
           }
           
           blockOld = block;
       }
    });
}

function filterBlockCats(mapBlock) {
    trHighlightBlock(mapBlock);
    
    var hasHighlightedBlocks = false;
    
    $(".templTicketsOverFlowIA input").each(function() {
       var inputName = $(this).attr("name");
       if(inputName == "BlockID") {
           var block = $(this).val();
           block = getBlockName(block);
           //console.log(trGetHighlightStatus(block));
           if(trGetHighlightStatus(block)) {
               $(this).parents(".templTicketsCatDivNormal").css("display","block");
               hasHighlightedBlocks = true;
           } else {
               $(this).parents(".templTicketsCatDivNormal").css("display","none");
           }
       }
    });
    
    if(!hasHighlightedBlocks) {
        resetVenueMap();
    } else {
        isVenueMapFiltering = true;
    }
}

function resetVenueMap() {
    //console.log("reset");
    $(".templTicketsCatDivNormal").each(function() {
          $(this).css("display","block");
          $("input",this).each(function() {
              var inputName = $(this).attr("name");
              if(inputName == "BlockID") {
                var block = $(this).val();
                block = getBlockName(block);
                if(trGetHighlightStatus(block)) {
                    trHighlightBlock(block);
                }
              }  
          })
    }); 
    
    isVenueMapFiltering = false;
    $(".templTicketsOverFlowIA").scrollTop(0);
}

function resetHighLights(classes) {
    $(".templTicketsCatDivNormal").each(function() {
          $("input",this).each(function() {
              var inputName = $(this).attr("name");
              if(inputName == "BlockID") {
                var block = $(this).val();
                block = getBlockName(block);
                if(trGetHighlightStatus(block)) {
                   if(classes) {
                        trHighlightClass(block);
                   } else {
                        trHighlightBlock(block);
                   }
                }
              }  
          })
    });    
}

function getBlockName(block) {
   block = block.substr(2);
        
   return block;     
}

function winOpenPlan(city,hall,plan)
{
	var win = null;
	win = window.open('http://www.ticketbande.eu/hallplans_big.php?city='+city+'&&hall='+hall+'&&plan='+plan,'Fenster1','width=530,height=530,left=0,top=0,resizable=yes,scrollbars=yes');
	win.focus();
}

function changeAmount(id,k,url)
{	
	amount = document.forms["formAmount"+k].amount.value;
	type = document.forms["formAmount"+k].type.value;
	
	window.location.href = url+"/cart.php/tid/"+id+"/amount/"+amount+"/type/"+type+"/action/change/warenkorb.html";
}

function checkTerms() {
	if(!document.orderForm.check_terms.checked) {
		alert("Bitte AGB bestätigen");
		return false;
	} else if(!document.orderForm.check_price.checked) {
		alert("Bitte Originalpreis-Abweichung bestätigen");
		return false;
	} else {	
		return true;
	}	
}

function addFavorites() {
	var browserName= navigator.appName;
	if (browserName == "Netscape")
	{ 
 		window.sidebar.addPanel('Ticketbande, Ihre Online Ticketvorverkaufsstelle', 'http://www.ticketbande.eu', '');
	}
	else 
	{
		window.external.addFavorite('http://www.ticketbande.eu','Ticketbande, Ihre Online Ticketvorverkaufsstelle');
    }
}

function togglePackDesc(id) {
	var div = "pack_desc" + id;
	if(document.getElementById(div).style.display == "none") {
    	document.getElementById(div).style.display = "inline"; 
 	} else { 
    	document.getElementById(div).style.display = "none"; 
	}
}

function hideButtonCC()
{
	document.getElementById("buttonPay").style.display = "none";
}

// Navigation

function changeLink(linkname,template){

	switch(template)
	{
		case 'ticketbande_de':
			color1 = "#FFFFFF";
			color2 = "#FFFF00";
			break;

		case 'rocksolidevents':
			color1 = "#173f9c";
			color2 = "#d7213f";
			break;

    	case 'u2_tickets':
			color1 = "#b6131b";
			color2 = "#FFFFFF";
			break;
			
    	case 'pollstar':
			color1 = "#FFFFFF";
			color2 = "#FFCD64";
			break;

		case 'madonna':
			color1 = "#FFFFFF";
			color2 = "#EDF425";
		break;

		default:
			color1 = "#98FF00";
			color2 = "#FFFFFF";
			break;
	}

   Linkarray = new Array('Konzerte','Shows','Sport','Hotels');
   for(var i=0;i<Linkarray.length;i++){
      if (Linkarray[i] != linkname) {
        document.getElementById(Linkarray[i]).style.color = color1;
      }
      else {
        document.getElementById(linkname).style.color = color2;
      }
   }
}

function LinkMo(linkname){
document.getElementById(linkname).src = linkname+"_mo".gif;
}

var dom = document.getElementById?1:0;
var ns4 = document.layers?1:0;

function showMenu(name,number) {
 var groups = 4;

 for (count = 1; count <= groups; count++) {
 var content = name + count;
 var active = name + number;

  if(dom) {
   if(content == active) {
    document.getElementById(active).style.visibility = 'visible';
    document.getElementById(active).onmouseover = clearShut;
    document.getElementById(active).onmouseout = setShut;
   }
   else {
    document.getElementById(content).style.visibility = 'hidden';
   }
  }
  else if(ns4) {
   if(content == active) {
    document[active].visibility = 'show';
    document[active].onmouseover = clearShut;
    document[active].onmouseout = setShut;
   }
   else {
    document[content].visibility = 'hide';
   }
  }
 }
 first = name, sec = number;
 clearShut();
}

function setShut() {
timer = setTimeout("shut(first,sec)", 20000);
}

function clearShut() {
if(window.timer)
clearTimeout(timer);
}

function shut(first,sec) {
 var active = first + sec;

 if(dom)
 document.getElementById(active).style.visibility = 'hidden';
 else if(ns4)
 document[active].visibility = 'hide';
}

function answerSwitch(i, count, name)
{
	var answer = name + i;
	var status = document.getElementById(answer).style.display;
	var temp = '';
	for(var z = 1; z <= count; z++)
	{
		temp = name + z;
		document.getElementById(temp).style.display = 'none';
	}
	if(status == 'none')
	{
		document.getElementById(answer).style.display = 'block';
	}
	else
	{
		document.getElementById(answer).style.display = 'none';
	}
}

function toggleDiv(div) {
	if(document.getElementById(div).style.display == "none") {
    	document.getElementById(div).style.display = "inline"; 
 	} else { 
    	document.getElementById(div).style.display = "none"; 
	}
}
