

/*
addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
*/
function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

function zakresDzialalnosciWysokosci() {
	lewaK = $(".left-buttons").height();
	prawaK = $(".right-list").height();

	if ( lewaK > prawaK ) {
	$(".right-list").css('min-height',lewaK+3);
	}
}

function openInNewWindow() {
	
    var newWindow = window.open(this.getAttribute('href'), '_blank');
    newWindow.focus();
    return false;
}


function getNewWindowLinks() {
	
	if (document.getElementById && document.createElement && document.appendChild) {
	
		var strNewWindowAlert = "";
		
		var links = document.getElementsByTagName('a');
		var objWarningText;
		var strWarningText;
		var link;
		for (var i = 0; i < links.length; i++) {
			link = links[i];
		
			if (/\bnon\-html\b/.exec(link.className)) {
				
				objWarningText = document.createElement("em");
				strWarningText = document.createTextNode(strNewWindowAlert);
				objWarningText.appendChild(strWarningText);
				link.appendChild(objWarningText);
				link.onclick = openInNewWindow;
			}
		}
		objWarningText = null;
	}
}

addEvent(window, 'load', getNewWindowLinks);
	
function object2String(obj) {
    var val, output = "";
    if (obj) {    
        output += "{";
        for (var i in obj) {
            val = obj[i];
            switch (typeof val) {
                case ("object"):
                    if (val[0]) {
                        output += i + ":" + array2String(val) + ",";
                    } else {
                        output += i + ":" + object2String(val) + ",";
                    }
                    break;
                case ("string"):
                    output += i + ":'" + escape(val) + "',";
                    break;
                default:
                    output += i + ":" + val + ",";
            }
        }
        output = output.substring(0, output.length-1) + "}";
    }
    return output;
}

function array2String(array) {
    var output = "";
    if (array) {
        output += "[";
        for (var i in array) {
            val = array[i];
            switch (typeof val) {
                case ("object"):
                    if (val[0]) {
                        output += array2String(val) + ",";
                    } else {
                        output += object2String(val) + ",";
                    }
                    break;
                case ("string"):
                    output += "'" + escape(val) + "',";
                    break;
                default:
                    output += val + ",";
            }
        }
        output = output.substring(0, output.length-1) + "]";
    }
    return output;
}


function string2Object(string) {
    eval("var result = " + string);
    return result;
}

function string2Array(string) {
    eval("var result = " + string);
    return result;
}

jQuery.fn.exists = function(){return jQuery(this).length>0;} 

jQuery.fn.preload = function() {
    this.each(function(){
        $('<img/>')[0].src = this;
    });
}

jQuery.fn.ajaxLoader = function(options) {
	var defaults = {
		remove: false
	}
	
	var options = $.extend(defaults, options);
	
	if(options.remove) {
		this.removeClass("ajax-loading");
	} else {
		this.addClass("ajax-loading");
	}	
}

function smartRedirect( url ) {
	if( url != "" ) {
		setTimeout( "document.location.href='"+url+"';", 2000 );
	}
}

var zmienionoUprawnienia = false;

function uprawnieniaZmieniono() {
	if( !zmienionoUprawnienia ) {
		pokazButtony();
	}
	zmienionoUprawnienia = true;
}

function wylaczPrzekierowanie() {
	zmienionoUprawnienia = false;
}

function scroluj() {
	$.scrollTo('550px', 800);
}





function isNumeric(expression) {
	var nums = "0123456789";
	if (expression.length==0)
		return false;
	for (var n=0; n < expression.length; n++)
	{
		if(nums.indexOf(expression.charAt(n))==-1)
			return false;
	}
	return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
var letter = email.charAt(i).toLowerCase();
if (validchars.indexOf(letter) != -1)
  continue;
parsed = false;
break;
  }
  return parsed;
}

function isValidEmail(email, required) {
	if (required==undefined) {   // if not specified, assume it's required
		required=true;
	}
	if (email==null) {
		if (required) {
			return false;
		}
		return true;
	}
	if (email.length==0) {  
		if (required) {
			return false;
		}
		return true;
	}
	if (! allValidChars(email)) {  // check to make sure all characters are valid
		return false;
	}
	if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
		return false;
	} else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
		return false;
	} else if (email.indexOf("@") == email.length) {  // @ must not be the last character
		return false;
	} else if (email.indexOf("..") >=0) { // two periods in a row is not valid
		return false;
	} else if (email.indexOf(".") == email.length) {  // . must not be the last character
		return false;
	}
	return true;
}

function submitQuestion(question) {
	if( confirm( question ) ) {
		return true;
	} else {
		return false;
	}
}

