/**
 * Glowny plik skryptow js dla instancji
 *
 * @package		Navalha
 * @author		Pawel Rekowski <pawel.rekowski@digate.pl>
 * @copyright	(c) 2011 Digate Interactive
 * @version		1.0
 */
	$(document).ready(function() {

	    /* rozpoznajemy czy user korzysta z iphone-a */
	    var agent=navigator.userAgent.toLowerCase();
	    //$('#print_content').html(agent);
	    var is_iphone = ((agent.indexOf('iphone')!=-1));
	    if (is_iphone) {}
	    else
	    {
		//$('.salony_wojewodztwo').css('display','none');
	    }

		$(".news h3").click(function(){
			$(this).prev("div.desc").slideToggle("medium")
			.siblings("div.desc:visible").slideUp("fast");
			$(this).toggleClass("active");
			$(this).siblings("h3").removeClass("active");
		});

		$(".galleryBrowser a").fancybox();
		$("#gallery li a").fancybox();
		$(".gallery a").fancybox();
		$("a[rel=stylizations_gallery]").fancybox();

		 $("a[rel=kolekcja]").fancybox({
			'transitionIn'		   : 'elastic',
			'transitionOut'		   : 'elastic',
			'titlePosition' 	   : 'over',
			'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
				return '<span id="fancybox-title-over">Zdjęcie ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
			}
		});


	});



/**
 * zwieksza lub zmniejsza rozmiar czcionki dla danego obiektu
 */
var defaultSize = 12;

/**
 * <b>resizeText</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 resizeText(target, type)
//{
//    if (!document.getElementById)
//		return;
//
//        var Element=null;
//
//        Element = document.getElementById(target);
//        if (Element!=null){
//            if (type=='up') {
//                defaultSize++;
//            } else if (type=='down') {
//                 defaultSize--;
//            } else {
//                defaultSize = 12;
//            }
//        }
//        Element.style.fontSize = defaultSize + 'px';
//        //Element.className = 'resize-text-block';
//        $(Element).addClass('resize-text-block');
//}//~ resizeText()
function resizeText(target, type)
{

        var Element=null;

	Element = $(target);

        if (Element!=null){
            if (type=='up') {
                defaultSize++;
            } else if (type=='down') {
                 defaultSize--;
            } else {
                defaultSize = 12;
            }
        }
        $(target).css( 'font-size', defaultSize + 'px' );
        //Element.className = 'resize-text-block';
        $(target).addClass('resize-text-block');
}//~ resizeText()

/**
 * <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 = document.getElementById(titleBlock).innerHTML;
	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>';

        turnOffDivs();

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


    var aDivsToTurnOff = [ '.det', '.notice', '.visible' ];

/**
 * wylacza wyswietlanie divow na wydruku
 */
function turnOffDivs()
{
    jQuery.each(aDivsToTurnOff, function() {
          $(''+this+'').css('visibility','hidden');
        });

}
/**
 * wlacza wyswietlanie divow
 */
function turnOnDivs()
{
    jQuery.each(aDivsToTurnOff, function() {
          $(''+this+'').css('visibility','visible');
        });

}

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;
}

/**
 * dodaje maila do newslettera
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function addToNewsletter()
{
    // preloader
     $('#newsletter_info').html('<img src="'+ URL_BASE +'templates_s/images/loading.gif" border="0" style="margin-left: 15px;" >');

     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/addToNewsletter",
       data: "email-form=" + $('#email-form').attr('value'),
       success: function(msg){
         $('#newsletter_info').html(msg);
       }
     });

    return false;
}

/**
 * wyszukiwarka produktow
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function productsSearch()
{
    // preloader
     $('.middle').html('<img src="'+ URL_BASE +'templates_s/images/loading.gif" border="0" style="margin-left: 270px; margin-top: 200px;" >');

     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/productsSearch/get",
       data: "search-form=" + $('#search-form').attr('value'),
       success: function(msg){
        $('.middle').html(msg);
       }
     });

    return false;
}


/**
 * dodaje towar do koszyka
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function addToBasket(id)
{
    // pobieramy templatke do forma
     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/koszyk/modal",
       data: "product_id=" + id + "&amount=" + $('#qn'+id).attr('value'),
       success: function(msg){
         $('#basket-dialog-form').html(msg);
       }
     });

    // otwieramy modal form
    $( "#basket-dialog-form" ).dialog( "open" );


    // todo
    var size = 0;

    // preloader
    // todo : dac na cala strone
//     $('.right-col').html('<img src="'+ URL_BASE +'templates_s/images/loading.gif" border="0" style="margin: 10px 0 0 5px;" >');
//
//     $.ajax({
//       type: "POST",
//       url: URL_NAVALHA+"/basket/add",
//       data: "product_id=" + id + "&amount=" + $('#qn'+id).attr('value') + "&size" + size,
//       success: function(msg){
//         $('.right-col').html(msg);
//       }
//     });

    return false;
}

/**
 * aktualizuje koszyk
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function refreshTheBasket()
{
    var serializedQns = $('.qn').serializeArray();

    $('#act_refresh_preloader').html('<img src="'+ URL_BASE +'templates_s/images/loading.gif" border="0" style="" >');

    // pobieramy templatke do forma
     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/koszyk/aktualizuj",
       data: serializedQns,
       success: function(msg){
         $('.middle').html(msg);
	 $('#act_refresh_preloader').html();

	 refreshTheCartView();
       }
     });

    return false;
}

/**
 * odswieza widok koszyka
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function refreshTheCartView()
{
     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/koszyk/odswiez",
       success: function(msg){
	 $('.right-col').html(msg);
       }
     });

    return false;
}


/**
 * usuwa towar z koszyka
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function removeFromBasket(id)
{
    // pobieramy templatke do forma
     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/koszyk/usun",
       data: "product_id=" + id,
       success: function(msg){
         $('.middle').html(msg);

         $('.quan').html('');

	 refreshTheCartView();
       }
     });

    return false;
}

/**
 * usuwa wszystkie towary z koszyka
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function cleanTheBasket()
{
    // pobieramy templatke do forma
     $.ajax({
       type: "POST",
       url: URL_NAVALHA+"/koszyk/wyczysc",
       success: function(msg){
         $('.middle').html(msg);
         $('.quan').html('');

	 refreshTheCartView();
       }
     });

    return false;
}

/**
 * uzytkownik sklada zamowienie
 * @author Tomek Bielawa <tomek.bielawa@digate.pl> \\//
 */
