/**
 * jCarouselHelper by Michal Wojciechowski
 */
var carouselRef;

(function($) {

    $.fn.jcarouselHelper = function(o) {
        return this.each(function() {
			this.options = $.extend({}, o);
			$("#" + this.id +'-control').hide();

			var param = "?";	
			for(var item in this.options.param)
				param += item+"="+this.options.param[item]+"&";
				
			var jsize, length, count, self = this;
			
			//if(this.options.boxName == 'a128x160audio')
			//alert(this.options.url + param + "first="+"1"+"&last="+"1"+"&size="+ this.options.length+"&className="+this.options.boxName);

			jQuery.get(
		        this.options.url + param + "first="+"1"+"&last="+"1"+"&size="+ this.options.length+"&className="+this.options.boxName,
				function(xml) {
					
		            var jsize = parseInt(jQuery('total', xml).text());
					var length = jQuery('length', xml).text();
					var count = jQuery('totalCount', xml).text();
					var sql = jQuery('sql', xml).text();
					
					
					if(jsize == 0)
					{
						//$(this).hide();
					}
	
					$("#" + self.id + '-count').text("(" + count + ")");
					
					for (var i = 1; i <= jsize; i++) 
						$("#" + self.id + "-control .nav_c").append('<a id="' + self.id + '-n' + i + '" class="nav_c_a">' + i + '</a>');
					
					$(self).jcarousel({
						scroll: 1,
						size: jsize,
						id: self.id,
						
						vertical: self.options.vertical,
						
						url: self.options.url,
						boxName: self.options.boxName,
						param: self.options.url + param,
						length: self.options.length,
						flashList: self.options.flashList,
						site_url: self.options.site_url,
						classEx: self.options.classEx,
						
						initCallback: jcHelper_initCallback,
						itemLoadCallback: jcHelper_itemLoadCallback,
						buttonNextHTML: null,
						buttonPrevHTML: null,
						buttonNextCallback: jcHelper_buttonNextCallback,
						buttonPrevCallback: jcHelper_buttonPrevCallback,
						itemVisibleInCallback: {
							onAfterAnimation: jcHelper_itemVisibleInCallbackAfterAnimation
						},
						
						itemVisibleOutCallback: {
							onAfterAnimation: jcHelper_itemVisibleOutCallbackAfterAnimation
						}
					});
						
		        }
		    );	
        });
    };
})(jQuery);

function jcHelper_initCallback(carousel) {
		
	carouselRef = carousel;
	
	if (carousel.size() == 0)
	{
		$("#" + carousel.options.id + '-alternative').show();	
	}
	
	if (carousel.size() != 0) {
		$("#" + carousel.options.id + '-control').show();
		$("#" + carousel.options.id + '-title').show();
	}
	else {
		//$("#" + carousel.options.id).hide();
		$("#" + carousel.options.id + '-title').hide();
	}
	
    jQuery("#" + carousel.options.id + '-control a').bind('click', function() {
        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
        return false;
    });

    jQuery("#" + carousel.options.id + '-next').bind('click', function() {
        carousel.next();
        return false;
    });

    jQuery("#" + carousel.options.id + '-prev').bind('click', function() {
        carousel.prev();
        return false;
    });
	
	if (carousel.size() > 10) {
		$("#" + carousel.options.id + "-n" + 1).after('<a class="nDisabled">...</a>');
		$("#" + carousel.options.id + "-n" + carousel.size()).before('<a class="nDisabled">...</a>');
	}
};

