if (!sponsor_widget_functions_defined)
{
	var sponsor_widget_functions_defined = true;
	var sponsor_widget_script_version = 1;
	var sponsor_widget_scroller_lock_top = false;
	var sponsor_widget_scroller_lock_bottom = false;

	function sponsor_widget(params)
	{
		this.params = params;

		// kampanie campaigns[priorytet] = array z sponsor_widget_campaign
		this.campaigns = new Array();

		// lista priorytetow
		this.priorities = new Array();
		this.counter = 0;
		this.displayed_campaigns = 0;
		this.has_scroller_campaigns = false;

		this.add_campaign = function(campaign_params, priority)
		{
			if (typeof this.campaigns[priority] == "undefined")
			{
				this.campaigns[priority] = new Array();
				this.priorities[this.priorities.length] = priority;
			}

			if (priority < 1000 || priority >= 2000 && priority < 3000)
			{
				this.campaigns[priority].push(new sponsor_widget_campaign(this.params, campaign_params));
			}
			else
			{
				this.campaigns[priority] = new sponsor_widget_campaign(this.params, campaign_params);
			}

			if (priority >= 2000 && priority < 3000)
			{
				this.has_scroller_campaigns = true;
			}

			this.counter++;
		};

		this.shuffle = function (inputArr)
		{
		    var valArr = [];
		    var k = '', i = 0;

		    for (k in inputArr)
		    {
		        valArr.push(inputArr[k]);
		        delete inputArr[k] ;
		    }
		    valArr.sort(function() {return 0.5 - Math.random();});

		    for (i = 0; i < valArr.length; i++)
		    {
		    	inputArr[i] = valArr[i];
		    }
		    return true;
		};


		this.sponsor_widget_show = function()
		{
			switch (parseInt(this.params.type))
			{
				case 1:
					var width = 125 + parseInt(this.params.campaign_spacing);
					var basic_width = 125;
					var basic_height = 125;
					break;
				case 2:
					var width = 300 + parseInt(this.params.campaign_spacing);
					var basic_width = 300;
					var basic_height = 250;
					break;
			}

			if (!params._sponsor_widget_strip_html)
			{
				document.write('<div style="margin-left:auto; margin-right:auto; width:'+ width * this.params.width +'px;">');
			}

			if (this.params.show_header && !params._sponsor_widget_strip_html)
			{
				document.write('<div style="float:left; color: '+ this.params.header_footer_fontcolor +'; background-color: '+ this.params.header_footer_bgcolor +'; width: '+ (width * this.params.width) +'px; font-size:14px; font-weight:bold; text-align:center">'+ this.params.header_content +'</div>');
			}

			//openx
			if (this.params.openx_zone > 0)
			{
				document.write('<div style="float: left; padding:0px; margin:0px; border-width: '+ parseInt(this.params.campaign_spacing / 2) +'px;' +
						'border-style: solid; border-color: '+ this.params.widget_bgcolor +'; font-size:0px; font-weight:normal;">');
			//	document.write("<iframe id='a3ab7da5' name='a3ab7da5' src='http://openx.localhost/www/delivery/afr.php?zoneid="+ this.params.openx_zone +"&cb="+ (new Date()).getTime() +"' frameborder='0' scrolling='no' width='125' height='125'></iframe>");

			document.write("<script type='text/javascript' src='http://openx.localhost/www/delivery/spcjs.php?id="+ this.params.openx_publisher +"'></script>");
			document.write("<script type='text/javascript'>OA_show("+ this.params.openx_zone +");</script>");
			document.write('</div>')

				this.displayed_campaigns++;
			}

			// wyswietl kampanie
			var cpa_count = 0;
			for (var i=0; i < this.priorities.length && this.priorities[i] < 1000; i++)
			{
				cmps = this.campaigns[this.priorities[i]];
				this.shuffle(cmps);

				for (k in cmps)
				{
					if (cmps[k] && cmps[k] instanceof sponsor_widget_campaign && (this.displayed_campaigns < this.params.widget_campaign_capacity /*|| this.priorities[i] == 10*/))
					{
						if (this.priorities[i] == bnm_cpa && typeof this.params.max_cpa_campaigns != 'undefined'  && this.params.max_cpa_campaigns <= cpa_count)
						{
							continue;
						}
						
						document.write(cmps[k].show());

						this.displayed_campaigns++;

						if (this.priorities[i] == bnm_cpa)
						{
							cpa_count++;
						}

						// logowanie stat
						piwik_action_name = 'SW/' + this.params.blog_url + '/' + this.params.widget_id;
						piwik_idsite = cmps[k].params.piwik_idsite;


                        try {

                          var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik/piwik.php", piwik_idsite);
                          piwikTracker.trackPageView(piwik_action_name);
                  //        piwikTracker.enableLinkTracking();
                        } catch( err ) {}


					}
				}
			}

			// kampanie autopromocyjne
			if (this.params.autopromotion && this.displayed_campaigns <  this.params.widget_campaign_capacity)
			{
				count = this.params.width - this.displayed_campaigns % this.params.width;
				while(count--)
				{
					document.write(this.campaigns[1000].show());
					this.displayed_campaigns++;

					// logowanie stat
					piwik_action_name = 'SW/' + this.params.blog_url + '/' + this.params.widget_id;
					piwik_idsite = this.campaigns[1000].params.piwik_idsite;
					try {

                          var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik/piwik.php", piwik_idsite);
                          piwikTracker.trackPageView(piwik_action_name);
                  //        piwikTracker.enableLinkTracking();
                        } catch( err ) {}
				}
			}

			// puste boksy
			var free_space = this.displayed_campaigns % this.params.width;
			while(free_space)
			{
				free_space--;
				r = '<div style="float: left; border-width: '+ parseInt(this.params.campaign_spacing / 2) +'px;' +
					'border-style: solid; border-color: '+ this.params.widget_bgcolor +'; background-color:'+ this.params.widget_bgcolor +'">'+
					'<div style="height: '+ basic_height +'px; width: '+ basic_width +'px; line-height: '+ basic_height +'px">&nbsp;</div></div>';
				document.write (r);
			}

			if (!this.params._sponsor_widget_strip_html)
			{
				if (!this.params.show_footer && this.displayed_campaigns > 0)
				{
					document.write('<style type="text/css">a.blogvertising_pl_link:hover{background-color: #C6E4EC}</style>');
					document.write('<div style="width:'+ width * this.params.width +'px; float:left; margin: 0px auto; text-align: right;">' +
									'<div style="margin-right: '+ this.params.campaign_spacing/2 +'px">' +
									'<a class="blogvertising_pl_link" style="font-size: 9px; color: #696969; font-weight:normal; font-family:Verdana,Helvetica,Tahoma;" href="http://blogvertising.pl">Reklama Blogvertising.pl</a>' +
									'</div></div>');
				}

				document.write('<div style="height:0px; line-height:0px; display: block; clear: both; font-size: 0px;">');
				document.write('</div></div>');
			}

		};

		// scrollbar
		this._scrollbar_style = function()
		{
			document.writeln(' \n\
				<style type="text/css"> \n\
					#bnm_scroller_bottom  \n\
					{ \n\
						bottom: 0px; \n\
					} \n\
					\n\
					#bnm_scroller_top \n\
					{ \n\
						top: 0px;  \n\
					} \n\
					#bnm_scroller_bottom, #bnm_scroller_top \n\
					{ \n\
						z-index:2000;  \n\
						position: fixed; \n\
						left: 0px;  \n\
						width: 100%; \n\
						padding: 0px;  \n\
						margin: 0px;  \n\
						border-width: 0px;  \n\
						text-align: center;  \n\
			');

			if (this.params.scrollbar_background_image)
			{
				document.writeln('background-image: url("' + this.params.scrollbar_background_image + '");');
				document.writeln('background-repeat: repeat;');
			}
			else if (this.params.scrollbar_background_color)
			{
				document.writeln('background-color: ' + this.params.scrollbar_background_color + ';');
			}

			document.writeln('}');

			if (this.params.scrollbar_border_width)
			{
				document.writeln('#bnm_scroller_bottom {');
				document.writeln('border-top-width: ' + this.params.scrollbar_border_width + 'px;');
				document.writeln('border-color: ' + this.params.scrollbar_border_color + ';');
				document.writeln('border-style: solid;');
				document.writeln('}');
				document.writeln('#bnm_scroller_top {');
				document.writeln('border-bottom-width: ' + this.params.scrollbar_border_width + 'px;');
				document.writeln('border-color: ' + this.params.scrollbar_border_color + ';');
				document.writeln('border-style: solid;');
				document.writeln('}');
			}

			document.writeln('</style>');



			// ie fix
			document.writeln('<!--[if gte IE 5.5]><![if lt IE 7]>');
			document.writeln('<style type="text/css">');
			document.writeln('div#bnm_scroller_top { position: absolute; left: expression( ( ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + "px" ); top: expression( ( ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + "px" ); ');
			document.writeln('width: expression( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth + "px");}');
			document.writeln('div#bnm_scroller_bottom { position: absolute; right: auto; bottom: auto; left: expression( ( - bnm_scroller_bottom.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + "px" );  top: expression( ( - bnm_scroller_bottom.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + "px" ); width: expression( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth + "px");}');
			document.writeln('</style><![endif]><![endif]-->');
			
		};

		this._scrollbar_show_top_start = function()
		{
			document.write('<div id="bnm_scroller_top">');
			this._scrollbar_show_close_button('top');
		};
		this._scrollbar_show_top_end = function()
		{
			document.write('</div>');
		};

		this._scrollbar_show_bottom_start = function()
		{
			document.write('<div id="bnm_scroller_bottom">');
			this._scrollbar_show_close_button('bottom');
		};
		this._scrollbar_show_bottom_end = function()
		{
			document.write('</div>');
		};

		this._scrollbar_show_close_button = function(position)
		{
			document.write('<div id="sponsor_widget_close_button" style="float: right; padding-top: 6px; padding-right: 12px;">\n\
					<img style="border: 0px; padding: 0px; margin: 0px; cursor: pointer" \
					onclick="javascript: document.getElementById(\'bnm_scroller_'+ position +'\').style.display = \'none\';"\
					src="'+ this.params.blogvertising_url +'images/scrollbar_close.gif" />\n\
				</div>\n\
			');
		};

		this.scrollbar_show_top = function(scrollbar_campaign)
		{

			if (sponsor_widget_scroller_lock_top)
			{
				return false;
			}
			sponsor_widget_scroller_lock_top = true;

			this._scrollbar_show_top_start();
			document.write(scrollbar_campaign.show('scrollbar'));
			this._scrollbar_show_top_end();
		};

		this.scrollbar_show_bottom = function(scrollbar_campaign)
		{
			if (sponsor_widget_scroller_lock_bottom)
			{
				return false;
			}
			sponsor_widget_scroller_lock_bottom = true;

			this._scrollbar_show_bottom_start();
			document.write(scrollbar_campaign.show('scrollbar'));
			this._scrollbar_show_bottom_end();
		};

		this.scrollbar_show = function()
		{
			var scrollbar_campaign = null;
			
			if (this.campaigns[bnm_scrollbar])
			{
				campaigns = this.campaigns[bnm_scrollbar];
				this.shuffle(campaigns);

				for (k in campaigns)
				{
					if (campaigns[k] instanceof sponsor_widget_campaign)
					{
						scrollbar_campaign = campaigns[k];
						break;
					}
				}
			}

			if (scrollbar_campaign instanceof sponsor_widget_campaign)
			{
				if (this.params.scrollbar_allow_override)
				{
					if (scrollbar_campaign.params.scrollbar_background_color)
					{
						this.params.scrollbar_background_color = scrollbar_campaign.params.scrollbar_background_color;
					}

					if (scrollbar_campaign.params.scrollbar_background_image)
					{
						this.params.scrollbar_background_image = scrollbar_campaign.params.scrollbar_background_image;
					}

					if (scrollbar_campaign.params.scrollbar_border_color)
					{
						this.params.scrollbar_border_color = scrollbar_campaign.params.scrollbar_border_color;
					}

					if (scrollbar_campaign.params.scrollbar_border_width)
					{
						this.params.scrollbar_border_width = scrollbar_campaign.params.scrollbar_border_width;
					}

					if (scrollbar_campaign.params.scrollbar_show_close_button)
					{
						this.params.scrollbar_show_close_button = scrollbar_campaign.params.scrollbar_show_close_button;
					}

					if (scrollbar_campaign.params.scrollbar_position)
					{
						this.params.scrollbar_position = scrollbar_campaign.params.scrollbar_position;
					}
				}

				this._scrollbar_style();
				if(scrollbar_campaign.params.scrollbar_position == "top" || scrollbar_campaign.params.scrollbar_position == "both")
				{
					this.scrollbar_show_top(scrollbar_campaign);
				}

				if(scrollbar_campaign.params.scrollbar_position == "bottom" || scrollbar_campaign.params.scrollbar_position == "both")
				{
					this.scrollbar_show_bottom(scrollbar_campaign);
				}

				piwik_action_name = 'SW/' + this.params.blog_url + '/' + this.params.widget_id;
				piwik_idsite = scrollbar_campaign.params.piwik_idsite;
				try {

               var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik/piwik.php", piwik_idsite);
                          piwikTracker.trackPageView(piwik_action_name);
                        //  piwikTracker.enableLinkTracking();
               } catch( err ) {}
			}
		};
	}

	function sponsor_widget_campaign(sponsor_widget_params, campaign_params)
	{
		this.params = campaign_params;
		this.sponsor_widget_params = sponsor_widget_params;

		this.params.link = this.params.link.replace("{WIDGET_ID}", this.sponsor_widget_params.widget_id);
		this.params.link = this.params.link.replace("{CAMPAIGN_ID}", this.params.campaign_id);

		/**
		 * @params string act_as [sw|scrollbar]
		 */
		this.show = function(act_as)
		{
			if (typeof act_as == "undefined")
			{
				act_as = 'sw';
			}
			var r = '';

			// klika obrazków w dla jednej kreacji
			if (this.params.additional_images && this.params.additional_images instanceof Array && this.params.additional_images.length > 0)
			{
				var len = this.params.additional_images.length;
				var rand = Math.floor(Math.random() * (len + 1));
				if (rand == 0)
				{
					// jak tyle samo to zostaw pierwszy obrazek
				}
				else
				{
					this.params.image = this.params.additional_images[rand - 1];
					
				}
			}

			if (!(this.sponsor_widget_params._sponsor_widget_strip_html || act_as == 'scrollbar'))
			{
				r+='<div style="float: left; padding:0px; margin:0px; border-width: '+ parseInt(this.sponsor_widget_params.campaign_spacing / 2) +'px;' +
						'border-style: solid; border-color: '+ this.sponsor_widget_params.widget_bgcolor +'; font-size:0px; font-weight:normal;">';
			}

			switch (parseInt(this.sponsor_widget_params.type))
			{
				case 1:
					width = 125; height = 125;
					break;
				case 2:
					width = 300; height = 250;
					break;
			}

			if (this.params.is_flash)
			{
				var swf_link = this.params.image + '?clickTag=' + escape(this.sponsor_widget_params.stat2_intrack_url + '/piwik/piwik.php?from_swf=1&idsite=' + this.params.piwik_idsite + '&custom=' + this.sponsor_widget_params.blog_url + '&link=' +  escape(this.params.link));
				r += '<object style="margin: 0pt; padding: 0pt;" type="application/x-shockwave-flash" data="' +
				swf_link + '" height="'+ height +'" width="' + width + '">' +
				'<param value="' +
				swf_link +
				'" name="movie"/><param value="always" name="allowScriptAccess"/><param name="wmode" value="transparent"/>' +
				'</object>';
			}
			else
			{

				var link = this.sponsor_widget_params.stat2_intrack_url + '/piwik/piwik.php?idsite=' + this.params.piwik_idsite + '&link=' + escape(this.params.link) + '&from_swf=1&custom=' + this.sponsor_widget_params.blog_url ; // + '&action_name=' + this.sponsor_widget_params.widget_id;
				if (this.params.is_cpa_text)
				{
					r+= '<div style="cursor: pointer; height: '+ height +'px; width: '+ width +'px; overflow: hidden" onclick="window.location=\''+link+'\'; return true;">'+ this.params.cpa_text +'</div>';
				}
				else
				{
					r += '<a class="piwik_ignore" href="' + link + '">' +
					'<img style="border-width: 0px; padding: 0px; margin: 0px" src="' + this.params.image +	'" />' +
					'</a>';
				}
			}
			if (!(this.sponsor_widget_params._sponsor_widget_strip_html || act_as == 'scrollbar'))
			{
				r += '</div>';
			}

			return r;
		};
	}

	function sw_start()
	{
		sponsor_widget_object.sponsor_widget_show();
		sponsor_widget_object.scrollbar_show();
	}
}
