$i18n = {
	ERR: {
		'de': {
			'fileExtension': 'Leider können wir nur PDF Dateien akzeptieren! Vielen Dank für Ihr Verständnis.'
		},
		'en': {
			'fileExtension': 'Sorry, but we can only accept PDF files! Thank you for your understanding.'
		}
	}
}

function addFiles(){
	if ( !jQuery.browser.msie || (jQuery.browser.msie && jQuery.browser.version > 7) ) {
		var self = jQuery("#application-files");
		self.parent().addClass('chosen');
		
		var filename = self.val();
		if ( filename.indexOf('\\') ) {
			filename = filename.substring(filename.lastIndexOf('\\')+1);
		}
		
		var cLang = jQuery('html').attr('lang');
		if ( !filename.match(/(.pdf)$/i) ) {
			if ( !self.parent().next('.error').length ) {
				self.parent().after('<p class="error">'+$i18n.ERR[cLang].fileExtension+'</p>');
			} else {
				self.parent().next().text($i18n.ERR[cLang].fileExtension);
			}
			return false;
		} else {
			self.parent().next('.error').remove();
		}
		
		self.parent().next('.attached-file').remove();
		self.parent().after('<div class="attached-file"><span class="filename">'+filename+'</span></div>');
		self.parent().next().bind({
			'click': function(){
				jQuery(this).prev().removeClass('chosen');
				jQuery(this).remove();
				jQuery('#application-files').parent().html(jQuery('#application-files').parent().html());
				SI.Files.stylizeById('application-files');
			}
		});
	}
}

jQuery(document).ready(function(){
	
	/* @group TEASER TABS */
	var hasTabbedTeasers = jQuery('.teaser.tabbed').length;
	if ( hasTabbedTeasers > 0 ) {
		jQuery('.teaser.tabbed').each(function(){
			var tabsContainer = jQuery(this).children('.tabs');
			tabsContainer.find('a').each(function(i, el){
				jQuery(this).bind({
					'click': function(e){
						e.preventDefault();
						tabsContainer.find('.active').removeClass('active');
						jQuery(this).parent('li').addClass('active');
						tabsContainer.next().find('.tab-related.visible').removeClass('visible');
						tabsContainer.next().find('.tab-related:eq('+(i)+')').addClass('visible');
					}
				});
			});
		});
	}
	/* @end */
	
	if ( jQuery('#application-files').length == 1 && ( !jQuery.browser.msie || (jQuery.browser.msie && jQuery.browser.version > 7))) {
		SI.Files.stylizeById('application-files');
	}
	
	/* @group FORM ELEMENTS */
	jQuery('.checkbox').each(function(i, el){
		var t = jQuery(this);
		if ( t.children('input').attr('checked') ) {
			t.addClass('checked');
		}
		t.bind({
			'click': function(){
				if ( t.hasClass('checked') ) {
					t.removeClass('checked');
					t.children('input').attr('checked', false);
				} else {
					t.addClass('checked');
					t.children('input').attr('checked', true);
				}
			}
		});
	});
	
	jQuery('.select').each(function(i, el){
		var t = jQuery(this);
		var origin = t.prev('select');
		var selected = t.children('span.selected');
		var trigger = t.children('span.selected, span.trigger');
		var optionsList = t.children('ul');
		var options = optionsList.children('li');
		
		var selectionPaddings = parseFloat(selected.css('padding-left')) + parseFloat(selected.css('padding-right'));
		var selectionWidth = selected.width();
		var maxSelectWidth = parseFloat(t.css('max-width'));
		var triggerWidth = t.children('span.trigger').width();
		var listWidth = optionsList.outerWidth();
		
		if ( listWidth > (maxSelectWidth - triggerWidth) || !t.hasClass('dynamic') ) {
			listSize = maxSelectWidth - triggerWidth;
			selectedSize = listSize - selectionPaddings;
			selectSize = maxSelectWidth;
		} else {
			listSize = listWidth;
			selectedSize = listSize - selectionPaddings;
			selectSize = listWidth + triggerWidth;
		}
		
		selected.css('width', selectedSize);
		optionsList.css('width', listSize);
		t.css('width', selectSize);
		
		trigger.bind({
			'click': function(){
				selected.toggleClass('triggered');
				optionsList.toggle();
				t.toggleClass('show');
			}
		});
		
		t.bind({
			'clickoutside': function(){
				selected.removeClass('triggered');
				optionsList.hide();
				t.removeClass('show');
			}
		});
		
		options.each(function(i, el){
			var e = jQuery(this);
			e.bind({
				'click': function(){
					optionsList.children('.selected').removeClass('selected');
					e.addClass('selected');
					selected.text(e.text());
					selected.removeClass('triggered');
					optionsList.hide();
					origin.find('option:eq('+e.index()+')').attr('selected', true)
					origin.trigger('change');
					origin.find('option:eq('+e.index()+')').trigger('click');
				}
			});
		});
	});
	
	jQuery('input[type="reset"]').bind({
		'click': function(){
			jQuery('.select ul li:first-child').trigger('click');
			jQuery('.attached-file').trigger('click');
		}
	});
	
	if ( jQuery().formValidation ) {
		jQuery('form').each(function(i, el){
			jQuery(this).bind({
				'submit': function(){
					return jQuery(this).formValidation();
				}
			});
		});
	}
	/* @end */
	
});
