﻿ /*
 * TAURON main js file
 * author: jjagoda
 */

/* onDomReady initial calls */

$(function () {

    //dodana klasa, w przegladarce kampanii usuwa scrolla dla wersji z js	
    $('body').addClass('has-js');

    //header search label
    var searchInput = $('.header-search input:text');
    var searchLabel = $('.header-search label');
    if (searchInput.val() != '') searchLabel.hide();

    searchInput.focus(function () {
        searchLabel.hide();
    }).blur(function () {
        if ($.trim($(this).val()) == '') searchLabel.show();
    });

    //anonimowy user albo nie w trybie edycji (?)
    if (!isAuthenticated || (!isAuthenticated && $('.ms-cui-tabBody').length == 0)) {
        //ui dropdown
        $('select').selectmenu({
            style: 'dropdown'
        });

        //checkboxy
        $('input[type=checkbox]').checkbox();

        $('input[type=radio]').radiobutton();

    }

    //wszystkie zakladki (defaults: ul.tabs i .tab-container > .tab-content)
    PT.Tabs.init();

    //przegladarka kampanii
    PT.Tabs.init({
        tabsSelector: '.campaign-browser-nav',
        tabsContentSelector: '.campaign-browser > li',
        effect: 'fade',
        rotate: true,
        slideshow: true,
        slideshowAutoplay: true
    });

    /* warstwa o grupie tauron / lancuch wartosci */
    $('.tauron-more').cover({
        onAjaxComplete: onAboutTauronLayerInit
    });

    //text resize
    PT.textResize.init();

    //dynamiczne akapity
    PT.dynamicParagraph.init();

    //print links
    $('a.print').click(function () {
        window.print();
        return false;
    });


    //datepicker
    var dateInputs = $(".input-container input.date");
    if (dateInputs.length) {
        //get script on demand
        $.getScript('/_layouts/1033/scripts/lib/jquery.ui.datepicker.min.js', function () {
            dateInputs.datepicker({
                showOn: 'both',
                buttonImage: '/_layouts/1033/images/tauron/icon/calendar.gif',
                buttonImageOnly: true
            });

            //if !en-EN
            if (window.location.href.indexOf('-en/') == -1 && window.location.href.indexOf('/en/') == -1) {
				//if cz
				if (dateInputs.filter('.input-date-czech').length) {
					$.getScript('/_layouts/1033/scripts/lib/jquery.ui.datepicker-cz.js');
				} //if pl
				else {
					$.getScript('/_layouts/1033/scripts/lib/jquery.ui.datepicker-pl.js');
				}
			}

        })
    }


    //reader links
    PT.Reader.init();

    /* postcode fields */
    var postCode1 = $('input.postcode-1');
    var postCode2 = $('input.postcode-2');
    if (postCode1.length) {
        postCode1.keyup(function () {
            var val = $(this).val();
            if (val.length > 2) {
                $(this).val(val.substring(0, 2));
            }
            if (val.length == 2 && postCode2.length) {
                postCode2.get(0).focus();
            }
        })
    }

    /* secondary nav - 3rd level */
    if (!isAuthenticated) {
        var leftNav = $(".secondary-nav ul.root ul.static").superfish({
            animation: { height: 'show' },
            delay: 600
        });
    }

    /* link zglos blad */
    var errorTrigger = '.link-list-bottom .more:eq(1)';
    
        $(errorTrigger).cover({
        modalId: 'error-modal',
        onAjaxComplete: errorFormLoad,
        contextToLoad: 'TabContainer',
        top: 12
    });

    /* identyfikacja właściwego formularza do submitu */
    PT.FormSubmitEnter.init();

    /*gallery init*/
    var imgGalleries = $('.image-gallery');
    if (imgGalleries.length) {
        imgGalleries.each(function (ind, el) {
            $(el).find('li a').colorbox({ current: '{current} / {total}', rel: ('gallery-' + ind), scalePhotos: true, maxWidth: 970 });
        })
    }

});


