OStatConfig.sImgSrc	= '/Tagging/img/tagging.gif';
Object.extend = function(destination, source) {
	  for (var property in source)
	    destination[property] = source[property];
	  return destination;
	};
var OTagger = Object.extend(OStatVisitor, {
	tags 		: "undefined",
	errors		: "undefined",
	notice		: "undefined",
	shortTag	: "undefined",
	
	getTags : function(){
		if( OTagger.tags == "undefined" ){
			return "undefined";
		}else{
			return OTagger.tags;
		}
	},
	
	setTags : function(tags){
		OTagger.tags = tags;
	},
	
	getTagQueryStr : function(){
		if( OTagger.getTags() != "undefined" ){
			
			sTags	= OTagger.getTags();
			sTags	= OTagger.checkTags(sTags);
			sQuery	= '&tags='+encodeURIComponent(sTags);
			if( OTagger.errors != "undefined" ){
				sQuery	+= '&error='+encodeURIComponent(OTagger.errors);
			}
			if( OTagger.notice != "undefined" ){
				sQuery	+= '&notice='+encodeURIComponent(OTagger.notice);
			}
			if( OTagger.shortTag != "undefined" ){
				sQuery	+= '&shortTag='+encodeURIComponent(OTagger.shortTag);
			}
			
		}else{
			sQuery	= "";
		}
		return sQuery;
	},
	
	includePic : function(){
		try{
			var oPicBild 		= new Image(1,1);
			oPicBild.src		= OStatConfig.sImgHost+OStatConfig.sImgSrc+OStatVisitor.getQueryStr()+OTagger.getTagQueryStr();
			document.getElementsByTagName('Body')[0].appendChild(oPicBild);
		}catch(exception){}
	
	},
	
	onReady : function(){
		OTagger.includePic();
	},
	
	initReady : function(fn){
		if(document.addEventListener){
			document.addEventListener("DOMContentLoaded", fn, false);
		}else {
		    document.onreadystatechange = function(){OTagger.readyState(fn);};
		}
	},
	
	checkTags	: function(sTagstr){
		var sTag	= '';
		var aTags	= sTagstr.split("&");
		for( var i = 0; i < aTags.length; i++ ){
			
			var TagAndValue	= aTags[i].split("=");
			var iResult	= TagAndValue[0].search(/[^a-zA-Z0-9]/);
			var error	= TagAndValue[0];
			
			if( iResult != -1 ){
				if( OTagger.errors == "undefined"){
					OTagger.errors	= error;
				}else{
					OTagger.errors	+= ';'+error;
				}
				
			}else{
				if( TagAndValue[0].length < 3 ){
					if( OTagger.shortTag == "undefined" ){
						OTagger.shortTag	= TagAndValue[0];
					}else{
						OTagger.shortTag	+= ';'+TagAndValue[0];
					}
				}else{					
					if( TagAndValue[0]	!== TagAndValue[0].toLowerCase() ){
						if( OTagger.notice == "undefined" ){
							OTagger.notice	= TagAndValue[0];
						}else{
							OTagger.notice	+= ';'+TagAndValue[0];
						}
					}
					if( sTag == '' ){
						sTag	+= aTags[i];
					}else{
						sTag	+= '&'+aTags[i];
					}
				}
			}
		}
		return sTag;
	}
});

OStatTracker.trackPage = function(){
		window.onDomReady = OTagger.initReady;
		window.onDomReady(OTagger.onReady);
	};
	
OStatTracker.setTags	= function(tags){
	OTagger.setTags(tags);
};