function SubmitForm(id)
{
	document.getElementById(id).submit();
}

function SubmitFormIfEnter(id)
{
	if(event.which == 13)
		SubmitForm(id);
}

function Clip(val, min, max)
{
	if(val < min)
		return min;
	if(val > max)
		return max;
	return val;
}

function Min(a, b)
{
	if(a > b)
		return b;
	return a;
}

function Max(a, b)
{
	if(a < b)
		return b;
	return a;
}

function RandomInt(min, max)
{
	return Math.round(min + (max - min) * Math.random());
}

function GetClientWidth()
{
	if(window.innerWidth)
		return window.innerWidth;
	if(document.body.clientWidth)
		return document.body.clientWidth;
	return document.documentElement.clientWidth;
}

function GetClientHeight()
{
	if(window.innerHeight)
		return window.innerHeight;
	if(document.body.clientHeight)
		return document.body.clientHeight;
	return document.documentElement.clientHeight;
}

function GetHTMLWidth()
{
	if(document.body.scrollWidth)
		return document.body.scrollWidth;
	if(document.documentElement.offsetWidth)
		return document.documentElement.offsetWidth;
	return document.documentElement.scrollWidth;
}

function GetHTMLHeight()
{
	if(document.body.scrollHeight)
		return document.body.scrollHeight;
	if(document.documentElement.offsetHeight)
		return document.documentElement.offsetHeight;
	return document.documentElement.scrollHeight;
}


// scrolling

// vars
var upArrow;
var downArrow;
var clip;
var content;
var slider;
var slideBar;

var wheelMultiplier = 3;
var scrollDelta = 5;
var scrollInterval = 10;

var scrollTimeout;

function GetWidth(element)
{
	if(element.offsetWidth)
		return element.offsetWidth;
	return parseInt(element.style.width);
}

function GetHeight(element)
{
	if(element.offsetHeight)
		return element.offsetHeight;
	return parseInt(element.style.height);
}

function GetTop(element)
{
	return parseInt(element.style.top);
}

function GetBottom(element)
{
	return GetTop(element) + GetHeight(element) - 1;
}

function GetLeft(element)
{
	return parseInt(element.style.left);
}

function GetRight(element)
{
	return GetLeft(element) + GetWidth(element) - 1;
}

function SetTop(element, top)
{
	var t = top.toString() + "px";
	element.style.top = t;
}

function SetLeft(element, left)
{
	var l = left.toString() + "px";
	element.style.left = l;
}

function SetWidth(element, width)
{
	var w = width.toString() + "px";
	element.style.width = w;
}

function SetHeight(element, height)
{
	var h = height.toString() + "px";
	element.style.height = h;
}

function StopScrolling()
{
	clearTimeout(scrollTimeout);
}

function RefreshContentTop()
{
	var f = (GetTop(slider) - GetTop(slideBar)) / (GetHeight(slideBar) - GetHeight(slider) - 1);
	f = Clip(f, 0, 1);
	SetTop(content, - (GetHeight(content) - GetHeight(clip)) * f);
}

function RefreshSliderTop()
{
	var f = - GetTop(content) / (GetHeight(content) - GetHeight(clip));
	f = Clip(f, 0, 1);
	SetTop(slider, GetTop(slideBar) + (GetHeight(slideBar) - GetHeight(slider)) * f);
}

function ScrollUp(repeat)
{
	if(GetTop(content) + scrollDelta >= 0)
	{
		SetTop(content, 0);
		RefreshSliderTop();
		StopScrolling();
		return;
	}
	SetTop(content, GetTop(content) + scrollDelta);
	RefreshSliderTop();
	if(repeat)
		scrollTimeout = setTimeout('ScrollUp(true)', scrollInterval);
}

function ScrollDown(repeat)
{
	if(GetBottom(content) - scrollDelta <= GetHeight(clip))
	{
		SetTop(content, GetTop(content) - 1 - (GetBottom(content) - GetHeight(clip)));
		RefreshSliderTop();
		StopScrolling();
		return;
	}
	SetTop(content, GetTop(content) - scrollDelta);
	RefreshSliderTop();
	if(repeat)
		scrollTimeout = setTimeout('ScrollDown(true)', scrollInterval);
}

// mouse utils
function GetMouseX(event)
{
	if(event.x >= 0)
		return event.x;
	else if(event.clientX >= 0)
		return event.clientX;
}

function GetMouseY(event)
{
	if(event.y >= 0)
		return event.y;
	else if(event.clientY >= 0)
		return event.clientY;
}

function GetMouseCoords(event)
{
	return [GetMouseX(event), GetMouseY(event)];
}

// slider management
var sliderMouseRelTop;
var sliderOldTop;
var sliderDragging = false;
var sliderTimeout;