function onAboutTauronLayerInit(cover){
	
	/* zakładki dla zawartosci ladowanej do modal-a */
	//$('#modal .tabs').tabs('#modal .tab-container > .tab-content', {current:'selected'});
	
	PT.Tabs.init({
		tabsSelector: '#modal .tabs',
		tabsContentSelector: '#modal .tab-container > .tab-content'
	});
	
	
	/* akcja zamknij modala */
	$('#main .close').click(function(){
		$('.tauron-more').each(function() {
			$(this).overlay().close();
		});
		return false;
	});
	
	var animationSpeed = 400;
	var oldHeight;
	$('.expand-content').click(function(){
		var contentDiv = $('#' + $(this).attr('href').split('#')[1]);
		
		oldHeight = contentDiv.parent().parent().height();
		
		contentDiv.parent().parent().animate({
		    height: contentDiv.height()
		  }, animationSpeed );

		//visibility: fix for IE7
		contentDiv.css('visibility', 'visible').slideDown(animationSpeed);
		return false;
	});
	
	
	$('.button-collapse').click(function(){
		var contentDiv = $('#' + $(this).attr('href').split('#')[1]);
		
		contentDiv.slideUp(animationSpeed);
		contentDiv.parent().parent().animate({
		    height: oldHeight
		  }, animationSpeed );
		
		return false;
	});
	
	//$('#value-chain .contents').css('position','relative').css('position','absolute').hide().show();
	$('#value-chain .contents .content').hide();
	
}

//warstwa przykrywajaca i wyswietlajaca zawartosc zaladowana ajaxem - jako plugin jQuery
(function ($) {
    $.fn.cover = function (options) {
        // options
        var opts = $.extend({}, $.fn.cover.defaults, options);
        
        // iterate through all matched elements
        this.each(function () {
            //trigger link
            $this = $(this);
            
            // build element specific options, supports metadata plugin
            var o = $.meta ? $.extend({}, opts, $this.data()) : opts;

            //dodaje do body diva w ktorym bedzie wyswietlana zaladowana strona 
            $('body').append('<div id="' + o.modalId + '" class="modal"><div class="modal-content"></div></div>');
            var modalContent = $('#' + o.modalId + ' .modal-content');
            
            var instanceApi;
            instanceApi = $this.overlay({

                //opcje okna modal-a (wyswietla ladowana zawartosc na kurtynie) 
                api: o.api,
                top: o.top,
                left: o.left,
                closeOnClick: o.closeOnClick,
                target: '#' + o.modalId,

                //opcje covera
                expose: {
                    maskId: 'ptCover-' + o.modalId,
                    color: o.coverColor,
                    loadSpeed: 200,
                    opacity: 0.8,
                    closeOnClick: true
                },

                //
                onBeforeLoad: function () {
                    // laduje strone z linka kliknietego elementu i pobiera diva o ID contextToLoad
					modalContent.load(this.getTrigger().attr("href") + ' #' + o.contextToLoad, function (responseText) {
                        o.onAjaxComplete(instanceApi, responseText);
                    });
                }
			});
        });
    };
	
	$.fn.cover.defaults = {
        modalId: 'modal',
        ajax: true, //na razie tylko ajax (bez obslugi statycznego contentu)
        contextToLoad: 'main', //id diva do zaladowania, domyslnie #main
        cssClass: '',
        coverColor: '#fff',
        onAjaxComplete: function () { },
        top: 2,
        left: 'center',
        closeOnClick: true,
        api: true
    };
	
})(jQuery);

//wrapper dla zakladek z jquery.tools (uzywany tez w przegladarce kampanii)
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.Tabs == "undefined") {
	PT.Tabs = {
		init: function(opts){
			
			var instanceApi;
			
			var defaults = {
				api: false,
				tabsSelector: '.tabs',
				tabsContentSelector: '.tab-container > .tab-content',
				tabsEffect: 'default',
				currentTabCssClass: 'selected',
				
				fadeOutSpeed: 'slow',
				rotate: false,
				
				slideshow: false,
				slideshowInterval: 20000, /*ms*/
				slideshowAutoplay: true 
				
			};
			
			var options = $.extend(defaults, opts || {});
			
			if(!options.slideshow){
				instanceApi = $(options.tabsSelector).tabs(options.tabsContentSelector, {
					api: options.api,
					current: options.currentTabCssClass,
					rotate: options.rotate,
					effect: options.tabsEffect,
					fadeOutSpeed: options.fadeOutSpeed
				});
			}else{
				instanceApi = $(options.tabsSelector).tabs(options.tabsContentSelector, { 
			        api: options.api,
					current: options.currentTabCssClass,
					effect: options.effect,
					fadeOutSpeed: options.fadeOutSpeed,
			        rotate: options.rotate
			    })
				$(options.tabsSelector).slideshow({
					api: options.api,
					autoplay: options.slideshowAutoplay,
					interval: options.slideshowInterval,
					clickable: false
				});
			}
			
			if(options.api){
				return instanceApi;
			}
			
		}
	}
}

