String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

$(function () {
	$('#link-place-ad, #link-dealer, #footer a.link-top, #footer a.link-help').hover(function () {
		$('span', this).css({display: 'block', opacity: 0}).stop().animate({opacity: 1}, 180)
	}, function () {
		$('span', this).stop().animate({opacity: 0, display: 'none'}, 180)
	})
	
	//Cufon.replace('.cufon, #block-filter-switcher li a span', { hover: true });
	
	var tab = $('#block-filter-switcher li.active a').attr('href')
	$('#block-filter-details div.tab').hide()
	$(tab).show()
	
	$('.table-offers tr td:first-child').addClass('first-child')
	
	$('.notice-flash').delay(2000).slideUp(function () {
		$(this).remove()
	})
	
	$('#file_upload').uploadify({
		'swf'         : _URL_BASE+'static/frontend/js/uploadify/uploadify.swf',
		'uploader'    : _URL_BASE+'upload',
		'cancelImage' : _URL_BASE+'static/frontend/js/uploadify/uploadify-cancel.png',
		'buttonImage' : null,
		'checkExisting': false,
		//'folder'      : '/uploads',
		'postData'    : {'filehash': $('#filehash').val()},
		'auto'        : true,
		'buttonText'  : 'PRZEŚLIJ PLIK',
		'onUploadComplete' : function (result) {
			//console.log(result)
			load_uploaded()
		}
	});
	
	$('#type_id').data('newVal', $('#type_id').val())
    $('#type_id').change(function(){
    	$('#type_id').data('oldVal', $('#type_id').data('newVal'))
    	$('#type_id').data('newVal', $(this).val())
    })
	
	if ($('#type_id').size() > 0) {
		$('#type_id_wrapper').live('change', function () {
			load_makes($('#type_id').val(), 0)
			load_parameters($('#type_id').val())
			$('#model_id_wrapper .input').html('-- wybierz markę --')
		})
	}
	
	//if ($('#make_id').size() > 0) {
		$('#make_id_wrapper').live('change', function () {
			load_models($('#make_id').val(), 0)
		})
	//}
	
	if ($('#type_id').size() > 0 && $('#make_id_wrapper .input').size() > 0) {
		load_makes($('#type_id').val(), $('#make_id_wrapper .input').attr('rel'))
	}
	
	initSearchFilterMain()
	
	$('#btn-search, #btn-search-filter').live('mouseover', function () { $(this).addClass('hover') })
	$('#btn-search, #btn-search-filter').live('mouseout', function () { $(this).removeClass('hover') })
	
	$('#form-login .submit').val('')
	$('#form-login .submit').live('mouseover', function () { $(this).addClass('submit-hover') })
	$('#form-login .submit').live('mouseout', function () { $(this).removeClass('submit-hover') })

	initAdPage();
	initDealer();
	initHome();
	initAgreement();
	initSummary();
})

$(document).ready(function () {
	load_uploaded()
})

function initSummary() {
	$('#products-purchased .product .quantity').each(function () {
		if ($(this).text() == '0') {
			$(this).parent().addClass('toggle').hide()
		}
	})
	
	$('#expand-purchased').click(function (e) {
		e.preventDefault();
		$('#products-purchased .toggle').toggle();
		
		console.log($('#products-purchased .toggle:eq(0):visible').size() > 0)
		if ($('#products-purchased .toggle:eq(0):visible').size() > 0) {
			$(this).html('[-] Pokaż tylko zakupione usługi')
		} else {
			$(this).html('[+] Pokaż wszystkie usługi')
		}
	})
	
	/*var h = 0;
	$('#package-selector .description ul').each(function () {
		if ($(this).height() > h) { h = $(this).height() }
	})
	$('#package-selector .description ul').css({height: h})*/
}

