// Namespace for FOTLD tickets functions
var TygitTicketsAttractionId = 0;
var TygitTicketsAffiliateCode = '';
var TygitTicketsAppDomain = '';
var TygitTicketsLoaderImage = '';
var TygitTicketsBasketUrl = '';
var TygitTicketsAddToBasketUrl = '';
var TygitTicketsSaving = 0;
var TygitTicketsTotal = 0;
var TygitTicketsTotalQuantity = 0;
var TygitTicketsGroups = Array();
var TygitTicketsGeneralSelectionMessage;
var TygitTicketsNoTicketsMessage;
var TygitTicketsReserveLevelReachedMessage;
var TygitTicketsMessages = Array();
var TygitTicketsLabels = Array();
var TygitTicketsDynamicLabels = Array();
var TygitTicketsBasket = false;
var TygitTicketsMode = 'online';
var TygitTicketsGroup = '';
var TygitTicketsSelectionMode = 'group';
var TygitTicketsGiftAid = false;
var TygitTicketsHasDonationTickets = false;
var TygitTicketsHasNoDonationTickets = false;
var TygitTicketsUseGiftAidSelector = true;


TygitTickets = {}

TygitTickets.setAttraction = function(attractionId) {
    TygitTicketsAttractionId = attractionId;
}

TygitTickets.setAffiliateCode = function(affiliateCode) {
	TygitTicketsAffiliateCode = affiliateCode;
}

TygitTickets.setAppDomain = function(appDomain) {
    TygitTicketsAppDomain = appDomain;
}

TygitTickets.setGroup = function(group) {
    TygitTicketsGroup = group;
}

TygitTickets.setSelectionMode = function(selectionMode) {
    TygitTicketsSelectionMode = selectionMode;
}

TygitTickets.useGiftAidSelector = function(option) {
	TygitTicketsUseGiftAidSelector = option;
}

TygitTickets.setBasketUrl = function(url) {
    TygitTicketsBasketUrl = url;
}

TygitTickets.setAddToBasketUrl = function(url) {
    TygitTicketsAddToBasketUrl = url;
}

TygitTickets.setLoaderImage = function(loaderImage) {
    TygitTicketsLoaderImage = '<img src="'+loaderImage+'" />';
}

TygitTickets.setGeneralSelectionMessage = function(message) {
    TygitTicketsGeneralSelectionMessage = message;
}

TygitTickets.setNoTicketsMessage = function(message) {
    TygitTicketsNoTicketsMessage = message;
}

TygitTickets.setReserveLevelReachedMessage = function(message) {
    TygitTicketsReserveLevelReachedMessage = message;
}

TygitTickets.setLabels = function(labels) {
    TygitTicketsLabels = labels;
}

TygitTickets.start = function() {
    return false;
}

TygitTickets.init = function() {
    jQuery("#selectTicketGroup").html(TygitTicketsLoaderImage);
    TygitTickets.getGroupSelectModes();
    TygitTickets.getGroupSelectionMessages();
    TygitTickets.getGroupSelectionLabels();
    TygitTicketsGiftAid = false;
    switch(TygitTicketsSelectionMode) {
    	case 'calendar':
        	TygitTickets.prepCalendar();
            TygitTickets.getCalendar(date('Y-m-d'));
    		break;
    		
	    case 'group':
		    if(!TygitTicketsGroup) {
		        TygitTickets.getGroups();
		    }
		    break;
    }
    TygitTickets.hasBasket();
}

TygitTickets.validateSelectTicketForm = function(){
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    var checks = '';
    var checkResult = false;
    //alert(jQuery('.quantity'));
    jQuery('.quantity').each(function(){ 
        var quantity = parseInt(this.value);
        if(typeof quantity == 'number' && quantity > 0 && (quantity == parseFloat(this.value))) {
            if(checks.length > 0) {
                checks = checks + '||true';
            } else {
                checks = 'true';
            }   
        } else {
            if(checks.length > 0) {
                checks = checks + '||false';
            } else {
                checks = 'false';
            }
        }
     }); 
     
     if(checks.length > 0) {
        eval('checkResult = '+ checks);
     } else {
        return false;
     }
     if(!checkResult) {
        jQuery("#selectTicketValidation").html('Please enter a valid quantity');
        jQuery("#selectTicketValidation").addClass('error');
        return false;
     }  else {
        return true;
     }
}

