/**
 * jQuery playplugins plugin
 * @name jquery.playplugins.js
 * @author www.k2.pl - dev.ninja
 */

/* radioBig */
(function(j){
	j.fn.radioBig = function(){
		/* label < radio:active css */
		return this.each(function(){
			j(this).change(function(){
				jQuery(this).parent('label').siblings().removeClass('active');
				jQuery(this).parent('label').toggleClass('active');
			}).filter(':checked').parent('label').addClass('active').end().end().filter(':disabled').parent('label').addClass('disabled');
			/*if( j(this).is(':checked') ){
				j(this).parent('label').addClass('active');
			}
			if( j(this).is(':disabled') ){
				j(this).parent('label').addClass('disabled');
			}*/
			//alert( j(this).filter(':checked').length );
		});
	}
	
	j.fn.selectChange = function(options){
		return this.each(function(){
			var options = j.extend({
				step: 3,
				target: '.choosePromoBoxContent, .choosePromoDetails'
			},options);
			var tmpThis = this;
			j(this).bind('change', function(){
			////console.log('selectChange');
				j(options.target).removeClass('shown');
				j(options.target).filter('.'+j(tmpThis).find(':selected').attr('lang')).addClass('shown');
			});
		});
	}
	
})(jQuery);

/* popup */
(function(j){
	j.fn.playbox = function(options){        
		var defaults = {
			genericUrl: undefined, /*funkcja generujca  url */
			source: '', /* źródło popupa */
			type: 'html', /* format źródła popupa: - json, w jsonie html  - html */
			method: 'ajax', /* jeśli metoda ajax, to zaciągamy ajaksem z source, jeśli html to na zywca wrzucamy source jako content */                 
			classes: '', /* własne klasy do #playboxPopup */
            allowClose: true,
			callback: false
		};
		
		var options = j.extend({}, defaults,options);
		
		var callback = function(params){
			if( options.callback && typeof options.callback == 'function' ) return options.callback(params);
		};
		
		var buildPopup = function(content){
			j('body').find('#playboxPopupWrapper').remove();
            var closeBTN = (options.allowClose) ? '<a href="#" class="linkPointer linkPointerClose" title="Zamknij"><span>Zamknij</span></a>' : '';
			var pBHTML = j('<div id="playboxPopupWrapper"><div id="playboxPopup" class="'+options.classes+'"><div id="playboxClose">'+closeBTN+'</div></div></div>');
			pBHTML.height(j('body').height());
			pBHTML.find('#playboxClose').delegate('a','click',function(){ j('#playboxPopupWrapper').remove(); return false; });
			j('body').append(pBHTML).find('#playboxPopup').append(content);
			//alert( j('#playboxPopup').height() + ' ' + j(window).height() );
			if( j('#playboxPopup').height() > j(window).height() ){
				//j('#playboxPopup').height(j(window).height()).css('overflow-y','scroll');
			}
			
			j('#playboxPopup').css({
				'left': function(){ return ( j(window).width() > j(this).width() ? ((j(window).width() - j(this).width())/2) : '30') + 'px'; },
				'top': function(){ return ( j(window).height() > j(this).height() ? ((j(window).height() - j(this).height())/2) : '30') + 'px'; }
			}).parent().css({'visibility': 'visible', 'height': $('body').height() + 'px'});
		};
		
		var getContent = function(){
			if( options.method == 'ajax' ){
				var aUrl = options.source;
				if (options.genericUrl != null && options.genericUrl!=undefined ) {
					aUrl = options.genericUrl(aUrl);
				
				} 
				$.ajax({
					url: aUrl,
					dataType: options.type,
					success: function(d,t,x){
						buildPopup(d);
						addFeatures();
						ieFix();
						callback();
					}
				});
			}else if( options.method == 'html' ){
				buildPopup(options.source);
				addFeatures();
				ieFix();
				callback();
			};
			jQuery.scrollTo('#header',0);
		};		
		
        return this.each(function(){
            j(this).click(function(){
                getContent();
                return false;
            });
        });  
	};      
})(jQuery);

/* paramLink */
(function(j){
	j.fn.paramLink = function(){
		return this.each(function(){
			var p = j(this).attr("hrefparams");
			if (p != null && p != null) {
				var url = j(this).attr("href") + "?" + p;
				j(this).attr("href", url);
			}
		});
	}
})(jQuery);

