//jQuery migrated code here
jQuery(document).ready(function($){	
	
	//Check if IE6 is present. dont know if we need this here.
	//Prototype.Browser.IE6 = $.browser && (parseInt($.browser.version) == 6);
	
	// Special code for IE below 7
	if ( $.browser.msie && ( parseInt($.browser.version) < 7 ) ) {
	
		// Opacity pgn support
		if ( document.body.filters ) {
			$.each($('.ie-fix-opacity'), function() {
				var cBGImg = this.currentStyle.backgroundImage;				
				var cImage = cBGImg.substring(cBGImg.indexOf('"') + 1, cBGImg.lastIndexOf('"'));
				this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + cImage + "', sizingMethod='scale')";							 	
				this.style.backgroundImage = "none";
						
			});
		
			// Transparcy filters behave strange. This is a fix to make 'advertise with us' act like an link.
			$('#collection-header-advertise').click(go_next_url);
		}
	}
	
    //Change lang
    $('#change-lang-form input').click(function(e){
       $('#change-lang-form').submit(); 
    });
    
    
	// Global
	$('#fconnect-login').click(facebook_login);
	
	// Modal popups
	$('a.pop-up-link').live('click',show_modal);
	
	//Rate links
	$('a.rate-link').live('mouseenter',function () {
			$(this).prevAll().addClass('rate-link-f');
		}).live('mouseleave',function () {
			$(this).prevAll().removeClass('rate-link-f');
		}).live('click',function (event) {
			event.preventDefault();	
			url = $(this).attr('href');
			$(this).parent().load(url);			
		});
			
	//Change lang
	$('a.change-lang-link').click(function (event) {
		event.preventDefault();		
		lang = this.rel;
		$.post("/i18n/setlang/", {language:lang}, function(data) {
  			window.location.reload()}
  		);
	});
	
	// Subscribe user
	$('form#subscribe fieldset').hide();
	$('form#subscribe p').hide();
	
	$('form#subscribe a').click(function() {
	  $('form#subscribe fieldset').show();
	  $(this).hide();
	});
	
	$('form#subscribe').submit( function (event) {
		event.preventDefault();	
    	$.post(this.action, $(this).serialize(),
			function(data){
				if(data.status == 0) {
					$('form#subscribe fieldset').html('<p>'+ data.msg +'</p>');
				} else {
					$('p#subscribe-message').hide().text(data.msg).fadeIn("slow");
				}
		}, "json");
    	return false;
	});
	
	//groupdeal-module
	$('div#groupdeal-module-button').click(function (event) {
		event.preventDefault();		
		alert(window.location);
		/*
		$.post("/i18n/setlang/", {language:lang}, function(data) {
  			window.location.reload()}
  		);
  		*/
 
	});	
	
	
	// Startpage
 	if ( $('body#home') ) {
		$('.startpage-news-content').hide();
		$('a.startpage-news-readmorelink').click(startpageNews_expand);
	}
	
	/* *******************
	 * 
	 * jQuery functions 
	 * 
	 ********************/
	
	function show_modal(event) {
		event.preventDefault();
		url=this.href;
		
		if ( $('div#modal-window').length) {
			$('div.modal-popup').fadeOut('fast').remove();
		}
		
		
		$('body').append( $('<div class="modal-popup" id="modal-overlay"></div>').hide().fadeTo('fast',0.5) )
					.append( $('<div class="modal-popup" id="modal-window"></div>')
						.load(url + ' #content', function() {
							$('div#modal-window').prepend('<a href="'+window.location+'" id="modal-close">&nbsp;</a>');
							$('div#modal-window a#modal-close').click(function(event) {
								event.preventDefault();
								$('div.modal-popup').fadeOut('fast').remove();
							});
							
							if (typeof show_modal_callback == 'function') {
								show_modal_callback();
							};						
						})
					);
		window.scroll(0,0);
}

	// Groupdeals
		// init timer
		if(typeof(timestamp) != 'undefined') {
			
			var reload = true;
			var timeleft = timestamp;
			
			$('a#buy-deal-link').click(function(){
				reload = false;
				
				$('a#modal-close').live('click',function(){
					reload = true;
					if ( ( timeleft  == -1 ) ) {
						window.location.reload();
					}
				});
			});

			var timer = setInterval(function() { 
				$('#time-left').html(sec_to_time(timeleft--));
				if ( ( timeleft  == 0 ) && ( reload ) ){
					window.location.reload();
				} else if (timeleft < 0 ) {
					clearInterval(timer);
					$('#time-left').html("00h:00m:00s");
				}
			}, 1000);
		}
});
	