TygitTickets.resetSelectTicket = function(){ 
	
    jQuery("#selectTicketSubGroup").removeClass("active"); 
    jQuery("#selectTicketSubGroup").html('');
    jQuery("#selectTicketSubGroup").hide();
    
    jQuery("#selectTicketDate").removeClass("active"); 
    jQuery("#selectTicketDate").html('');
    jQuery("#selectTicketDate").hide();
    
    jQuery("#selectTicketTime").removeClass("active");
    jQuery("#selectTicketTime").html('');
    jQuery("#selectTicketTime").hide();
    
    jQuery("#selectTicketTypes").removeClass("active");
    jQuery("#selectTicketTypes").html('');
    jQuery("#selectTicketTypes").hide();
    
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    if(TygitTicketsGroup) {
        switch(TygitTicketsGroups[TygitTicketsGroup]) {
            case 'ticket-type':
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupTicketTypes(TygitTicketsGroup);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'calendar-ticket-type':
            	TygitTickets.prepCalendar();
                TygitTickets.getCalendar(date('Y-m-d'));
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show();
            	break;
                
            case 'sub-group-ticket-type':
            case 'sub-group-date-ticket-type':
            case 'sub-group-calendar-ticket-type':
            case 'sub-group-date-time-ticket-type':
                jQuery("#selectTicketSubGroup").html(TygitTicketsLoaderImage);
                TygitTickets.getSubGroups(TygitTicketsGroup); 
                jQuery("#selectTicketSubGroup").addClass("active");
                jQuery("#selectTicketSubGroup").show(); 
                break;
                
            case 'date-ticket-type':
            case 'date-time-ticket-type':
                jQuery("#selectTicketDate").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDates(TygitTicketsGroup,''); 
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show(); 
                break;
        }        
    } else {
	    jQuery("#selectTicketGroup").addClass("active");
	    document.getElementById('selectGroup').value = ''; 
    }
    
    TygitTicketsSaving = 0;
    TygitTicketsTotal = 0;
    TygitTicketsTotalQuantity = 0;    

}

TygitTickets.getTicketTypes = function(){   
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = false;
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){
    	if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    		if(item.includesDonation > 0 && !lastTicketHasDonation) {
    			flag = !flag;
    		} else if(item.includesDonation == 0 && lastTicketHasDonation) {
    			flag != flag;
    		}
    	}
        
        if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="4">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            tableStr = tableStr +  '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+'"><td>'+item.description+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" /></td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        } 
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="attractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<div class="clear"></div></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    	  TygitTickets.toggleGiftAid();
      }
    });    
}
TygitTickets.getGroupSelectModes = function(){ 

    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/attraction-ticket-group-select-modes/attractionId/"+TygitTicketsAttractionId+"?jsoncallback=?",
    function(data){
      TygitTicketsGroups = data;
        if(TygitTicketsGroup) {
            jQuery("#selectTicketGroup").html('');
	        switch(TygitTicketsGroups[TygitTicketsGroup]) {
	            case 'ticket-type':
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupTicketTypes(TygitTicketsGroup);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                break;
	                
	            case 'calendar-ticket-type':
	            	TygitTickets.prepCalendar();
	                TygitTickets.getCalendar(date('Y-m-d'));
	                jQuery("#selectTicketDate").addClass("active");
	                jQuery("#selectTicketDate").show();
	            	break;
	                
	            case 'sub-group-ticket-type':
	            case 'sub-group-calendar-ticket-type':
	            case 'sub-group-date-ticket-type':
	            case 'sub-group-date-time-ticket-type':
	                jQuery("#selectTicketSubGroup").html(TygitTicketsLoaderImage);
	                TygitTickets.getSubGroups(TygitTicketsGroup); 
	                jQuery("#selectTicketSubGroup").addClass("active");
	                jQuery("#selectTicketSubGroup").show(); 
	                break;
	                
	            case 'date-ticket-type':
	            case 'date-time-ticket-type':
	                jQuery("#selectTicketDate").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDates(TygitTicketsGroup,''); 
	                jQuery("#selectTicketDate").addClass("active");
	                jQuery("#selectTicketDate").show(); 
	                break;
	        }
        }      
    });    
}

TygitTickets.getGroupSelectionMessages = function(){ 
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/attraction-ticket-group-selection-messages/attractionId/"+TygitTicketsAttractionId+"?jsoncallback=?",
    function(data){
      TygitTicketsMessages = data;
    });    
}

TygitTickets.getGroupSelectionLabels = function(){ 

    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/attraction-ticket-group-selection-labels/attractionId/"+TygitTicketsAttractionId+"?jsoncallback=?",
    function(data){
      TygitTicketsDynamicLabels = data;
    });    
}

TygitTickets.hasBasket = function(){ 

    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/has-basket?jsoncallback=?",
    function(data){
      TygitTicketsBasket = data;
    });    
}
    
TygitTickets.getGroups = function(){ 
    
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/ticket-type-groups/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"?jsoncallback=?",
    function(data){
      htmlStr = '';
      jQuery.each(data, function(i,item){
        htmlStr = htmlStr + '<option value="'+item+'">'+item+'</option>';
      });
      if(htmlStr != '') {
	      htmlStr = '<label for="selectGroup">' + TygitTicketsLabels["selectGroup"] + '</label><select name="group" id="selectGroup" onchange="TygitTickets.groupSelected();"><option value="">Please Select..</option>' + htmlStr + '</select>';
	      jQuery("#selectTicketGroup").html(htmlStr);
	      jQuery("#selectTicketGroup").addClass("active");
      } else {
        jQuery("#selectTicketGroup").html(TygitTicketsNoTicketsMessage);
      }
    });    
}

