/**
 * Skrypty JS uzywane na stronie
 */
$(document).ready(function() {
	if ($('.galleryBrowser a').length)
		$('.galleryBrowser a').lightBox();

	if ($('.tabs').length)
		$('.tabs').tabs();

	if ($('.lightbox').length)
		$('.lightbox').lightBox();

	if ($('.accordion').length)
	{
		$( ".accordion" ).accordion({
			autoHeight: false,
			navigation: true,
			animated: 'slide(slow)'
		});
	}

	$('#dmenu_top > li').bind('mouseover', dmenu_top_open);
	$('#dmenu_top > li').bind('mouseout',  dmenu_top_timer);

});

var timeout         = 300;
var closetimer      = 0;
var ddmenuitem      = 0;

function dmenu_top_open()
{
	dmenu_top_canceltimer();
	dmenu_top_close();
	ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');
}

function dmenu_top_close()
{
	if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
}

function dmenu_top_timer()
{
	closetimer = window.setTimeout(dmenu_top_close, timeout);
}

function dmenu_top_canceltimer()
{
	if(closetimer)

	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

/**
 * <b>changeSizeText</b>
 * Metoda zwiekszajaca lub zmniejszajaca wielkosc czcionki w zaleznosci
 * od zmiennej type: 'up' - zwieksza, 'down' - zmniejsza
 *
 * @param string target Id elementu powiekszanego
 * @param string type	Rodzaj operacji
 */
function changeSizeText(target, size)
{
	if (!document.getElementById)
		return;

	var Element=null;

	Element = document.getElementById(target);
	if (size){
		defaultSize = size;
	} else {
		defaultSize = 11;
	}
	Element.style.fontSize = defaultSize + 'px';
	Element.className = 'resize-text-block';
}//~ changeSizeText()

/**
 * <b>printText</b>
 * Metoda zwiekszajaca lub zmniejszajaca wielkosc czcionki w zaleznosci
 * od zmiennej type: 'up' - zwieksza, 'down' - zmniejsza
 */
function printText(target, titleBlock, style)
{
	var div = document.getElementById(target), okno, htmlPop;
	var title = titleBlock;
	okno = window.open("", "nowe", "toolbar=0, location=0, resizable=1, directories=0, status=1, menubar=1, scrollbars=1, height=800, width=700, top=80, left=350");

	var html = div.innerHTML;

	htmlPop = '<html><head><meta http-equiv="Content-type" content="text/html; charset=UTF-8" /><title>'+title+'</title><style type="text/css">'+ decodeBase64(style)+'</style></head><body><h1>'+title+'</h1><br />'+html+'<!--<div><a href="javascript:window.print();" title="Drukuj">Drukuj</a></div>--></body></html>';

	okno.document.write(htmlPop);
	okno.focus();
	okno.print();
	//	okno.close();
	return true;
}//~ printText()

var END_OF_INPUT = -1;

var base64Chars = new Array(
	'A','B','C','D','E','F','G','H',
	'I','J','K','L','M','N','O','P',
	'Q','R','S','T','U','V','W','X',
	'Y','Z','a','b','c','d','e','f',
	'g','h','i','j','k','l','m','n',
	'o','p','q','r','s','t','u','v',
	'w','x','y','z','0','1','2','3',
	'4','5','6','7','8','9','+','/'
	);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
	reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
	base64Str = str;
	base64Count = 0;
}
function readBase64(){
	if (!base64Str) return END_OF_INPUT;
	if (base64Count >= base64Str.length) return END_OF_INPUT;
	var c = base64Str.charCodeAt(base64Count) & 0xff;
	base64Count++;
	return c;
}
function encodeBase64(str){
	setBase64Str(str);
	var result = '';
	var inBuffer = new Array(3);
	var lineCount = 0;
	var done = false;
	while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
		inBuffer[1] = readBase64();
		inBuffer[2] = readBase64();
		result += (base64Chars[ inBuffer[0] >> 2 ]);
		if (inBuffer[1] != END_OF_INPUT){
			result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
			if (inBuffer[2] != END_OF_INPUT){
				result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
				result += (base64Chars [inBuffer[2] & 0x3F]);
			} else {
				result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
				result += ('=');
				done = true;
			}
		} else {
			result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
			result += ('=');
			result += ('=');
			done = true;
		}
		lineCount += 4;
		if (lineCount >= 76){
			result += ('\n');
			lineCount = 0;
		}
	}
	return result;
}
function readReverseBase64(){
	if (!base64Str) return END_OF_INPUT;
	while (true){
		if (base64Count >= base64Str.length) return END_OF_INPUT;
		var nextCharacter = base64Str.charAt(base64Count);
		base64Count++;
		if (reverseBase64Chars[nextCharacter]){
			return reverseBase64Chars[nextCharacter];
		}
		if (nextCharacter == 'A') return 0;
	}
	return END_OF_INPUT;
}

function ntos(n){
	n=n.toString(16);
	if (n.length == 1) n="0"+n;
	n="%"+n;
	return unescape(n);
}

function decodeBase64(str){
	setBase64Str(str);
	var result = "";
	var inBuffer = new Array(4);
	var done = false;
	while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
		&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
		inBuffer[2] = readReverseBase64();
		inBuffer[3] = readReverseBase64();
		result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
		if (inBuffer[2] != END_OF_INPUT){
			result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
			if (inBuffer[3] != END_OF_INPUT){
				result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
			} else {
				done = true;
			}
		} else {
			done = true;
		}
	}
	return result;
}

document.onclick = dmenu_top_close;

/**
 * Dodaje adres emailowy do newslettera
 * ajax
 * 
 * emailFormInputCSSName - css id/class dla inputa z e-mailem
 * errorFieldCSSName - css id/class dla pola z tekstem informacyjnym o bledzie
 * messageDB - css id/class dla pola z tekstem informacyjnym o dodaniu e-maila do bazy newslettera
 * @return
 */
function DodajDoNewslettera( emailFormInputCSSName, errorFieldCSSName, messageDB )
{
	// na dziendobry zawsze trzeba pola wyczyscic
	$(errorFieldCSSName).css('display','none');
	$(messageDB).css('display','none');

	if( $(emailFormInputCSSName).attr("value") == '')
	{
		// nie wpisany adres e-mail
		$(errorFieldCSSName).css('display','block');
	} 
	if( ValidMail( $(emailFormInputCSSName).attr("value")  ) == false) 
	{
		// niepoprawnie wpisany adres e-mail
		$(errorFieldCSSName).css('display','block');
	}
	else
	{
		$(errorFieldCSSName).css('display','none');
		//$(messageDB).css('display','none');
		$(messageDB).css('display','block');
		$(messageDB).html('<img src="templates_s/images/loading.gif" border="0">');
		
		$.ajax({
			type: "POST",
			url: "ajax/addEmailToNewsletter",
			data: "subscribe_adress="+ $(emailFormInputCSSName).attr("value"),

			success: function(msg)
			{
				$(messageDB).html(msg);	
			}
			 
		});
	}	 

	return false;
}

function ValidMail(emailFormInputName)
{
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+.)+[a-zA-Z0-9.-]{2,4}$/; 

	if ( regex.test( emailFormInputName )==false ) 
	{
	   return false;
	} 
	else
	{
	 return true;
	} 

}	