function orderNow()
{

    if( orderFromValidation() == true)
    {
        // pobieramy templatke do forma
         $.ajax({
           type: "POST",
           url: URL_NAVALHA+"/koszyk/zloz_zamowienie",
           data: "delivery_id=" + $('#delivery_id').val()+"&payment_id="+$('#payment_id').val()
               +"&client_name="+$('#client_name').val()
               +"&client_street="+$('#client_street').val()
               +"&client_city="+$('#client_city').val()
               +"&client_postcode="+$('#client_postcode').val()
               +"&client_postoffice="+$('#client_postoffice').val()
               +"&client_email="+$('#client_email').val()
               +"&client_phone="+$('#client_phone').val(),

           success: function(msg){
            $('.middle').html(msg);
            $('.quan').html('');
           }
         });
    }

    return false;
}

/**
 * walidacja formularza zamowienia
 * @author     Tomek Bielawa <tomek.bielawa@digate.pl>
 *
 */
function orderFromValidation()
{
    bError = 0;

    var arr = [ "client_name", "client_street", "client_city", "client_postcode", "client_postoffice", "client_email", "client_phone" ];

    jQuery.each(arr, function() {
    //jQuery.each( $('#orderForm'), function() {
      if($("#" + this).val()=='')
      {
          $("#" + this + "_box .err").removeClass('hidden');
	  $("#" + this + "_box .err").slideDown(400);
          bError++;
      }
      else
      {
          $("#" + this + "_box .err").addClass('hidden');
      }

    });

      if( email_validate($("#client_email").val()) == false)
      {
          $("#client_email_box .err").removeClass('hidden');
	  $("#client_email_box .err").slideDown(400);
          bError++;
      }
      else
      {
          //$("#client_email_box .err").addClass('hidden');
      }

      if( bError > 0){
          return false;
      }
      else {
          return true;
      }
}


/**
 * funkcja umozliwia wpisywanie w kontrolkach jedynie znakow zmiennoprzecinkowych (waluta)
 * @author     Tomek Bielawa <tomek.bielawa@digate.pl>
 *
 * przyklad zastosowania:
 * <input type="text" name="xx" id="cos" onKeyPress="return onlyFloat(event)">
 */
function onlyFloat(event)
{
    if (event.srcElement) {kc = event.keyCode;} else {kc = event.which;}
    if ((kc < 46 || kc > 57) && kc != 8 && kc != 0) return false;
    return true;
}


/**
 * funkcja umozliwia wpisywanie w kontrolkach jedynie znakow integer
 * @author     Tomek Bielawa <tomek.bielawa@digate.pl>
 *
 * przyklad zastosowania:
 * <input type="text" name="xx" id="cos" onKeyPress="return onlyInt(event)">
 */
function onlyInt(event)
{
    if (event.srcElement) {kc = event.keyCode;} else {kc = event.which;}
    if ((kc < 47 || kc > 57) && kc != 8 && kc != 0) return false;
    return true;
}

function email_validate(src)
{
  var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
  return regex.test(src);
}

function toggleClientType()
{
	if (document.getElementById('client_type'))
	{
		var type = document.getElementById('client_type').value;

		switch (type)
		{
			case 'osoba fizyczna':
			{
				document.getElementById('company_client').style.display = 'none';

				break;
			};

			case 'firma':
			{
				document.getElementById('company_client').style.display = 'block';

				break;
			};
		}
	}
}


function ChangeFontSize(target,fSize, FLH, fSizeH1)
{
        if (!document.getElementById)
		return;
        var d = document,Element=null;
        Element = d.getElementById(target);
        if (Element!=null)
		Element.style.fontSize   = fSize;

        $( target ).css('line-height',FLH);
        $( target ).css('font-size',fSize);

        $( '.tablesorter' ).css('font-size',fSize);

        $( target + ' p').css('line-height:',FLH);
        $( target + ' p, span').css('font-size',fSize);
        $( target + ' p').css('line-height:',FLH);

        $( target + ' p > ul').css('line-height',FLH);
        $( target + ' p > ul').css('font-size',fSize + ' !important');

        $( target + ' a').css('line-height',FLH);
        $( target + ' a').css('font-size',fSize);

	$( target + ' .news').css('line-height',FLH);

        $( target + ' h1').css('font-size',fSizeH1);
	$( target + ' h2').css('font-size',fSize);

        $('body.sub-page #content .main p').css('line-height',FLH);

        $('#footer .right').css('font-size','9px');


        if(fSize == '12px')
        {
            $('.prod-box').css('line-height','15px');
        }

}


function showSalon(Woj)
{
    $('.salony_wojewodztwo').css('display','none');
    $('.salony_wojewodztwo_brak').css('display','none');

	if( typeof( $(".salony_wojewodztwo[id='"+ Woj +"']").attr("id")) == 'undefined')
	{
	    $('.salony_wojewodztwo_brak').css('display','block');
	}
	else
	{
	    $("#"+Woj).css('display', 'block');
	}
}