TygitTickets.groupSelected = function(){ 
    
    jQuery("#selectTicketGroup").removeClass("active");
    
    jQuery("#selectTicketSubGroup").removeClass("active"); 
    jQuery("#selectTicketSubGroup").html('');
    jQuery("#selectTicketSubGroup").hide();
    
    jQuery("#selectTicketDate").removeClass("active"); 
    jQuery("#selectTicketDate").html('');
    jQuery("#selectTicketDate").hide();
    
    jQuery("#selectTicketTime").removeClass("active");
    jQuery("#selectTicketTime").html('');
    jQuery("#selectTicketTime").hide();
    
    jQuery("#selectTicketTypes").removeClass("active");
    jQuery("#selectTicketTypes").html('');
    jQuery("#selectTicketTypes").hide();
    
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    var group = document.getElementById('selectGroup').value;
    TygitTicketsSaving = 0;
    TygitTicketsTotal = 0;
    TygitTicketsTotalQuantity = 0;
    //alert(group);
    
    if(group) {
        switch(TygitTicketsGroups[group]) {
            case 'ticket-type':
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupTicketTypes(group);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'calendar-ticket-type':
            	TygitTickets.prepCalendar();
                TygitTickets.getCalendar(date('Y-m-d'));
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show();
            	break;
                
            case 'sub-group-ticket-type':
            case 'sub-group-calendar-ticket-type':
            case 'sub-group-date-ticket-type':
            case 'sub-group-date-time-ticket-type':
                jQuery("#selectTicketSubGroup").html(TygitTicketsLoaderImage);
                TygitTickets.getSubGroups(group); 
                jQuery("#selectTicketSubGroup").addClass("active");
                jQuery("#selectTicketSubGroup").show(); 
                break;
                
            case 'date-ticket-type':
            case 'date-time-ticket-type':
                jQuery("#selectTicketDate").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDates(group,''); 
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show(); 
                break;
        }
    } else {
        jQuery("#selectTicketGroup").addClass("active");       
    }
}

TygitTickets.getGroupTicketTypes = function(group){   
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/group-ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = true;
      var lastTimeAdvertised = '';
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){
        if(lastTimeAdvertised != item.timeAdvertised) {
            tableStr = tableStr + '<tr><td colspan="5">&nbsp;</td></tr>';
            if(item.timeAdvertised) tableStr = tableStr + '<tr><td><strong>Time:&nbsp;'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</strong></td><td colspan="4">&nbsp;</td></tr>';
            flag = true;
        }
        if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
        	if(item.includesDonation > 0 && !lastTicketHasDonation) {
        		flag = !flag;
        	} else if(item.includesDonation == 0 && lastTicketHasDonation) {
        		flag != flag;
        	}
        }
        if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="4">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+'"><td>'+item.description+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" /></td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        }
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
        lastTimeAdvertised = item.timeAdvertised;
        
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="TygitTicketsAttractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + (TygitTicketsMessages[group]? TygitTicketsMessages[group]+"<br />":"") + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<br clear="all" /></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    	  TygitTickets.toggleGiftAid();
      }
    });  
}  

TygitTickets.getSubGroups = function(group){  
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/ticket-type-sub-groups/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      jQuery.each(data, function(i,item){
         htmlStr = htmlStr + '<option value="'+item+'">'+item+'</option>';
      });
      htmlStr = '<label for="selectSubGroup">' + (TygitTicketsDynamicLabels[group]['subGroup']?TygitTicketsDynamicLabels[group]['subGroup']:TygitTicketsLabels["selectSubGroup"]) + '</label><select name="subGroup" id="selectSubGroup" onchange="TygitTickets.subGroupSelected(\''+group+'\');"><option value="">Please Select..</option>' + htmlStr + '</select>';
      jQuery("#selectTicketSubGroup").html(htmlStr);
    }); 
} 

TygitTickets.subGroupSelected = function(group){ 
    
    jQuery("#selectTicketSubGroup").removeClass("active");
    
    jQuery("#selectTicketDate").removeClass("active"); 
    jQuery("#selectTicketDate").html('');
    jQuery("#selectTicketDate").hide();
    
    jQuery("#selectTicketTime").removeClass("active");
    jQuery("#selectTicketTime").html('');
    jQuery("#selectTicketTime").hide();
    
    jQuery("#selectTicketTypes").removeClass("active");
    jQuery("#selectTicketTypes").html('');
    jQuery("#selectTicketTypes").hide();
    
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    var subGroup = document.getElementById('selectSubGroup').value;
    //alert(group);
    if(group) {
        switch(TygitTicketsGroups[group]) {
            case 'ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide();   
                
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupTicketTypes(group);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'calendar-ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide(); 
            	TygitTickets.prepCalendar();
                TygitTickets.getCalendar(date('Y-m-d'));
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show();
            	break;
                
            case 'sub-group-ticket-type':
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getSubGroupTicketTypes(group,subGroup);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'sub-group-calendar-ticket-type':
            	TygitTickets.prepCalendar();
                TygitTickets.getCalendar(date('Y-m-d'));
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show();
            	break;
                
                
            case 'sub-group-date-ticket-type':
            case 'sub-group-date-time-ticket-type':
                var subGroup = document.getElementById('selectSubGroup').value; 
                jQuery("#selectTicketDate").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDates(group, subGroup); 
                jQuery("#selectTicketDate").addClass("active");
                jQuery("#selectTicketDate").show(); 
                break;
                
            case 'date-ticket-type':
            case 'date-time-ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide(); 
                break; 
        }
    } else {
        jQuery("#selectTicketGroup").addClass("active");       
    }
} 

