var t = 0;
var o = 0;
function ajaxManager() {
	var args = ajaxManager.arguments;
	switch (args[0]) { 
		case "load_page": 
			var myloader = 0;
			if (document.getElementById) { 
				var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); } 
			preload = document.getElementById('prod_prev');
			if (x) { 
				x.onreadystatechange = function() {
			
			if (x.readyState == 0) {
					preload.innerHTML = 'Loading';
			}
			else if (x.readyState == 1) {
					preload.innerHTML = 'Loading.';
			}
			else if (x.readyState == 2) {
				preload.innerHTML = 'Loading..';
			}
			else if (x.readyState == 3) {
				preload.innerHTML = 'Loading...';
			}
			else if (x.readyState == 4 && x.status == 200) { 
				el = document.getElementById('prod_prev');
				el.innerHTML = x.responseText; 
				if(t) {clearTimeout(t);}
				if(o) {clearTimeout(o);}
				t = setTimeout("fadeIn('prod_prev', 0, 100)", 700);
			}
		} 
				x.open("GET", args[1], true); 
				x.send(null);
			} 
			break; 
		case "show": 
			document.onmousemove = getMouseXY;
			var filter = document.getElementById('frmFilterTop');
			var position = document.getElementById('Show');
			var vScroll = 0;
			var switcher = 0;

			// ff first, then ie
			if (typeof window.pageYOffset != 'undefined') { 
				   vScroll = window.pageYOffset; 
			 } 
			
			 else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) { 
				   vScroll = document.documentElement.scrollTop;
				   switcher = vScroll;
			 } 
			
			
			//if (!filter.prev_disable.checked) {
				if (args[1] <= 3){
					vMod = (parseFloat(position.MouseY.value) + switcher) - 25;
				}
				if (args[1] > 3 && args[1] <=6){
					vMod = (parseFloat(position.MouseY.value) + switcher) - 150;
				}
				if (args[1] >= 7){
					vMod = (parseFloat(position.MouseY.value) + switcher) - 300;
				}
				
				// set horizontal
				if (args[2] == 0){
					hMod = parseFloat(position.MouseX.value) + 15;
				}
				if (args[2] == 1){
					hMod = parseFloat(position.MouseX.value) - 295;
				}
				if (args[2] == 2){
					hMod = parseFloat(position.MouseX.value) - 295;
				}
			//}
			
			setOpacity(0, 'prod_prev');
			document.getElementById('prod_prev').style.visibility = 'visible';
			document.getElementById('prod_prev').style.left = hMod + 'px';
			document.getElementById('prod_prev').style.top = vMod + 'px';
			ajaxManager('load_page', 'resources/image_details.php?ID=' + args[1] + '&h=' + args[3] + '&v=' + args[2], 'prod_prev')

			break;
		case "hide": 
			document.getElementById('prod_prev').style.visibility = 'hidden';
			break;
		case "move": 
			var filter = document.getElementById('frmFilterTop');
			var position = document.getElementById('Show');
			var e_height = document.getElementById('prod_prev').offsetHeight;
			if (e_height < 100) {e_height = 300;}
			var vScroll = 0;
			var switcher = 0;
			
			// ff first, then ie
			if (typeof window.pageYOffset != 'undefined') { 
				   vScroll = window.pageYOffset;
			 } 
			
			 else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) { 
				   vScroll = document.documentElement.scrollTop;
				   switcher = vScroll;
			 }
			
			//if (!filter.prev_disable.checked) {
				if (args[1] <= 3){
					vMod = (parseFloat(position.MouseY.value) + switcher) - 25;
				}
				if (args[1] > 3 && args[1] <=6){
					vMod = (parseFloat(position.MouseY.value) + switcher) - (e_height/2);
				}
				if (args[1] >= 7){
					vMod = ((parseFloat(position.MouseY.value) + switcher) - e_height) + 25;
				}
				
				// set horizontal
				if (args[2] == 0){
					hMod = parseFloat(position.MouseX.value) + 15;
				}
				if (args[2] == 1){
					hMod = parseFloat(position.MouseX.value) - 295;
				}
				if (args[2] == 2){
					hMod = parseFloat(position.MouseX.value) - 295;
				}
			//}
			document.getElementById('prod_prev').style.left = hMod + 'px';
			document.getElementById('prod_prev').style.top = vMod + 'px';
			break;
		case "jump_page": 
			t_sort = document.frmFilterTop.select_sort.value;
			t_sub = document.frmFilterTop.select_sub.value;
			t_pages = document.frmFilterTop.select_pages.value;
			window.location="main.php?cat=" + args[1] + "&page=" + t_pages + "&order=" + t_sort + "&sub=" + t_sub;
			break;
		case "jump_page_sub": 
			t_sort = document.frmFilterTop.select_sort.value;
			t_sub = document.frmFilterTop.select_sub.value;
			t_pages = document.frmFilterTop.select_pages.value;
			window.location="main.php?cat=" + args[1] + "&page=1&order=" + t_sort + "&sub=" + t_sub;
			break;
		case "jump_page2": 
			t_sort = document.frmFilterBottom.select_sort.value;
			t_sub = document.frmFilterBottom.select_sub.value;
			t_pages = document.frmFilterBottom.select_pages.value;
			window.location="main.php?cat=" + args[1] + "&page=" + t_pages + "&order=" + t_sort + "&sub=" + t_sub;
			break;
		case "jump_page_sub2": 
			t_sort = document.frmFilterBottom.select_sort.value;
			t_sub = document.frmFilterBottom.select_sub.value;
			t_pages = document.frmFilterBottom.select_pages.value;
			window.location="main.php?cat=" + args[1] + "&page=1&order=" + t_sort + "&sub=" + t_sub;
			break;
	}
}

// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)

// Set-up to use getMouseXY function onMouseMove
// document.onmousemove = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  	document.Show.MouseX.value = tempX
  	document.Show.MouseY.value = tempY
  return true
}

function fadeIn(id, startfade, endfade) {
	timer = 0;
	if (startfade < endfade) {
		for (i = startfade; i <= endfade; i=i+5) {
			o = setTimeout("setOpacity(" + i + ",'" + id + "')", (timer * 7));
			timer++;
		}
	}
}
function setOpacity(opacity, id) {
	var el = document.getElementById(id).style;
	el.opacity = (opacity / 100);
	el.MozOpacity = (opacity / 100);
	el.KhtmlOpacity = (opacity / 100);
	el.filter = "alpha(opacity=" + opacity + ")";
}
