/* IE Image flicker fix */
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
/* End */

jQuery(document).ready(function($){
	// Fix BUTTON nasty behavior in IE Shit
	if (!(typeof $.fn.ieFixButtons == 'undefined')) {
		$('body').ieFixButtons();		
	};
	
	$('a[rel="external"]').click(function(clickEvent){
		clickEvent.preventDefault();
		window.open(this.href);		
	});
	
	$('#linternational').click(function(){
		$(this).toggleClass('jsExpand');
	});
	
	$('body').click(function(eventClick){
		$('.jsExpand').each(function(){
			if (!$(eventClick.target).hasClass('ignoreBodyClicking') && $(eventClick.target) !== this && !$(eventClick.target).descendantOf(this)) {
				this.scrollTop = 0;
				$(this).removeClass('jsExpand');
			}
		});
	});
	
	// Search any birthdate input
	$(this).find('input#d_birthdate').each(function(){
		$(this).datepicker({ yearRange: '-90:+0', maxDate: '-18Y', changeYear: true, changeMonth: true, gotoCurrent: true, dateFormat: 'yy-mm-dd', dayNames: jQuery.data(document, 'ui').dayNames, dayNamesMin:jQuery.data(document, 'ui').dayNamesMin, monthNames: jQuery.data(document, 'ui').monthNames, monthNamesShort: jQuery.data(document, 'ui').monthNamesShort });			
	});		

	// Forms related
	$('body#user-account_index,body#index,body#user-account_registration-step-1').each(function(){
		$(this).find('input#s_email_confirm,input#s_password,input#s_password_confirm').each(function(){
			$(this).val('');
		});
	});

	$('form').each(function() {	
		className = 'hasExampleValue';
		
		$(this).find('input[type="text"][title],textarea[title]').each(function(){
			$(this).focus(function(eventFocus){
				if($(this).hasClass(className)) {					
					$(this).val('');
					$(this).removeClass(className);
				}
			});
				
			$(this).blur(function(eventBlur){				
				if($(this).val() == '' || $(this).val() == $(this).attr('title')) {
					$(this).addClass(className);
					$(this).val($(this).attr('title'));
				}
			});
			
			$(this).change(function(eventChange){
				if ($(this).val() != '' && $(this).val() != $(this).attr('title')) {
					$(this).removeClass(className);
				}
			});
					
			if($(this).val() == '' || $(this).val() == $(this).attr('title')) {
				if(!$(this).hasClass(className)) {
					$(this).addClass(className);
					$(this).val($(this).attr('title'));
				}
			}
		});
		
		$(this).submit(function(eventSubmit){	
			$(this).find('.' + className).each(function(){
				$(this).val('');
			});
		});				
	});
	
	if ($('div.tpl-160x600:first').get(0) && $('div#pageContent').get(0)) {
		var adContainer = $('div.tpl-160x600:first').get(0);
		var pageContentContainer = $('div#pageContent').get(0);
		
		$(adContainer).data('minimumTopValue', $(adContainer).position().top);
		$(adContainer).data('maximumTopValue', $(pageContentContainer).height() + $(pageContentContainer).offset().top - $(adContainer).outerHeight());		

		// Temporary code ... can get broken ... I hate patched code ...
		if ($('body').is('.ads_top-728x90')) {
			$(adContainer).data('maximumTopValue', $(adContainer).data('maximumTopValue') - $('body div#container').offset().top);
		}

		$(adContainer).data('function', {followWindowScroll: function() {
			$(adContainer).stop();
			
			if ($(window).scrollTop() > $(adContainer).position().top) {
				$(adContainer).animate({
					top : $(window).scrollTop() > $(adContainer).data('maximumTopValue') ? $(adContainer).data('maximumTopValue') : $(window).scrollTop() + 'px'
				}, 750);
			} else if($(window).scrollTop() < $(adContainer).position().top && $(window).scrollTop() > $(adContainer).data('minimumTopValue')) {
				$(adContainer).animate({
					top : $(window).scrollTop() + 'px'
				}, 750);								
			} else {
				$(adContainer).animate({
					top : $(adContainer).data('minimumTopValue') + 'px'
				}, 750);
			}
			}});
				
		$(window).scroll(function(scrollEvent) {
			$(adContainer).data('function').followWindowScroll();
		});
		
		$(window).each(function() {													
			$(adContainer).data('function').followWindowScroll();		
		});
	}
});

if (!(typeof jQuery == 'undefined')) {
	jQuery.extend(Math, {
	  div: function(x, y) {
	    return Math.floor(x / y);
	  },
		mod: function(x, y) {
			return x - Math.floor(x / y) * y;
		}
	});
}