function processPortalParams(xml, paramElems) {
	var rs = xml.getElementsByTagName("params");
	var paramsMap = [];
	if (rs!=null && rs!=undefined && rs.length>0) {
		var ls = rs[0].getElementsByTagName("param");
		var len = ls.length;
		for (var i = 0; i<len; i++){
			var id = getDOMChildText(ls[i], "id");
			var val = getDOMChildText(ls[i], "value");
			paramsMap[''+id] = val;
		}
	}
	paramElems.each(function() {
		var attr = $(this).attr('portalparam');
		if (attr) {
			attr = attr.replace(/param_/gi, '');
			var val = paramsMap[attr];
			if (val) {
				$(this).html(val);
				if (attr == 'CSMARK') {
					var cl = 'grade' + val.charAt(0);
					$('span.stars').each(function() {
						$(this).replaceWith('<span class="stars ' + cl + '">&nbsp;</span>');
					});
				}
			}
			if (attr == 'WOSP_AMOUNT') {
				var amountAdd = paramsMap['WOSP_AMOUNT_ADD'];
				var sum = 0;
				if (val) sum += new Number(val);
				if (amountAdd) sum += new Number(amountAdd);
				if (sum > 0) {
					val = Math.round(sum / 100).toString();
					$(this).html(val);
					WOSP_GLOBAL.setCounter();
				}
			}
		}
	});
}

function WospCounter() {
	this.end = 0;
	this.endCount = 0;

	this.setCounterValue = function(i, endValue, sci) {
		var counter = jQuery('.wospCounter');
		var obj = counter.find('span:eq(' + (i) + ')').not('.currency');
		obj = jQuery(obj);
		if (endValue > 0) {
			var newVal = (parseInt(obj.html()) + 1) % 10;
			obj.html(newVal);
		}
		if (parseInt(newVal) == parseInt(endValue)) {
			clearInterval(sci);
			this.end++;
			/*if (this.end + '=' + this.endCount) {
				gapi.plusone.render('gpb', {
					'size' : 'medium'
				});
			}*/
		}
	}

	this.setCounter = function() {
		var money = $('.wospTxt pre').text();
		var l = money.length;
		var zeros = 7 - l;
		for (i = 0; i < zeros; i++) {
			money = '0' + money;
		}
		var locValue = money;
		locValue = locValue.split('');
		for (i = 0; i <= locValue.length; i++) {
			var revI = (locValue.length - i);
			if (locValue[revI] > 0)
				this.endCount++;
			/*
			 * Inner funciton setCounterValue(@param1,param2,param3) @param1 - index
			 * of teh element on witch the value roll will be executed @param2 - end
			 * value of the element @param3 - interval objecy identivicator
			 */
			eval('var sci' + i + ' = setInterval(function() {WOSP_GLOBAL.setCounterValue('
					+ revI + ',' + locValue[revI] + ',sci' + i + ')},' + (20 * i)
					+ ');');
		}
	}
}
var WOSP_GLOBAL = new WospCounter();

jQuery(document).ready(function() {
	jQuery("a.paramLink").paramLink();
	var paramElems = $("*[portalparam^='param_']");
	if (paramElems.length > 0) {
		loadXml({
			url: gWebportalContext+"portalParams", 
			type: "post",
			dataType: "text",
			complete: function(xml){
				processPortalParams(parseXml(xml), paramElems);
			},
			async : true,
			error: function(xhr) { throw xhr; }
		});
	}
	$('[foravailablephone]').each(function() {
		var isPhoneAvail = function(cmsid) {
			var phoneAvail = dict.getNodes("PHONE_AVAILABLE",
					"[PHONE_ID='" + cmsid + "']");
			var res = true;
			$(phoneAvail).each(function() {
				res = $(this).attr("AVAILABLE") != '0';
			});
			return res;
		} 
		var outerspan = $(this);
		var ph = outerspan.attr('foravailablephone');
		if (!ph)
			return;
		ids = ph.split(',');
		var cmsidshow = 'default';
		for (var i = 0; i < ids.length; ++i) {
			var cmsid = ids[i];
			if (isPhoneAvail(cmsid)) {
				cmsidshow = cmsid;
				break;
			}
		}
		$('[cmsid]', outerspan).each(function() {
			if ($(this).attr('cmsid') == cmsidshow) {
				$(this).show();
			} else {
				$(this).hide();
			}
		});
		try {
			alignButtons(); // na str gl wyrownanie przez plugin
		} catch(e) {}
	});
});