//powiekszanie tekstu w artykulach
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.textResize == "undefined") {
	PT.textResize = {
		
		options: {},
		
		defaults: {
			triggerSelector: 'a.text-resize',
			contextSelector: '.column-2, .column-23',
			currentSize: 'default',
			sizes: {
				'default': 'default',
				medium: 'medium',
				large: 'large'
			}
		},

        isAlt: false,
        isShift: false,

		init: function(opts){
			
			var instanceApi;
			var self = this;
			
			this.options = $.extend(this.defaults, opts || {});
			
			var trigger = $(this.options.triggerSelector); 
			trigger.click(function(){
				switch(self.options.currentSize) {
					case 'default':
						self.changeSize('medium', self.options.contextSelector)
						break;
					case 'medium':
						self.changeSize('large', self.options.contextSelector)
						break;
					case 'large':
						self.changeSize('default', self.options.contextSelector)
						break;
				}
			});
			
			//accesskeys alt+(S, R, L)
			if (trigger.length) {
				$(document).keydown(function(event){
					if(event.which == 16) self.isShift = true;
					if(event.which == 18) self.isAlt = true;
					if (self.isShift && self.isAlt) {
						switch (event.keyCode) {
							case 83: //S - default
								self.changeSize('default', self.options.contextSelector);
								isShift = false;
								isAlt = false;
								return false;
								break;
							case 82: //R - medium
								self.changeSize('medium', self.options.contextSelector);
								isShift = false;
								isAlt = false;
								return false;
								break;
							case 76: //L -large
								self.changeSize('large', self.options.contextSelector);
								isShift = false;
								isAlt = false;
								return false;
								break;
						}
					}
				});
				$(document).keyup(function(event){
					self.isShift = false;
					self.isAlt = false;
				});
				
			}
		},
		
		changeSize: function(size, context){
			$(context).removeClass('text-size-default');
			$(context).removeClass('text-size-medium');
			$(context).removeClass('text-size-large');
			$(context).addClass('text-size-' + this.options.sizes[size]);
			this.options.currentSize = this.options.sizes[size];
		}
		
	}
}

//dynamiczne akapity (strona: slownik pojec)
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.dynamicParagraph == "undefined") {
	PT.dynamicParagraph = {
		init: function(opts){
		
			var instanceApi;
			
			var defaults = {
				api: false,
				containerSelector: '.dictionary',
				collapsedElementCssClass: 'collapsed',
				activeElement: '.dictionary a.term:first'
			};
			
			var options = $.extend(defaults, opts || {});
			
			var mainContainer = $(options.containerSelector);
			var triggers = mainContainer.find('a.term');
			triggers.parent().addClass(options.collapsedElementCssClass).next().addClass(options.collapsedElementCssClass);
			
			//ustawia aktywny element po zaladowaniu strony
			this.setActiveElement(options);
			
			//dodaje handler-a na click
			triggers.toggle(function(){
				$(this).parent().removeClass(options.collapsedElementCssClass).next().removeClass(options.collapsedElementCssClass);
			}, function(){
				$(this).parent().addClass(options.collapsedElementCssClass).next().addClass(options.collapsedElementCssClass);
			});
		},
		
		getTriggerByHash: function(hash, options){
			var trigger = $(options.containerSelector + ' a[href="' + hash + '"]');
			return trigger;
		},
		
		setActiveElement: function(options){
			var trigger;
			if(window.location.hash){
				trigger = this.getTriggerByHash(window.location.hash, options);
				if(trigger) trigger.parent().removeClass(options.collapsedElementCssClass).next().removeClass(options.collapsedElementCssClass);
			}else{
				$(options.activeElement).parent().removeClass(options.collapsedElementCssClass).next().removeClass(options.collapsedElementCssClass);
			}
		}
	}
}



/*
* TAURON SharePoint Client Object Model related stuff
* author: jjagoda
*/

