function CheckSearch()
{
	var test_string=document.forms.search_form.search.value;
	test_string=test_string.replace(/^\s*|\s*$/g,'');
	if (test_string=='')
	{
		alert('Please enter a valid search term.');
		return false;
	}
	else
	{
		return true;
	}
}

function add_review_window(src)
{
	window.open(src, "Add_review","toolbar=no,scrollbars=yes,resizable=yes,width=450,height=480,top=100,left=100");
}


/******* Tooltip stuff *******/

// Extended Tooltip Javascript
// copyright 9th August 2002, 3rd July 2005
// by Stephen Chapman, Felgall Pty Ltd

// permission is granted to use this javascript provided that the below code is not altered

var DH = 0;
var an = 0;
var al = 0;
var ai = 0;

if (document.getElementById)
{
	ai = 1;
	DH = 1;
}
else
{
	if (document.all)
	{
		al = 1;
		DH = 1;
	}
	else
	{
		browserVersion = parseInt(navigator.appVersion);
		if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4))
		{
			an = 1; DH = 1;
		}
	}
}

function fd(oi, wS)
{
	if (ai)
		return wS ? document.getElementById(oi).style:document.getElementById(oi);
	if (al)
		return wS ? document.all[oi].style: document.all[oi];
	if (an) return document.layers[oi];
}

function pw()
{
	return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;
}

function mouseX(evt)
{
	if (evt.pageX)
		return evt.pageX;
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	else
		return null;
}

function mouseY(evt)
{
	if (evt.pageY)
		return evt.pageY;
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	else return null;
}

function popUp(evt,oi)
{
	if (DH)
	{
		var wp = pw();
		ds = fd(oi,1);
		dm = fd(oi,0);
		st = ds.visibility;
		if (dm.offsetWidth)
			ew = dm.offsetWidth;
		else if (dm.clip.width)
			ew = dm.clip.width;
		if (st == "visible" || st == "show")
		{
			ds.visibility = "hidden";
		}
		else
		{
			tv = mouseY(evt) +20;
			lv = mouseX(evt) - (ew/4);
			if (lv < 2)
				lv = 2;
			else if (lv + ew > wp)
				lv -= ew/2;
			if (!an)
			{
				lv += 'px';
				tv += 'px';
			}
			ds.left = lv;
			ds.top = tv;
			ds.visibility = "visible";
		}
	}
}

/******* end tooltip stuff *********/

function addEngine()
{
  var basename='';
  if (
    (typeof window.sidebar == "object") &&
    (typeof window.sidebar.addSearchEngine == "function")
  )
  {
    window.sidebar.addSearchEngine(
      "http://www.pricecheck.co.za/pricecheck.src",
      "http://www.pricecheck.co.za/pricecheck.gif",
      "PriceCheck.co.za", "Price Comparison"
    )
	return true;
  }
  else
  {
    alert("Sorry, you need Mozilla (version M15 or later) or Firefox to add a search plugin to your browser.");
	return false;
  }
}

/****
from: http://cass-hacks.com/articles/code/js_url_encode_decode/
****/

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function send_to_friend(page_url, page_title, your_name, your_email, friend_email, message)
{
//	/var url = '/proxy?url=' + encodeURIComponent('http://www.google.com/search?q=Prototype');
	var url = "/xml_functions/?function=send_to_friend&send=1&page_url="+page_url+"&page_title="+page_title+"&your_name="+your_name+"&your_email="+your_email+"&friend_email="+friend_email;
	
	new Ajax.Updater('share_this_body_2', url);

}

