/* karta produktu */
function DodajDO(celdodania)
{
	var form = document.getElementById('KartaProduktu');
	var akcja = document.getElementById('form_akcja');	
	akcja.value = celdodania;
	form.submit();
}

/* koszyk */
function usunProdukt(id_produktu, akcja)
{
	findObj('akcja_koszyka').value = akcja;
	findObj('usun_produkt').value = id_produktu;
	findObj('modyfikacja_koszyka').submit();
}

function przelicz()
{
	findObj('akcja_koszyka').value = '';
	findObj('modyfikacja_koszyka').submit();
}

function zmien_platnosc()
{
	findObj('akcja_koszyka').value = '';
	var transport = findObj('koszyk_transport');
	if(transport != null) transport.value = '';
	findObj('modyfikacja_koszyka').submit();
}


/* sklep porownywarka */
function makeCompare(typ_oferty, id_uniq)
{
	var form = document.getElementById('porownaj_' + id_uniq);
	var typhidden = document.getElementById('typ_oferty_' + id_uniq);
	
	typhidden.value = typ_oferty;
	form.submit();
}

function delCompare(id_uniq, suma, komunikat)
{
	var form = document.getElementById('porownaj_' + id_uniq);
	var akcjausun = document.getElementById('por_akcja_usun_' + id_uniq);	
	var hiddenakcja = document.getElementById('usun_hidden_' + id_uniq);	
	var zaznaczone = false;
	
	for(i=0; i < suma; i++)
	{
		if(document.getElementById('prd' + id_uniq + '_' + i).checked == true)
			zaznaczone = true;
	}
	if(zaznaczone)
	{
		form.action = akcjausun.value;
		hiddenakcja.value = 'usun';
		form.submit();
	}
	else
	{
		alert(komunikat);
	}
}

/* sklep wyszukiwarka */
function sklepszukaj(id_bloku)
{
	var query = '?query=' + $('#sklepform' + id_bloku + ' input[name^=query]').val();
	
	var producent = $('#sklepform' + id_bloku + ' select option:selected').val();
    if(producent != '')
		query += '&producent=' + producent;
	
	var values = [];
	
	//var cenaod = $('#sklepform' + id_bloku + ' input[name=cenaod]').val();
	//var cenado = $('#sklepform' + id_bloku + ' input[name=cenado]').val();
	
	// if(cenaod != '' || cenado != '')
	// {
		// query += '&cena=' + cenaod.replace(',', '.') + ',' + cenado.replace(',', '.');
	// }
	
	opcjequery = [];
	var grupy = $('#sklepform' + id_bloku + ' div[rel]');
	grupy.each(function()
	{
		values = [];
		var opcje = $(this).find("input[name^=opcje]:checked");
		
		if(opcje.length > 0)
		{
			opcje.each(function()
			{
				values[values.length] = this.value;
			});
			opcjequery[opcjequery.length] = $(this).attr("rel") + '-' + values.join(',');
		}
	});
	
	if(opcjequery.length > 0)
		query += '&opcje=' + opcjequery.join(';');
	
	values = [];
	var statusy = $('#sklepform' + id_bloku + ' input[name^=status_]:checked');

	if(statusy.length > 0)
	{
		statusy.each(function()
		{
			values[values.length] = this.value;
		});
		query += '&statusy=' + values.join(',');
	}
	
	var base = $('#sklepform' + id_bloku + ' input[name=sciezka_katalog]').val();
	exp = new RegExp("\\s*"+ base +"(.+\.html)");
	value = location.href;
	
	m = value.match(exp);
	
	if(m === null)
	{
		location.href = base + query;
	}
	else
	{
		
		match = m[1].split('?');
		location.href = base + match[0] + query;
	}
}

function szukajenter(e, id_bloku)
{
	if(e.keyCode == 13)
		sklepszukaj(id_bloku);
}

function MarkOpctions(grupa)
{
	var region = document.getElementById(grupa);
	var tab = region.getElementsByTagName("input");
	
	//zaznacz pola
	for(i=0; i < tab.length; i++)
	{
		if(tab[i].getAttribute('type') == 'checkbox')
		{
			tab[i].checked = true;
		}
	}
}

function ClearOpctions(grupa)
{
	var region = document.getElementById(grupa);
	var tab = region.getElementsByTagName("input");
	
	//zeruj pola
	for(i=0; i < tab.length; i++)
	{
		if(tab[i].getAttribute('type') == 'checkbox')
		{
			tab[i].checked = false;
		}
	}
}

