/*
*
*	Wojciech Czarnecki
*	wojtek-cz@o2.pl
*	
*/

/* HEADER MENU */

$(document).ready(function() {
    $('ul#menu_wrapper p').hide();
    $('ul#menu_wrapper li')
	.bind('mouseleave', function() {
	    $(this).children('p').slideUp('fast');
	})
	.children('a')
	.bind('mouseenter', function() {
	    $(this).next().slideDown('fast');
	});
});

/* CONTACT FORM */

$(document).ready(function() {
    $elements = $('form#contact_form');
    $elements.children().bind('focus', function() {
	$(this).css({'border': 'none'});
    });
    $('form#contact_form input[type=submit]').click(function(event) {
	var send = true;
	event.preventDefault();
	$elements.children().each(function() {
	    $field = $(this);
	    if($field.is('.required')) {
		if(this.value.length < 2) {
		    send = false;
		    $field.css({'border': 'red 1px solid'});
		}
	    }
	    if($field.is('.email')) {
		if(!/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value)) {
		    send = false;
		    $field.css({'border': 'red 1px solid'});
		}
	    }
	});
	
	if(send) $('form#contact_form').submit();
	else $('form#contact_form p#msg').text('').append('Wypełnij poprawnie wymagane pola!').slideDown();
    });
});

/* SLIDER */

/* ilosc obrazkow, dany obrazek, interval, wartosc setTimeout */
var slN=0, slC=-1, slInterval=5000, slT;

/* slider init */
$(document).ready(function() {
    $slider_images = $('ul#slider_images');
    $slider_title = $('div#slider_title');
    slN = $slider_images.children().size();
    $slider_title.children('span').text($slider_images.children('li:eq('+slC+')').attr('title'));
    $('div#slider_image_wrapper').html($slider_images.children('li:eq('+slC+')').html());
    $slider_buttons = $('div#slider_buttons');
    $slider_buttons.append('<a href="0" class="slider_a slider_a_current">01</a>');
    for(var i=1; i<slN; i++) {
	$slider_buttons.append('<a href="'+i+'" class="slider_a">0'+(i+1)+'</a>');
    }
    $slider_buttons.children('a').click(function(event) {
	event.preventDefault();
	clearTimeout(slT);
	slider_image_shift($(this).attr('href'), $(this));
    });
});

/* uruchom slider */
function slider_start() {
    $('div#slider_wrapper').css({'overflow': 'hidden'});
    slider_shift();    
}

/* przesuniecie slidera co slInterval */
function slider_shift() {
    slider_image_shift();
    slT = setTimeout('slider_shift()', slInterval);
}

/* animacja obrazka w sliderku */
function slider_image_shift(c,ob) {
    $('div#slider_buttons a').removeClass('slider_a_current');
    if(ob) {
	slC=c;
	ob.addClass('slider_a_current');
    } else {
	slC++;
	if(slC==slN) slC=0;
	$('div#slider_buttons a:eq('+slC+')').addClass('slider_a_current');
    }
    $('div#slider_title span').text($('ul#slider_images li:eq('+slC+')').attr('title'));
    $('div#slider_image_wrapper').fadeOut('fast', function() {
	$(this).html($slider_images.children('li:eq('+slC+')').html());
    }).fadeIn('fast');
}

/* PARTNERZY */

var pC=-1, pN=0, pInterval=3000, pT;

$(document).ready(function() {
    $images = $('ul#partnerzy_box_images');
    pN = $images.children().size();
    $images.hide();
});

function partnerzy_shift() {
    partnerzy_image_shift();
    pT = setTimeout('partnerzy_shift()', pInterval);
}

function partnerzy_image_shift() {
    $('p#partnerzy_box_image').fadeOut('slow', function() {
	pC++;
	if(pC == pN) pC=0;
	$('p#partnerzy_box_image').html($images.children('li:eq('+pC+')').html()).fadeIn('slow');
    });
}

/* REALIZACJE */

var rC=-1, rN=0, rInterval=5000, rT;

$(document).ready(function() {
    $rei = $('ul#realizacje_box_images');
    rN = $rei.children().size();
    $rei.hide();
});

function realizacje_shift() {
    realizacje_image_shift();
    rT = setTimeout('realizacje_shift()', rInterval);
}

function realizacje_image_shift() {
    $('p#realizacje_box_img').fadeOut('slow', function() {
	rC++;
	if(rC == rN) rC=0;
	$('p#realizacje_box_img').html($rei.children('li:eq('+rC+')').html()).fadeIn('slow');
    });
}

/* GALERIA */

var imgN, imgC, imgM=true;