function load_uploaded() {
	/*$.ajax({
		type: "POST",
		url: _URL_BASE+'upload/list',
		data: {'filehash': $('#filehash').val()},
		async: true,
		dataType: "json",
		success: function (result) {
			if (result.error_code == 0) {
				$('#uploader-content').html('')
				for (i in result.result) {
					var img = _URL_BASE+'public/files/'+result.result[i].directory+'/'+result.result[i].id+'_v.'+result.result[i].extension
					var item = $('<div>').addClass('upload-file').attr('id', 'upload-file-'+i).attr('item_id', result.result[i].id).appendTo('#uploader-content')
					var image = $('<div>').addClass('image').css({'background-image': 'url('+img+')'}).appendTo(item)
					
					if (result.result[i]['default'] == 1) { item.addClass('file-default') }
					
					$('<a>').addClass('link-move-left').attr('href', '#').appendTo(item).html('&laquo;')
					$('<a>').addClass('link-move-right').attr('href', '#').appendTo(item).html('&raquo;')
					
					$('<a>').addClass('link-default').attr('href', '#').appendTo(item).html('domyślny')
					$('<a>').addClass('link-delete').attr('href', '#').appendTo(item).html('x')
				}
				
				bind_upload_links()
			}
		}
	})*/
	if ($('#filehash').size() > 0) {
		$.post(_URL_BASE+'upload/list', {'filehash': $('#filehash').val()}, function (result) {
			if (result.error_code == 0) {
				$('#uploader-content').html('')
				for (i in result.result) {
					var img = _URL_BASE+'public/files/'+result.result[i].directory+'/'+result.result[i].id+'_v.'+result.result[i].extension
					var item = $('<div>').addClass('upload-file').attr('id', 'upload-file-'+i).attr('item_id', result.result[i].id).appendTo('#uploader-content')
					var image = $('<div>').addClass('image').css({'background-image': 'url('+img+')'}).appendTo(item)
					
					if (result.result[i]['default'] == 1) { item.addClass('file-default') }
					
					$('<a>').addClass('link-move-left').attr('href', '#').appendTo(item).html('&laquo;')
					$('<a>').addClass('link-move-right').attr('href', '#').appendTo(item).html('&raquo;')
					
					$('<a>').addClass('link-default').attr('href', '#').appendTo(item).html('domyślny')
					$('<a>').addClass('link-delete').attr('href', '#').appendTo(item).html('x')
				}
				
				bind_upload_links()
			}
		}, 'json');
	}
}

function bind_upload_links() {
	$('.link-move-left').die('click')
	$('.link-move-right').die('click')
	$('.link-default').die('click')
	$('.link-delete').die('click')
	
	$('.link-move-left').live('click', function (e) {
		//console.log($(this).parent().prev().size() > 0)
		if ($(this).parent().prev().size() > 0) {
			$(this).parent().prev().before($(this).parent().remove())
		}
		update_files()
		e.preventDefault()
	})
	
	$('.link-move-right').live('click', function (e) {
		//console.log($(this).parent().next())
		if ($(this).parent().next().size() > 0) {
			$(this).parent().next().after($(this).parent().remove())
		}
		update_files()
		e.preventDefault()
	})
	
	$('.link-default').live('click', function (e) {
		//console.log($(this).parent().next())
		$(this).parent().parent().find('div.upload-file').removeClass('file-default')
		$(this).parent().addClass('file-default')
		update_files()
		e.preventDefault()
	})
	
	$('.link-delete').live('click', function (e) {
		var id = $(this).parent().attr('item_id')
		
		/*$.ajax({
			type: "POST",
			url: _URL_BASE+'upload/delete',
			data: {'filehash': $('#filehash').val(), 'id': id},
			async: true,
			dataType: "json",
			success: function (result) {
				if (result.error_code == 0) {
					load_uploaded()
				}
			}
		})*/
		
		$.post(_URL_BASE+'upload/delete', {'filehash': $('#filehash').val(), 'id': id}, function (result) {
			if (result.error_code == 0) {
				load_uploaded()
			}
		}, 'json')
		e.preventDefault()
	})
}