TygitTickets.getSubGroupTicketTypes = function(group,subGroup){ 

    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/sub-group-ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+"/subGroup/"+subGroup+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = true;
      var lastTimeAdvertised = '';
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){
        if(lastTimeAdvertised != item.timeAdvertised) {
            tableStr = tableStr + '<tr><td colspan="5">&nbsp;</td></tr>';
            tableStr = tableStr + '<tr><td><strong>Time:&nbsp;'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</strong></td><td colspan="4"></td>&nbsp;</tr>';
            flag = true;
        }
        

        if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
        	if(item.includesDonation > 0 && !lastTicketHasDonation) {
        		flag = !flag;
        	} else if(item.includesDonation == 0 && lastTicketHasDonation) {
        		flag != flag;
        	}
        }        
        
        if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="4">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+'"><td>'+item.description+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" /></td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        }
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
        lastTimeAdvertised = item.timeAdvertised;
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="TygitTicketsAttractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + (TygitTicketsMessages[group]? TygitTicketsMessages[group]+"<br />":"") + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<br clear="all" /></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    	  TygitTickets.toggleGiftAid();
      }
    });  
}

TygitTickets.prepCalendar = function() {
	jQuery("#selectTicketDate").html('<div id="tygit-calendar-container-header"></div><div id="tygit-calendar-container"></div>');
}

TygitTickets.getCalendar = function(date) {
	var subGroup = '';
	switch(TygitTicketsSelectionMode) {
		case 'calendar':
			var group = '';
			break;
	
		case 'group':
			if(TygitTicketsGroup) {
				var group = TygitTicketsGroup;
			} else {
				var group = document.getElementById('selectGroup').value;
			}
			if(TygitTicketsGroups[group] == 'sub-group-calendar-ticket-type') {
				subGroup = document.getElementById('selectSubGroup').value;
			}
			break;
	}
	
	jQuery.getJSON(TygitTicketsAppDomain+"/json-service/calendar/attractionId/"+TygitTicketsAttractionId+(group?"/group/"+group:"")+(subGroup?"/subGroup/"+subGroup:"")+(date!=""?"/date/"+date:"")+"?jsoncallback=?",
    function(data){
      if(data.html) {
    	if(TygitTicketsSelectionMode == 'calendar') jQuery("#selectTicketGroup").html('');
        jQuery('#tygit-calendar-container').html(data.html);
      }
    });
}

TygitTickets.selectDate = function(selectedDate,id) {
	switch(TygitTicketsSelectionMode) {
		case 'calendar':
			var group = '';
			break;
			
		case 'group':
			if(TygitTicketsGroup) {
				var group = TygitTicketsGroup;
			} else {
				var group = document.getElementById('selectGroup').value;
			}
			break;
	}
    jQuery('.multi-month-mash-calendar td').removeClass('selected');
    jQuery('#'+id).addClass('selected');
    document.getElementById('selectDate').value = selectedDate;
    TygitTickets.dateSelected(group,true);
    //jQuery('#tygit-info-container').slideDown('slow');
    jQuery('#tygit-calendar-container-header').html('Chosen date: <strong>'+date('j/m/Y',strtotime(selectedDate))+'</strong> <a href="JavaScript:TygitTickets.showCalender();">Choose another</a>');
    jQuery('#tygit-calendar-container').slideUp('slow');
    
}


TygitTickets.showCalender = function() {
    jQuery('#tygit-calendar-container').slideDown('slow');
    jQuery('#tygit-calendar-container-header').html('Choose another date for your visit:');
    jQuery('#selectTicketTypes').html('');
}


    
TygitTickets.getGroupDates = function(group, subGroup){  
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/group-valid-dates/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+(subGroup!=''?"/subGroup/"+subGroup:"")+"?jsoncallback=?",
    function(data){
      htmlStr = '';
      jQuery.each(data, function(i,item){
        if(item.soldOut) {
            htmlStr = htmlStr + '<option value="'+item.date+'" class="sold-out">'+item.friendlyDate+'</option>';
        } else {
            htmlStr = htmlStr + '<option value="'+item.date+'">'+item.friendlyDate+'</option>';
        }
      });
      htmlStr = '<label for="selectDate">' + (TygitTicketsDynamicLabels[group]['date']?TygitTicketsDynamicLabels[group]['date']:TygitTicketsLabels["selectDate"]) + '</label><select name="date" id="selectDate" onchange="TygitTickets.dateSelected(\''+group+'\');"><option value="">Please Select..</option>' + htmlStr + '</select>';
      jQuery("#selectTicketDate").html(htmlStr);
    }); 
} 
    
