﻿$(function(){
	var searchQ = $('#searchTextInput'), searchQFocus = false, inputBottom = $('#inputBottom'), value, ajax = false, empty = true, closed = true;
	
	var interval = setInterval(function(){
	}, 50);
	
	/*
	searchQ.attr('autocomplete', 'off').bind({
		keydown: function(e){
			var key = {
				DOWN: 40,
				UP: 38,
				DEL: 46,
				TAB: 9,
				RETURN: 13,
				ESC: 27,
				BACKSPACE: 8
			};
			
			switch(e.keyCode)
			{
				case key.DOWN:
				e.preventDefault();
				return;
				break;
				
				case key.UP:
				e.preventDefault();
				return;
				break;
			}
		},
		keyup: function(){
		if($.trim(searchQ.val()) != '')
		{
			value = $.trim(searchQ.val());
			
			ajax = true;
			empty = false;

			$.ajax({
				type: 'get',
				url: 'autocomplete.php',
				data: {q: value},
				dataType: 'json',
				success: function(response){
					ajax = false;
					
					if(response && response.status != 'error' && empty === false)
					{
						if(response.suggests)
						{
							$('.content', inputBottom).html('');
						
							var append = '<div class="autocomplete"><span class="top-border"></span><ul>';
							for(i = 0; i < response.suggests.length; i++)
							{
								
								if(response.suggests.length != (i+1))
								{
									append = append + '<li>'+response.suggests[i][0]+'</li>';
								}
							}
							append = append + '</ul></div>';
							
							$('.content', inputBottom).append(append);
							
							$('.content', inputBottom).animate({
								'height': $('.autocomplete', inputBottom).height()
							}, 300, function(){
								closed = false;
							});
						}
						else
						{
							$('.content', inputBottom).animate({
								'height': 0
							}, 300, function(){
								closed = true;
							});
						}
					}
				}
			});
		}
		else if($.trim(searchQ.val()) == '' && closed === false)
		{
			$('.content', inputBottom).animate({
				'height': 0
			}, 300, function(){
				closed = true;
			});
		}
		},
		focus: function(){
			searchQFocus = true;
		},
		blur: function(){
			searchQFocus = false;
		},
		mousedown: function(e){
			
		}
	});
	*/
	
	$('#searchTextInput').blur().focus();
	
	var page = 0, q, category;
	
	$('#searchForm, #searchTextInput').attr('autocomplete', 'off');
	
	$('#mv-search').click(function(){
		var value = $.trim(searchQ.val()), cx = $('#categories-input').val();
		
		if(value == '')
		{
			if($('#input').find('.error').css('display') == 'none')
			{
				$('#input').find('.error').show();
				setTimeout(function(){
					$('#input').find('.error').fadeOut(300);
				}, 4000);
			}
		}
		else
		{
			var web = '017873242300454180121:8_ts_0chdtk';
			var video = '017873242300454180121:a2m7grr0tg1';
			var images = '017873242300454180121:7ektas84pbm';
			var news = '017873242300454180121:r4znwygai0h';
			
			var ajax = (cx == web || cx == video || cx == images || cx == news);
			
			if(ajax && 0 == 1)
			{
				if(q == value && category == cx)
				{
					return;
				}
				
				switch(cx)
				{
					case web:
					$('#results').attr('class', 'web');
					break;
					
					case video:
					$('#results').attr('class', 'video');
					break;
					
					case images:
					$('#results').attr('class', 'images');
					break;
					
					case news:
					$('#results').attr('class', 'news');
					break;
				}
				
				if($('#results .item').length || $('#results .no-results').length)
				{
					$('#results').html('');
					page = 0;
				}
	
				category = cx;
				q = value;
				
				$('#main-about .cover').show().fadeTo(500, 1);
				
				$('#main-about').hide();
				
				$('#logo').animate({
					'margin-top': 20
				}, 500);
				
				switch(cx)
				{
					case web:
					var url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&callback=?';
					break;
					
					case video:
					var url = 'http://ajax.googleapis.com/ajax/services/search/video?v=1.0&callback=?';
					break;
					
					case images:
					var url = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0&callback=?';
					break;
					
					case news:
					var url = 'http://ajax.googleapis.com/ajax/services/search/news?v=1.0&callback=?';
					break;
				}
				
				$.getJSON(url, {
					q: q,
					rsz: 8,
					start: 0
				}, function(response){
					var results = response.responseData.results;
					var count = results.length;
					if(!count)
					{
						$('#results').append('<span class="no-results">אין תוצאות. נסה לשנות את מילות החיפוש שהכנסת.</span>');
						$('#results .no-results').animate({
							'color': '#666666',
							'background-color': '#F2F2F2',
							'border-color': '#DDDDDD'
						}, 500);
						return;
					}
					
					var pages = response.responseData.cursor.pages.length;
					
					page++;
					
					for(var i = 0; i < count; i++)
					{
						switch(cx)
						{
							case web:
								$('#results').append('<a href="' + results[i].unescapedUrl + '" class="item"><h3>' + results[i].title + '</h3><span class="description">' + results[i].content + '</span><span class="url">' + results[i].visibleUrl + '</span></a>');
							break;
							
							case video:
								var rateHTML = '<div class="rating">';
								var rate = Math.round(results[i].rating);
								
								for(k = 0; k < 5; k++)
								{
									rateHTML = rateHTML + '<span class="rate-' + (rate > k ? 'full' : 'empty') + '"></span>';
								}
								
								rateHTML = rateHTML + '</div>';
								
								$('#results').append('<a href="' + results[i].playUrl + '" class="item" title="' + results[i].content + '">' + rateHTML + '<img src="' + results[i].tbUrl + '" alt="" /><h3>' + results[i].title + '</h3></a>');
							break;
							
							case images:
							$('#results').append('<a href="' + results[i].unescapedUrl + '" class="item"><img src="' + results[i].tbUrl + '" alt="" /><span class="url">' + results[i].visibleUrl + '</span></a>');
							break;
							
							case news:
							
							break;
						}
					}
					
					var resultsShowMore = $('<a></a>').attr({
						'class': 'more',
						'id': 'resultsShowMore',
						'href': '#'
					}).html('עוד תוצאות').appendTo($('#results')).click(function(e){
						e.preventDefault();
						
						$.getJSON(url, {
							q: q,
							rsz: 8,
							start: 8 * page
						}, function(response){
							var results = response.responseData.results || [];
							var count = results.length;
							
							page++;
							
							if(page == pages)
							{
								$('#resultsShowMore').html('אין עוד תוצאות').css({
									'color': '#999999',
									'cursor': 'default',
									'text-decoration': 'none'
								}).unbind('click').click(function(e){
									e.preventDefault();
								});
							}											
							
							for(var i = 0; i < count; i++)
							{
								switch(cx)
								{
									case web:
										$('#resultsShowMore').before('<a href="' + results[i].unescapedUrl + '" class="item"><h3>' + results[i].title + '</h3><span class="description">' + results[i].content + '</span><span class="url">' + results[i].visibleUrl + '</span></a>');
									break;
									
									case video:
									var rateHTML = '<div class="rating">';
									var rate = Math.round(results[i].rating);
									
									for(k = 0; k < 5; k++)
									{
										rateHTML = rateHTML + '<span class="rate-' + (rate > k ? 'full' : 'empty') + '"></span>';
									}
									
									rateHTML = rateHTML + '</div>';
									
									$('#resultsShowMore').before('<a href="' + results[i].url + '" class="item">' + rateHTML + '<img src="' + results[i].tbUrl + '" alt="" /><h3>' + results[i].title + '</h3><span class="description">' + results[i].content + '</span></a>');
									break;
									
									case images:
									$('#resultsShowMore').before('<a href="' + results[i].unescapedUrl + '" class="item"><img src="' + results[i].tbUrl + '" alt="" /><span class="url">' + results[i].visibleUrl + '</span></a>');
									break;
									
									case news:
									
									break;
								}
							}
							
							switch(cx)
							{
								case web:
								var item = $('#results .item:gt(' + ((8 * (page - 1)) - 1) + ')');
								item.css('display', 'block');
								item.find('h3').animate({'color': '#004276'}, 500);
								item.find('.description').animate({'color': '#000000'}, 500);
								item.find('.url').animate({'color': '#999999'}, 500);
								
								setTimeout(function(){
									item.find('h3').css('color', '#004276');
									item.find('.description').css('color', '#000000');
									item.find('.url').css('color', '#999999');
								}, 500);
								break;
								
								case video:
								var item = $('#results .item:gt(' + ((8 * (page - 1)) - 1) + ')');
								item.css('display', 'block');
								item.find('img').css('opacity', 0).show().fadeTo(500, 1);
								item.find('h3').animate({'color': '#004276'}, 500);
								
								setTimeout(function(){
									item.find('h3').css('color', '#004276');
								}, 500);
								break;
								
								case images:
								var item = $('#results .item:gt(' + ((8 * (page - 1)) - 1) + ')');
								item.css('display', 'block');
								item.find('img').css('opacity', 0).show().fadeTo(500, 1);
								item.find('.url').animate({'color': '#999999'}, 500);
								
								setTimeout(function(){
									item.find('.url').css('color', '#999999');
								}, 500);
								break;
								
								case news:
								
								break;
							}
						});
					});
					
					switch(cx)
					{
						case web:
						var item = $('#results .item');
						item.css('display', 'block');
						item.find('h3').animate({'color': '#004276'}, 500);
						item.find('.description').animate({'color': '#000000'}, 500);
						item.find('.url').animate({'color': '#999999'}, 500);
						
						setTimeout(function(){
							item.find('h3').css('color', '#004276');
							item.find('.description').css('color', '#000000');
							item.find('.url').css('color', '#999999');
						}, 500);
						break;
						
						case video:
						var item = $('#results .item');
						item.css('display', 'block');
						item.find('img').css('opacity', 0).show().fadeTo(500, 1);
						item.find('h3').animate({'color': '#004276'}, 500);
						
						setTimeout(function(){
							item.find('h3').css('color', '#004276');
						}, 500);
						break;
						
						case images:
						var item = $('#results .item');
						item.css('display', 'block');
						item.find('img').css('opacity', 0).show().fadeTo(500, 1);
						item.find('.url').animate({'color': '#999999'}, 500);
						
						setTimeout(function(){
							item.find('.url').css('color', '#999999');
						}, 500);
						break;
						
						case news:
						
						break;
					}
				});
			}
			else
			{
				$('#searchForm').submit();
			}
		}
	});

	var preview = false;
	$('#previewSearch').click(function(){
		if(preview)
		{
			$('#tutorialVirtualCursor').stop().css({
				'top': 0,
				'left': 0
			}).hide();
			
			$(this).html('הדגמה חיה של החיפוש');
			$('#searchTextInput').val('');
			preview = false;
			return false;
		}
			
		preview = true;
		
		$(this).html('בטל את ההדגמה');
		
		$('#searchTextInput').blur();
		setTimeout(function(){
			var offset = $('.categories li').eq(5).offset();
			$('#tutorialVirtualCursor').show().animate({
				'top': offset.top+10,
				'left': offset.left+75
			}, 3000, function(){
				if(!preview) return false;
				
				setTimeout(function(){
					$('.categories li').eq(5).trigger('mousedown');
					setTimeout(function(){
						if(!preview) return false;
						
						var offset = $('#input').offset();
						$('#tutorialVirtualCursor').animate({
							'top': offset.top+40,
							'left': offset.left+255
						}, 1000, function(){
							if(!preview) return false;
							
							$('#searchTextInput').focus();
							var inputChar = 0;
							inputTerms = 'חגיגה בסנוקר';
							$('#tutorialVirtualCursor').everyTime(100, function(i){
								if(!preview) return false;
								
								if(inputChar > inputTerms.length-1)
								{
									$('#tutorialVirtualCursor').stopTime();
									setTimeout(function(){
										if(!preview) return false;
										
										$('#tutorialVirtualCursor').animate({
											'top': '+=50',
											'left': '-=20'
										}, 1000, function(){
											if(!preview) return false;
											
											$('#mv-search').addClass('hover');
											setTimeout(function(){
												if(!preview) return false;
												
												$('#mv-search').removeClass('hover').addClass('active').trigger('click');
											}, 500);
										});
									}, 500);
									return false;
								}
								
								if(i-1 == 0)
								{
									$('#searchTextInput').val('');
								}
								
								$('#searchTextInput').val($('#searchTextInput').val() + inputTerms.charAt(i-1));
								inputChar++;
							});
						});
					}, 500);
				}, 500);
			});
		}, 500);
	});
	
	// תפקוד מקש האנטר בטופס
	$('#searchForm').keydown(function(e){
		if(e.keyCode == 13)
		{
			$('#mv-search').trigger('click');
			e.preventDefault();
		}
	});
	
	// ביטול תפריט ימני ברשימת הקטגוריות
	$('.categories').bind('contextmenu', function(){
		return false;
	});
	
	// שינוי קטגוריה אקטיבית
	$('.categories li').mousedown(function(){
		var video = '017873242300454180121:a2m7grr0tg1';
		var images = '017873242300454180121:7ektas84pbm';
		var news = '017873242300454180121:r4znwygai0h';
		
		var cx = '017873242300454180121:' + $(this).attr('class');
		
		var disable = (cx == video || cx == images || cx == news);
		
		if(disable)
		{
			return;
		}
		
		if(!($(this).hasClass('empty')))
		{
			$('.categories').find('.active').removeClass('active');
			window.location.hash = '!/' + $(this).attr('class');
			$('#categories-input').val('017873242300454180121:' + $(this).attr('class'));
			$(this).addClass('active').css('text-decoration', 'none');
			$('#mv-search').text('חיפוש ב'+$.trim($(this).text()));
		}
	});
	
	// אפקט קו תחתון בקטגוריות
	$('.categories li').hover(function(){
		if(!$(this).hasClass('active') && $(this).attr('class') != 'empty')
		{
			$(this).css('text-decoration', 'underline');
		}
	}, function(){
		$(this).css('text-decoration', 'none');
	});
	
	// הצגת הטקסט לחיפוש בטוח
	$('#safe').click(function(){
		$('.safe').html('למרות שבחיפוש המשולב אתרים בעלי תוכן פוגע ו/או למבוגרים בלבד אינם נכללים בחיפוש, ניתן להפעיל את האפשרות "חיפוש בטוח", שמסננת אתרים ש-Google חושב שאינם הולמים.').slideToggle(300);
	});
	
	// פתיחת חלון ההיסטוריה
	$('#toggleHistory').click(function(){
		if($('#history').css('display') == 'none')
		{
			offset = $('#input').offset();
			
			if($('#keyboard').css('display') == 'block')
			{
				$('#keyboard').hide();
				$('#toggleKeyboard').html('פתח מקלדת וירטואלית');
			}
				
			$('#history').css({
				'top': offset.top+50+'px', 
				'left': offset.left+17+'px'
			}).slideDown(300);
		}
		else
		{
			$('#history').slideUp(300);
		}
	});
	
	// סגירת חלון ההיסטוריה
	$('#history .close').click(function(){
		$('#history').slideUp(300);
	});
	
	// פתיחת הגדרות ההיסטוריה
	$('#history .edit').click(function(){
		var offset = $('#container').offset();
		$('#history-settings').css({
			'left': offset.left+283+'px'
		}).show();
		$('#history .close').trigger('click');
	});
	
	$('.categories').disableSelection();
	
	$('#quick-search').click(function(){
		try
		{
			window.external.AddSearchProvider('http://www.meshulav.co.il/provider.xml');
		}
		catch(e)
		{
			alert('האפשרות לא נתמכת בדפדפן שלך.');
		}
		
		return false;
	});

	setTimeout(function(){
		$('#like-box').find('.cover').fadeTo(500, 0, function(){
			this.style.display = 'none';
		});
	}, 2000);
	
	var hash = window.location.hash || false;
	
	if(hash && hash.length > 3)
	{
		hash = hash.substr(3);
		
		if($('.categories .'+hash).length != 0)
		{
			$('.categories .active').removeClass('active');
			$('.categories .'+hash).addClass('active');
			$('#mv-search').text('חיפוש ב'+$.trim($('.categories .'+hash).text()));
			$('#categories-input').val('017873242300454180121:' + hash);
		}
	}
	
	$('.checkbox').bind({
		mousedown: function(){
			var id;
			
			switch($('.checkbox').index(this))
			{
				case 0:
				id = 'checkboxOnlyHebrew';
				break;
				
				case 1:
				id = 'checkboxSafeSearch';
				break;
			}

			if($('#'+id).attr('checked') == true)
			{
				$(this).css('background-position', '-16px -495px');
			}
			else
			{
				$(this).css('background-position', '-16px -441px');
			}
		},
		mouseup: function(){
			var id;
				
			switch($('.checkbox').index(this))
			{
				case 0:
				id = 'checkboxOnlyHebrew';
				break;
				
				case 1:
				id= 'checkboxSafeSearch';
				break;
			}
			
			if($('#'+id).attr('checked') == true)
			{
				$(this).css('background-position', '-16px -468px');
				$('#'+id).removeAttr('checked');
			}
			else
			{
				$(this).css('background-position', '-32px -495px');
				$('#'+id).attr('checked', true);
			}
		},
		mouseout: function(){
			var id;
			
			switch($('.checkbox').index(this))
			{
				case 0:
				id = 'checkboxOnlyHebrew';
				break;
				
				case 1:
				id= 'checkboxSafeSearch';
				break;
			}
			
			if($('#'+id).attr('checked') == true)
			{
				$(this).css('background-position', '-32px -495px');
			}
			else
			{
				$(this).css('background-position', '-16px -468px');
			}
		}
	});
});