function SliderMove(event)
{
	if(sliderDragging == false)
		return;
	
	if(!event)
		event = window.event;
	
	SetTop(slider, Clip(sliderOldTop + GetMouseY(event) - sliderMouseRelTop, GetTop(slideBar), GetTop(slideBar) + (GetHeight(slideBar) - GetHeight(slider))));
	RefreshContentTop();
}

function SliderClick(event)
{
	if(!event)
		event = window.event;
	
	sliderMouseRelTop = GetMouseY(event);
	sliderOldTop = GetTop(slider);
		
	sliderDragging = true;
	
	document.onmouseup = SliderUnclick;
	document.onmousemove = SliderMove;
}

function SliderUnclick(event)
{
	if(!event)
		event = window.event;
	
	document.onmouseup = null;
	document.onmousemove = null;

	sliderDragging = false;
}

// mouse wheel
function handle(delta) {
	scrollDelta *= wheelMultiplier;
        if (delta < 0)
		ScrollDown(false);
        else if (delta > 0)
		ScrollUp(false);
	else
		StopScrolling();
	scrollDelta /= wheelMultiplier;
}

function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                delta = -event.detail/3;
        }
        handle(delta);
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

function Hide(element)
{
	element.style.visibility = 'hidden';
}

function RegisterForScrolling(ContentID, ClipID, UpArrowID, DownArrowID, SliderID, SlideBarID)
{
	content = document.getElementById(ContentID);
	clip = document.getElementById(ClipID);
	upArrow = document.getElementById(UpArrowID);
	downArrow = document.getElementById(DownArrowID);
	slider = document.getElementById(SliderID);
	slideBar = document.getElementById(SlideBarID);
	
	slider.onmousedown = SliderClick;
	
	if(GetHeight(content) <= GetHeight(clip))
	{
		Hide(upArrow);
		Hide(downArrow);
		Hide(slider);
		Hide(slideBar);
	}
	else
	{
		if (content.addEventListener)
			/** DOMMouseScroll is for mozilla. */
			window.addEventListener('DOMMouseScroll', wheel, false);
		/** IE/Opera. */
		window.onmousewheel = document.onmousewheel = wheel;
	}
}

var pixelSize = 3;
var maxPixels = 20;
var startDelta = -1;
var startInterval = 20;
var pixelImage = 'images/pixel.jpg';
var minStartInterval = 100;
var maxStartInterval = 500;
var pixels = new Array(maxPixels);
var current;
var availSize;
var secondStart;

function PixelFall(id, delta, interval)
{
	SetTop(pixels[id], GetTop(pixels[id]) + delta);
	//alert(GetTop(pixels[id]));
	setTimeout('PixelFall(' + id + ', ' + delta + ', ' + interval + ')', interval);
}

function PixelCreate()
{
	pixels[current] = document.getElementById('pixel' + current);
	SetTop(pixels[current], GetHTMLHeight() - pixelSize);
	var left = RandomInt(0, availSize);
	if(left > availSize / 2)
		left = Math.round(left - availSize / 2 + secondStart);
	SetLeft(pixels[current], left);
	
	pixels[current].style.visibility = 'visible';
	
	//alert('pixel created at (' + GetLeft(pixels[current]) + ', ' + GetTop(pixels[current]) + ')' + pixels[current].style.position);
	
	setTimeout('PixelFall(' + current + ', ' + startDelta + ', ' + startInterval + ')', startInterval);
	
	current = (current + 1) % maxPixels;
	
	setTimeout('PixelCreate()', RandomInt(minStartInterval, maxStartInterval));
}

function PixelFallStart()
{
	var i;
	for(i = 0; i < maxPixels; i ++)
	{
		document.body.innerHTML += '<img style="visibility: hidden; position: absolute" id="pixel' + i + '" src="' + pixelImage + '">';
	}
	current = 0;
	alert('ok');
	PixelCreate();
}

// center div
var div;

function CenterDiv(event)
{
	SetLeft(div, Max(0, (GetClientWidth() - GetWidth(div)) / 2));
	
	SetHeight(div, Max(GetClientHeight(), GetHTMLHeight()));
	
	availSize = GetClientWidth() - GetWidth(div);
	secondStart = GetRight(div);
	
}

function EqualizeDivs(id1, id2, min)
{
	d1 = document.getElementById(id1);
	d2 = document.getElementById(id2);
	
	var h = Max(min, Max(GetHeight(d1), GetHeight(d2)));
	
	SetHeight(d1, h);
	SetHeight(d2, h);
}

function PopupIngrandimento(img){

	window.open("AS_fotogrande.php?img=" + img , null, "top=100, left=100, width=30, height=30, status=no, menubar=no, toolbar=no, scrollbars=no");

}


