var cover_img_w = 0;
var cover_img_h = 0;

window.onerror=function(){
	return true;
}
/**
 * MouseWheel block - LT
 */
function hookEvent(element, eventName, callback) {
	if(typeof(element) == "string")
		element = document.getElementById(element);
	if(element == null)
		return;
	if(element.addEventListener)  {
		if(eventName == 'mousewheel')
      			element.addEventListener('DOMMouseScroll', callback, false);  
    		element.addEventListener(eventName, callback, false);
  	} else if(element.attachEvent)
    		element.attachEvent("on" + eventName, callback);
}

function unhookEvent(element, eventName, callback) {
	if(typeof(element) == "string")
		element = document.getElementById(element);
	if(element == null)
    		return;
	if(element.removeEventListener){
		if(eventName == 'mousewheel')
      			element.removeEventListener('DOMMouseScroll', callback, false);  
    		element.removeEventListener(eventName, callback, false);
  	} else if(element.detachEvent)
		element.detachEvent("on" + eventName, callback);
}
function wheel(event) {
	var delta = 0;
	if (!event) { /* For IE. */
        	event = window.event;
	}
	if (event.wheelDelta) { /* IE/Opera/Safari. */
		delta = -event.wheelDelta/120;
	} else if (event.detail) { /** Mozilla case. */
		delta = event.detail/3;
	} 
	if (delta)
		handle(delta);
	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}
function handle(delta) {
	if(delta < 0) {
                if(first_time){
                        zoom_in_out(0);
                        first_time = false;
                }else{
                        zoom_in_out(5);
                }
	//do stuff here	
	} else {
		zoom_in_out(-5);
	//do other stuff	
	}
	update_pos();
}
/**
 * MouseWheel block end
 */
function update_pos(){
	var z = jQuery("#slider").slider("value");
	if(z == 100){
		jQuery('#cover_img').css({top:0, left:0});
		return true;
	}

	var pos = jQuery('#cover_img').position();
	var img_w = jQuery('#cover_img').width();
	var img_h = jQuery('#cover_img').height();

	if(pos.left > 0) jQuery('#cover_img').css({left:0});
	else if(-1 * pos.left > img_w - cover_img_w) jQuery('#cover_img').css({left:cover_img_w - img_w});
	
	if(pos.top > 0) jQuery('#cover_img').css({top:0});
	else if(-1 * pos.top > img_h - cover_img_h) jQuery('#cover_img').css({top:cover_img_h - img_h});	
	
}

function setCoverSize(){
	cover_img_w = jQuery('#cover_img').width();
	cover_img_h = jQuery('#cover_img').height();
	if(cover_img_w && cover_img_h){
		jQuery('#capa div.zoom').width(cover_img_w).height(cover_img_h);
		jQuery('#capa').height(cover_img_h + 2);
	}	
}

function zoom_in_out(v){
	
	if(jQuery('#cover_img').attr('src') != jQuery('#cover_img').attr('zoom')){
		jQuery('#cover_img').attr('src', jQuery('#cover_img').attr('zoom'));
	}
	
	var z = jQuery("#slider").slider("value");
	z += v;
	if(z>200) z = 200;
	if(z<100) z = 100;
	
	if(z > 100){
		jQuery("#capa div.zoom img").draggable({
			stop: function(event, ui){
				update_pos();
			}
		});
		jQuery('#cover_img').css({cursor:'move'});
	}else{
		jQuery('#cover_img').css({cursor:'default'});		
	}
	
	jQuery("#slider").slider("value", z);
	window.parent.focus();
}

var first_time = true;

jQuery(function() {

	setCoverSize();	
	var runOnce=false;
	jQuery('#cover_img').attr({
		'x_zoom' : jQuery('#cover_img').attr('src'),
		'x_src':'http://thumbs.sapo.pt/?pic=' + jQuery('#cover_img').attr('src') + '&W=373'
	}).load(function(){
		if(!runOnce && !($('#cover_img').attr('src')==$('#cover_img').attr('zoom'))){
			setCoverSize();
			runOnce=true;
		}
		top.sbIframeLoad();
	}).mouseover(function(){ //enables the mousewheel onmouseover 
		hookEvent(window,"mousewheel",wheel);
	}).mouseout(function(){ //and disables it afterwards 
		unhookEvent(window,"mousewheel",wheel);
	});
	jQuery("#slider").slider({
		min:100,
		max:200,
		start:function(event, ui){
			if(jQuery('#cover_img').attr('src') != jQuery('#cover_img').attr('zoom')){
				jQuery('#cover_img').attr('src', jQuery('#cover_img').attr('zoom'));
			}

			jQuery("#capa div.zoom img").draggable('destroy');
		},
		stop:function(event, ui){
			jQuery("#capa div.zoom img").draggable({
				stop: function(event, ui){
					update_pos();
				}
			});

			update_pos();
		},
		slide: zoomCover,
		change: zoomCover
	});
	
	jQuery("#zoom-in").click(function(){
		if(first_time){
			zoom_in_out(0);
			first_time = false;
		}else{
			zoom_in_out(5);			
		}
	});

	jQuery("#zoom-out").click(function(){
		zoom_in_out(-5);
	});
	
	jQuery('#comments textarea').focus(function(){
		coment_focus = true;
	}).blur(function(){
		coment_focus = false;
	});

	jQuery('input#author').focus(function(){
		coment_focus = true;
	}).blur(function(){
		coment_focus = false;
	});
});

function zoomCover(){
	var z = jQuery("#slider").slider("value");
	jQuery('#cover_img').width(z / 100 * cover_img_w).height(z / 100 * cover_img_h);
	window.parent.focus();
}

var coment_focus = false;
function shadowbox_actions(k){
	if(coment_focus) return;
	
	if (k == 27) { // escape
		parent.execShadowboxFunctions("close");
	}

	if (k == 39) { // next
		parent.execShadowboxFunctions("next");
	}

	if (k == 37) { // prev
		parent.execShadowboxFunctions("previous");
	}	
}

if(parent.Shadowbox.isIE6){
	document.onkeyup = function(e){
		shadowbox_actions(event.keyCode);
	}
}else{
	jQuery(document).keyup(function (e) {
		var key = e.charCode || e.keyCode;
		shadowbox_actions(key);
	});	
}
