
	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"
			}
		]

	};

	function redirect(url){ 
		
		window.location = url; 
	}

	function getEID(id){ 
		
		return document.getElementById(id);
	}

	function restoreOptions(id){

		getEID(id).selectedIndex = 0;
	}

	function trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
	 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
	 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}

	function popup(url,name,title,width,height){		

		cWidth  =  document.documentElement.clientWidth;
		cHeight =  document.documentElement.clientHeight;

		posX =  (cWidth-width)/2;
		posY =  (cHeight-height)/2;

		var newwin = window.open(url,name,"resizable=1,scrollbars=1,width="+width+",height="+height+",left="+posX+",top="+posY);

		BrowserDetect.init();
		if (BrowserDetect.browser == "Firefox")  { 
			newwin.onload = function (){ newwin.document.title = title; } 
		} else { 
			newwin.document.title = title; 
		}
	}


	function roll(element,source){	

		element.src = source; 
	}


	function rollBg(element,source){  

		if(element.value == "") element.style.backgroundImage = "url("+source+")"; 
	}


	function hide(obj){	

		if(obj.constructor.toString().indexOf("Array") == -1)
			getEID(obj).style.display = "none"; 
		else
			for(i=0;i<obj.length;i++) getEID(obj[i]).style.display = "none"; 
	}


	function show(obj){  

		if(obj.constructor.toString().indexOf("Array") == -1)
			getEID(obj).style.display = "block"; 
		else
			for(i=0;i<obj.length;i++) getEID(obj[i]).style.display = "block"; 
	}


	function clear_btn(){ 

		for(i=1;i<=10;i++) 
			if(getEID('img_'+i)) 
				getEID('img_'+i).style.border="1px solid #cccccc";
	}


	function setCookie(name,value,days) {

		var exdate=new Date();

		exdate.setDate(exdate.getDate()+days);

		document.cookie=name+ "=" +escape(value)+((days==null)?"":";expires="+exdate.toGMTString());

	}


	function setCookie(name,value,days) {

		var exdate=new Date();

		exdate.setDate(exdate.getDate()+days);

		document.cookie=name+ "=" +escape(value)+((days==null)?"":";expires="+exdate.toGMTString());

	}


	function checkNumeric(keycode) {
  
		var restricted = new Array(48,49,50,51,52,53,54,55,56,57,8,46,35,36,37,39,96,97,98,99,100,101,102,103,104,105);
		
		for(i=0;i<restricted.length;i++) { if(keycode == restricted[i]) return true; }

		return false;
	}


	function formatCurrency(obj){

		var s  = obj.value.replace(/\./,"");
		var so = s.split("");
		var sf = "";

		if(so.length == 1) sf = "0."+so[0];
		if(so.length > 1) {

			for(var i=0; i<so.length; i++){
				if ((i+1) == so.length)
					sf += "."+so[i] ;
				else if (i==0 && so[i] == '0')
					continue;
				else
					sf += so[i] ;
			}
		}
		obj.value = sf;
	}


	/*function validateCheckbox(form,url){

		var index = 0;
		var checked = "";

		for(var i=0; i<form.length; i++){
			if (form.elements[i].type == "checkbox" 
				&& form.elements[i].checked == true 
					&& form.elements[i].value != ""){

				checked += form.elements[i].value+",";
				index++;
			}
		}

		if(index == 0)
			alert("Please choose one or more records!");
		else
			redirect(url+rtrim(checked,","));

	}


	function toggleCheckbox(form){

		if(form.toggle.checked == true)
			var checked = true;
		else
			var checked = false;

		for(var i=0; i<form.length; i++){
			if(form.elements[i].type == "checkbox" && form.elements[i].value != ""){
				form.elements[i].checked = checked;
			}
		}
	}*/

	function textLimiter(field,element,maxlimit) {

		if (field.value.length > maxlimit)
			field.value = field.value.substring(0, maxlimit);
		else
			element.innerHTML = maxlimit - field.value.length;
	}

	function updateViews(id,type){

		var ajaxHandler = new ajaxManager();
		var url = "ajax/view.ajax.php?"+type+"&pid="+id;

		ajaxHandler.requestFile  = url; 
		//ajaxHandler.onCompletion = function(){ alert(ajaxHandler.response); }  
		ajaxHandler.runAJAX();

	}

	function checkEmail(email) {
		//var email = document.getElementById('emailaddress');
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

		if (filter.test(email.value))
			return true; 
		else
			return false; 
	}



	function postComment(user_id,product_id,comment,btn){
		
		if(comment.value == ""){
	
			alert("Please insert your comment.");
		
		} else {

			comment.disabled = true;
			btn.value	  = 'Posted';
			btn.disabled  = true;

			var ajaxHandler = new ajaxManager();
			var url = "ajax/product.ajax.php?uid="+user_id+"&pid="+product_id+"&comment="+encodeURIComponent(comment.value);

			ajaxHandler.requestFile  = url; 
			ajaxHandler.runAJAX();
		}
	}


	function add_rate(uid,fid,type,rate){
		
			var ajaxHandler = new ajaxManager();
			var url = "ajax/rate.ajax.php?uid="+uid+"&fid="+fid+"&type="+type+"&rate="+rate;

			ajaxHandler.requestFile  = url; 
			ajaxHandler.runAJAX();
	}


	function fixedSize(url,name,features) {
		//This launches a new window and then
		//focuses it if window.focus() is supported.
		win = window.open(url,name,features);
	}