function submitZaproszenia(action){
	if (action == 1){
		var q = 'Na pewno chcesz zaakceptować te zaproszenia?';
	} else {
		var q = 'Na pewno chcesz odrzucić te zaproszenia?';
	}
	if (submitQuestion(q)){
		$("#action").val(action);
		$("#form-otrzymane").submit();
	}
	return false;
}

var select_all = "Zaznacz wszystkie";
var deselect_all = "Odznacz wszystkie";

function selectAllCheckbox(num) {
	if (num > 0){
		num = "-"+num;
	} else {
		num = '';
	}
	$('#checkAll'+num).click(
		function() {
			if ($('#checkAll'+num).val() == select_all){
				var checkAll = true;
				$('#checkAll'+num).val(deselect_all);
			} else {
				var checkAll = false;
				$('#checkAll'+num).val(select_all);
			}
			$(".checkAll"+num).attr("checked", checkAll);   
		}
	);
}

function przypadekPoLiczebniku(liczba, opcje){
	
	var modulo = mod(liczba, 10);
	switch ( true )
	{
		case liczba == 1:
			return liczba+" "+opcje[0];
		break;
		case modulo >= 2 && modulo <=4 && (liczba < 10 || liczba > 20):
			return liczba+" "+opcje[1];
		break;
		default:
			return liczba+" "+opcje[2];
		break;
	}
}

function mod(divisee, base) {
	return Math.round(divisee - (Math.floor(divisee/base)*base));
}

/* AJAX */


var actualLink;
var actualContainer;

function loadAjaxPage( linkURL, containerID ) {
	actualLink = linkURL;
	actualContainer = containerID;
	$.ajax({
		url: linkURL,
		dataType: "html",
		success: function(msg){
			if( msg.length > 0 ) {
				$("#"+containerID).html( msg );
			}
		}
	});
}

function loadAjaxPOST( linkURL, containerID ) {	
	var serialize = $('#'+containerID).find('input, textarea, select').serialize();
	
	$.ajax({
		type: "POST",
		data: serialize,
		url: linkURL,
		dataType: "html",
		success: function(msg){
			$("#"+containerID).html( msg );
		}
	});
}

function countChars( elemID, max ) {
	var text = $("#"+elemID).val();
	var len = "0";
	if (text.length > 0){
		if (text.length > max && max > 0){
			var len = '<span style="color: red">'+text.length+'</span>';
		} else {
			var len = text.length;
		}
	} 
	$("#"+elemID+"-chars").html(len);
}

function checkUnique(table, field, name, edit){
	var elem = $("#"+field).val();
	loadAjaxPage('/ajax/check_unique.html?table='+table+'&field='+field+'&name='+name+'&elem='+elem+'&edit='+edit, field+'-unique_info');
}


function doPopup(pageName) {
	newwindow=window.open( '/popup/'+pageName+'.html','popup','height=525,width=691,scrollbars=yes');
	if (window.focus) {newwindow.focus()};
}

//AJAX LOGIN
function ajaxLogin(where) {
	var luser = $("#luser-"+where).val();
	var lpass = $("#lpass-"+where).val();
	var remember = $("#remember-"+where).val();
	if (remember == 1){
		var ifRemember = "&remember=1";
	} else {
		var ifRemember = '';
	}
  	$.ajax({
			  	type: "POST",
				url:  '/ajax/login.html?login',
				data:  "luser="+luser+"&lpass="+lpass+ifRemember,
				success: function(msg){
					if (msg.substr(0,2) != "OK"){
						$("#login_komunikat-"+where).fadeIn(300);
						$("#login_komunikat-"+where).html(msg);
						$("#lpass-"+where).val("");
						$("#luser-"+where).focus();
						setTimeout('clearLoginKomunikat(\''+where+'\');', 5000);
						return false;
					} else {
						document.location.reload();
					}
				}
});
return;
}

function clearLoginKomunikat(where) {
	$("#login_komunikat-"+where).fadeOut(300);
}

function errorHandlerExecute(){
	var errInfo = '';
	for (i=0; i<ErrorHandler.length; i++){
		errInfo = '<ul>\n';
		for (j=0; j<ErrorHandler[i][1].length; j++){
			errInfo = errInfo+'<li>'+ErrorHandler[i][1][j]+'</li>\n';
		}
		errInfo = errInfo + '</ul>\n';
		$("#error-"+ErrorHandler[i][0]).show();
		$("#error-"+ErrorHandler[i][0]).html(errInfo);
	}
}

var blockMouseOut = 0;

