function getAjax()
{
	var http = false;
	try
	{
		http = new ActiveXObject('Msxml2.XMLHTTP');
	}
	catch (e)
	{
		try
		{
			http = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (e)
		{
			http = false;
		}
	}

	if (!http && typeof XMLHttpRequest != 'undefined')
	{
		http = new XMLHttpRequest();
	}
	return http;
}

function trimStr(str)
{
	var trimmed = str.replace(/^\s+|\s+$/g, '');
	return trimmed;
}

function doUrlEncodeStr(str)
{
	var out = new Array();
	for (var i = 0; i < str.length; i++)
	{
		out[out.length] = str.charCodeAt(i);
	}
	return out.join('Z');
}

function getWindowSize(getWhidth)
{
	var myWidth = 0, myHeight = 0;
	if (typeof(window.innerWidth) == 'number' )
	{
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	}
	else if (document.documentElement && (document.documentElement.clientWidth ||
			document.documentElement.clientHeight))
	{
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	if (getWhidth)
	{
		return myWidth;
	}
	else
	{
		return myHeight;
	}
}

function getWindowWidth()
{
	return getWindowSize(true);
}

function getWindowHeight()
{
	return getWindowSize(false);
}

function getScrollXY(getX)
{
	var scrOfX = 0, scrOfY = 0;
	if (typeof(window.pageYOffset) == 'number')
	{
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	}
	else if (document.body && (document.body.scrollLeft || document.body.scrollTop))
	{
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	}
	else if (document.documentElement && (document.documentElement.scrollLeft ||
			document.documentElement.scrollTop))
	{
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	if (getX)
	{
		return scrOfX;
	}
	else
	{
		return scrOfY;
	}
}

function getScrollX()
{
	return getScrollXY(true);
}

function getScrollY()
{
	return getScrollXY(false);
}

function findElementLeftTop(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		do
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

BrowserDetect.init();

function centerDiv()
{
	//var div_outer = document.getElementById('modalpopup_outer');
	var WindowWidth = getWindowWidth();
	var WindowHeight = getWindowHeight();
	var WindowX = getScrollX();
	var WindowY = getScrollY();
	/*
	if (div_outer && (div_outer.style.display == 'block'))
	{
		var div_inner = document.getElementById('modalpopup_inner');
		var hid_correction = document.getElementById('__modal_top_correction');
		var WindowCenterX = WindowX+(WindowWidth / 2);
		var WindowCenterY = WindowY+(WindowHeight / 2);
		var DivMidWidth = div_inner.clientWidth / 2;
		var DivMidHeight = div_inner.clientHeight / 2;
		var DivNewTop = Math.round(WindowCenterY-DivMidHeight)-hid_correction.value;
		var DivNewLeft = Math.round(WindowCenterX-DivMidWidth);
		div_inner.style.top = DivNewTop+'px';
		div_inner.style.left = DivNewLeft+'px';
	}
	*/
	var cart_right_side = document.getElementById('float_cart');
	var right_cart_top = document.getElementById('float_cart_top');
	var restaurants_list = document.getElementById('restaurants_list');
	
	//cart_right_side.innerHTML = WindowY + ' ' + restaurants_list.offsetHeight ;

	if (cart_right_side && right_cart_top)
	{
		var min_top = right_cart_top.value+'px';
		if (WindowY > 300)
		{
			if (WindowY > (restaurants_list.offsetHeight + 190)) 
				//cart_right_side.style.top = (restaurants_list.offsetHeight - 20 ) + 'px';
				cart_right_side.style.bottom = (restaurants_list.offsetHeight ) + 'px';
			else 
				cart_right_side.style.top = (WindowY - 290)+'px';
		}
		else
		{
			cart_right_side.style.top = min_top;
		}
	}
}
