function ajaxFunction(div, string)
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
  xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
      document.getElementById(div).innerHTML = xmlHttp.responseText;
      }
    }
  xmlHttp.open("GET",string,true);
  xmlHttp.send(null);
  }

function searchSite(){
var searchStr = document.getElementById('search').value;
window.location='/search.htm?search=' + escape(searchStr);
}

function searchSuggest(e){

var resultLimit = 7;

var searchStr = document.getElementById('search').value;

if(searchStr.length > 1){

if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}

resultLimit = resultLimit -1;

if(keynum == '37' || keynum == '39'){
// do nothing for now
}

else if(keynum == '40'){

// if down cursor pressed

if(document.getElementById('searchSuggest').innerHTML == ''){
ajaxFunction('searchSuggest','/functions/searchSuggest.php?search='+escape(searchStr)+'&addClass=1');
displayBlock('searchSuggest');
}

else{

var i = 0;
var change;
var div;
var div2Change;
var noneSelected = 1;

	while(i<=resultLimit){

	div = 'ssid_'+i;

	if(document.getElementById(div)){

		if(document.getElementById(div).className == 'active'){
		div2Change = i+1;
		div2ChangeStr = 'ssid_'+div2Change;
		if(document.getElementById(div2ChangeStr)){
		document.getElementById(div).className = '';
		}
		noneSelected = 0;
		}

		if(i == div2Change){
		document.getElementById(div).className = 'active';
		}
	}
	i=i+1;
	}

if(noneSelected == 1){
if(document.getElementById('ssid_0')){
document.getElementById('ssid_0').className = 'active';
}
}

}

}

else if(keynum == '38'){
// up arrow pressed

var i = resultLimit;
var change;
var div;
var div2Change;

	while(i>=0){

	div = 'ssid_'+i;

	if(document.getElementById(div)){

		if(document.getElementById(div).className == 'active'){
		document.getElementById(div).className = '';
		if(i == 0){
		document.getElementById('searchSuggest').innerHTML = '';
		displayNone('searchSuggest');
		}
		div2Change = i-1;
		}

		if(i == div2Change){
		document.getElementById(div).className = 'active';
		}

	}
	i=i-1;
	}

}

else if(keynum == '27'){
// escape key pressed
document.getElementById('searchSuggest').innerHTML = '';
displayNone('searchSuggest');
}

else if(keynum == '13'){
// if return key pressed

var i = 0;
var div;
var newSearch;
var newSearchStr;


	while(i<=resultLimit){

	div = 'ssid_'+i;

	if(document.getElementById(div)){

		if(document.getElementById(div).className == 'active'){
		newSearch = '1';
		newSearchStr = document.getElementById(div).innerHTML;
		document.getElementById(div).className = '';
		}

	}

	i=i+1;
	}


if(newSearch == '1'){
document.getElementById('search').value = newSearchStr;
document.getElementById('searchSuggest').innerHTML = '';
displayNone('searchSuggest');
}

else{
window.location='/search.htm?search=' + escape(searchStr);
}

}

else{
ajaxFunction('searchSuggest','/functions/searchSuggest.php?search='+escape(searchStr));
displayBlock('searchSuggest');
}

}

else{
document.getElementById('searchSuggest').innerHTML = '';
displayNone('searchSuggest');
}

}

function changeRating(rating,div){
document.getElementById(div).style.backgroundImage = 'url(/images/rating_'+rating+'.gif)';
if(div == 'reviewRating'){
document.getElementById('rating').value = rating;
}
}

function submitRating(rating, product_id){
ajaxFunction('ratingsPanel','/functions/submitRating.php?rating='+rating+'&product_id='+product_id);
}

function originalRating(rating){
document.getElementById('ratingsBG').style.backgroundImage = 'url(/images/rating_'+rating+'.gif)';
}

function displayNone(div){
document.getElementById(div).style.display = 'none';
}

function displayBlock(div){
document.getElementById(div).style.display = 'block';
}

function passwordLogin(e){

if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}

if(keynum == '13'){

var email = document.getElementById('email').value;
var password = document.getElementById('password').value;

ajaxFunction('accountLogin','/functions/accountLogin.php?email='+email+'&pass='+password);

}

}

function editReview(review_id, rating){

var reviewName = 'review_name_' + review_id;
var reviewImage = 'review_rating_' + review_id;
var reviewContent = 'review_content_' + review_id;
var reviewImageSrc = document.getElementById(reviewImage).src;

document.getElementById('name').value = document.getElementById(reviewName).innerHTML;
document.getElementById('reviewRating').style.backgroundImage = 'url('+reviewImageSrc+')';
document.getElementById('review').innerHTML =  document.getElementById(reviewContent).innerHTML;
document.getElementById('rating').value = rating;

displayBlock('reviewForm');

}