var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.SharePoint == "undefined") {
	PT.SharePoint = {
		UI: {
			/* Document list loader */
			DocumentList: {
				
				modal: null,
				
				modalContentContainerId: 'modal-content-container',
				
				listType: 'attachment-list',
				
				itemListCollection: null,
				listCollection: null,
				
				//akcja dla przycisku ribbona
				button:{
					click: function(){
						var modalOptions = new SP.UI.DialogOptions();
						modalOptions = {
							html: '<a>Loading...</a>',
							width: 500,
							height: 500,
							showClose: true,
							allowMaximize: false,
							title: 'Wstaw listę dokumentów',
							dialogReturnValueCallback: function(dialogResult, modal){
								var modalHtml = modal.get_html();
							}
						};
						
						PT.SharePoint.UI.DocumentList.modal = SP.UI.ModalDialog.showWaitScreenSize('Dodaj listę dokumentów', 'Loading...', PT.SharePoint.UI.DocumentList.onModalClose, 500, 500);
						//robi async request wiec wymaga callbacka
						//PT.SharePoint.UI.DocumentList.loadListByTitle('Documents', PT.SharePoint.UI.DocumentList.populateModal); 
						PT.SharePoint.UI.DocumentList.loadListsByParams(('Id, Title, Hidden, EnableModeration, BaseTemplate, ' + SP.ListPropertyNames.baseType)); //string, oddzielone przecinkami
					}
				},
				
				loadListsByParams: function(params, callback){
					
					param = SP.ListPropertyNames.baseType;
					var clientContext = new SP.ClientContext.get_current(); //(siteUrl)
					this.listCollection = clientContext.get_web().get_lists();
					clientContext.load(this.listCollection, ('Include(' + params + ')'));
					clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
					
				},
				
				loadListByTitle: function(title, callback, context){
					var clientContext = new SP.ClientContext.get_current(); //(siteUrl)
					//var clientContext = new SP.ClientContext.get_current();
					var oList = clientContext.get_web().get_lists().getByTitle(title);
					var camlQuery = new SP.CamlQuery();
					camlQuery.set_viewXml('<View Scope="RecursiveAll"><Query><Where><And><Geq><FieldRef Name="ID"/><Value Type="Number">1</Value></Geq><Neq><FieldRef Name="ContentType" /><Value Type="Computed">Folder</Value></Neq></And></Where></Query></View>');
					this.itemListCollection = oList.getItems(camlQuery);
						
					clientContext.load(this.itemListCollection, 'Include(Title, FileRef, File_x0020_Size, File_x0020_Type, FileLeafRef)');
					
					//pierwszy callback - onSuccess, drugi - onFail
					clientContext.executeQueryAsync(Function.createDelegate(this, callback), Function.createDelegate(this, this.onSPQueryFail));
				},
				
				loadListById: function(id, callback, context){
					var clientContext = new SP.ClientContext.get_current(); //(siteUrl)
					//var clientContext = new SP.ClientContext.get_current();
					var oList = clientContext.get_web().get_lists().getById(id);
					var camlQuery = new SP.CamlQuery();
					camlQuery.set_viewXml('<View Scope="RecursiveAll"><Query><Where><And><Geq><FieldRef Name="ID"/><Value Type="Number">1</Value></Geq><Neq><FieldRef Name="ContentType" /><Value Type="Computed">Folder</Value></Neq></And></Where></Query></View>');
					this.itemListCollection = oList.getItems(camlQuery);
						
					clientContext.load(this.itemListCollection, 'Include(Title, FileRef, File_x0020_Size, File_x0020_Type, FileLeafRef)');
					
					//pierwszy callback - onSuccess, drugi - onFail
					clientContext.executeQueryAsync(Function.createDelegate(this, callback), Function.createDelegate(this, this.onSPQueryFail));
				},
				
				onQuerySucceeded: function() {
					var listInfo = '';
					var listEnumerator = this.listCollection.getEnumerator();
					//var listEnumerator = collList.getEnumerator();
					
					var select = '<label style="margin-bottom:16px;font-weight:bold;" for="document-list-select">Wybierz listę dokumentów: <select id="document-list-select">';
					
					while (listEnumerator.moveNext()) {
						var list = listEnumerator.get_current();
						var listType = list.get_baseType();
						var listTitle = list.get_title();
						var listId = list.get_id();
						
						//narrow list collection
						var hidden = list.get_hidden();
						var moderationEnabled = list.get_enableModeration();
						var baseTemplate = parseInt(list.get_baseTemplate()); //850 - pages
						
						//get only asset libraries
						if(listType == 1 || listType == 100 || listType == 101){ if (!hidden && baseTemplate!=850) { //document library
							select += '<option value="' + listId + '">' + listTitle + '</option>'
						} }
					}
					
					select += '</select></label>';
					
					this.appendToModal(select, 'PT.SharePoint.UI.DocumentList.onListTitleSelect()', 'PT.SharePoint.UI.DocumentList.clickCancel()');
				},
				
				generateDropdown: function(){
					var listInfo = '';
					var listEnumerator = this.listCollection.getEnumerator();
					//var listEnumerator = collList.getEnumerator();
					while (listEnumerator.moveNext()) {
						var oList = listEnumerator.get_current();
						listInfo += 'Title: ' + oList.get_title() + ' -> BaseType: ' + oList.get_baseType() + '\n';
					}
					//console.log(listInfo);
				},

				generateListHtml: function(){
					var listItemInfo = '<ul class="' + this.listType + '" id="tauron-document-list">';
					var listItemEnumerator = this.itemListCollection.getEnumerator();

					while (listItemEnumerator.moveNext()) {
						var oListItem = listItemEnumerator.get_current();
						var title = oListItem.get_item('Title') || oListItem.get_item('FileLeafRef') ;
						var fileType =  oListItem.get_item('File_x0020_Type');
						var fileSize = Math.round(parseInt(oListItem.get_item('File_x0020_Size'))/1024);
						var fileRef = oListItem.get_item('FileRef');
						
						var downloadLink ='';
						((window.location.href.indexOf('-en/') != -1) || (window.location.href.indexOf('/en/') != -1))? downloadLink = 'download': downloadLink = 'pobierz plik';
						
						listItemInfo += '<li class="' + fileType +'"><div class="item-selection"><label><input type="checkbox" class="checkbox" />'  + title + '</label>'+ fileRef + '</div>' +
						'<div class="item-display ms-hidden"><a class="download-link" target="_blank" href="' + fileRef + '">' + title + '</a> (' + fileSize + 'Kb)<a target="_blank" class="more-left" href="' + fileRef + '">' + downloadLink + '</a></div></li>';
					}
					listItemInfo += '</ul>';
					
					this.appendToModal('<label style="margin-bottom:16px;font-weight:bold;">Tytuł listy: <input type="text" id="' + this.listType + '-title-input"/></label>' + listItemInfo, 'PT.SharePoint.UI.DocumentList.clickOk()', 'PT.SharePoint.UI.DocumentList.clickCancel()' );
				},
				
				populateModal: function(html){
					
					var modalHtml = PT.SharePoint.UI.DocumentList.modal.get_html();
					$(modalHtml).hide();
					
					var appendedContent = $('#' + this.modalContentContainerId);
					if(appendedContent.length) appendedContent.remove();
					
					var modalContent = $(modalHtml).parent().append('<div id="' + this.modalContentContainerId + '"><div class="box-content"></div><button onclick="PT.SharePoint.UI.DocumentList.clickOk()">ok</button><button onclick="PT.SharePoint.UI.DocumentList.clickCancel()">anuluj</button></div>');
					
					$('#' + this.modalContentContainerId).find('.box-content').append(html);
					
				},

				appendToModal: function(html, onOk, onCancel){
					var modalHtml = PT.SharePoint.UI.DocumentList.modal.get_html();
					$(modalHtml).hide();
					
					var appendedContent = $('#' + this.modalContentContainerId);
					if(appendedContent.length) appendedContent.remove();
					
					var modalContent = $(modalHtml).parent().append('<div id="' + this.modalContentContainerId + '"><div class="box-content"></div><button onclick="' + onOk +'">ok</button><button onclick="' + onCancel + '">anuluj</button></div>');
					
					$('#' + this.modalContentContainerId).find('.box-content').append(html);
					
				},
				
				onListTitleSelect: function(){
					var listId = $('#document-list-select').val();
					PT.SharePoint.UI.DocumentList.loadListById(listId, PT.SharePoint.UI.DocumentList.generateListHtml); 
				},
				
				onSPQueryFail: function(sender, args){
					alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
				},
				
				onModalClose: function(result){
					if(result === SP.UI.DialogResult.OK) {
						this.getSelectedItems();
					}
					if(result === SP.UI.DialogResult.cancel) {
						//do nothing for now
					} 
				},
				
				getHtmlForPasting: function(){
					//list items
					var itemList = $('#' + this.modalContentContainerId);
					var selectedItems = itemList.find('li').filter(function(){
						return $(this).find('input:checked').length != 0;
					});
					
					// jezeli nie zaznaczono to zamykamy
					if(!selectedItems.length) {
						this.clickCancel();
						return;
					}
					
					//list title
					var listTitle = $('#' + this.listType + '-title-input').val();
					listTitle!=''? listTitle = $('<h2>' + listTitle + '</h2>'): listTitle = '';
					
					selectedItems.find('.item-selection').remove().end().find('.item-display').removeClass('ms-hidden').end();
					var html = $('<div></div>').append(listTitle).append($('<ul class="' + this.listType + '"></ul>').append(selectedItems));
					return html;
				},
				
				clickCancel: function(){
					
					PT.SharePoint.UI.DocumentList.modal.close();
				
				},
				
				clickOk: function(){
					var liItems = this.getHtmlForPasting();
					var listToPaste = $('<div>').append(liItems);
					
					RTE.Cursor.update();
					var rawRange = RTE.Selection.getSelectionRange().pasteHtml(listToPaste.get(0).innerHTML);
					
					PT.SharePoint.UI.DocumentList.modal.close();

				}
				
			}
		}
	}
}


