startList = function() {
	
	// film w nagłówku
	if ( $('#movieLink').length ) { 
		var videoId = $('#movieLink').attr('href').replace(/.*\/([^\/]+$)/, "$1");
		$('#movieLink').after(
			'<div id="hv-' + videoId + '">' +
				'<object width="640" height="360">' +
					'<param name="allowfullscreen" value="true" />' +
					'<param name="allowscriptaccess" value="always" />' +
					'<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' + videoId + '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" />' +
					'<embed src="http://vimeo.com/moogaloop.swf?clip_id=' + videoId + '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed>' +
				'</object>' +
			'</div>'
		);
		$('#movieLink').detach();
	}

	// bannery reklamowe
	if ( $('#adv01').length ) {
		var adv = new SWFObject("reklama/banner_01.swf", "flashMovie", "500", "65", "10", "#000000");
		adv.write("adv01");
	}
	if ( $('#adv02').length ) {
		var adv = new SWFObject("reklama/banner_02.swf", "flashMovie", "500", "65", "10", "#000000");
		adv.write("adv02");
	}
	if ( $('#adv03').length ) {
		var adv = new SWFObject("reklama/banner_03.swf", "flashMovie", "500", "65", "10", "#000000");
		adv.write("adv03");
	}
	if ( $('#adv04').length ) {
		var adv = new SWFObject("reklama/banner_04.swf", "flashMovie", "500", "65", "10", "#000000");
		adv.write("adv04");
	}
	if ( $('#adv05').length ) {
		var adv = new SWFObject("reklama/banner_05.swf", "flashMovie", "500", "65", "10", "#000000");
		adv.write("adv05");
	}


	// filmy w sekcji video
	// if ( $('.view').length ) {
	// 	var movies = $(".view");
	// 	var flv;
	// 	for (var i = 0; i < movies.length; i++){
	// 		flv = $(movies[i]).attr('title');
	// 		$(movies[i]).fancybox({
	// 			'padding'					: 0,
	// 			'autoScale'				: false,
	// 			'transitionIn'		: 'none',
	// 			'transitionOut'		: 'none',
	// 			'overlayOpacity'	: 0.7,
	// 			'overlayColor'		: '#000',
	// 			'width'						: 640,
	// 			'height'					: 360,
	// 			'titleShow'				: false,
	// 			'swf'							: { FlashVars: 'flv_file='+flv}
	// 		});
	// 	}
	// }

	// filmy z vimeo
	if ( $('.view').length ) {
		// dołącz video
		$('.view').each(function(){
			var videoId = this.href.replace(/.*\/([^\/]+$)/, "$1")
			$(this).attr('href', '#vid-' + videoId);
			$(this).parent().after(
				'<div id="wrap-' + videoId + '">' +
					'<div class="vid" id="vid-' + videoId + '">' +
						'<object width="640" height="360">' +
							'<param name="allowfullscreen" value="true" />' +
							'<param name="allowscriptaccess" value="always" />' +
							'<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' + videoId + '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" />' +
							'<embed src="http://vimeo.com/moogaloop.swf?clip_id=' + videoId + '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed>' +
						'</object>' +
					'</div>' +
				'</div>'	
			);
			$('#wrap-'+videoId).hide()
		})
		// zainicjuj fancyboxa
		if ($.browser.msie && (/^6.*/.test($.browser.version) || /^7.*/.test($.browser.version))) {
			$('.vid').fancybox({
				'enableEscapeButton'	: true,
				'hideOnOverlayClick'	: true,
				'hideOnContentClick'	: false,
				'padding'							: 20,
				'scrolling'						: 'no',
				'autoScale'						: false,
				'transitionIn'				: 'none',
				'transitionOut'				: 'none',
				'overlayOpacity'			: 0.7,
				'overlayColor'				: '#000',
				'width'								: 640,
				'height'							: 360,
				'titleShow'						: false
			})
		}
		else {
			$('.view').fancybox({
				'enableEscapeButton'	: true,
				'hideOnOverlayClick'	: true,
				'hideOnContentClick'	: false,
				'padding'							: 20,
				'scrolling'						: 'no',
				'autoScale'						: false,
				'transitionIn'				: 'none',
				'transitionOut'				: 'none',
				'overlayOpacity'			: 0.7,
				'overlayColor'				: '#000',
				'width'								: 640,
				'height'							: 360,
				'titleShow'						: false
			})
		}
		$('.view').click(function(){
			$(this.href).trigger('click');
		})
	}
	
	// formularz prenumeraty
	if ( $('#subForm').length ) {
		subForm = new subForm($('#subForm'));
	}
	// alert($('a.mail').length);
	//   $('a.mail').each(function(){
	//     $(this).attr('href', mailDecode($(this).attr('href')));
	//     $(this).html(mailDecode($(this).html()));
	//   });
}
window.onload = startList;