function jcHelper_itemLoadCallback(carousel, state) {

	var off = 8;

	var p = Math.max(carousel.first-off,2);
	var f = Math.min(carousel.first+off,carousel.size()-1);
	
	for(var i = 2; i < carousel.size(); i++) $("#" + carousel.options.id + "-n" + i).hide();
	for(var i=p; i<= carousel.first; i++) $("#" + carousel.options.id + "-n"+i).show();
	for(var i=f; i>= carousel.first; i--) $("#" + carousel.options.id + "-n"+i).show();
	
    if (carousel.has(carousel.first, carousel.last)) 
        return;

    jQuery.get(
        carousel.options.param + "first="+carousel.first+"&last="+carousel.last+"&size="+carousel.options.length+"&className="+carousel.options.boxName,
        function(xml) {
            jcHelper_itemAddCallback(carousel, carousel.first, carousel.last, xml);
        }
    );
};
function jcHelper_itemAddCallback(carousel, first, last, xml) {
	var lista = "";
	carousel.options.flashList = new Array();
	carousel.options.flashListUrl = new Array();
	carousel.options.alternateUrl = new Array();
	
    jQuery('return', xml).each(function(i) {
        lista += jcHelper_getItemHTML(carousel, this);

		if (carousel.options.boxName == 'a128x160flash' || carousel.options.boxName == 'a128x160audio')
		{
			var id = jQuery('id',this).text(); 
			carousel.options.flashList.push(id);
			var url = jQuery('alternateUrl',this).text(); 
			carousel.options.alternateUrl.push(url);
		}
		if(carousel.options.boxName == 'a128x128audioFree')
		{
			var id = jQuery('id',this).text();
			var url = jQuery('demoUrl',this).text(); 
			carousel.options.flashList.push(id);
			carousel.options.flashListUrl.push(url);
		}
    });
	carousel.add(first, lista);
	
	if (carousel.options.boxName == 'a128x160flash')
		for (var i=0; i <carousel.options.flashList.length; i++)
		{
			var id = carousel.options.flashList[i];
				
			var so = new SWFObject('http://img1.wapster.pl/logosrv.aspx?id='+id, 'player', '120', '160', '7', '#000000');
			so.addParam('wmode', 'transparent');
			so.write('flash' + id);
			
			var so = new SWFObject('/templates/flash/over_as2.swf', 'playerTop', '120', '160', '7', '#000000'); 
			so.addParam('wmode', 'transparent'); 
			so.addVariable('my_url',site_url+id); 
			so.write('flashTop' + id);
		}
	if (carousel.options.boxName == 'a128x160audio')
		for (var i=0; i <carousel.options.flashList.length; i++)
		{
			var id = carousel.options.flashList[i];
			var alternate = carousel.options.alternateUrl[i];
			var hack = "?" + Math.random();
			
			if(!$.browser.msie)
			{
				$('#audio'+id).html('<a class="alternate-flash" href="'+site_url+id+'"></a>');
			}
			else
			{
				var so = new SWFObject('http://img.wapster.pl/playermono5.swf' + hack, 'player', '70', '70', '7', '#000000'); 
				so.addParam('wmode', 'transparent'); 
				so.addVariable('graj', 'http://img.wapster.pl/mp3srv.aspx?id='+id); 
				so.addVariable('bcolor','FFDC00');
				//so.addVariable('bcolor','A3BBFF');
				so.addVariable('pcolor','000000'); 
				//so.addVariable('pcolor','D2EFF3'); 
				
				so.write('audio'+id);
			}
			

			
		}
	if (carousel.options.boxName == 'a128x128audioFree')
		for (var i=0; i <carousel.options.flashList.length; i++)
		{
			var id = carousel.options.flashList[i];
			var url = carousel.options.flashListUrl[i];
			var hack = "?" + Math.random();
			
			var so = new SWFObject('http://img.wapster.pl/playermono5.swf' + hack, 'player', '70', '70', '7', '#000000'); 
			so.addParam('wmode', 'transparent'); 
			so.addVariable('graj', url); 
			so.addVariable('bcolor','FFDC00');
			so.addVariable('pcolor','000000'); 
			so.write('audio'+id);
		}		

};