// obsluga linków "odczytaj"
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.Reader == "undefined") {
    PT.Reader = {

        playerObjectId: 'ptReader',
        playerObject: null,
        playerContainerId: 'pt-reader-container',
        playerContainer: null,
        playerUrl: '/_layouts/1033/silverlight/NetAmgTextToSpeechPlayer.xap',

        currentReaderLink: null,
        currentReaderLinkText: null,

        currentGuid: '',
        paused: false,

        silverlightMinVersion: '3.0.40818.0',
        silverlightJsLoaded: false,

        init: function (opts) {

            var defaults = {
                readerLinkSelector: '.reader, .reader-article'
            };

            var self = this;
            var options = $.extend(defaults, opts || {});
            var readerLinks = $(options.readerLinkSelector);
            readerLinks.click(function () {
                var guid = $(this).attr('id').split('contentId-')[1];

                if (!self.silverlightJsLoaded) {
                    $.getScript('/_layouts/1033/silverlight/Silverlight.js', function () {
                        self.silverlightJsLoaded = true;
                        self.checkIfSilverlightInstalled(function () {
                            self.handleClick(guid);
                        });
                    })
                } else {
                    self.checkIfSilverlightInstalled(function () {
                        self.handleClick(guid);
                    });
                }

                return false;
            })

        },

        checkIfSilverlightInstalled: function (onInstalled) {
            if (Silverlight.isInstalled(this.silverlightMinVersion)) {
                onInstalled();
            } else {
                var answer = confirm("Funkcjonalność wymaga instalacji pluginu Microsoft Silverlight. Czy chcesz go zainstalować teraz?");
                if (answer) window.location = 'http://go.microsoft.com/fwlink/?LinkID=149156&v=' + this.silverlightMinVersion;
            }
        },

        handleClick: function (guid) {

            try {

                //play
                if (this.currentGuid == '' && (this.playerObject == null || !this.playerObject.length)) {
                    //console.log('//play');
                    this.appendPlayer(guid);
                    this.currentGuid = guid;

                    this.currentReaderLink = $('#contentId-' + guid);
                    this.currentReaderLinkText = this.currentReaderLink.text();

                    this.modifyLink(false);
                    //pause
                }
                else if (guid == this.currentGuid && !this.paused) {
                    //console.log('//pause');
                    this.pause();
                    //resume
                } else if (this.paused && guid == this.currentGuid) {
                    //console.log('//resume');
                    this.resume();
                    //play another
                } else if (guid != this.currentGuid) {
                    if (this.currentGuid != '') {
                        //stop previous and change link back
                        //console.log('//stop previous and change link back');
                        this.stop();
                        this.modifyLink(true);
                    }
                    //set new guid, modify link and play
                    //console.log('//set new guid, modify link and play');
                    this.appendPlayer(guid);
                    this.currentGuid = guid;

                    this.currentReaderLink = $('#contentId-' + guid);
                    this.currentReaderLinkText = this.currentReaderLink.text();

                    this.modifyLink(false);
                }
            } catch (ex) {
                if (window.console) console.log(ex);
            }
            return false;
        },

        onStop: function (contentId) {
            this.stop();
        },

        resume: function () {
            document.getElementById(this.playerObjectId).content.Player.Play(this.currentGuid);
            this.modifyLink(false);
            this.paused = false;
        },

        pause: function () {
            document.getElementById(this.playerObjectId).content.Player.Pause();
            this.modifyLink(true);
            this.paused = true;
        },

        stop: function () {
            if (this.playerContainer != null && this.playerContainer.length) {
                (this.playerObject).remove();
                (this.playerContainer).remove();
                this.modifyLink(true);
                this.currentGuid = '';
                this.paused = false;
            }
        },

        modifyLink: function (init) {
            var isEng = ((window.location.href.indexOf('-en/') != -1) || (window.location.href.indexOf('/en/') != -1)) ? true : false;
            if (init) {
                this.currentReaderLink.text(this.currentReaderLinkText);
                this.currentReaderLink.removeClass('reader-playing');
            } else {
                (isEng) ? this.currentReaderLink.text('stop') : this.currentReaderLink.text('zatrzymaj')
                this.currentReaderLink.addClass('reader-playing');
            }
        },

        appendPlayer: function (guid) {

            var targetUrl = window.location.href.split('#')[0];
            targetUrl = targetUrl.split('?')[0];

            var playerHtml = '<object name="' + this.playerObjectId + '" id="' + this.playerObjectId + '" data="data:application/x-silverlight," type="application/x-silverlight" width="1px" height="1px">' +
				'<param name="source" value="' + this.playerUrl + '"/>' +
				'<param name="enablehtmlaccess" value="true"/>' +
				'<param name="onError" value="OnSilverlightError" />' +
				'<param name="background" value="white" />' +
				'<param name="minRuntimeVersion" value="' + this.silverlightMinVersion + '" />' +
				'<param name="autoUpgrade" value="true" />' +
				'<param name="initParams" value="contentId=' + guid + ',url=' + targetUrl + '" />' +
				'<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=' + this.silverlightMinVersion + '" style="text-decoration:none">' +
				'pobierz Silverlight</a>' +
				'</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>';

            $('body').append('<div id="' + this.playerContainerId + '">' + playerHtml + '</div>');
            this.playerObject = $('#' + this.playerObjectId);
            this.playerContainer = $('#' + this.playerContainerId);
        }

    }
}
/* definicja dla SilverLighta, bo wywolanie z kropkami w nazwie funkcji wywala sileverlighta */
function ReaderOnStop(){
	PT.Reader.onStop();
}

