/*
 *
 */
function show_preview(id) {
	if(!imgjsid) return false;

	imgjsid = id;

	$('topshot_preview_img').src = 'graphics/px.gif';
	$('topshot_preview_img_buf').style.display='none';
	$('topshot_preview_img').style.display='none';
	$('overlay').appear({duration:0.5});
	$('icons').style.opacity = 1.0;
	$('icon_prev').style.opacity = 1.0;
	$('icon_next').style.opacity = 1.0;

	switch_to_image(id, 0.5);

	return false;
}

function close_preview()
{
	if(slideshow) toggle_slideshow();

	$('overlay').fade({duration:0.5});

	return false;
}

function show_preview_prev() {
	var now = imgjs[imgjsid];

	switch_to_image(now[0], 0);

	return false;
}

function show_preview_next() {
	var now = imgjs[imgjsid];

	switch_to_image(now[1], 0);

	return false;
}


function switch_to_image(id, delay) {
	imgjsid = id;

// Pre-loading
	if(imgpre0.src != imgjs[id][2] && imgpreerr != imgjs[id][2]) {
		imgpre0.onerror = function() { imgpreerr = imgjs[id][2]; }
		imgpre0.src = imgjs[id][2];
	}

	if(imgpreerr != imgjs[id][2] && !imgpre0.complete) {
		window.setTimeout('switch_to_image('+id+', '+delay+')', 100);
	}
	else {
		// Aktuelles Bild in den Puffer kopieren und anzeigen
		$('topshot_preview_img_buf').src = $('topshot_preview_img').src;
		$('topshot_preview_img_buf').setStyle({width: $('topshot_preview_img').getWidth()+'px'});
		$('topshot_preview_img_buf').setStyle({height:$('topshot_preview_img').getHeight()+'px'});
		$('topshot_preview_img_buf').setStyle({marginLeft:$('topshot_preview_img').style.marginLeft});
		$('topshot_preview_img_buf').style.opacity='1';
		$('topshot_preview_img_buf').style.display='block';

		// Hauptbild unsichtbar
		$('topshot_preview_img').style.display='none';
		$('topshot_preview_img').style.opacity='0';


		// Neues Bild wird Hauptbild
		$('topshot_preview_img').src = imgjs[id][2]; // Preview-Pfad
		leftpad = (imgjs[id][5] < 830 ? ((830 - imgjs[id][5]) / 2).round() : 0);
		$('topshot_preview_img').setStyle({width: imgjs[id][5] + 'px'}); // Skalierung
		$('topshot_preview_img').setStyle({marginLeft: leftpad + 'px'}); // Vermitteln

		// Neue Caption
		$('topshot_caption_number').update(imgjs[id][4]);
		$('topshot_caption').update(imgjs[id][3]);

		// Warenkorb
		check_cart_icon(id);

		// Puffer ausblenden, Hauptbild einblenden
		$('topshot_preview_img_buf').fade({duration:1.5,delay:delay});
		$('topshot_preview_img').appear({duration:1.5,delay:delay});

		// Preloading
		var i1 = imgjs[id][0];
		var i2 = imgjs[id][1];
		imgpre1.src = imgjs[i1][2];
		imgpre2.src = imgjs[i2][2];
	}
}

function toggle_slideshow() {
	if(slideshow) {
		slideshow = 0;

		$('icons').style.opacity     = 1.0;
		$('icon_prev').style.opacity = 1.0;
		$('icon_next').style.opacity = 1.0;
		$('seconds_span').fade({duration:0.1});
		$('seconds_slider').fade({duration:0.1});

		$('icon_slideshow').src = 'graphics/preview_slideshow.gif';
	} else {
		slideshow = 1;

		$('icons').style.opacity     = 0.3;
		$('icon_prev').style.opacity = 0.3;
		$('icon_next').style.opacity = 0.3;
		$('seconds_span').appear({duration:0.1});
		$('seconds_slider').appear({duration:0.1});

		window.setTimeout('set_sliders()', 500);

		$('icon_slideshow').src = 'graphics/preview_slideshow_stop.gif';
		setTimeout('next_slide()', (slideshowseconds - 1.5) * 1000);
	}

	return false;
}

function highlight_slideshow_icon(on) {
	var hi = (on ? '_highlight' : '');

	if(slideshow) {
		$('icon_slideshow').src = 'graphics/preview_slideshow_stop'+hi+'.gif';
	} else {
		$('icon_slideshow').src = 'graphics/preview_slideshow'+hi+'.gif';
	}
}