TygitTickets.dateSelected = function(group,passDate){   
    
    jQuery("#selectTicketDate").removeClass("active");
    
    jQuery("#selectTicketTime").removeClass("active");
    jQuery("#selectTicketTime").html('');
    jQuery("#selectTicketTime").hide();
    
    jQuery("#selectTicketTypes").removeClass("active");
    jQuery("#selectTicketTypes").html('');
    jQuery("#selectTicketTypes").hide();
    
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    var date = document.getElementById('selectDate').value;
    //alert(date);
    if(date) {
	    if(group) {
	        switch(TygitTicketsGroups[group]) {
	            case 'ticket-type':
				    jQuery("#selectTicketSubGroup").removeClass("active"); 
				    jQuery("#selectTicketSubGroup").html('');
				    jQuery("#selectTicketSubGroup").hide(); 
				      
	                jQuery("#selectTicketDate").removeClass("active"); 
	                jQuery("#selectTicketDate").html('');
	                jQuery("#selectTicketDate").hide();  
				             
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupTicketTypes(group);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                break;
	                
	                
	            case 'sub-group-ticket-type':
	                jQuery("#selectTicketDate").removeClass("active"); 
	                jQuery("#selectTicketDate").html('');
	                jQuery("#selectTicketDate").hide();  
	                
	                var subGroup = document.getElementById('selectSubGroup').value;
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getSubGroupTicketTypes(group, subGroup);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                break;
	                
	            case 'date-ticket-type':
	                jQuery("#selectTicketSubGroup").removeClass("active"); 
	                jQuery("#selectTicketSubGroup").html('');
	                jQuery("#selectTicketSubGroup").hide(); 
	                
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTicketTypes(group, '', date);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                break;
	                
	            case 'calendar-ticket-type':
	                jQuery("#selectTicketSubGroup").removeClass("active"); 
	                jQuery("#selectTicketSubGroup").html('');
	                jQuery("#selectTicketSubGroup").hide(); 
	                
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTicketTypes(group, '', date, true);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                break;
	                
	            case 'sub-group-date-ticket-type':
	                var subGroup = document.getElementById('selectSubGroup').value; 
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTicketTypes(group, subGroup, date);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                //jQuery("#selectTicketTime").html(TygitTicketsLoaderImage);
	                //jQuery("#selectTicketTime").addClass("active");
	                //jQuery("#selectTicketTime").show();
	                break;
	                
	            case 'sub-group-calendar-ticket-type':
	                var subGroup = document.getElementById('selectSubGroup').value; 
	                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTicketTypes(group, subGroup, date, true);
	                jQuery("#selectTicketTypes").addClass("active");
	                jQuery("#selectTicketTypes").show();
	                //jQuery("#selectTicketTime").html(TygitTicketsLoaderImage);
	                //jQuery("#selectTicketTime").addClass("active");
	                //jQuery("#selectTicketTime").show();
	                break;
	                
	           case 'sub-group-date-time-ticket-type':
	                var subGroup = document.getElementById('selectSubGroup').value;
	                jQuery("#selectTicketTime").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTimes(group, subGroup,date); 
	                jQuery("#selectTicketTime").addClass("active");
	                jQuery("#selectTicketTime").show(); 
	                break;
	                
	           case 'date-time-ticket-type':
	                jQuery("#selectTicketTime").html(TygitTicketsLoaderImage);
	                TygitTickets.getGroupDateTimes(group, '',date); 
	                jQuery("#selectTicketTime").addClass("active");
	                jQuery("#selectTicketTime").show(); 
	                break;
	        }
    	} else {
            jQuery("#selectTicketSubGroup").removeClass("active"); 
            jQuery("#selectTicketSubGroup").html('');
            jQuery("#selectTicketSubGroup").hide(); 
            
            jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
            TygitTickets.getDateTicketTypes(date, true);
            jQuery("#selectTicketTypes").addClass("active");
            jQuery("#selectTicketTypes").show();
    	}
    } else {
        jQuery("#selectTicketDate").addClass("active");
    }
}  
    
TygitTickets.getGroupDateTicketTypes = function(group, subGroup, selectedDate, passDate){     
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/group-date-ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+(subGroup!=''?"/subGroup/"+subGroup:"")+"/date/"+selectedDate+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = true;
      var lastTimeAdvertised = '';
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){
        if(lastTimeAdvertised != item.timeAdvertised && item.timeAdvertised) {
            tableStr = tableStr + '<tr><td colspan="6">&nbsp;</td></tr>';
            tableStr = tableStr + '<tr><td><strong>Time:&nbsp;'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</strong></td><td colspan="5"></td>&nbsp;</tr>';
            flag = true;
        }
        

        if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
        	if(item.includesDonation > 0 && !lastTicketHasDonation) {
        		flag = !flag;
        	} else if(item.includesDonation == 0 && lastTicketHasDonation) {
        		flag != flag;
        	}
        }        
        
        if(item.quantityAvailable == 'Unlimited' || item.quantityAvailable === ' ' || item.quantityAvailable > 0) {
            //<td>'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</td>
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+(lastTimeAdvertised != item.timeAdvertised?' new-time':'')+'"><td>'+item.description+'</td><td>'+date('g.ia',strtotime(date('Y-m-d')+" "+item.earliestEntry))+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'&nbsp;')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor?item.maxAllocationPerVisitor:'&nbsp;')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" />'+(passDate && item.template == 'general-admittance-fixed-date'?'<input type="hidden" name="date'+item.id+'" id="date'+item.id+'" value="'+selectedDate+'"  />':'')+'</td></tr>';
        } else if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="5">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            // <td>'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</td>
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td>'+date('g.ia',strtotime(date('Y-m-d')+" "+item.startTime))+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col">Sold Out</td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        }
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
        lastTimeAdvertised = item.timeAdvertised;
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      //<th>'+TygitTicketsLabels["timeAdvertised"]+'</th>
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["earliestEntry"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="attractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + (TygitTicketsMessages[group]? TygitTicketsMessages[group]+"<br />":"") + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<br clear="all" /></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    	  TygitTickets.toggleGiftAid();
      }
    });    
}   
    