document.observe("dom:loaded", function() { 	
	$$('div.headerpopup').each( function (i){i.hide();i.style.top="100%";});
	
 	if($('collection-header')) {
        $$('a.headerpopup-link').invoke('observe', 'click', collection_header_popup);
    }
       
    if($('collection-deals')) {
    	
    	var popUps = $$('div.collection-header-popup');
 
    	popUps.invoke('toggle');
        $$('a.a_view_promo_link','div.promotion').invoke('observe', 'click', load_promotion_collection);
        //open_first_promo();
        
    }
    
    if($$('a.collection-store-link')) {
    	$$('a.collection-store-link').invoke('observe', 'click', url_collection);
    }
    
    if($('blackout')) {

    	$$('a.close-popup').invoke('observe','click', close_popup);
    	$$('a.popup-link').invoke('observe','click', open_popup);
    	
    	$('blackout').hide();
    	$$('div.popup').each( function (i){i.hide();});
    }
    
    
});
	
function sec_to_time(d) {
	d = Number(d);
	var h = Math.floor(d / 3600);
	var m = Math.floor(d % 3600 / 60);
	var s = Math.floor(d % 3600 % 60);
	return padd_zero(h)+"h:"+padd_zero(m)+"m:"+padd_zero(s)+"s";
}

function padd_zero (d) {
	var result = "";	

	if ( d < 10 ) {
		result = "0";
	}
	result += d;
	return result;
}

function facebook_login(event) {
	Event.stop(event);
	var url = this;
	
	FB.login(function(response) {
	if (response.session) {
		var token = response.session.access_token;

		// Add token as a parameter to the url
		url = url + '&access_token='+token;
	
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
			window.location.reload();
		  },
		  onFailure: function(transport) {
			  FB.logout();
		  }
		});

	} else {
		// user cancelled login
	}});

}

function go_next_url(event) {
	Event.stop(event);
	var uri = Event.element(event).down('a').href;
	window.location = uri;
}

function pop_up_close (event) {
	$('pop-up-help').remove();
	$('blackout').fade();
	$('dimmer').remove();
}


function startpageNews_expand(event) {
	Event.stop(event);
	var el = Event.element(event);
	var txt = el.innerHTML;
	el.previous(0).toggle();
	el.update(el.rel);
	el.rel = txt;
}

function open_popup(event) {
	Event.stop(event);
	var el = Event.element(event);
	
	$(el.rel).up('div').appear().setStyle({
  		'left': '0px'
	});
	
	if(Prototype.Browser.IE6){
		$(el.rel).appear().setStyle({
  		'left': '0px'
		});
	} else {
		$(el.rel).appear().setStyle({
  		'left': '0px'
		});
	};
}

function close_popup(event) {
	Event.stop(event);	
	var el = Event.element(event);
	$(el.rel).up('div').hide().setStyle({
  		'left': '-100%'
	});
	
	$(el.rel).hide().setStyle({
  		'left': '-100%'
	});
}

// Toggles a promotion as a favorite.
function toggle_favorite(event) {
    Event.stop(event);
        
    var element = Event.element(event);
    var url = Event.element(event).href;
   
    new Ajax.Request(url, {
      method: 'get',
      onSuccess: function(transport) {
          
          if($(element).hasClassName('unmarked')) {
              
              $(element).removeClassName('unmarked').addClassName('marked');
              var title=gettext('Remove as favorite');
              if($(element.rel)) {
		          	$(element.rel).title = title;
		          	$(element.rel).removeClassName('unmarked').addClassName('marked');
              	}
              	
			  $(element).title = title;
            
          }
          
           else {
          
              if(location.pathname == '/service/favorites/') {
                  $(element.id).up('div').remove();
              }
              
              var title=gettext('Add as favorite');
              
              $(element).removeClassName('marked').addClassName('unmarked');              
              if($(element.rel)) {
		          $(element.rel).title = title;            
		          $(element.rel).removeClassName('marked').addClassName('unmarked');
			  }
			  $(element).title = title;  
		           
          }
      }
    });
}

function open_first_promo() {
	
	var rel = $$('div.promotion').first().down(0).rel;
	var url = $$('div.promotion').first().down(0).href;
	var port = $('viewport_content_'+rel);
	
	port.addClassName('viewport-active');
	
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			port.down('div').update(transport.responseText);
		},
		onComplete: function() {
		  	//new Effect.SlideDown(port);
		  	port.show();
		  	port.down('a.map-link').observe('click', change_promo_viewport);
		  	port.down('a.info-link').observe('click', change_promo_viewport);
		  	$$('div#rating_' + rel + ' a').invoke('observe', 'click', rate_promotion);
        	$$('a.mark-promotion-link').invoke('observe', 'click', toggle_favorite);
		}
	});	 
	// activate the button
	port.previous('div').down('a.a_view_promo_link').removeClassName('a_view_promo_deactive_white').addClassName('a_view_promo_active_white'); 
}