function update_files() {
	
	var items = [];
	var def = 0;
	
	$('#uploader-content .upload-file').each(function () {
		items.push($(this).attr('item_id'))
		if ($(this).hasClass('file-default')) {
			def = $(this).attr('item_id')
		}
	})
	
	/*$.ajax({
		type: "POST",
		url: _URL_BASE+'upload/update',
		data: {'filehash': $('#filehash').val(), 'default': def, 'items': items},
		async: true,
		dataType: "json",
		success: function (result) {}
	})*/
	
	$.post(_URL_BASE+'upload/update', {'filehash': $('#filehash').val(), 'default': def, 'items': items}, function (result) {
		if (result.error_code == 0) {}
	}, 'json')
	
	//$('#uploader-content').html('')
	//bind_upload_links()
}

function load_models(make_id, model_id) {
	$('#model_id_wrapper .input').addClass('loading').html('Trwa wczytywanie.')
	$.getJSON(_URL_BASE+'ajax/models/'+make_id, function (result) {
		$('#model_id_wrapper .input').removeClass('loading').html('')
		var select = $('<select>').attr('id', 'model_id').attr('name', 'model_id').appendTo('#model_id_wrapper .input')
		$('<option>').attr('value', '0').html('-- obojętnie --').appendTo(select)
		for (i in result)
		{
			var opt = $('<option>').attr('value', result[i][0]).html(result[i][1]).appendTo(select)
			if (result[i][0] == model_id) { opt.attr('selected', 'selected') }
		}
	})
}

function load_makes(type_id, make_id) {
	$('#make_id_wrapper .input').addClass('loading').html('Trwa wczytywanie.')
	$.getJSON(_URL_BASE+'ajax/makes/'+type_id, function (result) {
		$('#make_id_wrapper .input').removeClass('loading').html('')
		var select = $('<select>').attr('id', 'make_id').attr('name', 'make_id').appendTo('#make_id_wrapper .input')
		$('<option>').attr('value', '0').html('-- obojętnie --').appendTo(select)
		for (i in result)
		{
			var opt = $('<option>').attr('value', result[i][0]).html(result[i][1]).appendTo(select)
			if (result[i][0] == make_id) { opt.attr('selected', 'selected') }
		}
		load_models($('#make_id').val(), $('#model_id_wrapper .input').attr('rel'))
	})
}

var parametersData = Array();
function load_parameters(type_id) {
	//console.log([$('#type_id').data('oldVal'), $('#type_id').data('newVal')])
	parametersData[$('#type_id').data('oldVal')] = $('#parameters select, #parameters input, #parameters textarea').serializeArray()
	$('#parameters').load(_URL_BASE+'ajax/parameters/'+type_id, function () {
		if (parametersData[type_id] != 'undefined') {
			//var values = {}
			for (i in parametersData[type_id]) {
				//console.log([parametersData[type_id][i].name, parametersData[type_id][i].value])
				//values[parametersData[type_id][i].name] = parametersData[type_id][i].value
				var name = parametersData[type_id][i].name;
				var value = parametersData[type_id][i].value;
				
				$('[name="'+name+'"]').each(function () {
					switch (this.nodeName.toLowerCase()) {
				        case "input":
				            switch (this.type) {
				                case "radio":
				                case "checkbox":
				                    if (this.value == value) { $(this).click(); }
				                    break;
				                default:
				                    $(this).val(value);
				                    break;
				            }
				            break;
				        case "textarea":
				        	$(this).val(value);
				        	break;
				        case "select":
				            $("option", this).each(function(){
				                if (this.value == value) { this.selected = true; }
				            });
				            break;
					}
				})
			}
		}
	})
	//$('form').populate(values)
}

function loadFilterMake(th) {
	var make_id = $(th).val()
	var self = $(th)

	//$('#model_id_wrapper .input').addClass('loading').html('Trwa wczytywanie.')
	$.getJSON(_URL_BASE+'ajax/models/'+make_id, function (result) {
		//$('#model_id_wrapper .input').removeClass('loading').html('')
		self.parent().next().find('.wrapper').html('')
		var select = $('<select>').attr('id', 'model_id').attr('name', 'model_id').appendTo(self.parent().next().find('.wrapper'))
		$('<option>').attr('value', '0').html('-- obojętnie --').appendTo(select)
		for (i in result)
		{
			var opt = $('<option>').attr('value', result[i][0]).html(result[i][1]).appendTo(select)
			if (result[i][0] == model_id) { opt.attr('selected', 'selected') }
		}
	})
}