TygitTickets.getDateTicketTypes = function(selectedDate, passDate){     
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/date-ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/date/"+selectedDate+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = true;
      var lastTimeAdvertised = '';
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){
        if(lastTimeAdvertised != item.timeAdvertised && item.timeAdvertised) {
            tableStr = tableStr + '<tr><td colspan="6">&nbsp;</td></tr>';
            tableStr = tableStr + '<tr><td><strong>Time:&nbsp;'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</strong></td><td colspan="5"></td>&nbsp;</tr>';
            flag = true;
        }
        

        if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
        	if(item.includesDonation > 0 && !lastTicketHasDonation) {
        		flag = !flag;
        	} else if(item.includesDonation == 0 && lastTicketHasDonation) {
        		flag != flag;
        	}
        }        
        
        if(item.quantityAvailable == 'Unlimited' || item.quantityAvailable === ' ' || item.quantityAvailable > 0) {
            //<td>'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</td>
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+(lastTimeAdvertised != item.timeAdvertised?' new-time':'')+'"><td>'+item.description+'</td><td>'+date('g.ia',strtotime(date('Y-m-d')+" "+item.earliestEntry))+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'&nbsp;')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor?item.maxAllocationPerVisitor:'&nbsp;')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" />'+(passDate && item.template == 'general-admittance-fixed-date'?'<input type="hidden" name="date'+item.id+'" id="date'+item.id+'" value="'+selectedDate+'"  />':'')+'</td></tr>';
        } else if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="5">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            // <td>'+(item.timeAdvertised?date('g.ia',strtotime(date('Y-m-d')+" "+item.timeAdvertised)):"")+'</td>
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td>'+date('g.ia',strtotime(date('Y-m-d')+" "+item.startTime))+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col">Sold Out</td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        }
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
        lastTimeAdvertised = item.timeAdvertised;
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      //<th>'+TygitTicketsLabels["timeAdvertised"]+'</th>
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["earliestEntry"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets && TygitTicketsUseGiftAidSelector?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="attractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<br clear="all" /></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets && TygitTicketsUseGiftAidSelector) {
    	  TygitTickets.toggleGiftAid();
      }
    });    
}  
    
TygitTickets.getGroupDateTimes = function(group, subGroup, date){  
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/group-date-times/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+(subGroup!=''?"/subGroup/"+subGroup:"")+"/date/"+date+"?jsoncallback=?",
    function(data){
      htmlStr = '';
      jQuery.each(data, function(i,item){
        htmlStr = htmlStr + '<option value="'+i+'">'+item+'</option>';
      });
      htmlStr = '<label for="selectTime">' + (TygitTicketsDynamicLabels[group]['time']?TygitTicketsDynamicLabels[group]['time']:TygitTicketsLabels["selectTime"]) + '</label><select name="times" id="selectTime" onchange="TygitTickets.timeSelected(\''+group+'\',\''+date+'\');"><option value="">Please Select..</option>' + htmlStr + '</select>';
      jQuery("#selectTicketTime").html(htmlStr);
    });    
}
    
TygitTickets.timeSelected = function(group,date){ 
    
    jQuery("#selectTicketTime").removeClass("active");
    
    jQuery("#selectTicketTypes").removeClass("active");
    jQuery("#selectTicketTypes").html('');
    jQuery("#selectTicketTypes").hide();
    
    jQuery("#selectTicketValidation").removeClass('error');
    jQuery("#selectTicketValidation").html('');
    
    var time = document.getElementById('selectTime').value;
    //alert(group);
    if(time) {
        switch(TygitTicketsGroups[group]) {
            case 'ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide(); 
                
                jQuery("#selectTicketDate").removeClass("active"); 
                jQuery("#selectTicketDate").html('');
                jQuery("#selectTicketDate").hide();  
    
			    jQuery("#selectTicketTime").removeClass("active");
			    jQuery("#selectTicketTime").html('');
			    jQuery("#selectTicketTime").hide(); 
                         
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupTicketTypes(group);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'sub-group-ticket-type':
                jQuery("#selectTicketDate").removeClass("active"); 
                jQuery("#selectTicketDate").html('');
                jQuery("#selectTicketDate").hide();  
    
                jQuery("#selectTicketTime").removeClass("active");
                jQuery("#selectTicketTime").html('');
                jQuery("#selectTicketTime").hide(); 
                
                var subGroup = document.getElementById('selectSubGroup').value;
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getSubGroupTicketTypes(group,subGroup);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'date-ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide(); 
                
                jQuery("#selectTicketTime").removeClass("active");
                jQuery("#selectTicketTime").html('');
                jQuery("#selectTicketTime").hide(); 
                
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDateTicketTypes(group,'',date);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                
           case 'sub-group-date-ticket-type':
                var subGroup = document.getElementById('selectSubGroup').value;
                jQuery("#selectTicketTime").removeClass("active");
                jQuery("#selectTicketTime").html('');
                jQuery("#selectTicketTime").hide(); 
                
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDateTicketTypes(group,subGroup,date);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                //jQuery("#selectTicketTime").html(TygitTicketsLoaderImage);
                //jQuery("#selectTicketTime").addClass("active");
                //jQuery("#selectTicketTime").show();
                break;
            
            case 'date-time-ticket-type':
                jQuery("#selectTicketSubGroup").removeClass("active"); 
                jQuery("#selectTicketSubGroup").html('');
                jQuery("#selectTicketSubGroup").hide(); 
                
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDateTimeTicketTypes(group,'',date,time);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
                
            case 'sub-group-date-time-ticket-type':
                var subGroup = document.getElementById('selectSubGroup').value;
                jQuery("#selectTicketTypes").html(TygitTicketsLoaderImage);
                TygitTickets.getGroupDateTimeTicketTypes(group,subGroup,date,time);
                jQuery("#selectTicketTypes").addClass("active");
                jQuery("#selectTicketTypes").show();
                break;
        }
    } else {
      jQuery("#selectTicketTime").addClass("active"); 
    }
} 
    
