/* Some helpers for String class */
String.prototype.format = function() {
    var s = this,
        i = arguments.length;

    while (i--) {
        s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]);
    }
    return s;
};

String.prototype.endsWith = function (suffix) {
	  return (this.substr(this.length - suffix.length) === suffix);
	};

String.prototype.startsWith = function(prefix) {
	  return (this.substr(0, prefix.length) === prefix);
};

/* End of String helpers */
/*
dev-url: 'http://dev2.web-statistics.srv.trader.pl/Sender/Handle'
prod-url: 'http://kropka2.trader.pl/Sender/Handle'
*/
KropkaClass = {
	
	url: 'http://kropka2.trader.pl/Sender/Handle'
	,dataTemplate: '"ServiceName": "{0}", "EventName": "{1}", "Data": "{2}"'

	,domiporta: {
		 ServiceName                      : 'Domiporta'
		,AdvertAddToClipboardClick        : 'AdvertAddToClipboardClick'
		,AdvertDetailsView                : 'AdvertDetailsView'
		,AdvertDetailsViewAsHigh          : 'AdvertDetailsViewAsHigh'
		,AdvertSearchHit                  : 'AdvertSearchHit'
		,AdvertSearchHitAsHighClick       : 'AdvertSearchHitAsHighClick'
		,AdvertSearchHitClick             : 'AdvertSearchHitClick'
		,AdvertSendToFriendClick          : 'AdvertSendToFriendClick'
		,AdvertShowContactDataAgencyClick : 'AdvertShowContactDataAgencyClick'
		,AdvertShowContactDataClick       : 'AdvertShowContactDataClick'
		,AdvertUseContactForm             : 'AdvertUseContactForm'
	}

	,prepareData: function(serviceName, eventName, data){
	  var result = 'model={';
	  result = result + KropkaClass.dataTemplate.format(serviceName, eventName, data);
	  result = result + "}";
	  return result;
	}

	,draw: function(serviceName, eventName, data)
	{
		var timestamp = Number(new Date());
		var params = KropkaClass.prepareData(serviceName, eventName, data);
		var url = KropkaClass.url + '?' + params + '&dt=' + timestamp;
		var img = new Image();
		img.src = url;
		//document.write('<img class="kropka2" src=\'' + url + '\'/>');
	}
	, doclick: function(layoutCode, eventName, data){
		//narazie tylko domiporta
		if (layoutCode != 'P') return;
		var cfg = KropkaClass.domiporta;
		
		KropkaClass.draw(cfg.ServiceName, eventName, data);
		return;
	}
}