function initSearchFilterMain() {
	
	$('#filter-osobowe').load(_URL_BASE+'ajax/filter_parameters/1?filter=1', function () {
		loadFilterMake($('#filter-osobowe #make_id'))
	})
	
	$('#block-filter-switcher li').click(function () {
		var tab = $('a', this).attr('href')
		if (tab !== $('#block-filter-switcher li.active a').eq(0).attr('href')) {
			$('#block-filter-details div.tab').fadeOut('slow')
			
			$(tab).load(_URL_BASE+'ajax/filter_parameters/'+$(tab).attr('rel')+'?filter=1', function () {
				loadFilterMake($(tab+' #make_id'))
			})
			
			$(tab).fadeIn('slow')
		}
	})
	
	$('#block-filter-switcher li').click(function (e) {
		$(this).parent().find('li').removeClass('active')
		$(this).addClass('active')
		
		e.preventDefault()
	})
	
	$('#block-filter-details #make_id').live('change', function () {
		loadFilterMake(this)
	})
}

function initAdPage() {
	$('.link-print').click(function (e) {
		window.print();
		e.preventDefault();
	})
	
	$('.offer-images a').click(function (e) {
		$('.offer-images a').removeClass('active');
		$(this).addClass('active');
		
		var img = new Image();
		img.src = $(this).attr('href')
		img.onload = function () {
			$('.offer-image').empty().append(img);
		}
		
		e.preventDefault();
	})
	
	$('.offer-image img').live('click', function (e) {
		var src = $(this).attr('src');
		var src = src.replace('_v', '_z')
		
		var img = new Image();
		img.src = src
		img.onload = function () {
			console.log(src)
			$.fancybox('<img src="'+src+'" />', {})
		}
		
		e.preventDefault();
	})
	
	$('.table-parameters .parameter').each(function () {
		var height = 0;
		var self = this;
		$('.parameter-name, .parameter-value', self).each(function () {
			if ($(this).height() > height) { height = $(this).height(); }
		}).css({'height': height})
	})
	
	$('.link-recommend').click(function (e) {
		$('.dialog').remove();
		$('<div/>', {'id': 'dialog-recommend', 'class': 'dialog'}).appendTo('body');
		
		$('#dialog-recommend').load(_URL_BASE+'ajax/recommend', function () {
			$('#dialog-recommend #message').html('Witaj,\n\nPolecam Ci tą stronę internetową:\n'+window.location.href+'\n\nZnajdziesz tam ogłoszenie sprzedaży:\n'+$('h2.offer-title').text().trim())
			$('#dialog-recommend').dialog({
				height: 400,
				width: 450,
				modal: true,
				title: 'Poleć znajomemu',
				buttons: {
					'Prześlij': function() {
						var self = this;
						if ($(self).data('sending') != true) {
							$(self).data('sending', true);
							$.post(_URL_BASE+'ajax/recommend', $('#dialog-recommend form').serializeArray(), function (result) {
								if (result == 'OK') {
									$(self).data('sending', false);
									$(self).dialog("close");
								} else {
									$(self).data('sending', false);
									$('#dialog-recommend').html(result)
								}
							})
							
						}
					},
					'Anuluj': function() {
						$(this).dialog("close");
					}
				},
				close: function() {
					$('#dialog-recommend').remove();
				}
			})
		});
		
		e.preventDefault();
	})
	
	if ($('#ad-form-contact .error').size() > 0) {
		$('#ad-form-contact').show();
		$('html, body').animate({scrollTop: $('.error').eq(0).offset().top}, 1000);
	}
	
	$('.link-ad-form-contact').click(function (e) {
		$('#ad-form-contact').slideToggle('slow');
		e.preventDefault();
	})
}