TygitTickets.getGroupDateTimeTicketTypes = function(group, subGroup, date, time){  
    jQuery.getJSON(TygitTicketsAppDomain+"/json-service/group-date-time-ticket-types/attractionId/"+TygitTicketsAttractionId+"/mode/"+TygitTicketsMode+"/group/"+group+(subGroup!=''?"/subGroup/"+subGroup:"")+"/date/"+date+"/time/"+time+"?jsoncallback=?",
    function(data){
      var htmlStr = '';
      var tableStr = '';
      var ticketTypeIds = '';
      var flag = true;
      var lastTicketHasDonation = false;
      TygitTicketsHasDonationTickets = false;
      TygitTicketsHasNoDonationTickets = false;
      TygitTicketsGiftAid = false;
      jQuery.each(data, function(i,item){
          if(item.includesDonation > 0) {
          	TygitTicketsHasDonationTickets = true;
          } else {
          	TygitTicketsHasNoDonationTickets = true;
          }
      });
      jQuery.each(data, function(i,item){

        if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
           if(item.includesDonation > 0 && !lastTicketHasDonation) {
          		flag = !flag;
           } else if(item.includesDonation == 0 && lastTicketHasDonation) {
          		flag != flag;
           }
        } 
        
        if(item.reserveLevelReached) {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+' sold-out"><td>'+item.description+'</td><td colspan="4">'+TygitTicketsReserveLevelReachedMessage+'</td></tr>';
        } else {
            tableStr = tableStr + '<tr class="'+(flag?'tyg-it-even':'tyg-it-odd')+(item.includesDonation > 0?' tygit-has-donation':' tygit-has-no-donation')+'"><td>'+item.description+'</td><td style="text-align: center;">'+(item.showQuantityAvailable?item.quantityAvailable:'')+'</td><td style="text-align: center;">'+(item.maxAllocationPerVisitor>0?item.maxAllocationPerVisitor:'')+'</td><td class="price-col">'+(item.discount?'<del>'+'&pound;'+FixedPointNumber.to(item.price+item.discount)+'</del> ':'')+'&pound;'+FixedPointNumber.to(item.price)+'</td><td class="qty-col"><input type="button" class="disabled" id="decrease-quantity'+item.id+'" value="-" onclick="TygitTickets.decreaseQuantity(\'quantity'+item.id+'\');TygitTickets.decreaseTotal('+item.price+','+item.discount+');" disabled /> <input type="text" name="quantity'+item.id+'" id="quantity'+item.id+'" value="0" size="2" class="quantity" readonly /><input type="button" value="+" id="increase-quantity'+item.id+'" onclick="TygitTickets.increaseQuantity(\'quantity'+item.id+'\');TygitTickets.increaseTotal('+item.price+','+item.discount+');" /></td></tr>';
        }
        if(ticketTypeIds.length > 0) {
            ticketTypeIds = ticketTypeIds + "," + item.id;
        } else {
            ticketTypeIds = item.id;
        }
        if(item.includesDonation > 0) {
        	lastTicketHasDonation = true;
        } else {
        	lastTicketHasDonation = false;
        }
        flag = !flag;
      });
      htmlStr = '<form onsubmit="return TygitTickets.validateSelectTicketForm()" id="add-to-basket'+TygitTicketsAttractionId+'" action="'+TygitTicketsAppDomain+TygitTicketsAddToBasketUrl+'" method="get" target="_blank">';
      htmlStr = htmlStr + '<div class="tickets-container"><table class="list" cellspacing="0"><thead><tr><th>'+TygitTicketsLabels["description"]+'</th><th>'+TygitTicketsLabels["quantityAvailable"]+'</th><th>'+TygitTicketsLabels["maxAllocationPerVisitor"]+'</th><th class="price-col">'+TygitTicketsLabels["price"]+'</th><th class="qty-col">'+TygitTicketsLabels["quantity"]+'</th></tr></thead><tbody>' + tableStr + '</tbody></table>'+(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets?'<p><input type="checkbox" name="giftAid" id="tygit-tickets-gift-aid" value="1" onclick="TygitTickets.toggleGiftAid();" checked="checked" /><label for="tygit-tickets-gift-aid">'+TygitTicketsLabels["giftAid"]+'</label></p><p>'+TygitTicketsLabels["giftAidMessage"]+'</p>':'')+'</div>';
      if(TygitTicketsAffiliateCode) {
          htmlStr = htmlStr + '<input type="hidden" name="affiliateCode" value="' + TygitTicketsAffiliateCode + '" />';
      }
      htmlStr = htmlStr + '<input type="hidden" name="ticketTypeIds" value="' + ticketTypeIds + '" /><input type="hidden" name="attractionId" value="' + TygitTicketsAttractionId + '" /><div class="saving-container" id="fotld-saving-container"></div><div class="total-container" id="fotld-total-container">'+TygitTicketsLabels["total"]+' &pound;0.00</div><div class="message-container">' + (TygitTicketsMessages[group]? TygitTicketsMessages[group]+"<br />":"") + TygitTicketsGeneralSelectionMessage + '</div><div class="button-container"><input type="submit" class="submit-button-disabled" id="fotld-order-button" value="' + TygitTicketsLabels["submit"] + '" disabled /><button type="button" onclick="TygitTickets.resetSelectTicket();">' + TygitTicketsLabels["reset"] + '</button>'+(TygitTicketsBasket?'<button type="button" onclick="TygitTickets.gotoBasket();">' + TygitTicketsLabels["basket"] + '</button>':'')+'<br clear="all" /></div></form>';
      jQuery("#selectTicketTypes").html(htmlStr);
      if(TygitTicketsHasDonationTickets && TygitTicketsHasNoDonationTickets) {
    	  TygitTickets.toggleGiftAid();
      }
    });  
}    
    
