var azTlds = ",skoczow.pl,sanok.pl,klodzko.pl,kartuzy.pl,edu.pl,bedzin.pl,org.hn,gd,pomorze.pl,fm,fr,co.il,co.in,ketrzyn.pl,waw.pl,lowicz.pl,ostroleka.pl,ws,olecko.pl,biz,auto.pl,co.za,co.hu,gl,net.vc,org.in,nom.es,org.il,sosnowiec.pl,stalowa-wola.pl,wolomin.pl,turek.pl,gs,swiebodzin.pl,agro.pl,vg,tychy.pl,vu,slupsk.pl,net,grajewo.pl,de,com.hn,zagan.pl,konskowola.pl,dk,naklo.pl,vc,eu,mazury.pl,rawa-maz.pl,org.es,biz.pl,czeladz.pl,us,pisz.pl,jelenia-gora.pl,ilawa.pl,tw,tv,cieszyn.pl,wloclawek.pl,opoczno.pl,es,net.in,to,glogow.pl,kolobrzeg.pl,tm,tl,com,bz,net.pl,by,co.uk,starachowice.pl,tk,szczecin.pl,tc,com.fr,st,pc.pl,mazowsze.pl,be,org.mu,org.mt,kalisz.pl,cz,kepno.pl,sc,cx,warszawa.pl,se,sh,olsztyn.pl,idv.tw,sg,wegrow.pl,jaworzno.pl,olawa.pl,co,cm,mail.pl,eu.com,dlugoleka.pl,lebork.pl,suwalki.pl,ch,ru,cc,podlasie.pl,net.nf,zachpomor.pl,lomza.pl,mil.pl,lukow.pl,com.vc,asia,kazimierz-dolny.pl,bieszczady.pl,net.nz,net.sc,org.ag,bytom.pl,ostroda.pl,wroclaw.pl,jgora.pl,at,travel.pl,warmia.pl,as,mielno.pl,nieruchomosci.pl,com.es,katowice.pl,am,podhale.pl,com.ua,bialystok.pl,ac,swidnica.pl,net.mu,ag,swinoujscie.pl,com.tw,shop.pl,nu,ostrowwlkp.pl,nom.pl,turystyka.pl,walbrzych.pl,com.sc,beskidy.pl,com.ag,org.pl,zgorzelec.pl,malopolska.pl,info,az.pl,rel.pl,lubin.pl,co.at,augustow.pl,rybnik.pl,gmina.pl,pila.pl,nowaruda.pl,szczytno.pl,elblag.pl,com.sg,pl,malbork.pl,olkusz.pl,ph,com.pt,pulawy.pl,pruszkow.pl,co.nz,lv,mragowo.pl,lt,org,zgora.pl,sklep.pl,polkowice.pl,or.at,com.ph,md,org.nz,com.pl,konin.pl,bydgoszcz.pl,kutno.pl,mn,zarow.pl,ms,mu,wielun.pl,net.ag,stargard.pl,prochowice.pl,pomorskie.pl,boleslawiec.pl,nf,limanowa.pl,elk.pl,nl,realestate.pl,net.hn,tel,nysa.pl,jp,mobi,wlocl.pl,tarnobrzeg.pl,org.tw,babia-gora.pl,kaszuby.pl,kobierzyce.pl,com.nf,atm.pl,org.uk,kz,gniezno.pl,radom.pl,tourism.pl,sejny.pl,li,miasta.pl,org.vc,la,ostrowiec.pl,mielec.pl,rzeszow.pl,bielawa.pl,priv.pl,opole.pl,hn,gsm.pl,lezajsk.pl,com.lv,slask.pl,przeworsk.pl,legnica.pl,targi.pl,org.sc,ustka.pl,karpacz.pl,info.pl,it,sos.pl,wodzislaw.pl,gorlice.pl,bialowieza.pl,im,tgory.pl,in,czest.pl,io,com.mt,me.uk,com.mu,je,lapy.pl,tm.pl,sex.pl,media.pl,aid.pl,";

jQuery.fn.center = function(left, top) {
	if (left == undefined) {
		left = 0;
	}
	if (top == undefined) {
		top = 0;
	}

	this.css("position", "absolute");
	this.css("top", ($(window).height() - this.height()) / 2
			+ $(window).scrollTop() + top + "px");
	this.css("left", ($(window).width() - this.width()) / 2
			+ $(window).scrollLeft() + left + "px");
	return this;
}

jQuery.fn.centerInParent = function(left, top) {
	if (left == undefined) {
		left = 0;
	}
	if (top == undefined) {
		top = 0;
	}

	var p = this.parent();

	this.css("position", "absolute");
	this.css("top", ($(window).height() - this.height()) / 2
			+ $(window).scrollTop() + top + "px");
	this.css("left", (p.width() - this.width()) / 2 + $(window).scrollLeft()
			+ left + "px");
	return this;
}