function mailDecode(mail){
  mail = mail.replace(/[a-zA-Z]/g, function(c){ return String.fromCharCode((c <= 'Z' ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c-26); });
  return mail;
}

function subForm(form){
// stan pola do edycji danych firmy
	if($('#vat').attr('checked')){
		$('#subCompany').removeClass('invisible');
		$('#vat').val(1);
	}
// kontrola błędów
	validateField('name', {type: 'filled', min: 3, message: "Imię musi mieć minimum trzy znaki."})
	validateField('sname', {type: 'filled', min: 3, message: 'Nazwisko musi mieć minimum trzy znaki.'});
	validateField('email', {type: 'filled', min: 1, message: 'Nie podano adresu email.'}, { type: 'email', message: 'Niepoprawny format adresu email.'});
	validateField('subAdrStreet', {type: 'filled', min: 3, message: 'Nie podano nazwy ulicy.'});
	validateField('subAdrStreetNo', {type: 'regexp', regexp: /.*\d+.*/, message: 'Nie podano numeru domu / mieszkania'});
	validateField('subAdrCode', {type: 'filled', min: 1, message: 'Nie podano kodu pocztowego.'}, {type: 'regexp', regexp: /\d\d-\d\d\d/, message: 'Błędny format kodu pocztowego. Poprawny format to xx-xxx.'});
	validateField('subAdrCity', {type: 'filled', min: 3, message: 'Nazwa miasta musi mieć minimum trzy znaki.'});
	// firma
	validateField('company', {type: 'filled', min: 3, message: 'Nazwa firmy musi mieć minimum trzy znaki.'});
	validateField('nip', {type: 'regexp', regexp: /^[\d]{10}$/, message: 'Nip musi składać się z dziesięciu cyfr, bez kresek.'});
	validateField('adrStreet', {type: 'filled', min: 3, message: 'Nie podano nazwy ulicy.'});
	validateField('adrStreetNo', {type: 'regexp', regexp: /.*\d+.*/, message: 'Nie podano numeru domu / mieszkania'});
	validateField('adrCode', {type: 'filled', min: 1, message: 'Nie podano kodu pocztowego.'}, {type: 'regexp', regexp: /\d\d-\d\d\d/, message: 'Błędny format kodu pocztowego. Poprawny format to xx-xxx.'});
	validateField('adrCity', {type: 'filled', min: 3, message: 'Nazwa miasta musi mieć minimum trzy znaki.'});
	// zgoda na przetwarzanie
	validateField('agreement', {type: 'checked', message: 'Nie wyrażono zgody na przetwarzanie danych.'})
	// submit
	$('#subForm').submit(function(event){ event.preventDefault(); sendSubForm(); });

	$('#vat').click(function(){
		if($('#vat').attr('checked')){
			$('#subCompany').removeClass('invisible');
			$('#vat').val(1);
		}
		else {
			$('#subCompany').addClass('invisible');
			$('#vat').val(0)
		}
	});

	$('#subAdr').click(function(){
		if($('#subAdr').attr('checked')){
			$('#adrStreet').val($('#subAdrStreet').val()).trigger('blur');
			$('#adrStreetNo').val($('#subAdrStreetNo').val()).trigger('blur');
			$('#adrCode').val($('#subAdrCode').val()).trigger('blur');
			$('#adrCity').val($('#subAdrCity').val()).trigger('blur');
		}
		else {
			if ($('#adrStreet').val()   == $('#subAdrStreet').val())  { $('#adrStreet').val('').trigger('blur'); }
			if ($('#adrStreetNo').val() == $('#subAdrStreetNo').val()){ $('#adrStreetNo').val('').trigger('blur'); }
			if ($('#adrCode').val()     == $('#subAdrCode').val())    { $('#adrCode').val('').trigger('blur'); }
			if ($('#adrCity').val()     == $('#subAdrCity').val())    { $('#adrCity').val('').trigger('blur'); }
		}
	});

	function validateField(fieldId){
		var argList = arguments;
		$('#'+fieldId).blur(function(){
			$('#'+fieldId).attr('error', 0);
			for (var i = 1; i < argList.length; i++){
				errorDef = argList[i];
				if($('#'+fieldId).attr('error') == 0){
					switch(errorDef.type){
						case 'filled':
							$('#'+fieldId).attr('error', checkFilled(fieldId, errorDef.min));
							$('#'+fieldId).attr('errorMsg', errorDef.message);
						break;
						case 'regexp':
							$('#'+fieldId).attr('error', checkRegexp(fieldId, errorDef.regexp));
							$('#'+fieldId).attr('errorMsg', errorDef.message);
						break;
						case 'email':
							$('#'+fieldId).attr('error', checkEmail(fieldId));
							$('#'+fieldId).attr('errorMsg', errorDef.message);
						break;
						case 'checked':
							$('#'+fieldId).attr('error', checkChecked(fieldId));
							$('#'+fieldId).attr('errorMsg', errorDef.message);
						break;
					}
				}
				if ($('#'+fieldId).attr('error') == 1){
					errorOn(fieldId, $('#'+fieldId).attr('errorMsg'));
				}
				else {
					errorOff(fieldId);
				}
			}
		})
	}

	function checkFilled(fieldId, minLength){
		if ($('#'+fieldId).val().length >= minLength){
			return 0;
		}
		else { return 1; }
	}
	
	function checkRegexp(fieldId, regexp){
		if(regexp.test($('#'+fieldId).val())){
			return 0;
		}
		else {
			return 1;
		}
	}

	function checkEmail(fieldId){
		var email = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
		if(email.test($('#'+fieldId).val())){
			return 0;
		}
		else {
			return 1;
		}
	}
	
	function checkChecked(fieldId){
		if($('#'+fieldId).attr('checked')){
			return 0;
		}
		else {
			return 1;
		}
	}

	function errorOn(fieldId, message){
		var errorId = 'ERROR' + fieldId;
		if ($('#'+errorId).length){ $('#'+errorId).detach(); }
		$('#'+fieldId).parent().after('<p id="' + errorId + '" class="error">' + message + '</p>');
	}
	
	function errorOff(fieldId){
		var errorId = 'ERROR' + fieldId;
		if ($('#'+errorId).length){ $('#'+errorId).detach(); }
	}

	function sendSubForm(){
		var formError = 0;
		var formFields = new Array(
			'name',
			'sname',
			'email',
			'subAdrStreet',
			'subAdrStreetNo',
			'subAdrCode',
			'subAdrCity',
			'agreement'
		);
		var companyFormFields = new Array(
			'company',
			'nip',
			'adrStreet',
			'adrStreetNo',
			'adrCode',
			'adrCity'
		)

		for (i in formFields){
			$('#'+formFields[i]).trigger('blur');
			if ($('#'+formFields[i]).attr('error') == 1){ formError = 1; }
		}
		
		if($('#vat').attr('checked')){
			for (i in companyFormFields){
				$('#'+companyFormFields[i]).trigger('blur');
				if ($('#'+companyFormFields[i]).attr('error') == 1){ formError = 1; }
			}
		}
		if (formError == 1){
			$('#subSubmitError').detach();
			$('#subSubmit').parent().after('<p id="subSubmitError" class="error" style="margin: -20px 0 20px 0">Formularz wypełniony niepoprawnie.</p>');
		}
		else {
			$('#subSubmitError').detach();
			
			var archive = [];
			$.each($('.archive:checked'), function() { archive.push($(this).val()); });
			if(archive.length == 0) { archive = 0; }
			
			$.post('x.php?subscription', { 
					name: 							$('#name').val(), 
					sname: 							$('#sname').val(), 
					email: 							$('#email').val(), 
					phone: 							$('#phone').val(), 
					sub_adr_street: 		$('#subAdrStreet').val(),
					sub_adr_street_no: 	$('#subAdrStreetNo').val(),
					sub_adr_code: 			$('#subAdrCode').val(),
					sub_adr_city: 			$('#subAdrCity').val(),
					vat: 								$('#vat').val(),
					company: 						$('#company').val(),
					nip: 								$('#nip').val(),
					adr_street: 				$('#adrStreet').val(),
					adr_street_no: 			$('#adrStreetNo').val(),
					adr_code: 					$('#adrCode').val(),
					adr_city: 					$('#adrCity').val(),
					sub_start_no:				$('#subStartNo').val(),
					comment: 						$('#comment').val(),
					agreement:					$('#agreement').val(),
					archive:						archive 
				}, function(responseStr) {
					var response = $.parseJSON(responseStr);
					// console.log(response);
					if(response.result == 0){
						$('#subSubmitError').detach();
						$('#subSubmit').parent().after('<p id="subSubmitError" style="margin: -20px 0 20px 0">Dziękujemy za zaprenumerowanie FilmPRO. Wkrótce otrzymają Państwo mail z potwierdzeniem prenumeraty.</p>');
						$(":input").each(function(){
							if ($(this).attr('checked')){
								$(this).attr('checked', false)
							}
							else {
								$(this).val('')
							}
						})
					}
					else if(response.result == 1){
						$('#subSubmitError').detach();
						$('#subSubmit').parent().after('<p id="subSubmitError" class="error" style="margin: -20px 0 20px 0">Wystąpił błąd po stronie serwera. Proszę wysłać formularz ponownie.</p>');
					}
					else {
						var errorFields = { 
							name: 							'imię', 
							sname: 							'nazwisko', 
							email: 							'email', 
							phone: 							'telefon', 
							sub_adr_street: 		'ulica',
							sub_adr_street_no: 	'nr domu / mieszkania',
							sub_adr_code: 			'kod pocztowy',
							sub_adr_city: 			'miasto',
							company: 						'nazwa firmy',
							nip: 								'nip',
							adr_street: 				'dane firmy - ulica',
							adr_street_no: 			'dane firmy - nr domu / mieszkania',
							adr_code: 					'dane firmy - kod pocztowy',
							adr_city: 					'dane firmy - miasto',
							agreement:					'zgoda na przetwarzanie danych'
						}
						var errorList = '';
						for(i = 0; i < response.err_fields.length; i++){
							errorList += errorFields[response.err_fields[i]] + ', ';
						}
						errorList = errorList.substring(0, errorList.length - 2);
						$('#subSubmitError').detach();
						$('#subSubmit').parent().after('<p id="subSubmitError" class="error" style="margin: -20px 0 20px 0">W następujących polach formularza wystąpiły błędy: ' + errorList + '</p>');
					}
			});
		}
	}

}