function next_slide() {
	if(slideshow) {
		show_preview_next();

		setTimeout('next_slide()', slideshowseconds * 1000);
	}
}

function check_cart_icon(id) {
	
	if(cartid == 0) return false;

	if(imgjs[id][6]) {
		$('icon_cart').src = 'graphics/preview_cart_out.gif';
	} else {
		$('icon_cart').src = 'graphics/preview_cart_in.gif';
	}
}

function cart_toggle(sid) {
	var id = imgjsid;

	if(cartid == 0) return false;

	if(slideshow) return false;

	new Ajax.Request( 'ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_'+(imgjs[id][6] ? 'out' : 'in')+'&ajax[colid]='+cartid+'&ajax[imgid]='+id
					, { method:'get'
					  , onSuccess: function(transport, json) {
									  if(json) {
										  var id = json.imgid;
										  imgjs[id][6] = json.cart;
										   check_cart_icon(id);
									  } else {
										  alert("Error in request.");
									  }
								   }
					  }
					);

	return false;
}

function collection_in(sid) {
	var id = imgjsid;

	if(slideshow) return false;

	new Ajax.Request( 'ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_in_box&ajax[imgid]='+id
					, { method:'get'
					  , onSuccess: function(transport, json) {
									  if(json) {
										  var id = json.imgid;

										  if(json.html) show_collection_box('button_collection_in', json.html);

									  } else {
										  alert("Error in request.");
									  }
								   }
					  }
					);

	return false;
}

function collection_out(sid) {
	var id = imgjsid;

	if(slideshow) return false;

	new Ajax.Request( 'ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_out_box&ajax[imgid]='+id
					, { method:'get'
					  , onSuccess: function(transport, json) {
									  if(json) {
										  var id = json.imgid;

										  if(json.html) show_collection_box('button_collection_out', json.html);
									  } else {
										  alert("Error in request.");
									  }
								   }
					  }
					);
/*
	new Ajax.Updater( 'topshot_caption'
					, 'ajax.php?'+sid+'&ajax[action]=collection_out_box&ajax[imgid]='+id
					, { method:'get'}
					);
*/

	return false;
}

function show_collection_box(parent_id, html) {
	var pos = $(parent_id).positionedOffset();

	$('collection_box').update(html);

	$('collection_box').setStyle({left:pos.left+'px',top:pos.top-$('collection_box').getHeight()+10+'px'});
	$('collection_box').appear({duration: 0.5});
}

function add_to_collection(sid, colid) {
	return 	change_collection(sid, colid, 'in');
}
function remove_from_collection(sid, colid) {
	return change_collection(sid, colid, 'out');
}

function change_collection(sid, colid, action) {
	var id = imgjsid;

	if(slideshow) return false;

	new Ajax.Request( 'ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_'+action+'&ajax[colid]='+colid+'&ajax[imgid]='+id
					, { method:'get'
					  , onSuccess: function(transport, json) {
									  if(json) {
										  $('collection_box').fade({duration: 0.5});
									  } else {
										  alert("Error in request.");
									  }
								   }
					  }
					);

	return false;
}

function add_collection(sid, name, description) {
	var id = imgjsid;

	if(slideshow) return false;

//alert('ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_new&ajax[imgid]='+id+'&ajax[name]='+escape(name)+'&ajax[desc]='+escape(description));
	new Ajax.Request( 'ajax.php?'+sid+'&ajax[json]=1&ajax[action]=collection_new&ajax[imgid]='+id+'&ajax[name]='+escape(name)+'&ajax[desc]='+escape(description)
					, { method:'get'
					  , onSuccess: function(transport, json) {
									  if(json) {
										  $('collection_box').fade({duration: 0.5});
									  } else {
										  alert("Error in request.");
									  }
								   }
					  }
					);

	return false;
}

function set_sliders() {
	var seconds_slider = $('seconds_slider');

	$('seconds_text').update(slideshowseconds);
	
	new Control.Slider( seconds_slider.down('.handle')
					  , seconds_slider
					  , { range: $R(3, 10)
						//, minimum: 3, maximum: 10, values: [3,4,5,6,7,8,9,10]
						, sliderValue: slideshowseconds
						, onSlide: function(value) {
													   value = value.round();
													   slideshowseconds = value;
													   $('seconds_text').update(value);
												   }
						, onChange: function(value) {
													   value = value.round();
													   slideshowseconds = value;
													   $('seconds_text').update(value);
												    }
						}
					  );
}