/* report error form */
var errorTrigger = '.link-list-bottom .more:eq(1)';
function errorFormLoad(instanceApi, responseHtml) {

    $('#error-modal .close').click(function () {
        $(errorTrigger).each(function () {
            $(this).overlay().close();
        });
        return false;
    });

    var submit = $('#error-modal #TabContainer input:submit');
    //console.log(submit);

    submit.click(function () {

        var formElements = $("#error-modal #TabContainer").find('input, textarea');
        var formData = ''; /* = formElements.serialize();*/

        formElements.each(function (index, el) {
            var paramName = $(el).attr('name').split('$'); //nazwa parametru jak w kodzie, a nie wygenerowana przez SP
            formData += paramName[paramName.length - 1] + '=' + $(el).attr('value') + '&';
        });
        formData += 'ajaxCallback=true';

        /*var __EVENTVALIDATION = $(responseHtml).find('#__EVENTVALIDATION').val();
        var __REQUESTDIGEST = $(responseHtml).find('#__REQUESTDIGEST').val();
        var __VIEWSTATE = $(responseHtml).find('#__VIEWSTATE').val();
		*/
        //formData = formData + '__EVENTVALIDATION=' + __EVENTVALIDATION + '&__REQUESTDIGEST=' + __REQUESTDIGEST + '&__VIEWSTATE=' + __VIEWSTATE;
        //console.log(formData);

        $.post($(errorTrigger).attr('href'), formData, function (data) {
            $('#error-modal .modal-content').html($(data).find('#TabContainer'));
            errorFormLoad();
        });

        return false;
    })
}

