
var EDPWidget = DropDownWidget.build( {
style: {
frame: 'widget-frame',
focused_frame: 'widget-frame onFocus',
border: 'widget-border',
dropdown: 'widget-dropdown',
dropdown_active: 'widget-dropdown-active',
disabled: 'widget-disabled',
list: 'widget-dropdown-list',
choice: 'widget-dropdown-list-item',
selected: 'widget-dropdown-list-item selected',
scroll_frame: 'widget-scroll-frame',
scroll_border: 'widget-scroll-border',
scroll_up: 'widget-scroll-up',
scroll_up_active: 'widget-scroll-up-active',
scroll_down: 'widget-scroll-down',
scroll_down_active: 'widget-scroll-down-active',
scrub_frame: 'widget-scroll-scrub-frame',
scrub: 'widget-scroll-scrub'
}
} );
EDP = Class.create( {
tlog: TMDebug.gen_tlog( 'edp' ),
initialize: function ( config ) {
this.modules = {};
this.event = config.event;
this.venue_info = config.venue_info;
this.merchandise = config.merchandise;
this.edp_mode_selector_isc_disabled_popup = new Popup( 'edp_mode_selector_isc_disabled_popup', {
close_id: 'edp_mode_selector_isc_disabled_close',
zIndex: 105,
links: [{
group: 'edp',
toggle: true,
link_id: 'edp_mode_selector_isc_disabled_qmark',
anchor_id: 'edp_mode_selector_isc_disabled_qmark',
popup_align:  { x: 1, y:   1 },
anchor_align: { x: 1, y:  -1 },
offset:       { x: 0, y:  -5 }
}]
});
},
show_isc_disabled: function(options) {
options = options || {};
var isc_disabled_reason = options.reason ? options.reason+"" : "";
$('edp_mode_selector').hide();
if ( isc_disabled_reason.match(EDP.isc_disabled_reason_regexp) ) {
$('edp_mode_selector_isc_disabled').show();
}
},
show_mode_selectors: function() {
if( !this.event.isc_can_enable || !this.event.get_enabled_ticket_types().length ) {
click_track.on_arrival();
} else if( this.active_mode == 'isc' ) {
$('edp_mode_selector').show();
$('edp_mode_selector_isc_disabled').hide();
click_track.on_arrival();
} else if( this.event.isc_enabled && this.isc ) {
new Ajax.Request(this.isc.seat_map.conf.widget_defaults.availabilityURL, {
method: 'get',
evalJS: false,
evalJSON: false,
onComplete: function(transport) {
etag = transport.getHeader('ETag');
if ( etag.match(/^"disabled/) ) {
etag = etag.replace(/"|disabled-/g,'');
this.show_isc_disabled({reason: etag});
click_track.set_arrival_parameters({classic_mode_reason: etag });
} else {
$('edp_mode_selector').show();
$('edp_mode_selector_isc_disabled').hide();
}
click_track.on_arrival();
}.bind(this)
});
} else if( this.event.isc_disabled_reason ) {
this.show_isc_disabled({reason: this.event.isc_disabled_reason});
click_track.set_arrival_parameters({classic_mode_reason: this.event.isc_disabled_reason});
click_track.on_arrival();
}
},
select_initial_mode: function() {
false;
var mode;
var modes = $H(this.modules).keys();
if ( this.event.get_enabled_ticket_types().length ) {
var url_mode;
var query_params;
try {
query_params = $H(window.location.search.toQueryParams());
}
catch (e) {}
url_mode = query_params ? query_params.get('pde') : undefined;
var cookie = new CookieTree( '_E' ).get( 'mode' );
if ( cookie && cookie[1] &&
cookie[0] == this.event.event_id &&
this.modules[cookie[1]] )
mode = cookie[1];
else if ( url_mode && url_mode == '1' )
mode = 'classic';
else
mode = modes[0];
if ( modes.length == 1 )
this.classic_only = true;
else
this.classic_only = false;
}
else {
mode = 'classic';
$('edp_mode_selector').hide();
if ( $('purchase_tab_onsale' ) ) {
$('purchase_tab_onsale').hide();
$('purchase_tab_offsale').show();
}
this.classic_only = true;
}
if ( ( navigator.userAgent.indexOf('iPhone') != -1 ) ||
( navigator.userAgent.indexOf('iPod') != -1 ) ||
( navigator.userAgent.indexOf('iPad') != -1 ) ) {
mode = 'classic';
}
false;
this.select_mode( mode );
click_track.set_required_parameters( { edp_mode: this.active_mode } );
if ( this.active_mode == 'isc' ){
var enabled_tts = this.event.get_enabled_ticket_types();
var tts = 0;
for ( var i = 0; i < enabled_tts.length; i++ ) {
if ( !enabled_tts[i].parent ) {
tts++;
}
}
click_track.set_arrival_parameters( { tt_count: tts } );
if ( !this.isc.cart.allow_single_seats ) {
click_track.set_arrival_parameters( { edit_single:'' } );
}
if ( $('isc-password-section').visible() ) {
click_track.set_arrival_parameters( { password_module:'' } );
}
}
this.show_mode_selectors();
},
add_mode: function( mode, module ) {
false;
this.modules[mode] = {
module: module,
is_initialized: false
};
},
get_module: function( mode ) {
return this.modules[mode].module;
},
select_mode: function( mode ) {
false;
if ( !this.modules[mode].is_initialized ) {
if ( this.modules[mode].module.mode_init ) {
this.modules[mode].module.mode_init();
}
this.modules[mode].is_initialized = true;
}
$('footer_pusher').show();
if ( this.active_mode )
this.modules[this.active_mode].module.hide();
this.active_mode = mode;
this.modules[this.active_mode].module.show();
$('footer_pusher').hide();
if ( this.classic_only )
new CookieTree( '_E' ).remove( 'mode' );
else
new CookieTree( '_E' ).set( 'mode', [ this.event.event_id, mode ] );
document.fire('edp:mode', { 'mode': mode });
},
get_active_module: function() {
return this.modules[this.active_mode].module;
},
toggle_mode: function () {
false;
var first_mode;
var select_next = false;
for ( var mode in this.modules ) {
if ( typeof( first_mode ) == 'undefined' )
first_mode = mode;
if ( select_next ) {
this.select_mode( mode );
return false;
}
if ( mode == this.active_mode )
select_next = true;
}
this.select_mode( first_mode );
return false;
}
} );
EDP.isc_disabled_reason_regexp = /high-demand|volatile|restrict/;