function showStar(star, action){
	if (blockMouseOut == 1){
		return;
	}
	$(".stars").attr("src", "/i/gwiazdki/star_empty.gif");
	if (action == 1){
		for (var i = 1; i <= star; i++){
			$("#star_"+i).attr("src", "/i/gwiazdki/star.gif");
		}
	} 
}

function voteStars(type, id, vote){
	if (submitQuestion('Czy jesteś pewien swojej oceny?')){
		showStar(vote, 1);
		blockMouseOut = 1;
		loadAjaxPage( '/ajax/gwiazdki.html?material_type='+type+'&material_id='+id+'&vote='+vote, 'ajax-gwiazdki' );
	}
}


var Engine = {
	init: function() {
		this.menu();
		this.photoSlider();
		this.photoSliderA();
		this.news();
		this.events();
		this.board();
		this.boardsearch();
	},
	
	menu: function() {
		$('ul.menu > li.menu-li').hover(function() {
			$(this).find('div.drop').show();
		}, function() {
			$(this).find('div.drop').hide();
		});
		
		$('ul.footer-menu > li.footer-li').hover(function() {
			$(this).find('div.drop-f').show();
		}, function() {
			$(this).find('div.drop-f').hide();
		});
	},
	
	photoSliderA: function() {
		$('div.photo-slider-inner a').hover(function() {
			$(this).find('span').stop().animate({
				bottom: '0'
			}, 800, 'easeOutElastic');
		}, function() {
			$(this).find('span').stop().animate({
				bottom: '-127px'
			}, 800, 'easeOutCirc');
		});
	},
	
	photoSlider: function() {
		var base = $('div.glowna-slider');
		var $handler = base.find('div.photo-slider');
		var $inner = $handler.find('div.photo-slider-inner');
		var count = $handler.find('a').length;
		
		var elem_width = 195;
		
		// prepare
		var three = $handler.find('a').clone();
		$inner.find('a:first').before(three);
		$inner.css('left', elem_width*count*(-1));
		
		count = $handler.find('a').length;
		
		// set width
		$inner.css('width', elem_width * count);
		
		var $nav = base.find('div.slider-nav');
		$nav.find('a.s-left').click(function(e) {
			e.preventDefault();
			slide(this, 'right');
		});
		
		$nav.find('a.s-right').click(function(e) {
			e.preventDefault();
			slide(this, 'left', 'undefined');
		});
		
		var current_left = parseInt($inner.css('left'));
		
		var slide = function(contex, direct, dest) {
			var val;

			if (direct == 'left') {
				val = current_left - elem_width*3;
			} else {
				val = current_left + elem_width*3;
			}
			
			$inner.stop(false, true).animate({
				left: val
			}, 800, 'easeOutExpo', function() {		
				current_left = parseInt($inner.css('left'));	
					
				if (direct == 'right') {
					$inner.find('a:first').before($inner.find('a:gt('+ (count - 4) +')'));
					$inner.css('left', current_left - 3 *elem_width);
				} else {
					$inner.find('a:last').after($inner.find('a:lt(3)'));
					$inner.css('left', current_left + 3 * elem_width);
				}
				
				current_left = parseInt($inner.css('left'));
			});
		}
	},

    news: function() {
    	var $handler = $('p#archive_years'),
    	showNews = function(type) {
    	    var year = this.id.replace('a_', '');
			if($(this).hasClass("wsk")){
				var $box = $('.'+year);
			} else {
				var $box = $('#'+year);
			}
    		if (!$box.is(':visible')) {
    		    if (type === "select") {
    		        $('table.lista-realizacji:visible').hide();
    		        $box.show();
		        } else {
    			    $('div.archive-listing-wrapper:visible').slideUp('slow');
    			    $box.slideDown('slow');
			    }
    		}
    	};
	
    	$handler.find('a').click(function(e) {
    		e.preventDefault();
    		showNews.call(this);
    	})
    	$("select#archive_years").change(function() {
    	    showNews.call($(this).find(":selected").get(0), "select");
    	});
    	
    	$("select#archive_years option").click(function() {
    	    $(this).parent().trigger("change");
    	});
    	
    },
    
    events: function() {
        $(".guziki2 a").click(function(e) {
            
            e.preventDefault();
            if (!$(this).hasClass("active-b")) {
                var tab = $(this).parent().attr("class").replace(/-b/, "");
                
                $(".listing-cnt:visible").slideUp("slow");
                $("#"+tab).slideDown("slow");  
                          
                $(".guziki2 a.active-b").removeClass("active-b");
                $(this).addClass("active-b");
                
                $("#year_"+ $("#" + tab).find("#archive_years").val()).show();
            }
        });
    },
    
    board: function() {
        $(".ofirmie-zarzad .zwijacz").click(function(e) {
            e.preventDefault();
            
            if (!$(this).hasClass("rozwiniete-a")) {
                $(".rozwiniete-a").removeClass("rozwiniete-a");
                $(this).addClass("rozwiniete-a");
                
                $(".user-opis-large:visible").slideUp("slow");
                $(".user-opis-small:visible").slideUp("slow");
            
                if ($(this).hasClass("medium-ico")) {
                    $(this).parents(".user-line-2").next().slideDown("slow");
                } else {
                    $(this).parents(".user-line").next().slideDown("slow");
                }
            } else {
                $(this).removeClass("rozwiniete-a");
                $(".user-opis-large:visible").slideUp("slow");
                $(".user-opis-small:visible").slideUp("slow");
            }
        });
    },

	 boardsearch: function() {
        $(".search-container .search-result").click(function(e) {
            e.preventDefault();
            
            if (!$(this).children(".zwijacz").hasClass("rozwiniete-a")) {
                $(".rozwiniete-a").removeClass("rozwiniete-a");
                $(this).children(".zwijacz").addClass("rozwiniete-a");
                
                $(".results:visible").slideUp("slow");
				 $(this).next().slideDown("slow");
            
           
            } else {
                $(this).children(".zwijacz").removeClass("rozwiniete-a");
                $(".results:visible").slideUp("slow");
              
            }
        });
    }

};

