var timerlen = 1;
var slideAniLen = 600;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slide(objname)
{
	if(dir[objname] == "down")
		slideup(objname);
	else
		slidedown(objname);
}


function slidedown(objname)
{
	if(moving[objname])
		return;

	if(document.getElementById(objname).style.display != "none")
		return; // cannot slide down something that is already visible

	moving[objname] = true;
    dir[objname] = "down";
    startslide(objname);
}

function slideup(objname)
{
	if(moving[objname])
		return;

	if(document.getElementById(objname).style.display == "none")
		return; // cannot slide up something that is already hidden

	moving[objname] = true;
	dir[objname] = "up";
	startslide(objname);
}

function startslide(objname)
{
	obj[objname] = document.getElementById(objname);

	endHeight[objname] = parseInt(obj[objname].style.height);
	startTime[objname] = (new Date()).getTime();

	if(dir[objname] == "down")
	{
		obj[objname].style.height = "1px";
	}

	obj[objname].style.display = "block";

	timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}


function slidetick(objname)
{
	var elapsed = (new Date()).getTime() - startTime[objname];

		
	if (elapsed > slideAniLen)
		endSlide(objname)
	else 
	{
		var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
		if(dir[objname] == "up")
			d = endHeight[objname] - d;

		obj[objname].style.height = d + "px";
		
	}

	return;
}

function endSlide(objname)
{
		
	clearInterval(timerID[objname]);

	if(dir[objname] == "up")
		obj[objname].style.display = "none";

	obj[objname].style.height = endHeight[objname] + "px";

	delete(moving[objname]);
	delete(timerID[objname]);
	delete(startTime[objname]);
	delete(endHeight[objname]);
	delete(obj[objname]);
//	delete(dir[objname]);

	return;
}


function createRequestObject()
{
	var request_o; 												//declare the variable to hold the object.
	var browser = navigator.appName; 							//find the browser name
	if(browser == "Microsoft Internet Explorer")
	{
																// Create the object using MSIE's method
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
																// Create the object using other browser's method
		request_o = new XMLHttpRequest();
	}
	
	return request_o; //return the object
}


																// The variable http will hold our new XMLHttpRequest object.
var http = createRequestObject(); 

																// Function called to get the product categories list
function getProductInfo(productID)
{
//	http.open('get', 'index.php?search=table' + document.form_category_select.select_category_select.selectedIndex);
	http.open('get', 'data.php?action=productinfo&productid=' + productID);
	/* Define a function to call once a response has been received. This will be our
		handleProductCategories function that we define below. */
	http.onreadystatechange = showProductInfo; 
	/* Send the data. We use something other than null when we are sending using the POST
		method. */
	http.send(null);
}

function showProductInfo()
{
																/* Make sure that the transaction has finished. The XMLHttpRequest object 
																	has a property called readyState with several states:
																	0: Uninitialized
																	1: Loading
																	2: Loaded
																	3: Interactive
																	4: Finished */
	if(http.readyState == 4)
	{ 															//Finished loading the response
																/* We have got the response from the server-side script,
																	let's see just what it was. using the responseText property of 
																	the XMLHttpRequest object. */
		var response = http.responseText;
																/* And now we want to change the product_categories <div> content.
																	we do this using an ability to get/change the content of a page element 
																	that we can find: innerHTML. */
		document.getElementById('ProductWindow').innerHTML = response;
		
	}	
}

function showProduct(productID)
{

	getProductInfo(productID);

	product_window_y_pos = 90 + document.body.scrollTop;
	
	
	document.getElementById('ProductWindow').style.top = product_window_y_pos + "px";
	
	slide("ProductWindow");	
}


function hideProduct()
{
	slide("ProductWindow");	
}


function showSearch(url)
{
	i = document.getElementById('sort').selectedIndex;
	t = document.getElementById('sort').options[i].innerText;
		
	location.href = url + "&sort=" + t;
}



function PostToLink(to, p)
{
	var myForm = document.createElement("form");
	myForm.method="post" ;
	myForm.action = to ;
	for (var k in p)
	{
		var myInput = document.createElement("input") ;
		myInput.setAttribute("name", k) ;
    	myInput.setAttribute("value", p[k]);
    	myForm.appendChild(myInput) ;
	}
	
	i = document.getElementById('sort').selectedIndex;
	t = document.getElementById('sort').options[i].innerText;
	
	var myInput = document.createElement("input") ;
	myInput.setAttribute("name", "sort") ;
   	myInput.setAttribute("value", t);
   	myForm.appendChild(myInput) ;
  
	
	document.body.appendChild(myForm) ;
	myForm.submit() ;
	document.body.removeChild(myForm) ;
}

// <a href="javascript:PostToLink('post.aspx',{user:'peter',cc:'aus'})">click</a>


function ShowPicture(n, url)
{
	document.getElementById(n).src = url;
}


function OnSearchSortChange(dropdown, search_term, search_range)
{
	alert("term=" + search_term + ", range=" + search_range);
//	PostToLink('index.php', {cat1: '" . $search_cat_1 . "', cat2: '" . $search_cat_2 . "'}
	
    var myindex  = dropdown.selectedIndex
    var SelValue = dropdown.options[myindex].value
    var baseURL  = "http://www.cnn.com"
    top.location.href = baseURL;
    
    return true;
	
}

