	var ocLoaded=1;
	var ratingdenominator = 6
	var onstarimage = 'http://partner.opencritics.de/ocService/img/staryellow_small.png'
	var halfstarimage = 'http://partner.opencritics.de/ocService/img/staryellowhalf_small.png'
	var offstarimage = 'http://partner.opencritics.de/ocService/img/stargray_small.png'
	var bigstarimage = 'http://partner.opencritics.de/ocService/img/star_rate.png'
	var rate_this_item = new Array();
	rate_this_item['de'] = 'Bewerten mit';
	rate_this_item['en'] = 'Rate this item';
	var out_off = new Array();
	out_off['de'] = 'von';
	out_off['en'] = 'out of';
	var punkten = new Array();
	punkten['de'] = 'Punkten';
	punkten['en'] = '';
	var openCritics_pId = '';
	var score  = 0;
	var openCritics_Code	= '';
	/**
	 *
	 * @access public
	 * @return void
	 **/
	function openCritics_CreateWidget(){
		/*define code*/
		if(typeof(ocLoadedCss)=='undefined'){
			var ocLoadedCss=1;
			var headID = document.getElementsByTagName("head")[0];
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = 'http://partner.opencritics.de/ocService/css_new/css-1-0-0-noshadow-0-nofixfont.css';
			cssNode.media = 'screen';
			headID.appendChild(cssNode);
		}
		openCritics_Code	= '<sc' + 'ript s' + 'rc="http://partner.opencritics.de/ocService/js/openCritics.js.php?objName=' +openCritics_objName+ '&amp;objYear=' +openCritics_objYear+ '&amp;objType=' +openCritics_objType+ '&amp;layout=' +openCritics_Layout+ '&amp;pId=' +openCritics_pId+ '" ty' + 'pe="tex' + 't/jav' + 'ascr' + 'ipt"><\/sc' + 'ript>';

		document.write(openCritics_Code);

	}

	function formatscore(num, d){ //remove any leading 0s and format number to be of specified denominator
	    var d = (typeof d == "undefined" || d <= 0) ? 100 : d
	    var formatted = parseInt(num.toString().replace(/^0+/, "")) //remove any leading 00s and trailing "%" signs
	    formatted = (formatted > 0) ? Math.round(formatted * d / 100 * 10) / 10 : 0 //round score/d to 1 decimal places
	    return formatted //return score
	}

	function openCriticsRating(id, votes, avgscore){
	    this.id = id
	    this.totalvotes = (votes == "") ? 0 : votes
	    this.avgscore = avgscore
	}

	openCriticsRating.prototype.displaytext = function(tester){
	    var formatavgscore = formatscore(this.avgscore, ratingdenominator) //Format avgscore from percentage to designated unit
	    if (tester == "inclusion") //if function being invoked as part of displayrating() or votes>0
	        document.write('&nbsp;<span class="OC_scoreinfo"><b>' + formatavgscore + '/<sub>' + ratingdenominator + '</sub></b> from <b>' + this.totalvotes + '</b> votes</span><br /><div class="OC_tipmessage"></div>')
	    else
	        if (parseInt(tester) > 0) //more than 1 vote
	            document.write('<span class="OC_scoreinfoalt" title="out of 5. Total votes: ' + this.totalvotes + '"><b>' + formatavgscore + '</b></span>')
	}

	openCriticsRating.prototype.displayrating = function(){
	    var ld=openCritics_Layout.split(':');
	    var lang=ld[1];
	    //document.write('<div class="OC_starcontainer" id="ratecontainer' + this.id + '" rel="' + this.totalvotes + '">') //store total votes in "rel" attr
	    var formatavgscore = formatscore(this.avgscore, ratingdenominator) //Format avgscore from percentage to designated unit
	    var halfstarcheck = (formatavgscore - Math.floor(formatavgscore)) >= 0.5 ? 1 : 0
	    for (var i = 1; i < ratingdenominator + 1; i++) {
	        if (formatavgscore >= i) //display star?
			{
	            document.write('<img id="' + i + '::on" src="' + onstarimage + '" alt="*" class="OC_starclass" title="'+rate_this_item[lang]+' ' + i + ' '+out_off[lang]+' ' + ratingdenominator + ' '+punkten[lang]+'" />')
			} else
	            if (Math.floor(formatavgscore) + 1 == i && halfstarcheck)
	                document.write('<img id="' + i + '::half" src="' + halfstarimage + '" alt="*"  class="OC_starclass" title="'+rate_this_item[lang]+' ' + i + ' '+out_off[lang]+' ' + ratingdenominator + ' '+punkten[lang]+'" />')
	            else
	                document.write('<img id="' + i + '::off" src="' + offstarimage + '" alt="*"  class="OC_starclass" title="'+rate_this_item[lang]+' ' + i + ' '+out_off[lang]+' ' + ratingdenominator + ' '+punkten[lang]+'" />')
	    } //end loop
	    //this.displaytext("inclusion")
	    // document.write('</div>')

	    document.getElementById("ratecontainer" + this.id).onmouseover = openCriticsRating.selectrating
	    document.getElementById("ratecontainer" + this.id).onmouseout = openCriticsRating.selectrating
	    var instanceOfTicker = this
	    // new function(){instanceOfTicker.countrating()}
	    document.getElementById("ratecontainer" + this.id).onclick = openCriticsRating.countrating
	}

	openCriticsRating.selectrating = function(e){
	    var evtobj = window.event ? window.event : e
	    var evttarget = window.event ? window.event.srcElement : e.target
	    var ratingimages = this.getElementsByTagName("img")
	    if (evttarget.tagName == "IMG") {
	    	// this would diplay the message under the voting area
	        //this.getElementsByTagName("div")[0].style.visibility = (evtobj.type == "mouseover") ? "visible" : "hidden"
	        //this.getElementsByTagName("div")[0].innerHTML = (evtobj.type == "mouseover") ? evttarget.getAttribute("xtitle") : ""
	        for (var i = 1; i < ratingdenominator + 1; i++) {
	            if (evtobj.type == "mouseover")
	                ratingimages[i - 1].src = (parseInt(ratingimages[i - 1].id) <= parseInt(evttarget.id)) ? onstarimage : offstarimage
	            else
	                if (evtobj.type == "mouseout")
	                    ratingimages[i - 1].src = (ratingimages[i - 1].id.indexOf("on") != -1) ? onstarimage : (ratingimages[i - 1].id.indexOf("half") != -1) ? halfstarimage : offstarimage
	        }
	        openCriticsRating.fixWeatherPng();
	    }
	}

	openCriticsRating.confirmrating = function(e){
	    var evttarget = window.event ? window.event.srcElement : e.target
	}

	openCriticsRating.countrating = function(e){ //function to count/update rating onClick
	    var evttarget = window.event ? window.event.srcElement : e.target
	    if (evttarget.tagName.toUpperCase() == "IMG") {
	        var openCriticsRatingemid = parseInt(this.id.replace("ratecontainer", "")) //actual ID of rated item
			var openCriticsRatingemid = this.id.replace("ratecontainer", "") // actual ID of rated item with type attached
	        score = parseInt(evttarget.getAttribute("id")) / ratingdenominator
	        score = Math.round(score * 100) //Unit is percentage (ie: 60%)

	        //document.getElementById('openCriticsVoteDiv'+openCriticsRatingemid).style.display='block';
	        //document.getElementById('stars_voting_area'+openCriticsRatingemid).style.display='none';
			document.getElementById('stars_voting_area'+openCriticsRatingemid).innerHTML=document.getElementById('thankYou'+openCriticsRatingemid).innerHTML;
			document.getElementById('openCriticsVote'+openCriticsRatingemid).src = 'http://partner.opencritics.de/ocService/rateObject.php?objId='+openCriticsRatingemid+ "&rating=" + score + "&bustcache=" + new Date().getTime()+ "&partner_id=" + openCritics_pId;

	    }
	}

	openCriticsRating.updaterating = function(ajaxinstance, itemid, score){ //function to count/update rating onClick

	    var ratecontainer = document.getElementById("ratecontainer" + itemid)
	    var ratingimages = ratecontainer.getElementsByTagName("img")
	    var fader = new faderoutine(itemid)
	    fader.fadeTo(0.2)
	    ratecontainer.onmouseover = null
	    ratecontainer.onmouseout = null
	    ratecontainer.onclick = null
	    if (ajaxinstance.readyState == 4) { //if request of file completed
	        if (ajaxinstance.status == 200) {
	            var xmldata = ajaxinstance.responseXML
	            if (xmldata.getElementsByTagName("latestscore").length == 0) { //if error getting latest avgscore
	                fader.gradualFadeUp(0.2)
	                alert(ajaxinstance.responseText)
	                return
	            }
	            var totalvotes = xmldata.getElementsByTagName("totalvotes")[0].firstChild.nodeValue
	            var avgscore = xmldata.getElementsByTagName("avgscore")[0].firstChild.nodeValue
	            var votedcheck = xmldata.getElementsByTagName("voted")[0].firstChild.nodeValue
	            avgscore = formatscore(avgscore, ratingdenominator) //format score from "098%" to score/ratingdenominator
	            var halfstarcheck = (avgscore - Math.floor(avgscore)) >= 0.5 ? 1 : 0
	            for (var i = 1; i < ratingdenominator + 1; i++) {
	                ratingimages[i - 1].src = (avgscore >= i) ? onstarimage : (Math.floor(avgscore) + 1 == i && halfstarcheck) ? halfstarimage : offstarimage
	                ratingimages[i - 1].className = ""
	            }
	            ratecontainer.getElementsByTagName("span")[0].innerHTML = "<b>" + avgscore + "<sub>/" + ratingdenominator + "</sub></b> from <b>" + totalvotes + "</b> votes"
	            if (votedcheck == "yes")
	                alert("Vote not recorded, as you have voted already!")
	            ratecontainer.removeChild(ratecontainer.getElementsByTagName("div")[0]) //remove tip message div
	            fader.gradualFadeUp(0.2)
	        }
	    }
	}

	openCriticsRating.fixWeatherPng = function() {

	  if (BrowserDetect.browser != 'Explorer' || (BrowserDetect.browser == 'Explorer' && BrowserDetect.version>6)) {
	  	// do nothing if (not IE lt 7)
	  	return;
	  }

	  for (var i = 0; i < document.images.length; i++)
	        {
	        var img = document.images[i];
	        	if (img.className == 'OC_starclass' || img.className == 'OC_bigStar') {
	                with (img)
	                {
	                        if ("PNG" == src.match(/[^.]+$/).toString().toUpperCase())
	                        {
							  style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')";
							  src = src.replace(/[^\/]+\.png$/i, "transparentstar.gif");
							}
					}

	        	}
			}

	}

	/** Create an ajax object to get data from server **/
	openCriticsRating.createAjaxObj= function (){
	    var httprequest = false
	    if (window.XMLHttpRequest) { // if Mozilla, Safari etc
	        httprequest = new XMLHttpRequest()
	        if (httprequest.overrideMimeType)
	            httprequest.overrideMimeType('text/xml')
	    }
	    else
	        if (window.ActiveXObject) { // if IE
	            try {
	                httprequest = new ActiveXObject("Msxml2.XMLHTTP");
	            }
	            catch (e) {
	                try {
	                    httprequest = new ActiveXObject("Microsoft.XMLHTTP");
	                }
	                catch (e) {
	                }
	            }
	        }
	    return httprequest
	}

	/** Open Critics Review related functions **/
	openCriticsRating.toggleLayerByClass = function(myLayer, myDiv){
		var divs = openCriticsRating.getElementsByClassName(myLayer,'div',document.getElementById(myDiv));
		for (var i = 0; i < divs.length; i++){
			divs[i].style.display = (divs[i].style.display == 'none' || divs[i].style.display == '' ? 'block':'none' );
		}
	}
	openCriticsRating.toggleLayer = function(myDiv,myState){
		var div = document.getElementById(myDiv);
		div.style.display = myState;
	}

	function openCriticsReview(){
		this.ajax = openCriticsRating.createAjaxObj();
	    //this.url = 'http://partner.opencritics.de/ocService/handleReview.php';
	}

	// init one variable
	var objOpenCriticsReview = new openCriticsReview();

	openCriticsReview.prototype.nextReview = function (objId){
		var count = this.composeAReviewCountID(objId, '+');
		this.getReview(objId, count);
		if(this.composeAReviewID(objId).length>0){
			document.getElementById('ocReviewStats'+objId).style.display='inline';
			document.getElementById('ocReviewStatsH'+objId).style.display='none';
			document.getElementById('ocReviewStatsNH'+objId).style.display='none';
		}else{
			document.getElementById('ocReviewStats'+objId).style.display='none';
			document.getElementById('ocReviewStatsH'+objId).style.display='none';
			document.getElementById('ocReviewStatsNH'+objId).style.display='none';
		}
	}
	openCriticsReview.prototype.prevReview = function (objId){
		var count = this.composeAReviewCountID(objId, '-');
		this.getReview(objId, count);
		//document.getElementById('ocReviewUp'+objId).style.display='inline';
		//document.getElementById('ocReviewDown'+objId).style.display='inline';
		if(this.composeAReviewID(objId).length>0){
			document.getElementById('ocReviewStats'+objId).style.display='inline';
			document.getElementById('ocReviewStatsH'+objId).style.display='none';
			document.getElementById('ocReviewStatsNH'+objId).style.display='none';
		}else{
			document.getElementById('ocReviewStats'+objId).style.display='none';
			document.getElementById('ocReviewStatsH'+objId).style.display='none';
			document.getElementById('ocReviewStatsNH'+objId).style.display='none';
		}
	}
	openCriticsReview.prototype.upReview = function (objId){
		var count = this.composeAReviewCountID(objId, '-');
		var reviews = new Array();
		var reviews = this.composeAReviewID(objId);
		var textreviewid = document.getElementById('textReviewId'+objId);
		var text_review_id = textreviewid.innerHTML;
		document.getElementById("openCriticsVote"+objId).src='http://partner.opencritics.de/ocService/reviewVote.php?cmd=up&review_id='+text_review_id+'&partner_id=' + openCritics_pId;
	}
	openCriticsReview.prototype.downReview = function (objId){
		var count = this.composeAReviewCountID(objId, '-');
		var reviews = new Array();
		var reviews = this.composeAReviewID(objId);
		var textreviewid = document.getElementById('textReviewId'+objId);
		var text_review_id = textreviewid.innerHTML;
		document.getElementById("openCriticsVote"+objId).src='http://partner.opencritics.de/ocService/reviewVote.php?cmd=down&review_id='+text_review_id+'&partner_id=' + openCritics_pId;
	}
	openCriticsReview.prototype.getReview = function (objId, count){
		/*// get review from server
		this.ajax.open("POST", this.url, true);
		var vars = 'objId='+objId+ "&rating=" + this.score + "&bustcache=" + new Date().getTime()+ "&partner_id=" + openCritics_pId;
		this.ajax.setRequestHeader("Content-Type", "application/x-javascript;");
		this.ajax.onreadystatechange = function() {
		if (this.readyState == 4 && this.status == 200) {
	      if (this.responseText) {
	        this.updateReviewArea(this.responseText);
	      }
	    }
	  };
	  this.ajax.send(vars);
	  */
	  this.updateReviewArea(objId, count);
	}

	/*
	* because one page can use more than one review box and many clones, I create a compatible unique OBJID for these reviews boxes
	*/
	openCriticsReview.prototype.composeAReviewID = function (objId) {
		return eval("this.reviewsCurrent_"+objId.replace(/[-]/g, "_"));
	}//end composeAReviewID

	/*
	* because one page can use more than one review box and many clones, I create a compatible unique OBJID for these reviews boxes when I count the navigation
	*/
	openCriticsReview.prototype.composeAReviewCountID = function (objId, sign) {
		var totalReviews = this.composeAReviewID(objId).length;
		if(totalReviews <= 0) return 0;
		var count = parseInt(eval("this.countReviews_"+objId.replace(/[-]/g, "_")), 10);
		var result = 0;

			if(sign == "+"){
				if(count >= (totalReviews-1)){
					result = eval("this.countReviews_"+objId.replace(/[-]/g, "_")+"=("+totalReviews+"-1)");
				}
				else {
					result = parseInt(eval("this.countReviews_"+objId.replace(/[-]/g, "_")), 10)+1;
					eval("this.countReviews_"+objId.replace(/[-]/g, "_")+"="+result);
				}
			}//end if
			else if(sign == "-"){
				if(count <= 0){
					eval("this.countReviews_"+objId.replace(/[-]/g, "_")+"=0");
				}
				else {
					result = parseInt(eval("this.countReviews_"+objId.replace(/[-]/g, "_")), 10)-1;
					eval("this.countReviews_"+objId.replace(/[-]/g, "_")+"="+result);
				}//end else
			}//end else
		//try	{}catch (e) {}
		return result;
	}//end composeAReviewID

	openCriticsReview.prototype.updateReviewArea = function (objId, count){
		var totalReviews = this.composeAReviewID(objId).length;
		eval("var t=this.totalReviews_"+objId.replace(/[-]/g, "_"));
		eval("var back_alt=this.reviewText_"+objId.replace(/[-]/g, "_"));
		eval("var t_link=this.reviewTextLink_"+objId.replace(/[-]/g, "_"));
		eval("var t_link2=this.reviewTextLink2_"+objId.replace(/[-]/g, "_"));
		back_alt=back_alt.replace('xxx_total',t);
		var bcount=count;
		document.getElementById('ocReviewBack'+objId).alt=back_alt.replace('xxx',bcount);
		document.getElementById('ocReviewBack'+objId).title=back_alt.replace('xxx',bcount);
		if(bcount<=0){
			bcount=1;
			document.getElementById('ocReviewBack'+objId).alt='';
			document.getElementById('ocReviewBack'+objId).title='';
		}


		var ncount=count+2;
		document.getElementById('ocReviewForward'+objId).alt=back_alt.replace('xxx',ncount);
		document.getElementById('ocReviewForward'+objId).title=back_alt.replace('xxx',ncount);
		if(ncount>t){
			ncount=t;
			document.getElementById('ocReviewForward'+objId).alt='';
			document.getElementById('ocReviewForward'+objId).title='';
		}
		if(ncount>10){
			document.getElementById('ocReviewForward'+objId).alt='';
			document.getElementById('ocReviewForward'+objId).title='';
		}

		if(totalReviews <= 0) return;
		if(count == (totalReviews-1)){
			if(t>10){
				//uncomment this line to make visible more reviews link
				//document.getElementById('moreReviews'+objId).style.display = 'block';
			}
		}
		/*else {
			document.getElementById('moreReviews').style.display = 'none';
		}*/
		var reviews = new Array();
		var reviews = this.composeAReviewID(objId);
		// update content
		var title = document.getElementById('ocReviewTitle'+objId);
		title.innerHTML = reviews[count][0];
		var desc = document.getElementById('ocReviewDescription'+objId);
		desc.innerHTML = reviews[count][1];
		var statlink = document.getElementById('ocReviewPartLink'+objId);
		if(reviews[count][4]){
			t_link2 = t_link2.replace('yyy',reviews[count][4]);
			if(reviews[count][2]){
				statlink.innerHTML = t_link2.replace('xxx','<a href="http://'+reviews[count][2]+'" target="_blank">'+reviews[count][5]+'</a>');
			}else{
				statlink.innerHTML = t_link2.replace('xxx',reviews[count][5]);
			}
		}else{
			if(reviews[count][2]){
				statlink.innerHTML = t_link.replace('xxx','<a href="http://'+reviews[count][2]+'" target="_blank">'+reviews[count][5]+'</a>');
			}else{
				statlink.innerHTML = t_link.replace('xxx',reviews[count][5]);
			}
		}

		var textreviewid = document.getElementById('textReviewId'+objId);
		textreviewid.innerHTML =reviews[count][3];

	}

	/*
	* Cleaning the entire submission form for review
	*/
	openCriticsReview.prototype.cleanReviewForm = function (form) {
		document.forms[form].ocFReviewTitle.value = document.forms[form].lang_title.value;
		document.forms[form].ocFReviewEmail.value = document.forms[form].lang_name.value;
		document.forms[form].ocFReviewDesc.value = document.forms[form].lang_desc.value;
	}//end function cleanReviewForm

	/*
	* Adding the final message confirmation after user submitted a review form
	*/
	openCriticsReview.prototype.thankYouReviewForm = function(objId){
		document.getElementById('stars_voting_area'+objId).innerHTML=document.getElementById('thankYouReviewForm'+objId).innerHTML;
	}//end thankYouReviewForm

	/*
		getElementsByClassName developed by Robert Nyman, http://www.robertnyman.com
		Code/licensing: http://code.google.com/p/getelementsbyclassname/
	*/
	openCriticsRating.getElementsByClassName = function (className, tag, elm){
		if (document.getElementsByClassName) {
			getElementsByClassName = function (className, tag, elm) {
				elm = elm || document;
				var elements = elm.getElementsByClassName(className),
					nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
					returnElements = [],
					current;
				for(var i=0, il=elements.length; i<il; i+=1){
					current = elements[i];
					if(!nodeName || nodeName.test(current.nodeName)) {
						returnElements.push(current);
					}
				}
				return returnElements;
			};
		}
		else if (document.evaluate) {
			getElementsByClassName = function (className, tag, elm) {
				tag = tag || "*";
				elm = elm || document;
				var classes = className.split(" "),
					classesToCheck = "",
					xhtmlNamespace = "http://www.w3.org/1999/xhtml",
					namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
					returnElements = [],
					elements,
					node;
				for(var j=0, jl=classes.length; j<jl; j+=1){
					classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
				}
				try	{
					elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
				}
				catch (e) {
					elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
				}
				while ((node = elements.iterateNext())) {
					returnElements.push(node);
				}
				return returnElements;
			};
		}
		else {
			getElementsByClassName = function (className, tag, elm) {
				tag = tag || "*";
				elm = elm || document;
				var classes = className.split(" "),
					classesToCheck = [],
					elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
					current,
					returnElements = [],
					match;
				for(var k=0, kl=classes.length; k<kl; k+=1){
					classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
				}
				for(var l=0, ll=elements.length; l<ll; l+=1){
					current = elements[l];
					match = false;
					for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
						match = classesToCheck[m].test(current.className);
						if (!match) {
							break;
						}
					}
					if (match) {
						returnElements.push(current);
					}
				}
				return returnElements;
			};
		}
		return getElementsByClassName(className, tag, elm);
	};



	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: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari"
			},
			{
				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.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]

	};
	BrowserDetect.init();

	if ((BrowserDetect.browser == 'Explorer' && BrowserDetect.version<7)) {
		// fix png images for IE6 and lower
	  	window.attachEvent("onload", openCriticsRating.fixWeatherPng);
	}