function initDealer() {
	if ($('body.dealer-zone').size() == 0) { return false; }
	
	$('#dealer-packages a span').css({opacity: 0})
	$('#dealer-packages a').hover(
		function () { $('span', this).stop().animate({opacity: 1}, 150) },
		function () { $('span', this).stop().animate({opacity: 0}, 200) }
	).click(function (e) {
		$('#content').animate({scrollLeft: 960*($(this).index()+1)}, 300)
		e.preventDefault();
	})
	
	$('.dealer-navi').each(function () {
		$('a', this).click(function (e) {
			$('#content').animate({scrollLeft: 960*($(this).index())}, 300)
			e.preventDefault();
		})
	})
	
	$('#dealer-packages a').each(function () {
		$('#dealer-overlay').append($('<div>', {
			'class': 'package-overlay',
			'rel': $(this).attr('id')
		}).css({
			'width': $(this).width(),
			'height': $(this).height(),
			'float': 'left',
			'cursor': 'pointer'
		}).click(function (e) {
			$('#content').animate({scrollLeft: 960*($(this).index()+1)}, 300)
			e.preventDefault();
		}))
	})
	
	$('#dealer-overlay').css({
		'position': 'absolute',
		'top': $('#dealer-packages').position().top,
		'left': $('#dealer-packages').position().left,
		'width': $('#dealer-packages').width(),
		'height': $('#dealer-packages').height()
	})
	$('#dealer-overlay div')
		.hover(
			function () { $('#dealer-packages a').eq($(this).index()).find('span').stop().animate({opacity: 1}, 150) },
			function () { $('#dealer-packages a').eq($(this).index()).find('span').stop().animate({opacity: 0}, 200) }
		)
}

function initHome() {
	if ($('#block-ads-promoted ul li').size() == 3) { return false; }
	
	$('<a>', {'href': '#', 'title': 'pokaż następne', 'html': 'pokaż następne', 'class': 'promoted-next'}).click(function (e) {
		$('#block-ads-promoted ul').append($('#block-ads-promoted ul li').eq(0).remove())
		e.preventDefault();
	}).appendTo('#block-ads-promoted')
}

function initAgreement() {
	if ($('#agreement').size() == 0) { return false; }
	
	$('#agreement .step').eq(0).addClass('current').show();
	$('#agreement ul.steps li').eq(0).addClass('current');
	
	$('<div>', {'class': 'clear', 'html': '&nbsp;'}).appendTo('#agreement');
	var toolbar = $('<div>', {'id': 'agreement-toolbar', 'class': 'clearfix'}).appendTo('#agreement');
	$('<button>', {'html': 'Wstecz', 'class': 'btn-back reset'}).click(function (e) {
		var current = $('#agreement .step.current');
		var prev = current.prev('.step');
		if (prev.size() == 1) {
			$('#agreement .step').removeClass('current').hide();
			prev.addClass('current').show();
			$('#agreement ul.steps li').removeClass('current');
			$('#agreement ul.steps li').eq(prev.index()-1).addClass('current');
		}
		
		if (prev.index() <= 4) { $('#agreement-submit').hide(); $('#agreement-next').show() }
		e.preventDefault();
	}).appendTo(toolbar);
	$('<button>', {'html': 'Dalej', 'class': 'btn-next submit', 'id': 'agreement-next'}).click(function (e) {
		var current = $('#agreement .step.current');
		var next = current.next('.step');
		if (next.size() == 1) {
			$('#agreement .step').removeClass('current').hide();
			next.addClass('current').show();
			$('#agreement ul.steps li').removeClass('current');
			$('#agreement ul.steps li').eq(next.index()-1).addClass('current');
		}
		
		if (next.index() >= 4) { $('#agreement-submit').show(); $('#agreement-next').hide() } else { $('#agreement-submit').hide(); $('#agreement-next').show() }
		e.preventDefault();
	}).appendTo(toolbar);
	
	$(toolbar).append($('<button>', {'type': 'submit', 'html': 'Gotowe', 'class': 'submit', 'id': 'agreement-submit'}))
	$('#agreement-submit').hide();
	
	$('input[name=second_seller], input[name=second_buyer]').click(function () {
		$(this).parent().next().next('.toggler').toggle()
	})
	
	$('input[name=crashed], input[name=assembled]').click(function () {
		$(this).parent().next('.toggler').toggle()
	})
}