function jcHelper_getItemHTML(carousel, self) {

	var output;
	var id = jQuery('id',self).text(); 

	if (typeof(site_url) == 'undefined') {
		site_url = jQuery('site_url', self).text();
	}
	
	if (carousel.options.site_url == 'xml') {
		site_url = jQuery('site_url', self).text();
	}

    switch(carousel.options.boxName)
    {
            case "comment":
					body = jQuery('body',self).text();
					date = jQuery('date',self).text();
					nick = jQuery('nick',self).text();	
					
					output =
						'<div class="comment">'+
							'<div class="ctop">'+
								'<div class="nick"><a href="/profil/'+nick+'">'+nick+'</a></div>'+'<div class="date">'+date+'</div>'+
								//'<div class="mark mark0">Ocena telefonu:</div>'+
								'<div class="clear"></div>'+
							'</div>'+
							'<div class="ccenter">'+
								'<div class="body">'+
									body+
								'</div>'+
								
							'</div>'+
							'<div class="cbottom"></div>'+
						'</div>';

                    break;
					
            case "smsBox":
					title = jQuery('title',self).text();
					body = jQuery('body',self).text();

					output =
						'<div class="smsBox">'+
							'<div class="stop"></div>'+
							'<div class="scenter">'+
								'<div class="body">'+body+
								'<div class="more"><a href="/bramka-sms/'+id+'" class="pink">Wyślij ten tekst smsem z gwarancją dotarcia</a></div>'+
								'</div>'+
							'</div>'+
							'<div class="sbottom"></div>'+
						'</div>';

                    break;

			 case "smsStoryBox":
					title = jQuery('title',self).text();
					body = jQuery('body',self).text();
					short = jQuery('short',self).text();
					u_login = jQuery('u_login',self).text();
					sdate = jQuery('sdate',self).text();
					odd = jQuery('odd',self).text();
					cat = jQuery('cat',self).text();
					nobg = undefined;

					if (odd == 0) { nobg = 'nobg' };
					output =
						'<a href="/opowiadania-sms/'+cat+'/'+id+'">'+
						
						short+'</a><br /><br />';

						/*'<div class="smsStoryBox '+nobg+'">'+
							'<div class="stop"><a href="/opowiadania-sms/'+id+'" class="pink"><h3>'+title+'</h3></a>'+
								'<div class="pink info">'+sdate+' | Autor: <a class="pink" href="/profil/'+u_login+'">'+u_login+'</a></div>'+
							'</div>'+
							'<div class="scenter">'+
								'<div class="body">'+short+'</div>'+
							'</div>'+
							'<div class="sbottom"></div>'+
						'</div>';*/

                    break;
					
            case "a128x160flash":
					output =
						'<div class="ajaxBox a128x160flash">'+
							'<div><div class="flashTop" id="flashTop'+id+'"></div><div id="flash'+id+'"></div></div>'+
						'</div>';

                    break;
					
            case "phoneBox":
					img = jQuery('img',self).text();
					name = jQuery('name',self).text();
					url = jQuery('url',self).text();
					count = jQuery('count',self).text();
					mark = jQuery('mark',self).text();
					
					if (carousel.options.classEx == 1) {
						manu = jQuery('manu',self).text();
						
						output = '<div class="ajaxBox phoneBox">' +
						'<div class="name">' +
						'<a href="' +
						site_url +
						url +
						'">' + 
						manu +
						'</a>' +
						'</div>' +
						'<div class="model">' +
						'<a href="' +
						site_url +
						url +
						'">' + 
						name +
						'</a>' +
						'</div>' +
						'<div class="thumb thumbMini"><a href="' +
						site_url +
						url +
						'"><img src="' +
						img +
						'" /></a></div>' +
						'<div class="count"><img src="/templates/images/puff.jpg" />' +
						count +
						'</div>' +
						'<div class="mark mark' +
						mark +
						'"></div>' +
						'</div>';
					}
					else {
						output = '<div class="ajaxBox phoneBox">' +
						'<div class="nameOnly">' +
						'<a href="' +
						site_url +
						url +
						'">' + 
						name +
						'</a>' +
						'</div>' +
						'<div class="thumb"><a href="' +
						site_url +
						url +
						'"><img src="' +
						img +
						'" /></a></div>' +
						'<div class="count"><img src="/templates/images/puff.jpg" />' +
						count +
						'</div>' +
						'<div title="' +
						mark +
						'/10" class="mark mark' +
						mark +
						'"></div>' +
						'</div>';
					}	

                    break;
	

            case "a128x128java":
					img = jQuery('img',self).text();
					title = jQuery('title',self).text();
					posturl = jQuery('posturl',self).text();
					
					output =
						'<div class="ajaxBox a128x128java">'+
							'<div class="title">'+title+'</div>'+
							'<div><a href="'+site_url+id+'/'+ posturl +'"><img src="' + img + '" /></a></div>'+
						'</div>';

                    break;
					
            case "a128x160audio":
					img = jQuery('img',self).text();
					title = jQuery('title',self).text();
					auth = jQuery('auth',self).text();
					posturl = jQuery('posturl',self).text();
					
					output =
						'<div class="ajaxBox a128x160audio">'+
							'<div class="titleauth">'+
								'<div class="title">'+title+'</div>'+
								'<div class="auth">'+auth+'</div>'+
							'</div>'+
							'<div id="audio'+id+'"></div>'+
							'<div class="bottomText"><a href="'+site_url+id+'/'+ posturl +'">pobierz gadżet</a></div>'+
						'</div>';

                    break;
            case "a128x160":
					img = jQuery('img',self).text();
					posturl = jQuery('posturl',self).text();
					
					output = 
						'<div class="ajaxBox '+carousel.options.boxName+'"><div class="atop"></div><div class="acenter">'+
							'<a href="'+site_url+id+'/'+ posturl+ '"><img src="' + img +'"/></a>'+
						'</div><div class="abottom"></div></div>';
                    break;
					
            case "a128x128tapetyFree":
					img = jQuery('img',self).text();
					title = jQuery('name',self).text();
					url = jQuery('url',self).text();
		
  					output	= '<div class="ajaxBox a128x160flash">'+
						'<div class="title">'+title+'</div>'+
						'<div><a href="'+url+ '"><img src="' + img +'"></a>'+
						'<a class="url" href="'+url+ '">pobierz gadżet</a>'+
						'</div>'+
						'</div>';
					break;
					
            case "a128x128audioFree":
					title = jQuery('name',self).text();
					auth = jQuery('auth',self).text();
					url = jQuery('url',self).text();
		
					output =
						'<div class="ajaxBox a128x160audio">'+
							'<div class="titleauth">'+
								'<div class="title">'+title+'</div>'+
								'<div class="auth">'+auth+'</div>'+
							'</div>'+
							'<div id="audio'+id+'"></div>'+
							'<div class="bottomText"><a href="'+url+ '">pobierz gadżet</a></div>'+
						'</div>';
					break;	
									
            default:
					img = jQuery('img',self).text();
					posturl = jQuery('posturl',self).text();
					
  					output	= '<div class="ajaxBox '+carousel.options.boxName+'"><div><a href="'+site_url+id+'/'+ posturl +'"><img src="' + img +'"></a></div></div>';
    }

	return output;
};

function jcHelper_buttonNextCallback(carousel, button, enabled) {
	if (enabled)setClass(document.getElementById(carousel.options.id + "-next"),"nav_p");
	else		setClass(document.getElementById(carousel.options.id + "-next"),"nav_p_disabled");
};

function jcHelper_buttonPrevCallback(carousel, button, enabled) {
	if (enabled)setClass(document.getElementById(carousel.options.id + "-prev"),"nav_l");
	else		setClass(document.getElementById(carousel.options.id + "-prev"),"nav_l_disabled");
};

function jcHelper_itemVisibleInCallbackAfterAnimation(carousel, item, idx, state) {
	$("#" + carousel.options.id + "-control " + "#" + carousel.options.id + "-n"+idx).removeClass("nav_c_a");
	$("#" + carousel.options.id + "-control " + "#" + carousel.options.id + "-n"+idx).addClass("nDisabled");
};

function jcHelper_itemVisibleOutCallbackAfterAnimation(carousel, item, idx, state) {
	$("#" + carousel.options.id + "-control " + "#" + carousel.options.id + "-n"+idx).removeClass("nDisabled");
	$("#" + carousel.options.id + "-control " + "#" + carousel.options.id + "-n"+idx).addClass("nav_c_a");
};