// update koszyka
function checkoutRefreshBasketCount() {
	var c = $('tbody.services tr').size();
	setBasketCount(c);
}


function setBasketCount(c) {
	var str = c;
	if( c==0 ){
		str = "(Pusty)";
	}
	$('#boxBasket p a').html(str);
}

/*
 * 
 * 
 * Hasło słabe - dowolna ilość znaków i hasło składa się albo z samych liter
 * albo z samych cyfr - pokazujemy czerwonym kolorem
 * 
 * Hasło silne - minimum 8 znaków i w haśle minimum jedna duża litera i minimum
 * jedna cyfra - pokazujemy kolorem zielonym
 * 
 * Hasło średnie - minimum 8 znaków i wszystko pomiędzy hasłem słabym i silnym (
 * czyli np. hasło z 10 znakami zawierające 1 cyfrę i nie zawierające dużej
 * litery) - pokazujemy kolorem żółtym
 */
function checkPasswordStr(e) {
	var t = $(this);
	var v = t.val();
	
	var str = 0;

	var chAllLettersLower = true;
	var chAllLettersUpper = true;
	var chAllNumbers = true;

	var hasLetterUpper = false;
	var hasLetterLower = false;
	var hasNumber = false;
	var hasOther = false;

	var i = 0;
	var ch = '';
	while (i < v.length) {
		ch = v.charAt(i);
		//alert( ch );
		if (isNumber(ch)) {
			hasNumber = true;
			chAllLettersUpper = false;
			chAllLettersLower = false;
		} else {
			chAllNumbers = false;
			if( isLetter(ch) ){
				if (ch == ch.toUpperCase()) {
					// upper
					chAllLettersLower = false;
					 hasLetterUpper = true;
				}
				if (ch == ch.toLowerCase()) {
					// lower
					chAllLettersUpper = false;
					hasLetterLower = true;
				}
			}else	{
				hasOther = true;
			}
		}
		i++;
	}
		
	if (chAllLettersLower || chAllLettersUpper || chAllNumbers) {
		str = v.length;
	}else if( v.length<8 ){
		str = 20+v.length;
	}else	{
		if( hasNumber && (hasLetterUpper || hasOther) )	{
			str = 100+v.length;
		}else	{
			str = 50+v.length;	
		}
	}

	if( str>100 ){
		str = 100;
	}
	
	// TODO wyswietl sile hasla
	$("div[id^='id_passBox_']").removeClass('passBoxRed passBoxYellow passBoxGreen passBoxNone');
	$("div[id^='id_passBox_']").addClass('passBoxNone');
	if( str<33 ){
		$("div[id^='id_passBox_1']").removeClass('passBoxNone').addClass('passBoxRed');
		$("div[id^='id_passBox_2']").removeClass('passBoxNone').addClass('passBoxRed');
		//$("div[id^='id_passBox_3']").removeClass('passBoxNone').addClass('passBoxRed');
	}else if( str < 66 ){
		$("div[id^='id_passBox_1']").removeClass('passBoxNone').addClass('passBoxYellow');
		$("div[id^='id_passBox_2']").removeClass('passBoxNone').addClass('passBoxYellow');
		$("div[id^='id_passBox_3']").removeClass('passBoxNone').addClass('passBoxYellow');
		$("div[id^='id_passBox_4']").removeClass('passBoxNone').addClass('passBoxYellow');
		$("div[id^='id_passBox_5']").removeClass('passBoxNone').addClass('passBoxYellow');
	}else		{
		$("div[id^='id_passBox_']").removeClass('passBoxNone').addClass('passBoxGreen');
	}
	//$('#id_pass_str').html(str);
	
	return str;
}

function isLetter(c) {
	var check = /[a-zA-Z]/;
	return check.test(c);
}

function isNumber(c) {
	var check = /[0-9]/;
	return check.test(c);
}


function hideBoxInfoAlert(){
	$( '#boxInfoAlert' ).fadeOut();
}

function showBoxInfoAlert( title, content, timeout ){
	//pobierz zaznaczenie checkboxow
	var box = $( '#boxInfoAlert' );

	$( '#boxInfoAlert h2' ).html(title);
	$( '#boxInfoAlert div' ).html(content);
	
	box.centerInParent().show();
	$( '#boxInfoAlert li.close' ).click( hideBoxInfoAlert );
	setTimeout( hideBoxInfoAlert, timeout );
}

function isBasketEmpty()	{
	var count = jQuery.trim($("#id_basket_count").html());
	if( '(Pusty)'==count )	{
		return true;
	}
	return false;
}



function newWin(url)
{
  window.open(url);
}