function send_contact_us(page_url, page_title, name, email, subject, message)
{
//	/var url = '/proxy?url=' + encodeURIComponent('http://www.google.com/search?q=Prototype');
	var url = "/xml_functions/?function=send_contact_us&send=1&page_url="+page_url+"&page_title="+page_title+"&name="+name+"&email="+email+"&subject="+subject+"&message="+message;
	
	new Ajax.Updater('share_this_body_3', url);

}
generic_updater= function(element,page_url,complete_func)
{
	func=complete_func || 'void(0);';
	new Ajax.Updater(element, page_url, {evalScripts:true, onSuccess:function(){eval(func);}});
};
/** Updates the generic popup*/
generic_popup_updater = function(page_url,complete_func,ok_func)
{	
	func=complete_func || 'void(0);';
	func_2=ok_func || 'void(0);';
	$('gen_popup_loading').show();
	$('gen_popup_body').hide();	
	gen_popup.show();
	page_url+="&ok_func="+URLEncode(func_2);
	new Ajax.Updater('gen_popup_body', page_url, 
		{
			evalScripts:true,
			onCreate: function()
			{
				$('gen_popup_loading').show();
				$('gen_popup_body').hide();					
			},
			onComplete:function(transport)
			{													
				$('gen_popup_loading').hide();
				$('gen_popup_body').show();				
				var response=transport.responseText;
				if (!response.match(/^0/))
				{					
					eval(func);	
				}
				else
				{					
					if (response.match(/^1/))//login
					{
						alert("logged in");
					}
					
					$('gen_popup_body').innerHTML=response.substr(1,response.length);					
				}
				centre_gen_popup();
				//gen_popup.show();
			}
		});	
}; // generic_popup_updater()
/** Toggles the toolbar */
toggle_toolbar= function()
{	
	if ($('user_toolbar').visible())
	{
		set_cookie('user_toolbar','hidden',9);
		new Effect.SlideUp('user_toolbar',{duration:0.2});
		$('toolbar_toggle').update('|&nbsp;<a href="javascript:void(0);" onclick="toggle_toolbar();" class="sml_txt" style="color:blue;">show toolbar</a>');
	}
	else
	{
		set_cookie('user_toolbar','shown',9);
		new Effect.SlideDown('user_toolbar',{duration:0.2});
		$('toolbar_toggle').update('');
	}
};
update_tip = function(event,width)
{
	var mouse_x=Event.pointerX(event)+3;var mouse_y=Event.pointerY(event)-$('tooltip').getHeight()-3;
    tip_width=width||'150';    
	$('tooltip').setStyle({left:mouse_x+'px',top:mouse_y+'px',width:tip_width+'px'});		
};	
show_tip = function(tip_text,event,width){$('tooltiptext').update(tip_text);$('tooltip').show();update_tip(event,width);};
hide_tip = function(){$('tooltip').hide();};
function set_cookie(c_name,value,expiredays) 
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+';path=/';    
}
function get_cookie(c_name) 
{
    if (document.cookie.length>0)
    {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
      {
	       c_start=c_start + c_name.length+1;
	       c_end=document.cookie.indexOf(";",c_start);
	       if (c_end==-1)
	       {
	    	   c_end=document.cookie.length;
	       }
	       return unescape(document.cookie.substring(c_start,c_end));
      }
    }
    return "";
} 
function simple_ajax(url,func,evaluate_response){
	http_request = false;
	if (typeof XMLHttpRequest==="undefined") {
		  XMLHttpRequest=function() {
		    try {return new ActiveXObject("Msxml2.XMLHTTP.6.0");}catch(e){}
		    try {return new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(e){}
		    try {return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){}
		    try {return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}
		    throw new Error("This browser does not support XMLHttpRequest.");
		  };
		}
	http_request = new XMLHttpRequest();if (http_request.overrideMimeType){http_request.overrideMimeType('text/xml');}http_request.open('GET', url, true);		
	http_request.onreadystatechange=function(){if (http_request.readyState != 4){return;}var serverResponse = http_request.responseText;serverResponse=serverResponse.replace(/<[\/]*script>/g,'');if (func){eval(func);}if (evaluate_response){eval(serverResponse)}};
	http_request.send(null);return true;
}
function init(){url="/xml_functions/?function=do_reminders&current_url="+URLEncode(document.location);simple_ajax(url,null,true);}