TygitTickets.increaseQuantity = function(id) {
    if(parseInt(document.getElementById(id).value) < 1) {
        document.getElementById('decrease-'+id).disabled = false;
        document.getElementById('decrease-'+id).className = '';
    }
    document.getElementById(id).value = parseInt(document.getElementById(id).value) + 1;
}

TygitTickets.decreaseQuantity = function(id) {
    if(parseInt(document.getElementById(id).value) > 0) {
        document.getElementById(id).value = parseInt(document.getElementById(id).value) - 1;
        if(parseInt(document.getElementById(id).value) < 1) {
            document.getElementById('decrease-'+id).disabled = true;
            document.getElementById('decrease-'+id).className = 'disabled';
        }        
    }
}

TygitTickets.increaseTotal = function(price, saving) {
    TygitTicketsTotalQuantity += 1;
    TygitTicketsTotal = TygitTicketsTotal + price;
    TygitTicketsSaving = TygitTicketsSaving + saving;
    TygitTickets.displayTotal();
}

TygitTickets.decreaseTotal = function(price, saving) {
    if(TygitTicketsTotalQuantity > 0) {
        TygitTicketsTotalQuantity -= 1;
    }
    if(TygitTicketsTotal > 0) {
        TygitTicketsTotal = TygitTicketsTotal - price; 
        TygitTicketsSaving = TygitTicketsSaving - saving;
        TygitTickets.displayTotal();     
    }
}

TygitTickets.displayTotal = function() {
    jQuery('#fotld-total-container').html(TygitTicketsLabels["total"]+' &pound;'+FixedPointNumber.to(TygitTicketsTotal));
    if(TygitTicketsSaving) {
        jQuery('#fotld-saving-container').html(TygitTicketsLabels["saving"]+' &pound;'+FixedPointNumber.to(TygitTicketsSaving));
    } else {
        jQuery('#fotld-saving-container').html('');
    }
    
    if(TygitTicketsTotal > 0 || TygitTicketsTotalQuantity > 0) {
        document.getElementById('fotld-order-button').className = 'submit-button';
        document.getElementById('fotld-order-button').disabled = false;
    } else {
        document.getElementById('fotld-order-button').className = 'submit-button-disabled';
        document.getElementById('fotld-order-button').disabled = true;
    }
    
}      

TygitTickets.gotoBasket = function() {
    window.location = TygitTicketsAppDomain+TygitTicketsBasketUrl;
}

TygitTickets.toggleGiftAid = function() {
	if(TygitTicketsGiftAid) {
		TygitTicketsGiftAid = false;
		jQuery('.tygit-has-donation').hide();
		jQuery('.tygit-has-no-donation').show();
	} else {
		TygitTicketsGiftAid = true;
		jQuery('.tygit-has-no-donation').hide();
		jQuery('.tygit-has-donation').show();
	}
    TygitTicketsSaving = 0;
    TygitTicketsTotal = 0;
    TygitTicketsTotalQuantity = 0;
    jQuery('.quantity').attr('value',0);  
    TygitTickets.displayTotal();
}