function checkDomainSearchForm(form){
	var domena= $(form).find("[name='name']").eq(0).val();
	var text='Wprowadziłeś niepoprawną nazwę domeny. Domena nie może zaczynać się ani kończyć znakiem \"-\" oraz nie może zawierać spacji.\nJeśli zainteresowany jesteś np. domeną \"twojwybor.com.pl\" wpisz \"twojwybor\" w pole wyszukiwania i wybierz \".com.pl\" z listy rozrzerzeń.\nMożesz także wpisać całą nazwę \"twojwybor.com.pl\" w pole wyszukiwania i kliknąć \"Sprawdź dostępność\".';
     
    //jesli wpisany tekst jest domena to waliduj dodatkowo tld
    var tldFromName = "";
    var nameFromName = domena;
    var idx = domena.indexOf(".");
    if( idx!=-1 ){
    	nameFromName = domena.substring(0,idx);
    	tldFromName = domena.substring(idx+1,domena.length);
    	if( azTlds.indexOf(","+tldFromName+",")==-1 ){
    		alert('Został wpisany nieobsługiwany typ domeny: \"'+tldFromName+'\".\nSprawdź w cenniku listę obsługiwanych domen.');
    		form.name.focus();
    		return false;
    	}
    	domena = nameFromName;
    }
        
	var first=domena.substring(0,1);
	var last=domena.substring(domena.length-1,domena.length);
	if (domena == "" || first=="-" || last=="-" ||first=="." || domena.indexOf("--")!=-1 || domena.length>63){
		alert(text);
		form.name.focus();
	   	return false;
	}
        
    if (domena.substring(0,4)=="xn--") {
        alert("Domeny IDN proszę sprawdzić na podstronie dot. domen IDN.");
	   	return false;
     }        
        
	for(i=0;i<domena.length;i++){
		var znak = domena.substring(i,i+1);
		if (znak=="-" || znak!="." && ( (znak>="0" && znak<="9") || (znak>="a" && znak<="z") || (znak>="A" && znak<="Z") )) {}
		else {
			alert(text);
			form.name.focus();
			return false;
		}
	}
}

function checkDomainSearchFormIDN(form){
	var domena= $(form).find("[name='name']").eq(0).val();
	var tld= $(form).find("[name='tld']").eq(0).val();
	var text='Wprowadziłeś niepoprawną nazwę domeny. Domena nie może zaczynać się ani kończyć znakiem \"-\" oraz nie może zawierać spacji.\nJeśli zainteresowany jesteś np. domeną \"twojwybor.com.pl\" wpisz \"twojwybor\" w pole wyszukiwania i wybierz \".com.pl\" z listy rozrzerzeń.\nMożesz także wpisać całą nazwę \"twojwybor.com.pl\" w pole wyszukiwania i kliknąć \"Sprawdź dostępność\".';
	
    //jesli wpisany tekst jest domena to waliduj dodatkowo tld
    var tldFromName = "";
    var nameFromName = domena;
    var idx = domena.indexOf(".");
    if( idx!=-1 ){
    	nameFromName = domena.substring(0,idx);
    	tldFromName = domena.substring(idx+1,domena.length);
    	if( azTlds.indexOf(","+tldFromName+",")==-1 ){
    		alert('Został wpisany nieobsługiwany typ domeny: \"'+tldFromName+'\".\nSprawdź w cenniku listę obsługiwanych domen.');
    		form.name.focus();
    		return false;
    	}
    	domena = nameFromName;
    }
        
	var first=domena.substring(0,1);
	var last=domena.substring(domena.length-1,domena.length);
	if (domena == "" || first=="-" || last=="-"||first=="." || domena.indexOf("--")!=-1 || domena.length>63){
		alert(text);
		form.name.focus();
	   	return false;
	}
        
    if (domena.substring(0,4)=="xn--") {
        alert("Domeny IDN proszę sprawdzić na podstronie dot. domen IDN.");
	   	return false;
     }        
    
    var idn = 'ąćęłńóśźżĄĆĘŁŃÓŚŹŻ';
    var wasIdn = false;
    var tldNotIdn = !isIdnTld(tld);
    
	for(i=0;i<domena.length;i++){
		var znak = domena.substring(i,i+1);
		
		wasIdn = (idn.indexOf(znak)>=0);
		
		if (znak=="-" || znak!="." && ( (znak>="0" && znak<="9") || (znak>="a" && znak<="z") || (znak>="A" && znak<="Z") || wasIdn )) {}
		else {
			alert(text);
			form.name.focus();
			return false;
		}
		
		if( wasIdn && tldNotIdn ){
			alert('Brak możliwości rejestracji domen narodowych dla wybranego typu domeny. Wpisz inną nazwę domeny albo wybierz typ domeny dla którego znaki narodowe są dozwolone.');
		}
	}
}

function isIdnTld( tld ){
	return (tld=='pl' || tld== 'eu' || tld=='com' || tld=='net' || tld.indexOf('.pl')>=0);
}
