var globalWidth, globalHeight;

$(document).ready( function(){
	globalWidth = $(window).width();
	globalHeight = $(window).height();
	
	var hover_desc = $('#hover_desc');
	var top,left;
	$('.hover_desc').hover(function(e){
		hover_desc.stop();
		if ( typeof clouds != "undefined" && typeof clouds[$(this).attr('alt')] != "undefined" ){
			$('#hover_desc .title').html(stripslashes(clouds[$(this).attr('alt')]['title']));
			$('#hover_desc .desc').html(stripslashes(clouds[$(this).attr('alt')]['desc']));
		}else {
			$('#hover_desc .title').html("Brak opisu");
			$('#hover_desc .desc').html("");
		}
		top = e.pageY+10;
		left = e.pageX+10;
		if( top + hover_desc.height() > (globalHeight-10) ){
			top = $(window).scrollTop();
			if( globalHeight - hover_desc.height() > 0 ){
				var w = globalHeight-10-hover_desc.height();
				
				top += w/2;
			}
		}

		hover_desc.css('left', left)
		hover_desc.css('top', top)
		
		var maxw = 380;
		var imgs = hover_desc.find('img');
		if( imgs.length > 0 ){
			imgs.each(function(){
				if( $(this).width() > maxw ) maxw = $(this).width();
			})
		}
		
		var objects = hover_desc.find('object');
		var w;
		if( objects.length > 0 ){
			objects.each(function(){
				w = parseInt($(this).width());
				if( w <= 0 ) w = parseInt($(this).attr('width'));
				if( w<= 0 ) w = parseInt($(this).css('width'));

				if( w > maxw ) maxw = w;
			})
		}
		
		hover_desc.width(maxw+20);
		hover_desc.corner("5px")
		hover_desc.fadeTo(500,1);
	}, function(e){
		hover_desc.stop();
		hover_desc.fadeTo(500,0, function(){
			$(this).css('left', 0);
			$(this).css('top', 0);
			$(this).find('.title').html("Brak opisu");
			$(this).find('.desc').html("");
		});
	});
	$('#hover_desc').hover(function(){
		if( parseInt(hover_desc.css('left')) == 0 && parseInt(hover_desc.css('top')) == 0 ) return;
		
		hover_desc.stop();
		hover_desc.fadeTo(500,1);
	}, function(){
		hover_desc.stop();
		hover_desc.fadeTo(500,0, function(){
			$(this).css('left', 0);
			$(this).css('top', 0);
			$(this).find('.title').html("Brak opisu");
			$(this).find('.desc').html("");
		});
	});
	
	hover_desc.css({
		'opacity': 0,
		'visibility': 'visible'
	});
	
	$('.blank').bind("click", function(e){
		e.preventDefault();
		
		var a = $(e.target);
		while ( typeof a.attr("href") == "undefined" ) a = $(a.parent("a").get(0));

		window.open(a.attr("href"), a.attr("title"));
		return false;
	});
	
	//$('#top .right div').corner("bl br");
	$('div#main div.gray').corner("5px");
	$('.blue').corner("5px");
	if( !$.browser.msie )
		$('.green').corner("5px");
	else{
		$('a.green, div.green').corner("5px");
	}
	$('.corner').corner("5px");
	$('#footer').corner("tl tr cc:#fff")
	$('#footer > div:first').corner("tr cc:#fff");
	$('#footer > div:eq(1)').corner("tl cc:#fff");
	if( !$.browser.msie )
		$('#main .product div.right').corner("5px");
	$('#chosen_palette').corner("5px");
	$('.error').corner("5px");
	
	$('#changeCategory').bind('submit', function(){
		window.location.href = $('#id_category').val()+'-kategoria';
		
		return false
	});
	
	$('.showMacro').live('mouseenter', showMacroColor);
	$('.showMacro').live('mouseleave', hideMacroColor);
	$('.showBig').live('mouseenter', showBigColor);
	$('.showBig').live('mouseleave', hideBigColor);
	$('.showBigAdd').live('mouseenter', showMacroAddColor);
	$('.showBigAdd').live('mouseleave', hideMacroColor);
	
	$('#macro_color').css({
		'opacity': 0,
		'visibility': 'visible'
	});
	$('#big_color').css({
		'opacity': 0,
		'visibility': 'visible'
	});
	
	$('#other_invoice').change(function(){
		$('fieldset.account_creation tfoot').toggle();
	});
	
	var products_hover;
	$('.products a.right img').hover(function(e){
		products_hover = $(this).parent().siblings('.hover');
		products_hover.stop();
		
		products_hover.css({
			'left': e.pageX-10-products_hover.width(),
			'top': e.pageY-10-products_hover.height()/2
		});
		products_hover.show();
	}, function(){
		products_hover = $(this).parent().siblings('.hover');
		products_hover.stop();
		
		products_hover.hide();
	});
	
	$('select#id_category').change(function(){
		$(this).closest('form').submit()
	});
	
	$('select#id_color').change(function(){
		$(this).closest('form').submit()
	});
	
	$('.payment input').click(function(){
		window.location.href = $(this).parent().next('td').find('a').attr('href')
	});
});