function popupDiv(content, divWidth, divHeight){

var divID = 'popupDiv';
var box;

if(document.getElementById(divID)){
box = document.getElementById(divID);
}

else{
box = document.createElement("div");
box.setAttribute("id",divID);
document.body.appendChild(box);
}


	var scrollingLeft = Math.round((document.documentElement.clientWidth/2)-(box.style.width/2)) - (divWidth / 2);
	var scrollingTop = Math.round((document.documentElement.clientHeight/2)-(box.style.height/2)+document.documentElement.scrollTop) - (divHeight / 2);

	box.style.width = divWidth+'px';
	box.innerHTML = content;
	box.style.display = 'block';
	box.style.position = 'absolute';
	box.style.top = scrollingTop+'px';
	box.style.left = scrollingLeft+'px';
	box.style.zIndex = '1';

	return hideShowSelects('hidden');

}

function popupDisplayNone(div){
document.getElementById(div).style.display = 'none';
document.getElementById(div).style.width = '';
hideShowSelects('visible');
}

function hideShowSelects(toggle){

if(navigator.appName == 'Microsoft Internet Explorer'){

var e=document.getElementsByTagName("select");

	for(var i=0;i<e.length;i++)
	{
	e[i].style.visibility = toggle;
	}

return false;
}

else{
return false;
}

}

function onlyNumbers(e)
			{
	var iKeyCode;
	if (!e) {
		var e = window.event;
	}
	if (e.keyCode) {
		iKeyCode = e.keyCode;
	} else {
		if (e.which) {
			iKeyCode = e.which;
		}
	}
	switch(iKeyCode) {
		case 8:
		case 9:
		case 35:
			break;
		case 36:
			break;
		case 37:
		case 38:
		case 39:
		case 40:
		case 46:
			break;
		case 48:
		case 49:
		case 50:
		case 51:
		case 52:
		case 53:
		case 54:
		case 55:
		case 56:
		case 57:
			if (e.shiftKey || e.altKey){
				return false;
			}
			break;
		case 96:
		case 97:
		case 98:
		case 99:
		case 100:
		case 101:
		case 102:
		case 103:
		case 104:
		case 105:
			//return correct numeric from keypad
			return iKeyCode - 48; break;
		case 110:
		//case 190:
			//if you are supporting decimal points
		//	return '.';	break;
		default: return false;
	}
}

function validate(formElements, frm)
{

var notValid = 0;
var elementId;
var element;

for (x in formElements)
{

elementId = formElements[x];
element = document.getElementById(elementId);

	if(element.value.length == 0){
	notValid = 1;
	element.style.border = '1px solid #cc0000';
	}
	else{
	element.style.border = '1px solid #cccccc';
	}

}

if(notValid > 0){
return false;
}

else{
document.forms[frm].submit();
}

}

function requestViewing(id){

var request_name = document.getElementById('request_name').value;
var request_telephone = document.getElementById('request_telephone').value;
var request_time = document.getElementById('request_time').value;

if(request_name.length == 0 || request_telephone.length == 0){

document.getElementById('requestViewingResult').innerHTML = '<p style="color: #ff6600;">Complete all fields.</p>';

}

else{

var string = 'name='+request_name+'&telephone='+request_telephone+'&time='+request_time+'&id='+id;

document.getElementById('requestViewingResult').innerHTML = '<p style="color: #ff6600;">Sending...</p>';

document.getElementById('request_name').value = '';
document.getElementById('request_telephone').value = '';

ajaxFunction('requestViewingResult','/functions/requestViewing.php?'+string);

}

}

function sendToFriend(id){

var send_name = document.getElementById('send_name').value;
var send_email = document.getElementById('send_email').value;
var send_friend_name = document.getElementById('send_friend_name').value;
var send_friend_email = document.getElementById('send_friend_email').value;

if(send_name.length == 0 || send_email.length == 0 || send_friend_name.length == 0 || send_friend_email.length == 0){

document.getElementById('sendToFriendResult').innerHTML = '<p style="color: #ff6600;">Complete all fields.</p>';

}

else{

var string = 'name='+send_name+'&email='+send_email+'&friends_name='+send_friend_name+'&friends_email='+send_friend_email+'&id='+id+'&url='+escape(location.href);

document.getElementById('sendToFriendResult').innerHTML = '<p style="color: #ff6600;">Sending...</p>';
document.getElementById('send_name').value = '';
document.getElementById('send_email').value = '';
document.getElementById('send_friend_name').value = '';
document.getElementById('send_friend_email').value = '';

ajaxFunction('sendToFriendResult','/functions/sendToFriend.php?'+string);

}

}