var AffiliateTracker  = function() {
	this._partner     = false;
	this._expire      = 45;
};

AffiliateTracker.prototype._loadPartnerId = function() {

	// hash way
	// url.cz/item#pid=5
	if (document.location.hash.length >= 6) {
		var arr = /aid=(\d+)/i.exec(document.location.hash);
		if(arr) {
			this._partner = arr[1];
			return true;
		}

	// classic
	// url.cz/item?pid=5
	} else if (document.location) {
		var arr = /aid=(\d+)/i.exec(document.location);
		if(arr) {
			this._partner = arr[1];
			return true;
		}
	}

	return false;
};

AffiliateTracker.prototype._setCookie = function(name, value, type) {
    for(var i=0; i < this._cookies.length; i++) {
        if (this._cookies[i].name == name) {
            this._cookies[i].value = value;
        }
	}
};

AffiliateTracker.prototype._createCookie = function(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
};

AffiliateTracker.prototype._readCookie = function(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return false;
};

AffiliateTracker.prototype.track = function() {
	if(this._loadPartnerId()) {
		this._createCookie('partner', this._partner, this._expire);
	}
	this._partner = this._readCookie('partner');
};

var _tracker = new AffiliateTracker();
_tracker.track();
