

	var has_activex = false;
	if (window.ActiveXObject)
		has_activex = new ActiveXObject("Microsoft.XMLHTTP");
	var has_xmlrequest = (window.XMLHttpRequest || has_activex) ? true : false;
	
	var ns = document.layers;
	var ie = document.all;
	var ns6 = document.getElementById;


	var global_x = 0;
	var global_y = 0;
	function set_mouse_x_y (e)
	{
		//var e = null;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY)
		{
			global_x = e.pageX;
			global_y = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			global_x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			global_y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
	}
	document.onmousemove = set_mouse_x_y;

	function browser_redirect(url, replace)
	{
	//	document.location.replace(url);
		document.location.href = url;
	}
	
	function browser_redirect_open(url, name)
	{
		features = "location=no,menubar=no,resizable=yes,scrollbars=yes,titlebar=yes,toolbar=no";
		window.open(url, name, features);
		//document.location.href = url;
	}
	
	function field_jump(this_field, next_field) 
	{
		if (this_field.value.length >= 4) 
		{
			eval("document.cc_payment." + next_field + ".focus()");
		}
	}


	function span_show(span_id) 
	{
		document.getElementById(span_id).style.display = 'block';
		//show_menu = eval(span_id);
		//show_menu.style.display = 'block';
	}
	
	function span_hide(span_id) 
	{  
		document.getElementById(span_id).style.display = 'none';    
		//sub_menu = eval(span_id); 
		//sub_menu.style.display = 'none';    
	}
	
	function span_replace_url(url, spanname)
	{
		span_replace_text(fetch_url(url, null), spanname);
	}

	function span_replace_text(text,spanname)
	{
		document.getElementById(spanname).innerHTML = text;
	}
	
	
	function fetch_url (url, postdata)
	{
		mozilla = window.XMLHttpRequest;
		internetexplorer = window.ActiveXObject;

		// get xml object
		var xmlhttp;
		if (mozilla)
			xmlhttp = new XMLHttpRequest();
		else if (internetexplorer)
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

		request_method = (postdata ? "POST" : "GET");
		xmlhttp.open(request_method,url,false); //  false meaning synchronus
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send(postdata);

		return xmlhttp.responseText;
	}
	
	// var xobj;
	// span_replace(xobj, "url.php?blah=blah", "sp", null);
	function span_replace(xmlhttp, url, spanname, callback, request_method, postdata)
	{
		//alert(url);
		if (request_method == undefined)
		{
			request_method = "GET";
			postdata = null;
		}
		//alert(request_method);
		mozilla = window.XMLHttpRequest;
		internetexplorer = window.ActiveXObject;

		// get xml object
		if (mozilla)
			xmlhttp = new XMLHttpRequest();
		else if (internetexplorer)
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

		// create statechange object
		xmlhttp.onreadystatechange=function() 
		{
			mozilla = window.XMLHttpRequest;
			internetexplorer = window.ActiveXObject;
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				sp = document.getElementById(spanname);
				if (sp)
					sp.innerHTML = xmlhttp.responseText;
				if (callback)
					callback(xmlhttp.responseText);
			}
		}
		xmlhttp.open(request_method,url,true);
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send(postdata);
		//xmlhttp.send("blah=whatever");
		//alert(postdata);

/*		

		// code for Mozilla, etc.
		if (window.XMLHttpRequest)
		{
			xmlhttp=new XMLHttpRequest();
	
			xmlhttp.onreadystatechange=function() 
			{
				//alert(xmlhttp.readyState);
				//alert(xmlhttp.status);
				if (xmlhttp.readyState==4 && xmlhttp.status==200)
				{
					sp = document.getElementById(spanname);
					if (sp)
						sp.innerHTML = xmlhttp.responseText;
					if (callback)
						callback(xmlhttp.responseText);
				}
			}
	
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);
		}
		// code for IE
		else if (window.ActiveXObject)
		{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			if (xmlhttp)
			{
				xmlhttp.onreadystatechange=function() 
				{
					if (xmlhttp.readyState==4 && xmlhttp.status==200)
					{
						sp = document.getElementById(spanname);
						if (sp)
							sp.innerHTML = xmlhttp.responseText;
						if (callback)
							callback.call(xmlhttp.responseText);
					}
				}
				xmlhttp.open("GET",url,true);
				xmlhttp.send();
			}
		}
*/
	}

	function state_Change(obj)
	{
		// if xmlhttp shows "loaded"
		if (xmlhttp.readyState==4)
		{
			// if "OK"
			if (xmlhttp.status==200)
			{
				//alert("XML data OK");
				//alert(xmlhttp.responseText);
				document.getElementById('cat_discounts').innerHTML = xmlhttp.responseText;
			}
			else
			{
				alert("Problem retrieving XML data:" + xmlhttp.statusText);
			}
		}
	}




    function validateSubscribeForm (frm)
    {
    	if (
    		(!validateField(frm.m_first_name, "text", "", "Please provide your first name")) ||
    		(!validateField(frm.m_last_name, "text", "", "Please provide your last name")) ||
    		(!validateField(frm.m_email, "email", "", "Please provide your correct email address"))    	
    	)
            return false;
        return true;
    }

	function validate_ipod_competition(frm)
	{
    	if (
    		(!validateField(frm.first_name, "text", "", "Please provide your first name")) ||
    		(!validateField(frm.last_name, "text", "", "Please provide your last name")) ||
    		(!validateField(frm.email, "email", "", "Please provide your correct email address")) ||
    		(!validateField(frm.answer, "text", "", "Please tell us in 25 words or less why......"))
    	)
            return false;
        return true;
	}


	function getFormValues(fobj,valFunc)
	{
		var str = "";
		var valueArr = null;
		var val = "";
		var cmd = "";
		//alert(fobj);
		for(var i = 0;i < fobj.elements.length;i++)
		{
			//alert(fobj.elements[i]);
			switch(fobj.elements[i].type)
			{
				case "text":
				case "hidden":
				case "textarea":
					if(valFunc)
					{
						//use single quotes for argument so that the value of
						//fobj.elements[i].value is treated as a string not a literal
						cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
						val = eval(cmd)
					}
					str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
					break;
				case "select-one":
					str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
					break;
				case "checkbox":
					if (fobj.elements[i].checked)
						str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&";
			}
		}
		str = str.substr(0,(str.length - 1));
		return str;
	}

	
	function getId(elemname)
	{
		return document.getElementById(elemname);
	}
	