$(document).ready(function() {
    imgN = $('div#gallery_photos a[name=gallery]').size();
    $('a[name=gallery]').click(function(event) {
	event.preventDefault();
	imgC = $(this).index();
	var dw = $(document).width();
	var dh = $(document).height();
	var ww = $(window).width();
	var wh = $(window).height();
	var wst = $(window).scrollTop();
	if(imgM == true) {
	    $('<div id="modal_mask"></div>').appendTo('body').hide();
	    $mask = $('div#modal_mask');
	    $mask.css({'width': dw, 'height': dh}).fadeTo('fast', 0.85).click(closeBox);
	}
	var str = '';
	if(imgC > 0) str += '<p id="modal_left"></p>';
	if(imgC < (imgN-1)) str += '<p id="modal_right"></p>';
	$('<div id="modal_box">'+str+'</div>').appendTo('body');
	$box = $('div#modal_box');
	$('<div class="loading"></div>').css({'left': (ww-166)/2, 'top': wst+((wh-34)/2)}).appendTo('body');
	$('<img src="'+$(this).attr('href')+'" alt="">').load(function() {
	    if($(this).height() != 0) {
		$box.css({'top': wst+((wh-$(this).height())/2), 'left': (ww-$(this).width())/2});
		$(this).appendTo('div#modal_box');
		$box.children('p').css({'top':$(this).height()/2-20});
		$('div.loading').remove();
		$('p#modal_left').click(function() { closeBox(true); $('a[name=gallery]:eq('+(imgC-1)+')').click(); });
		$('p#modal_right').click(function() { closeBox(true); $('a[name=gallery]:eq('+(imgC+1)+')').click(); });
	    }
	}).load().appendTo('div#modal_box').click(closeBox);
    });
});

function closeBox(opened) {
    $('div#modal_box').remove();
    if(opened != true) {
	$current = $('div#modal_mask');
	$current.fadeOut(function() {
	    $current.remove();
	});
	imgM = true;
    } else imgM = false;
}

/* PRODUKT ZDJECIA */

$(document).ready(function() {
    $('#product_photos img.product_min').click(function() {
	var s = $(this).attr('alt');
	$('div#bigphoto img').fadeOut(function() {
	    $(this).attr({'src':s}).fadeIn();
	});
    });
});

/* SLIDER SKLEP */

var slider_tab = 0, pos_left = 0, step = 180, scroll_width=0;

$(document).ready(function() {
    $('div.slider_items').hide();
    $('div.slider_tab a').click(function() {
	$('div.slider_tab:eq('+slider_tab+') a').removeClass('current');
	slider_tab = $(this).parent().index();
	pos_left = 0;
	$('div#slider_scroll').fadeOut('fast', function() {
	    $scroll = $(this);
	    $scroll.empty().css({'left':pos_left});
	    $('div.slider_tab:eq('+slider_tab+')').children('a').addClass('current').end().children('div.slider_items').children().clone().appendTo('div#slider_scroll');
	    $scroll.fadeIn('fast');
	    scroll_width = $scroll.children('div.slider_item').size();
	});
	return false;
    });
    $('#slider_tabs div:eq('+slider_tab+') a').click();
    
    $('#slider_left').click(function() {
	if(pos_left > (step*(scroll_width-1))*(-1)) {
	    pos_left -= step;
	    $('#slider_scroll').animate({'left': pos_left}, 'slow');
	}
    });
    
    $('#slider_right').click(function() {
	if(pos_left < 0) {
	    pos_left += step;
	    $('#slider_scroll').animate({'left': pos_left}, 'slow');
	}
    });
});

/* FORMULARZ VFORM (testowa, prosta wersja z jedna wiadomoscia...) */

//typy sprawdzania pol umieszczane w class elementu input
var types = new Array("required", "min", "alfa", "numeric", "email", "zipcode", "telephone");

$(document).ready(function() {
    $form = $('#vform');
    $form.children('input').blur(function() { checkField($(this), true); }).each(function() {
	if($(this).attr('class').indexOf('required') != -1) {
	    $(this).prev().html($(this).prev().text()+' <span class="red">*</span>');
	}
    }).focus(function() { if($(this).next().is('.error')) $(this).next().remove(); $(this).removeClass('vfie'); });
    
    $('#vform_submit').click(function() {
	var smf = true;
	$form.children('input').each(function() {
	    var tmp = checkField($(this), false);
	    if(!tmp) {
		smf = tmp;
		$(this).addClass('vfie');
	    }
	});
	if(smf) $form.submit();
	return false;
    });
    
    function checkField(ob, addmsg) {
	var ret = true, desc = ob.attr('class');
	var endloop = false;
	for(var i=0; i<types.length; i++) {
	    if(desc.indexOf(types[i]) != -1) {
		//dodawaj swoje typy ponizej, jezeli nie zgadza sie z wyr. regularnym => ret=false; !
		switch(types[i]) {
		    case "required": { if(ob.attr('value').length == 0) { ret = false; endloop = true; } break; }
		    case "min": { if(ob.attr('value').length < 2) { ret = false; endloop = true; } break; }
		    case "alfa": { var e = new RegExp("^[^0-9]{2,}$", "g"); if(!e.test(ob.attr('value'))) { ret = false; endloop = true; } break; }
		    case "numeric": { var e = new RegExp("^[0-9]*$", "g"); if(!e.test(ob.attr('value'))) { ret = false; endloop = true; } break; }
		    case "email": { var e = new RegExp("^[0-9a-z_.-]+@+[0-9a-z.-]+\.[a-z]{2,3}$", "i"); if(!e.test(ob.attr('value'))) { ret = false; endloop = true; } break; }
		    case "zipcode": { var e = new RegExp("[0-9]{2}-[0-9]{3}", "g"); if(!e.test(ob.attr('value'))) { ret = false; endloop = true; } break; }
		    case "telephone": { var e = new RegExp("^[0-9\-]*$", "g"); if(!e.test(ob.attr('value'))) { ret = false; endloop = true; } break; }
		}
	    }
	    if(endloop) break;
	}
	if(addmsg && !ret) $('<span class="error">Błędnie wprowadzone dane.</span>').fadeIn().insertAfter(ob);
	return ret;
    }
});