/*
* TAURON SharePoint javaScript overrides for anonymous users
* funkcje/zmienne musza byc nadpisane poprzez obiekt window., w innym przypadku IE je nadpisze takze dla zalogowanego uzytkownika
*/
if (!isAuthenticated) {

    window.ProcessImn = function () { };
    window.ProcessImnMarkers = function () { };

    /* sp 2010 */
    window.ExecuteOrDelayUntilScriptLoaded = function () { };
    window.$create = function () { };
    window.$get = function () { };
    window.removeAllStatus = function () { };

    window.UpdateFormDigest = function () { };

    window.SP = {
        UI: {
            AspMenu: {}
        }
    };

    window.WPSC = {
        Init: function () { },
        WebPartPage: {
            Parts: {
                Register: function () { }
            }
        }
    }
    
}

function OnSilverlightError(sender, errorArgs){
    if (errorArgs.errorCode == 8001) {
		alert("Funkcjonalność wymaga instalacji nowszej wersji pluginu Microsoft Silverlight.");
	}else if(errorArgs.errorCode == 8002){
		alert("Plugin Microsoft Silverlight wymaga restaru przeglądarki.");
	}
	// Display the error message.
	if (window.console) {
		console.log(errorArgs);
		console.log(sender);
	}	
}

// obsluga entera w formularzach
// identyfikacja właściwego formularza do submitu
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.FormSubmitEnter == "undefined") {
    PT.FormSubmitEnter = {
		
        init: function (opts) {

		$('input:text').keypress(function(event){
			
			if (event.keyCode == '13') {
				event.preventDefault();
				event.stopImmediatePropagation();
				var arr=this.id.split("_");
				var prefix=this.id.slice(0,-arr[arr.length-1].length);
				$('input:submit').each(function(i,el){
					if(el.id.indexOf(prefix)==0){
						el.click();
						return;
					}
				});
			}
		});		
	}
    }
}