function showMacroColor(e){
	var img_src, macro = $('#macro_color');
	var top,left;
	
	if( $(this).find("img").length > 0 ) img_src = $(this).find("img").attr('src');
	else img_src = $(this).css('background-image').replace(/(url)*[()(\"]?/gi, "");
	img_src = img_src.replace("/co/", "/co/medium/");
	macro.html('<img src="'+img_src+'" alt="Powiększenie" />');
	
	macro.stop();
	
	if( typeof e.pageY == 'number' ){
		top = e.pageY+10;
		left = e.pageX+10;
	}else{
		top = e.clientY+10;
		left = e.clientX+10;
	}
	if( top - $(window).scrollTop() + macro.height() > (globalHeight-10) ){
		var w = top - $(window).scrollTop() + macro.height();
		top -= Math.abs(w-globalHeight);
	}

	macro.css({
		'left': left,
		'top': top
	});
	macro.fadeTo(500,1);
}

function showBigColor(e){
	var img_src = $(this).find("img").attr('src').replace("/co/medium/", "/co/big/");
	var big = $('#big_color');
	var top,left;
	big.html('<img src="'+img_src+'" alt="Powiększenie" />');
	
	if( typeof e.pageY == 'number' ){
		top = e.pageY-100;
		left = e.pageX+10;
	}else{
		top = e.clientY-100;
		left = e.clientX+10;
	}
	if( top - $(window).scrollTop() + big.height() > (globalHeight-10) ){
		var w = top - $(window).scrollTop() + big.height();
		top -= Math.abs(w-globalHeight);
	}

	big.css({
		'left': left,
		'top': top
	});
	big.stop();
	big.fadeTo(500,1);
}

function showMacroAddColor(e){
	var img_src, macro = $('#macro_color');
	var top,left;
	
	img_src = $(this).attr('src');
	img_src = img_src.replace("/co/", "/co/big/");
	img_src = img_src.replace("/ph/", "/ph/big/");
	macro.html('<img src="'+img_src+'" alt="Powiększenie" />');
	macro.find('img').css('border', '1px solid #B0B0B0');
	if( typeof e.pageY == 'number' ){
		top = e.pageY+10;
		left = e.pageX+10;
	}else{
		top = e.clientY+10;
		left = e.clientX+10;
	}
	
	if( top - $(window).scrollTop() + macro.height() > (globalHeight-10) ){
		var w = top - $(window).scrollTop() + macro.height();
		top -= Math.abs(w-globalHeight);
	}
	
	macro.stop();

	macro.css({
		'left': left,
		'top': top
	});
	
	macro.fadeTo(500,1);
}

function hideMacroColor(){
	$('#macro_color').stop();
	
	$('#macro_color').fadeTo(500,0, function(){
		$(this).html('')
	});
}

function hideBigColor(){
	$('#big_color').stop();
	
	$('#big_color').fadeTo(500,0, function(){
		$(this).html('')
	});
}

function stripslashes (str) {
	return (str+'').replace(/\\(.?)/g, function (s, n1) {
        switch (n1) {
            case '\\':
                return '\\';
            case '0':                return '\u0000';
            case '':
                return '';
            default:
                return n1;        }
    });
}

function addslashes (str) {
     return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
}