function hideInfo(){
	$(".info").fadeOut(600);
}

function newsletterSubmit(){
	var email = $("#newsletter-email").val();
	if (isValidEmail(email) == false){
		alert("Musisz podać właściwy e-mail");
		return false;
	}
	$('#newsletter-form').submit();
	return true;
}

function hideDefault(){
	$(".hideDefault").focus(function() {
		var zmienna = $(this).attr("title");
		if ($(this).val() == zmienna){
			$(this).val('');
		}
	});
	$(".hideDefault").blur(function() {
		var zmienna = $(this).attr("title");
		if ($(this).val() == ''){
			$(this).val(zmienna);
		}
	});
}

function moveDzialalnosc(){
	$(".dzialalnosc a").click(function() {
		$(".dzialalnosc").removeClass("aktywny-m");
		var acId = $(this).attr("rel");
		$("#"+acId).addClass("aktywny-m");
		$(".right-list").hide();
		$("#"+acId+"-desc").show();
		return false;
	});
}

// Slider
var topOpcja = 0;

function wyswietlTopChanger() {
	changeTop();
}
var topIlosc=0;
function changeTop(opcja){
	
	if (opcja == -1){
		if (topOpcja == 0){
			opcja = topIlosc;
		} else {
			opcja = topOpcja-1;
		}
	}
	if( typeof( opcja ) == "undefined" ) {
		opcja = topOpcja+1;
		if( opcja > topIlosc ) {
			opcja = 0;
		}
	} 
	topOpcja = opcja;
	$(".guziki a").removeClass('act-g');
	$("#guzik_"+topOpcja).addClass('act-g');
	$(".special-link-a:visible").fadeOut('400');
	$(".top-slider .orange-slider:visible").fadeOut('400');
	$(".main-bg:visible").fadeOut('400');
	$("#link-bg_"+topOpcja).fadeIn('400');
	$("#top-slider_"+topOpcja).fadeIn('400');
	$("#main-bg_"+topOpcja).fadeIn('400');
}

// end Slider

jQuery(document).ready(function($) {
	Engine.init();
	hideDefault();
	moveDzialalnosc();
	zakresDzialalnosciWysokosci();
	setTimeout("hideInfo()", 2000);
	
	Cufon.replace($('.cufon-1'), {
		hover: true,
		fontFamily: 'roman' 
	});
	Cufon.now();

	$('.menu').show();
	setInterval( "wyswietlTopChanger()", "5000" );
	
	$('.wideo a').fancybox({
		type: 'ajax',
		autoDimensions: false,
		autoScale: false,
		scrolling: 'no',
		width: 520,
		height: 330,
		onComplete: function() {
			flowplayer("player", "/lib/flowplayer/flowplayer-3.2.4.swf");
		}
	});
	$('.wideo-list a').fancybox({
		type: 'ajax',
		autoDimensions: false,
		autoScale: false,
		scrolling: 'no',
		width: 520,
		height: 330,
		onComplete: function() {
			flowplayer("player", "/lib/flowplayer/flowplayer-3.2.4.swf");
		}
	});
});