//slideshow do prezentacji listy obrazów
var PT;
if (typeof PT == "undefined") PT = {};
if (typeof PT.slideShow == "undefined") {
    PT.slideShow = {

        img: null,
        currentSlide: -1,
        totalSlides: 0,
        slides: null,
        summary: null,
        prevLink: null,
        nextLink: null,

        init: function (opts) {
            var self = this;
            var defaults = {
                containerSelector: '.slideshow-container',
                slideListSelector: '.slideshow-container .slide-list a',
                imgContainerSelector: '.slideshow',
                linkNextSelector: '.slideshow-container .link-next',
                linkPrevSelector: '.slideshow-container .link-prev',
                summarySelector: '.slideshow-links p'
            };

            var o = $.extend(defaults, opts || {});

            var container = $(o.containerSelector);
            var imgContainer = $(o.imgContainerSelector);
            this.nextLink = $(o.linkNextSelector);
            this.prevLink = $(o.linkPrevSelector);

            this.summary = $(o.summarySelector);
            this.img = imgContainer.find('img');
            this.slides = $(o.slideListSelector);
            this.totalSlides = this.slides.length;

            imgContainer.click(function () {
                self.nextSlide();
                return false;
            });

            this.nextLink.click(function () {
                self.nextSlide();
                return false;
            });

            this.prevLink.click(function () {
                self.prevSlide();
                return false;
            });

            $('.link-enlarge').click(function () {
                var link = $(this);
                var isEng = ((window.location.href.indexOf('-en/') != -1) || (window.location.href.indexOf('/en/') != -1)) ? true : false;
                if (container.hasClass('slideshow-container-max')) {

                    if (isEng) {
                        link.removeClass('link-back').addClass('more').text('maximize');
                    } else {
                        link.removeClass('link-back').addClass('more').text('powiększ');
                    }
                    container.removeClass('slideshow-container-max');
                } else {
                    if (isEng) {
                        link.removeClass('more').addClass('link-back').text('minimize');
                    } else {
                        link.removeClass('more').addClass('link-back').text('pomniejsz');
                    }
                    container.addClass('slideshow-container-max');
                }
                return false;
            });

            this.nextSlide();
        },

        nextSlide: function () {
            this.currentSlide++;
            if (this.currentSlide > this.totalSlides - 1) this.currentSlide = this.currentSlide - 1;
            this.toggleLinks();
            this.setProps();
            this.setSummary();
        },

        prevSlide: function () {
            this.currentSlide--;
            if (this.currentSlide < 0) this.currentSlide = 0;
            this.toggleLinks();
            this.setProps();
            this.setSummary();
        },

        setSummary: function () {
            this.summary.text((this.currentSlide + 1) + '/' + this.totalSlides);
        },

        setProps: function () {
            if (this.slides.get(this.currentSlide) != null) {
                var src = this.slides.get(this.currentSlide).href;
                var alt = $(this.slides.get(this.currentSlide)).text();

                this.img.attr('src', src);
                this.img.attr('alt', alt);
                this.img.attr('title', alt);
            }
        },

        toggleLinks: function () {
            if (this.currentSlide == this.totalSlides - 1) {
                this.nextLink.css('visibility', 'hidden');
            } else {
                this.nextLink.css('visibility', 'visible');
            }

            if (this.currentSlide == 0) {
                this.prevLink.css('visibility', 'hidden');
            } else {
                this.prevLink.css('visibility', 'visible');
            }
        }

    }	
}