function rate_promotion(event) {
	Event.stop(event);
	var rel = Event.element(event).rel;	
	var url = Event.element(event).href;
	var port = $('rating_a_tag_'+rel);

	new Ajax.Request(url, {
		method:'get',
	  	onSuccess: function(transport){
	    	port.replace(transport.responseText);
	    }
	});
}

function change_promo_viewport(event) {
	Event.stop(event);
	
	var rel = Event.element(event).rel;	
	var url = Event.element(event).href;
	var port = $('viewport_content_'+rel);

	new Ajax.Request(url, {
		method:'get',
	  	onSuccess: function(transport){
	    	port.down('div').update(transport.responseText);
	    },
	    
		onComplete: function(transport){
			port.down('a.map-link').observe('click', change_promo_viewport);
		  	port.down('a.info-link').observe('click', change_promo_viewport);
		  	$$('div#rating_' + rel + ' a').invoke('observe', 'click', rate_promotion);
        	$$('a.mark-promotion-link').invoke('observe', 'click', toggle_favorite)
	    }
	});
	
}

function url_collection(event) {
	Event.stop(event);
	window.location = Event.element(event).href;
}

function collection_header_popup(event) {
    Event.stop(event);
    var el = $(this.rel);
    var nel = $$('div.' + el.classNames()).without(el);
    el.show();
    nel.invoke('hide');
	
	if (this.up(0).hasClassName('collection-header-button-wrap-popup-button-active')) {
		this.up(0).removeClassName('collection-header-button-wrap-popup-button-active');
		el.hide();
	} else {
		$$('span.collection-header-button-wrap-popup-button-active').invoke('removeClassName', 'collection-header-button-wrap-popup-button-active');
    	this.up(0).toggleClassName('collection-header-button-wrap-popup-button-active');
    }
}

function load_promotion_collection(event) {
    Event.stop(event);
    
    var port;
    var aports = $$('div.viewport-active');
    var rel;
    var url;
    var color;
		 
    if (this.hasClassName('promotion')) {
    	rel = this.down(0).rel;
    	url = this.down(0).href;
    	port = $('viewport_content_'+rel);
    	
    } else {
		var rel = this.rel;
		var url = this.href;
		port = $('viewport_content_'+rel);
	}
    
    // Swaps the buttons
	 var color;
	 if(port.previous(0).hasClassName('row-color1')) {
	 	color = 'white';
	 } else {
	 	color = 'blue';
	 }
	 
    //port.style.height = "250px";
	if(port.hasClassName('viewport-active')) {
		port.hide().removeClassName('viewport-active').addClassName('viewport-deactive');
		port.previous('div').down('a.a_view_promo_link').addClassName('a_view_promo_deactive_'+color).removeClassName('a_view_promo_active_'+color);
		
	} else {
	
		/* 
		 aports.each(function(i) {
		 	//new Effect.SlideUp(i,{ duration: 0.5 });
		 	port.hide();
		 	i.removeClassName('viewport-active');
		 });		 
		*/
		
		 port.addClassName('viewport-active');
 
		 // resets all buttons
		 $$('a.a_view_promo_link').each(function (i)  {
		 	if(i.up('div').hasClassName('row-color1')) i.removeClassName('a_view_promo_active_white').addClassName('a_view_promo_deactive_white');
		 	if(i.up('div').hasClassName('row-color2')) i.removeClassName('a_view_promo_active_blue').addClassName('a_view_promo_deactive_blue');
		 });
		 
		 // activate the button
		 port.previous('div').down('a.a_view_promo_link').removeClassName('a_view_promo_deactive_'+color).addClassName('a_view_promo_active_'+color);
		 
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
			  port.down('div').update(transport.responseText);
			  //assign_click_promotion_options();
			},
		  onComplete: function() {
		  	//new Effect.SlideDown(port);
			port.show();
			
		  	port.down('a.map-link').observe('click', change_promo_viewport);
		  	port.down('a.info-link').observe('click', change_promo_viewport);
		  	$$('div#rating_' + rel + ' a').invoke('observe', 'click', rate_promotion);
        	$$('a.mark-promotion-link').invoke('observe', 'click', toggle_favorite)
		  	}
		});
		
	}
}