/* tooltip */
var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1;DH = 1;}else {if (document.all) {al = 1;DH = 1;} else {browserVersion = parseInt(navigator.appVersion);if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {an = 1;DH = 1;}}}function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi);if (al) return wS ? document.all[oi].style: document.all[oi];if (an) return document.layers[oi];}
function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
function mouseX(evt) {if (evt.pageX) return evt.pageX;else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
function mouseY(evt) {if (evt.pageY) return evt.pageY;else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
function popUp(evt,oi) {if (DH) {var wp = pw();ds = fd(oi,1);dm = fd(oi,0);st = ds.visibility;if (dm.offsetWidth) ew = dm.offsetWidth;else if (dm.clip.width) ew = dm.clip.width;if (st == "visible" || st == "show") {ds.visibility = "hidden";} else {tv = mouseY(evt) + 20;lv = mouseX(evt) - (ew/4);if (lv < 2) lv = 2;else if (lv + ew > wp) lv -= ew/2;if (!an) {lv += 'px';tv += 'px';}ds.left = lv;ds.top = tv;ds.visibility = "visible";}}}




/* Zoom Image */
(function($)
{
	function ZoomImage()
	{
	}
	
	$.extend(ZoomImage.prototype,
	{
		mouseenter : function(handler, e)
		{
			var offset = $(handler).offset();
			var width = $(handler).outerWidth();
			var height = $(handler).outerHeight();
			
			var select = $('<span id="imgzoom-select"></span>');
			
			var preview = $('<div id="imgzoom-preview"></div>');
			preview.css('left', offset.left + width);
			preview.css('top', offset.top);
			
			$(handler).append(select);
			$('body').append(preview);
		},
		
		mousemove : function(handler, e)
		{
			var preview = $('#imgzoom-preview');
			var select = $('#imgzoom-select');
			
			var left = e.pageX - select.outerWidth() / 2;
			var top = e.pageY - select.outerHeight() / 2;
			
			var image = $(handler).find('img');
			var offset = image.offset();
			
			// ograniczenie pozycji lupy w poziomie
			if (left < offset.left)
			{
				left = offset.left;
			}
			if (offset.left + image.innerWidth() < left + select.outerWidth())
			{
				left = offset.left + image.innerWidth() - select.outerWidth();
			}
			
			// ograniczenie pozycji lupy w pionie
			if (top < offset.top)
			{
				top = offset.top;
			}
			if (offset.top + image.innerHeight() < top + select.outerHeight())
			{
				top = offset.top + image.innerHeight() - select.outerHeight();
			}
			
			var positionX = ((left - offset.left) / (image.innerWidth() - select.outerWidth()) * 100);
			var positionY = ((top - offset.top) / (image.innerHeight() - select.outerHeight()) * 100);
			
			preview
				.css('background-image', 'url(' + $(handler).attr('href') + ')')
				.css('background-position', positionX + '% ' + positionY + '%')
				.css('background-repeat', 'no-repeat');
			
			select
				.css('left', left)
				.css('top', top);
		},
		
		mouseleave : function(handler, e)
		{
			$('#imgzoom-select').remove();
			$('#imgzoom-preview').remove();
		}
	});
	
	$.fn.zoomImage = function(options)
	{
		return this.each(function()
		{
			var handler = this;
			
			$(handler).css("cursor", "move");

			$(handler).click(function()
			{
				return false;
			});
			
			$(handler).bind('mouseenter', function(e)
			{
				$.zoomImage.mouseenter(handler, e);
			});
			
			$(handler).mousemove(function(e)
			{
				$.zoomImage.mousemove(handler, e);
			});
			
			$(handler).bind('mouseleave', function(e)
			{
				$.zoomImage.mouseleave(handler, e);
			});
		});
	};
	
	$.zoomImage = new ZoomImage();
	
})(jQuery); 
 
$(document).ready(function()
{
    $('.jQrwym').bind('change blur', function(){
        x = parseFloat( $('.jQrwym[name=dlugosc]').val() );
        y = parseFloat( $('.jQrwym[name=szerokosc]').val() );
        
        if( x ) $('.jQrwym[name=dlugosc]').val(x)
        if( y ) $('.jQrwym[name=szerokosc]').val(y)
        
        if( !isNaN(x) & !isNaN(y) )
        {
            $('input[name=rozmiar]').val( ( x / 100 ) * ( y / 100 ) );
        }
    });
    
    $('input[name=typ]').bind('change', function(){
        if( this.value == 0 ){
            $('.jQrwym').attr( "disabled", "disabled" );
            $('input[name=rozmiar]').removeAttr("disabled");
        }
        else if( this.value == 1 ){
            $('.jQrwym').removeAttr("disabled")
            $('input[name=rozmiar]').attr( "disabled", "disabled" );
        }
    });
    
    $('select.jQopcja').trigger('change');
});

function przeliczkoszttransportu(reset){
    var blad = false
    
    if( $('input[name="f_ulica"]').val() == '' ){
        $('input[name="f_ulica"]').addClass('errorClass');
        blad = true;
    }
    else
        $('input[name="f_ulica"]').removeClass('errorClass');

    if( $('input[name="f_nr_domu"]').val() == '' ){
        $('input[name="f_nr_domu"]').addClass('errorClass');
        blad = true;
    }
    else
        $('input[name="f_nr_domu"]').removeClass('errorClass');
    
    if( $('input[name="f_kod_pocztowy"]').val() == '' ){
        $('input[name="f_kod_pocztowy"]').addClass('errorClass');
        blad = true;
    }
    else
        $('input[name="f_kod_pocztowy"]').removeClass('errorClass');
    
    if( $('input[name="f_miejscowosc"]').val() == '' ){
        $('input[name="f_miejscowosc"]').addClass('errorClass');
        blad = true;
    }
    else
        $('input[name="f_miejscowosc"]').removeClass('errorClass');
    
    if( blad )
        return false;

    if (reset){
        $('#jQdest_lat, #jQdest_lng').val('');
    }

    findObj('akcja_koszyka').value = '';
    findObj('przelicz_koszt_transportu').value = '1';
    findObj('modyfikacja_koszyka').submit();
}

function przeliczButtonShow(el){
    id_krot =  $(el).attr('name').replace(/[^\d]/g, '') ;
    $('.jQprzelicz.prod'+id_krot).removeClass('dnone');
}

var Mapa = {
    map : '',
    marker : '',
    directionsService : '',
    directionsDisplay : '',
    geocoder: '',
    Init : function()
    {
        Mapa.directionsDisplay = new google.maps.DirectionsRenderer();
        Mapa.geocoder = new google.maps.Geocoder();
        
        var myOptions = {
            zoom: 6,
            center: new google.maps.LatLng(51.9500, 19.1000),
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            streetViewControl: false,
            scrollwheel: false,
            disableDoubleClickZoom: true
        };

        Mapa.map = new google.maps.Map(document.getElementById("google-map"),
            myOptions
        );
            
        Mapa.directionsDisplay.setMap(Mapa.map);
        
        Mapa.PrzeliczTrase();
    },
    
    PrzeliczTrase : function()
    {
        var position;
        
        Mapa.directionsService = new google.maps.DirectionsService();
        start_lat   = $('#base_lat').val();
        start_lng   = $('#base_lng').val();
        
        dest_lat    = $('#jQdest_lat').val();
        dest_lng    = $('#jQdest_lng').val();
        
        if( start_lat != '' &&  start_lng != '' )
            var start   = new google.maps.LatLng( start_lat, start_lng );
        
        if( dest_lat * dest_lng > 0)
            end     = new google.maps.LatLng( dest_lat, dest_lng );
        else
            end     =  $('input[name="f_ulica"]').val() + ', ' + $('input[name="f_kod_pocztowy"]').val() + ' ' + $('input[name="f_miejscowosc"]').val() + ', Polska';

        var request = {
            origin:start, 
            destination: end,
            optimizeWaypoints: true,
            provideRouteAlternatives: true,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        Mapa.directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                
                Mapa.directionsDisplay.setMap( Mapa.map );
                Mapa.directionsDisplay.setDirections(response);
                
                $('input[name=dystans]').val( response.routes[0].legs[0].distance.value );
            }
        });
    },
    KorektaTrasy : function()
    {
        $( 'input.jQformSubmit' ).hide();
        
        google.maps.event.clearListeners(Mapa.map, 'click');
        google.maps.event.clearListeners(Mapa.marker, 'position_changed');
        
        
        console.log( Mapa.map.getCenter() );

        if(Mapa.marker){
            Mapa.marker.setMap();
        }

        Mapa.marker = new google.maps.Marker({
            position: Mapa.map.getCenter(),
            draggable: true,
            map: Mapa.map
        });

        google.maps.event.addListener(Mapa.marker, 'position_changed', function() {
            $('#jQdest_lat').val( this.getPosition().lat() );
            $('#jQdest_lng').val( this.getPosition().lng() );
        });

        $('#jQdest_lat').val( Mapa.map.getCenter().lat() );
        $('#jQdest_lng').val( Mapa.map.getCenter().lng() );

        $('.jQprzelicz').show();

        
        $('.jQkorekta, .jQformSubmit, .jQtransportInfo').hide();
        
        Mapa.directionsDisplay.setMap();
    }
};

function ustawRozmiar(el, what){
    if( $('input.jQ' + what).size() > 0 ){
        $('input.jQ' + what).val( $('option:selected', el).text().replace(/\s\([^\(]*\)/, '') );
    }
}

function showOpt(el, nazwa){
    position = $(el).position();
    
    element = $( '.jQop' + nazwa ).clone();
    
    ramka = $('<div></div>').css({
        'position'  : 'absolute',
        'top'       : position.top,
        'left'      : position.left,
        'z-index'   : 1000,
        'height'    : $( '.jQop' + nazwa ).height(),
        'width'     : $( '.jQop' + nazwa ).width(),
        'background': 'white'
    }).change(function(){
        $( '.jQop' + nazwa ).val( $('option:selected',this).val() )
    }).html( element ).focusout(function(){
        ustawRozmiar(this, nazwa);
        $(this).trigger('change').remove() 
    });
    
    $('body').append(ramka);
}
